-
Notifications
You must be signed in to change notification settings - Fork 248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: let all compiler errors carry a Location instead of a Span #7486
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remaining TODO but otherwise LGTM
Optionally, the two Location
's in ExpressionKind::Unsafe
could get mixed up so you could:
- Move one of the
Location
's toBlockExpression
- Make
ExpressionKind::Unsafe
a struct variant
@michaeljklein I created an |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - this change has been a long time coming.
Looks like we'll need to bump the maximum memory limit for private-kernel-tail
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
feat: let all compiler errors carry a Location instead of a Span (noir-lang/noir#7486) chore: Increaes base64's allotted time (noir-lang/noir#7521) fix: don't crash on broken impl syntax (noir-lang/noir#7512) feat: optimize out range checks on limiting cases (noir-lang/noir#7510) chore: clippy fixes (noir-lang/noir#7505) chore(docs): Supplement docs on `modexp` as a required precompile for Barretenberg's Solidity verifier (noir-lang/noir#7508) feat(debugger): REPL add breakpoint by sourcecode line (noir-lang/noir#5204) fix: issue duplicate error on impl function without self (noir-lang/noir#7490) feat(experimental): Support struct constructors in match patterns (noir-lang/noir#7489) feat: use resolved type instead of needing Constructor.struct_type (noir-lang/noir#7500) feat: better error message when keyword is found instead of type in p… (noir-lang/noir#7501) chore: bump external pinned commits (noir-lang/noir#7497) feat(experimental): Add invalid pattern syntax error (noir-lang/noir#7487) fix(performance): Accurately mark safe constant indices for arrays of complex types (noir-lang/noir#7491) fix(experimental): Allow shadowing in match patterns (noir-lang/noir#7484) chore: regression test #7195 (noir-lang/noir#7233) chore(docs): Section on `noir-profiler execution-opcodes` (noir-lang/noir#7480) chore: improve proptesting of 128bit values in `noirc_abi` (noir-lang/noir#7485) chore(profiler): Use brillig names for outputted flamegraphs (noir-lang/noir#7470) chore(docs): Profiler images reference (noir-lang/noir#7481) fix: don't use dummy location when inserting debug code (noir-lang/noir#7482) feat(cli)!: Add `--unstable-features` to gate unstable features (noir-lang/noir#7449)
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: bump external pinned commits (noir-lang/noir#7515) feat: let all compiler errors carry a Location instead of a Span (noir-lang/noir#7486) chore: Increaes base64's allotted time (noir-lang/noir#7521) fix: don't crash on broken impl syntax (noir-lang/noir#7512) feat: optimize out range checks on limiting cases (noir-lang/noir#7510) chore: clippy fixes (noir-lang/noir#7505) chore(docs): Supplement docs on `modexp` as a required precompile for Barretenberg's Solidity verifier (noir-lang/noir#7508) feat(debugger): REPL add breakpoint by sourcecode line (noir-lang/noir#5204) fix: issue duplicate error on impl function without self (noir-lang/noir#7490) feat(experimental): Support struct constructors in match patterns (noir-lang/noir#7489) feat: use resolved type instead of needing Constructor.struct_type (noir-lang/noir#7500) feat: better error message when keyword is found instead of type in p… (noir-lang/noir#7501) chore: bump external pinned commits (noir-lang/noir#7497) feat(experimental): Add invalid pattern syntax error (noir-lang/noir#7487) fix(performance): Accurately mark safe constant indices for arrays of complex types (noir-lang/noir#7491) fix(experimental): Allow shadowing in match patterns (noir-lang/noir#7484) chore: regression test #7195 (noir-lang/noir#7233) chore(docs): Section on `noir-profiler execution-opcodes` (noir-lang/noir#7480) chore: improve proptesting of 128bit values in `noirc_abi` (noir-lang/noir#7485) chore(profiler): Use brillig names for outputted flamegraphs (noir-lang/noir#7470) chore(docs): Profiler images reference (noir-lang/noir#7481) fix: don't use dummy location when inserting debug code (noir-lang/noir#7482) feat(cli)!: Add `--unstable-features` to gate unstable features (noir-lang/noir#7449) END_COMMIT_OVERRIDE --------- Co-authored-by: guipublic <[email protected]> Co-authored-by: guipublic <[email protected]>
Description
Problem
Resolves #7452
Resolves #7453
Summary
Another huge PR, but this one is simpler than the other one (it's more mechanical).
Now that most of the compiler code works with
Location
instead ofSpan
, this PR makes all compiler errors carry aLocation
instead of aSpan
(when they carried spans).With this, a lot is simplified:
Vec<CompilationError>
instead ofVec<(CompilationError, FileId)>
because all errors have a location and so have a file.file
fromElaborator
is no longer needed, so bugs that would happen because it wasn't updated can't happen anymoreAn example of 4 is this code:
The old error is:
The new error is:
Additional Context
Documentation
Check one:
PR Checklist
cargo fmt
on default settings.