feat: let all compiler errors carry a Location instead of a Span#7486
Merged
feat: let all compiler errors carry a Location instead of a Span#7486
Conversation
michaeljklein
suggested changes
Feb 21, 2025
Contributor
michaeljklein
left a comment
There was a problem hiding this comment.
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::Unsafea struct variant
Collaborator
Author
|
@michaeljklein I created an |
jfecher
approved these changes
Feb 24, 2025
Contributor
jfecher
left a comment
There was a problem hiding this comment.
LGTM - this change has been a long time coming.
Looks like we'll need to bump the maximum memory limit for private-kernel-tail
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Feb 26, 2025
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)
TomAFrench
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Feb 26, 2025
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 <guipublic@gmail.com> Co-authored-by: guipublic <47281315+guipublic@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
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
Locationinstead ofSpan, this PR makes all compiler errors carry aLocationinstead 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.filefromElaboratoris 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 fmton default settings.