Expose an opaque ParseError
type
#970
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes
This PR addresses #745 for
ParseErrors
by exposing the bare minimum level of detail: users can use themiette::Diagnotic
attached toParseErrors
, or use.iter()
to get an iterator over individualParseError
s. EachParseError
will expose no internal information outside of itsmiette::Diagnostic
.I think the ideal solution here is to flatten the structure of
ParseError
to remove the distinction between CST and AST errors and get rid of the "Kind" pattern, similar to what has been done for the validation & evaluation errors... but this is a large amount of work for small benefit (I find it unlikely that users will need to programmatically match against parse errors). Assuming this PR is approved, I'll make a backlog issue for the larger change. Note that this larger change can be made in a backwards-compatible way in the future.Issue #, if available
Checklist for requesting a review
The change in this PR is (choose one, and delete the other options):
cedar-policy
(e.g., changes to the signature of an existing API).(Part of the batch of breaking error structure changes for 4.0)
I confirm that this PR (choose one, and delete the other options):
(Adds an undocumented breaking change made in #908.)
I confirm that
cedar-spec
(choose one, and delete the other options):