feat: FunctionDefinition::as_typed_expr#7358
Merged
Conversation
Contributor
|
🚀 Deployed on https://67ad0f17501d9455b9b5de17--noir-docs.netlify.app |
michaeljklein
suggested changes
Feb 12, 2025
Contributor
There was a problem hiding this comment.
Please add a couple more tests, e.g.
unconstrained fn foo<T, let N: u32>(xs: [T; N]) -> u32 {
xs.len()
}comptime fn bar<T, U, let N: u32>(xs_ys: ([T; N], U)) -> u32 {
let (xs, ys) = xs_ys;
xs.len()
}And regression tests for the original cases.
Otherwise it LGTM
Collaborator
Author
|
Do you mean getting a reference to |
Collaborator
Author
What would the original cases be? |
Contributor
Yes
Just the one case from #7315: comptime fn foo(f: TypedExpr) -> Quoted {
quote {
$f()
}
}
fn bar() -> Field {
1
}
fn main() {
let x: Field = comptime {
let bar_q = quote {
bar
};
foo(bar_q.as_expr().unwrap().resolve(Option::none()))
};
assert(x == 1);
} |
Collaborator
Author
|
Done! |
Contributor
|
FYI @noir-lang/developerrelations on Noir doc changes. |
michaeljklein
approved these changes
Feb 12, 2025
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Feb 13, 2025
…#7358) feat(performance): Check sub operations against induction variables (noir-lang/noir#7356) chore: avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) feat(cli): Add `--target-dir` option (noir-lang/noir#7350) fix(ssa): Make the lookback feature opt-in (noir-lang/noir#7190) feat(performance): Use unchecked ops based upon known induction variables (noir-lang/noir#7344) chore: mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) fix: incorrect secondary file in LSP errors (noir-lang/noir#7347) chore: Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) fix(cli): Only lock the packages selected in the workspace (noir-lang/noir#7345) chore: remove some unused types and functions in the AST (noir-lang/noir#7339) chore: remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) chore(ci): Add Vecs and vecs to cspell (noir-lang/noir#7342) chore: redo typo PR by osrm (noir-lang/noir#7238) chore: Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) fix: lock git dependencies folder when resolving workspace (noir-lang/noir#7327) fix: perform SSA constraints check on final SSA (noir-lang/noir#7334) chore: remove misleading output from `nargo check` (noir-lang/noir#7329) chore: fix warnings (noir-lang/noir#7330) chore: normalize path displayed by `nargo new` (noir-lang/noir#7328) chore: split acirgen into multiple modules (noir-lang/noir#7310) chore: remove unnecessary constants (noir-lang/noir#7326)
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Feb 13, 2025
feat(performance): Check sub operations against induction variables (noir-lang/noir#7356) chore: avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) feat(cli): Add `--target-dir` option (noir-lang/noir#7350) fix(ssa): Make the lookback feature opt-in (noir-lang/noir#7190) feat(performance): Use unchecked ops based upon known induction variables (noir-lang/noir#7344) chore: mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) fix: incorrect secondary file in LSP errors (noir-lang/noir#7347) chore: Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) fix(cli): Only lock the packages selected in the workspace (noir-lang/noir#7345) chore: remove some unused types and functions in the AST (noir-lang/noir#7339) chore: remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) chore(ci): Add Vecs and vecs to cspell (noir-lang/noir#7342) chore: redo typo PR by osrm (noir-lang/noir#7238) chore: Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) fix: lock git dependencies folder when resolving workspace (noir-lang/noir#7327) fix: perform SSA constraints check on final SSA (noir-lang/noir#7334) chore: remove misleading output from `nargo check` (noir-lang/noir#7329) chore: fix warnings (noir-lang/noir#7330) chore: normalize path displayed by `nargo new` (noir-lang/noir#7328) chore: split acirgen into multiple modules (noir-lang/noir#7310) chore: remove unnecessary constants (noir-lang/noir#7326)
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Feb 13, 2025
feat: `FunctionDefinition::as_typed_expr` (noir-lang/noir#7358) feat(performance): Check sub operations against induction variables (noir-lang/noir#7356) chore: avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) feat(cli): Add `--target-dir` option (noir-lang/noir#7350) fix(ssa): Make the lookback feature opt-in (noir-lang/noir#7190) feat(performance): Use unchecked ops based upon known induction variables (noir-lang/noir#7344) chore: mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) fix: incorrect secondary file in LSP errors (noir-lang/noir#7347) chore: Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) fix(cli): Only lock the packages selected in the workspace (noir-lang/noir#7345) chore: remove some unused types and functions in the AST (noir-lang/noir#7339) chore: remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) chore(ci): Add Vecs and vecs to cspell (noir-lang/noir#7342) chore: redo typo PR by osrm (noir-lang/noir#7238) chore: Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) fix: lock git dependencies folder when resolving workspace (noir-lang/noir#7327) fix: perform SSA constraints check on final SSA (noir-lang/noir#7334) chore: remove misleading output from `nargo check` (noir-lang/noir#7329) chore: fix warnings (noir-lang/noir#7330) chore: normalize path displayed by `nargo new` (noir-lang/noir#7328) chore: split acirgen into multiple modules (noir-lang/noir#7310) chore: remove unnecessary constants (noir-lang/noir#7326)
TomAFrench
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Feb 13, 2025
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: deprecate keccak256 (noir-lang/noir#7361) feat: `FunctionDefinition::as_typed_expr` (noir-lang/noir#7358) feat(performance): Check sub operations against induction variables (noir-lang/noir#7356) chore: avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) feat(cli): Add `--target-dir` option (noir-lang/noir#7350) fix(ssa): Make the lookback feature opt-in (noir-lang/noir#7190) feat(performance): Use unchecked ops based upon known induction variables (noir-lang/noir#7344) chore: mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) fix: incorrect secondary file in LSP errors (noir-lang/noir#7347) chore: Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) fix(cli): Only lock the packages selected in the workspace (noir-lang/noir#7345) chore: remove some unused types and functions in the AST (noir-lang/noir#7339) chore: remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) chore(ci): Add Vecs and vecs to cspell (noir-lang/noir#7342) chore: redo typo PR by osrm (noir-lang/noir#7238) chore: Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) fix: lock git dependencies folder when resolving workspace (noir-lang/noir#7327) fix: perform SSA constraints check on final SSA (noir-lang/noir#7334) chore: remove misleading output from `nargo check` (noir-lang/noir#7329) chore: fix warnings (noir-lang/noir#7330) chore: normalize path displayed by `nargo new` (noir-lang/noir#7328) chore: split acirgen into multiple modules (noir-lang/noir#7310) chore: remove unnecessary constants (noir-lang/noir#7326) END_COMMIT_OVERRIDE --------- Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: Tom French <tom@tomfren.ch>
sklppy88
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Feb 13, 2025
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.76.4</summary> ## [0.76.4](aztec-package-v0.76.3...aztec-package-v0.76.4) (2025-02-13) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.76.4</summary> ## [0.76.4](barretenberg.js-v0.76.3...barretenberg.js-v0.76.4) (2025-02-13) ### Miscellaneous * Unify webpack dev server versions ([#11965](#11965)) ([921d2cd](921d2cd)) </details> <details><summary>aztec-packages: 0.76.4</summary> ## [0.76.4](aztec-packages-v0.76.3...aztec-packages-v0.76.4) (2025-02-13) ### Features * `FunctionDefinition::as_typed_expr` (noir-lang/noir#7358) ([5efdd57](5efdd57)) * Aes decryption oracle ([#11907](#11907)) ([c4ce913](c4ce913)) * **avm:** Constrained ec_add ([#11525](#11525)) ([f8fe602](f8fe602)) * **avm:** Interaction testing ([#11947](#11947)) ([fc647eb](fc647eb)) * **avm:** Relation microbenchmarks ([#11974](#11974)) ([95b581d](95b581d)) * **cli:** Add `--target-dir` option (noir-lang/noir#7350) ([5efdd57](5efdd57)) * Indexed protocol contracts tree ([#11897](#11897)) ([96e84d4](96e84d4)) * **performance:** Check sub operations against induction variables (noir-lang/noir#7356) ([5efdd57](5efdd57)) * **performance:** Use unchecked ops based upon known induction variables (noir-lang/noir#7344) ([5efdd57](5efdd57)) * Small blob fixes/improvements ([#11686](#11686)) ([4eab9fc](4eab9fc)) * Update fee model ([#11953](#11953)) ([2798d58](2798d58)) * Use brillig optimized sha256 ([#11696](#11696)) ([438c905](438c905)) ### Bug Fixes * Ci fixes ([#11973](#11973)) ([6386f4e](6386f4e)) * **cli:** Only lock the packages selected in the workspace (noir-lang/noir#7345) ([5efdd57](5efdd57)) * Deterministic generation of vkeys in ts ([#11951](#11951)) ([7901cac](7901cac)) * Incorrect secondary file in LSP errors (noir-lang/noir#7347) ([5efdd57](5efdd57)) * Lock git dependencies folder when resolving workspace (noir-lang/noir#7327) ([5efdd57](5efdd57)) * Perform SSA constraints check on final SSA (noir-lang/noir#7334) ([5efdd57](5efdd57)) * Remove deprecated artifacts ([#11979](#11979)) ([4f0dce7](4f0dce7)) * Remove serial queue in broker facade ([#11956](#11956)) ([3485b52](3485b52)) * **ssa:** Make the lookback feature opt-in (noir-lang/noir#7190) ([5efdd57](5efdd57)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](#11972)) ([b865ccc](b865ccc)) * Avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) ([5efdd57](5efdd57)) * Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) ([5efdd57](5efdd57)) * Bump devnet boot node resources ([#11958](#11958)) ([bbcdefc](bbcdefc)) * **ci:** Add Vecs and vecs to cspell (noir-lang/noir#7342) ([5efdd57](5efdd57)) * Deprecate keccak256 (noir-lang/noir#7361) ([5efdd57](5efdd57)) * Fix warnings (noir-lang/noir#7330) ([5efdd57](5efdd57)) * Mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) ([5efdd57](5efdd57)) * Moving storage slot out of `NoteHeader` ([#11904](#11904)) ([8c4bb1c](8c4bb1c)) * Normalize path displayed by `nargo new` (noir-lang/noir#7328) ([5efdd57](5efdd57)) * Redo typo PR by osrm (noir-lang/noir#7238) ([5efdd57](5efdd57)) * Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) ([5efdd57](5efdd57)) * Remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) ([5efdd57](5efdd57)) * Remove misleading output from `nargo check` (noir-lang/noir#7329) ([5efdd57](5efdd57)) * Remove some unused types and functions in the AST (noir-lang/noir#7339) ([5efdd57](5efdd57)) * Remove unnecessary constants (noir-lang/noir#7326) ([5efdd57](5efdd57)) * Revive browser test before killing it ([#11964](#11964)) ([cb47cc0](cb47cc0)) * Split acirgen into multiple modules (noir-lang/noir#7310) ([5efdd57](5efdd57)) * Unify webpack dev server versions ([#11965](#11965)) ([921d2cd](921d2cd)) </details> <details><summary>barretenberg: 0.76.4</summary> ## [0.76.4](barretenberg-v0.76.3...barretenberg-v0.76.4) (2025-02-13) ### Features * Aes decryption oracle ([#11907](#11907)) ([c4ce913](c4ce913)) * **avm:** Constrained ec_add ([#11525](#11525)) ([f8fe602](f8fe602)) * **avm:** Interaction testing ([#11947](#11947)) ([fc647eb](fc647eb)) * **avm:** Relation microbenchmarks ([#11974](#11974)) ([95b581d](95b581d)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](#11972)) ([b865ccc](b865ccc)) * Unify webpack dev server versions ([#11965](#11965)) ([921d2cd](921d2cd)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
AztecBot
added a commit
to AztecProtocol/barretenberg
that referenced
this pull request
Feb 14, 2025
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@aztec-package-v0.76.3...aztec-package-v0.76.4) (2025-02-13) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@barretenberg.js-v0.76.3...barretenberg.js-v0.76.4) (2025-02-13) ### Miscellaneous * Unify webpack dev server versions ([#11965](AztecProtocol/aztec-packages#11965)) ([921d2cd](AztecProtocol/aztec-packages@921d2cd)) </details> <details><summary>aztec-packages: 0.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@aztec-packages-v0.76.3...aztec-packages-v0.76.4) (2025-02-13) ### Features * `FunctionDefinition::as_typed_expr` (noir-lang/noir#7358) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Aes decryption oracle ([#11907](AztecProtocol/aztec-packages#11907)) ([c4ce913](AztecProtocol/aztec-packages@c4ce913)) * **avm:** Constrained ec_add ([#11525](AztecProtocol/aztec-packages#11525)) ([f8fe602](AztecProtocol/aztec-packages@f8fe602)) * **avm:** Interaction testing ([#11947](AztecProtocol/aztec-packages#11947)) ([fc647eb](AztecProtocol/aztec-packages@fc647eb)) * **avm:** Relation microbenchmarks ([#11974](AztecProtocol/aztec-packages#11974)) ([95b581d](AztecProtocol/aztec-packages@95b581d)) * **cli:** Add `--target-dir` option (noir-lang/noir#7350) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Indexed protocol contracts tree ([#11897](AztecProtocol/aztec-packages#11897)) ([96e84d4](AztecProtocol/aztec-packages@96e84d4)) * **performance:** Check sub operations against induction variables (noir-lang/noir#7356) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * **performance:** Use unchecked ops based upon known induction variables (noir-lang/noir#7344) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Small blob fixes/improvements ([#11686](AztecProtocol/aztec-packages#11686)) ([4eab9fc](AztecProtocol/aztec-packages@4eab9fc)) * Update fee model ([#11953](AztecProtocol/aztec-packages#11953)) ([2798d58](AztecProtocol/aztec-packages@2798d58)) * Use brillig optimized sha256 ([#11696](AztecProtocol/aztec-packages#11696)) ([438c905](AztecProtocol/aztec-packages@438c905)) ### Bug Fixes * Ci fixes ([#11973](AztecProtocol/aztec-packages#11973)) ([6386f4e](AztecProtocol/aztec-packages@6386f4e)) * **cli:** Only lock the packages selected in the workspace (noir-lang/noir#7345) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Deterministic generation of vkeys in ts ([#11951](AztecProtocol/aztec-packages#11951)) ([7901cac](AztecProtocol/aztec-packages@7901cac)) * Incorrect secondary file in LSP errors (noir-lang/noir#7347) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Lock git dependencies folder when resolving workspace (noir-lang/noir#7327) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Perform SSA constraints check on final SSA (noir-lang/noir#7334) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove deprecated artifacts ([#11979](AztecProtocol/aztec-packages#11979)) ([4f0dce7](AztecProtocol/aztec-packages@4f0dce7)) * Remove serial queue in broker facade ([#11956](AztecProtocol/aztec-packages#11956)) ([3485b52](AztecProtocol/aztec-packages@3485b52)) * **ssa:** Make the lookback feature opt-in (noir-lang/noir#7190) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](AztecProtocol/aztec-packages#11972)) ([b865ccc](AztecProtocol/aztec-packages@b865ccc)) * Avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Bump devnet boot node resources ([#11958](AztecProtocol/aztec-packages#11958)) ([bbcdefc](AztecProtocol/aztec-packages@bbcdefc)) * **ci:** Add Vecs and vecs to cspell (noir-lang/noir#7342) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Deprecate keccak256 (noir-lang/noir#7361) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Fix warnings (noir-lang/noir#7330) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Moving storage slot out of `NoteHeader` ([#11904](AztecProtocol/aztec-packages#11904)) ([8c4bb1c](AztecProtocol/aztec-packages@8c4bb1c)) * Normalize path displayed by `nargo new` (noir-lang/noir#7328) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Redo typo PR by osrm (noir-lang/noir#7238) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove misleading output from `nargo check` (noir-lang/noir#7329) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove some unused types and functions in the AST (noir-lang/noir#7339) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove unnecessary constants (noir-lang/noir#7326) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Revive browser test before killing it ([#11964](AztecProtocol/aztec-packages#11964)) ([cb47cc0](AztecProtocol/aztec-packages@cb47cc0)) * Split acirgen into multiple modules (noir-lang/noir#7310) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Unify webpack dev server versions ([#11965](AztecProtocol/aztec-packages#11965)) ([921d2cd](AztecProtocol/aztec-packages@921d2cd)) </details> <details><summary>barretenberg: 0.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@barretenberg-v0.76.3...barretenberg-v0.76.4) (2025-02-13) ### Features * Aes decryption oracle ([#11907](AztecProtocol/aztec-packages#11907)) ([c4ce913](AztecProtocol/aztec-packages@c4ce913)) * **avm:** Constrained ec_add ([#11525](AztecProtocol/aztec-packages#11525)) ([f8fe602](AztecProtocol/aztec-packages@f8fe602)) * **avm:** Interaction testing ([#11947](AztecProtocol/aztec-packages#11947)) ([fc647eb](AztecProtocol/aztec-packages@fc647eb)) * **avm:** Relation microbenchmarks ([#11974](AztecProtocol/aztec-packages#11974)) ([95b581d](AztecProtocol/aztec-packages@95b581d)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](AztecProtocol/aztec-packages#11972)) ([b865ccc](AztecProtocol/aztec-packages@b865ccc)) * Unify webpack dev server versions ([#11965](AztecProtocol/aztec-packages#11965)) ([921d2cd](AztecProtocol/aztec-packages@921d2cd)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
TomAFrench
added a commit
that referenced
this pull request
Feb 14, 2025
* master: (42 commits) fix: give "correct" error when trying to use AsTraitPath (#7360) chore: avoid u128s in brillig memory (#7363) chore: update docs about integer overflows (#7370) fix!: Only decrement the counter of an array if its address has not changed (#7297) fix: let LSP read `noirfmt.toml` for formatting files (#7355) chore: deprecate keccak256 (#7361) feat: `FunctionDefinition::as_typed_expr` (#7358) feat(performance): Check sub operations against induction variables (#7356) chore: avoid doing all brillig integer arithmetic on u128s (#7357) feat(cli): Add `--target-dir` option (#7350) fix(ssa): Make the lookback feature opt-in (#7190) feat(performance): Use unchecked ops based upon known induction variables (#7344) chore: mark sha256 as deprecated from the stdlib (#7351) fix: incorrect secondary file in LSP errors (#7347) chore: Basic test for MSM in Noir to catch performance improvements and regressions (#7341) fix(cli): Only lock the packages selected in the workspace (#7345) chore: remove some unused types and functions in the AST (#7339) chore: remove foreign calls array from Brillig VM constructor (#7337) chore(ci): Add Vecs and vecs to cspell (#7342) chore: redo typo PR by osrm (#7238) ...
TomAFrench
added a commit
that referenced
this pull request
Feb 14, 2025
…rom-brillig * master: chore: allow opting in to displaying benchmark comments (#7399) chore: box `ExprValue` in `Value` enum (#7388) chore: pull out refactored methods from u128 branch (#7385) feat: require safety comments instead of safety doc comments (#7295) fix(ssa): Do not deduplicate division by a zero constant (#7393) chore: document traits required to be in scope (#7387) fix: field zero division in brillig (#7386) chore: box `ParserError`s in `InterpreterError` (#7373) chore: remove unnecessary dereferencing within brillig vm (#7375) fix: give "correct" error when trying to use AsTraitPath (#7360) chore: avoid u128s in brillig memory (#7363) chore: update docs about integer overflows (#7370) fix!: Only decrement the counter of an array if its address has not changed (#7297) fix: let LSP read `noirfmt.toml` for formatting files (#7355) chore: deprecate keccak256 (#7361) feat: `FunctionDefinition::as_typed_expr` (#7358) feat(performance): Check sub operations against induction variables (#7356) chore: avoid doing all brillig integer arithmetic on u128s (#7357)
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 #7314
Resolves #7315
Will make AztecProtocol/aztec-packages#11863 possible.
Summary
First adds
FunctionDefinition::as_typed_expr, which does the same logic of type-checking the function and turning it into anExprId.Then, allows unquoting
TypedExprin a way that preserves the underlyingExprId.Additional Context
In the code there's a
let generics = None;. Those would be the generics resulting from turbofish on the function. Eventually we could add aas_typed_expr_with_turbofishor similar that takes a[Type]for for the generics... if really needed.Documentation
Check one:
PR Checklist
cargo fmton default settings.