-
Notifications
You must be signed in to change notification settings - Fork 199
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
fix(experimental elaborator): Only call add_generics
once
#5091
Conversation
I approved but looks like we can utilize recover_generics more than we do in this PR |
|
I see |
Co-authored-by: Maxim Vezenov <mvezenov@gmail.com>
Ah, sorry about that, must have missed it. Looks like it was a missed case - I've added the suggestion |
…ds (#5096) # Description ## Problem\* Resolves some errors in the elaborator from checking a trait method's empty body against the expected type that was declared. ## Summary\* Adds whether or not a function is a trait method (not a trait impl method) to the `is_stub` method which is just a renamed `can_ignore_return_type`. ## Additional Context Down to 203 errors in the stdlib. This also fixes unused variable warnings that were present before but not shown in the error count. ## Documentation\* Check one: - [x] No documentation needed. - [ ] Documentation included in this PR. - [ ] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.
* master: fix(experimental elaborator): Avoid calling `add_generics` twice on trait methods (#5108) fix(experimental elaborator): Fix duplicate `resolve_type` on self type and don't leak a trait impl's generics (#5102) feat: replace stdlib poseidon implementation with optimized version (#5122) fix(experimental elaborator): Only call `add_generics` once (#5091) fix(experimental elaborator): Fix panic in the elaborator (#5082) chore: move `is_native_field` up into `noirc_frontend` (#5119)
fix(experimental elaborator): Avoid calling `add_generics` twice on trait methods (noir-lang/noir#5108) fix(experimental elaborator): Fix duplicate `resolve_type` on self type and don't leak a trait impl's generics (noir-lang/noir#5102) feat: replace stdlib poseidon implementation with optimized version (noir-lang/noir#5122) fix(experimental elaborator): Only call `add_generics` once (noir-lang/noir#5091) fix(experimental elaborator): Fix panic in the elaborator (noir-lang/noir#5082) chore: move `is_native_field` up into `noirc_frontend` (noir-lang/noir#5119)
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: remove duplicated code from LSP (noir-lang/noir#5116) fix(experimental elaborator): Avoid calling `add_generics` twice on trait methods (noir-lang/noir#5108) fix(experimental elaborator): Fix duplicate `resolve_type` on self type and don't leak a trait impl's generics (noir-lang/noir#5102) feat: replace stdlib poseidon implementation with optimized version (noir-lang/noir#5122) fix(experimental elaborator): Only call `add_generics` once (noir-lang/noir#5091) fix(experimental elaborator): Fix panic in the elaborator (noir-lang/noir#5082) chore: move `is_native_field` up into `noirc_frontend` (noir-lang/noir#5119) END_COMMIT_OVERRIDE Co-authored-by: Tom French <tom@tomfren.ch>
🤖 I have created a release *beep* *boop* --- <details><summary>0.31.0</summary> ## [0.31.0](v0.30.0...v0.31.0) (2024-06-17) ### ⚠ BREAKING CHANGES * remove `dep::` prefix ([#4946](#4946)) * remove `distinct` keyword ([#5219](#5219)) * remove `param_witnesses` and `return_witnesses` from ABI ([#5154](#5154)) * add session id to foreign call RPC requests ([#5205](#5205)) * restrict noir word size to u32 ([#5180](#5180)) * separate proving from `noir_js` ([#5072](#5072)) * switch `bb` over to read ACIR from nargo artifacts (AztecProtocol/aztec-packages#6283) * specify databus arrays for BB (AztecProtocol/aztec-packages#6239) * **stdlib:** eddsa function using turbofish ([#5050](#5050)) ### Features * `pxe.addNullifiedNote(...)` (AztecProtocol/aztec-packages#6948) ([7de19f5](7de19f5)) * Activate return_data in ACIR opcodes ([#5080](#5080)) ([c9fda3c](c9fda3c)) * Add `as_witness` builtin function in order to constrain a witness to be equal to a variable ([#4641](#4641)) ([faf5bd8](faf5bd8)) * Add `set` and `set_unchecked` methods to `Vec` and `BoundedVec` ([#5241](#5241)) ([1849389](1849389)) * Add BoundedVec::map ([#5250](#5250)) ([da1549c](da1549c)) * Add intrinsic to get if running inside an unconstrained context ([#5098](#5098)) ([281ebf2](281ebf2)) * Add native rust implementation of schnorr signature verification ([#5053](#5053)) ([fab1c35](fab1c35)) * Add session id to foreign call RPC requests ([#5205](#5205)) ([14adafc](14adafc)) * Consider block parameters in variable liveness ([#5097](#5097)) ([e4eb5f5](e4eb5f5)) * **experimental:** Implement macro calls & splicing into `Expr` values ([#5203](#5203)) ([d9b4712](d9b4712)) * Implement println in the comptime interpreter ([#5197](#5197)) ([7f08343](7f08343)) * Implement turbofish operator ([#3542](#3542)) ([226724e](226724e)) * Make ACVM generic across fields ([#5114](#5114)) ([70f374c](70f374c)) * Move abi demonomorphizer to noir_codegen and use noir_codegen in protocol types (AztecProtocol/aztec-packages#6302) ([436bbda](436bbda)) * Move to_radix to a blackbox (AztecProtocol/aztec-packages#6294) ([436bbda](436bbda)) * **nargo:** Hidden option to show contract artifact paths written by `nargo compile` (AztecProtocol/aztec-packages#6131) ([ff67e14](ff67e14)) * Place return value witnesses directly after function arguments ([#5142](#5142)) ([1252b5f](1252b5f)) * Private Kernel Recursion (AztecProtocol/aztec-packages#6278) ([436bbda](436bbda)) * Proper padding in ts AES and constrained AES in body and header computations (AztecProtocol/aztec-packages#6269) ([436bbda](436bbda)) * Remove `dep::` prefix ([#4946](#4946)) ([d6d0ae2](d6d0ae2)) * Remove conditional compilation of `bn254_blackbox_solver` ([#5058](#5058)) ([9420d7c](9420d7c)) * Remove external blackbox solver from acir simulator (AztecProtocol/aztec-packages#6586) ([a40a9a5](a40a9a5)) * Replace stdlib poseidon implementation with optimized version ([#5122](#5122)) ([11e98f3](11e98f3)) * Restrict noir word size to u32 ([#5180](#5180)) ([bdb2bc6](bdb2bc6)) * Separate proving from `noir_js` ([#5072](#5072)) ([c93c738](c93c738)) * Separate runtimes of SSA functions before inlining ([#5121](#5121)) ([69eca9b](69eca9b)) * Specify databus arrays for BB (AztecProtocol/aztec-packages#6239) ([436bbda](436bbda)) * Standardize pedersen functions to return `EmbeddedCurvePoint` ([#5190](#5190)) ([3b85b36](3b85b36)) * **stdlib:** Eddsa function using turbofish ([#5050](#5050)) ([7936262](7936262)) * Support casting in globals ([#5164](#5164)) ([6d3e732](6d3e732)) * Switch `bb` over to read ACIR from nargo artifacts (AztecProtocol/aztec-packages#6283) ([436bbda](436bbda)) * Sync from noir (AztecProtocol/aztec-packages#6280) ([436bbda](436bbda)) * Sync from noir (AztecProtocol/aztec-packages#6332) ([436bbda](436bbda)) * Sync from noir (AztecProtocol/aztec-packages#6573) ([436bbda](436bbda)) * Sync from noir (AztecProtocol/aztec-packages#6986) ([7de19f5](7de19f5)) * ToRadix BB + avm transpiler support (AztecProtocol/aztec-packages#6330) ([436bbda](436bbda)) ### Bug Fixes * Add support for nested arrays returned by oracles ([#5132](#5132)) ([f846879](f846879)) * Apply self type from generic trait constraint before instantiating identifiers ([#5087](#5087)) ([2b4755c](2b4755c)) * Auto dereference trait methods in the elaborator ([#5124](#5124)) ([56c1a85](56c1a85)) * Check for public args in aztec functions (AztecProtocol/aztec-packages#6355) ([436bbda](436bbda)) * Disable `if` optimization ([#5240](#5240)) ([a2816db](a2816db)) * **elaborator:** Fix duplicate methods error ([#5225](#5225)) ([87a1d8e](87a1d8e)) * **elaborator:** Fix regression introduced by lazy-global changes ([#5223](#5223)) ([fde432a](fde432a)) * **elaborator:** Invert unconstrained check ([#5176](#5176)) ([967c0fa](967c0fa)) * **elaborator:** Lazily elaborate globals ([#5191](#5191)) ([9c99a97](9c99a97)) * Error for allocate instructions in acir-gen ([#5200](#5200)) ([58c7532](58c7532)) * **experimental elaborator:** Avoid calling `add_generics` twice on trait methods ([#5108](#5108)) ([7d8c0a3](7d8c0a3)) * **experimental elaborator:** Clear generics after elaborating type aliases ([#5136](#5136)) ([b0a7d0b](b0a7d0b)) * **experimental elaborator:** Fix `impl Trait` when `--use-elaborator` is selected ([#5138](#5138)) ([7ea5962](7ea5962)) * **experimental elaborator:** Fix definition kind of globals and tuple patterns with `--use-elaborator` flag ([#5139](#5139)) ([a140dec](a140dec)) * **experimental elaborator:** Fix duplicate `resolve_type` on self type and don't leak a trait impl's generics ([#5102](#5102)) ([db561e2](db561e2)) * **experimental elaborator:** Fix frontend tests when `--use-elaborator` flag is specified ([#5145](#5145)) ([d6122eb](d6122eb)) * **experimental elaborator:** Fix global values used in the elaborator ([#5135](#5135)) ([e73cdbb](e73cdbb)) * **experimental elaborator:** Fix globals which use function calls ([#5172](#5172)) ([ab0b1a8](ab0b1a8)) * **experimental elaborator:** Fix panic in the elaborator ([#5082](#5082)) ([ffcb410](ffcb410)) * **experimental elaborator:** Only call `add_generics` once ([#5091](#5091)) ([f5d2946](f5d2946)) * Fix panic in `get_global_let_statement` ([#5177](#5177)) ([b769b01](b769b01)) * **frontend:** Call trait method with mut self from generic definition ([#5041](#5041)) ([89846cf](89846cf)) * **frontend:** Correctly monomorphize turbofish functions ([#5049](#5049)) ([fd772e7](fd772e7)) * **frontend:** Resolve object types from method calls a single time ([#5131](#5131)) ([3afe023](3afe023)) * Temporarily revert to_radix blackbox (AztecProtocol/aztec-packages#6304) ([436bbda](436bbda)) * Use plain integer addresses for opcodes in DAP disassembly view ([#4941](#4941)) ([d43ba1b](d43ba1b)) * Use predicate for curve operations ([#5076](#5076)) ([145b909](145b909)) * Wrapping in signed division ([#5134](#5134)) ([29baeb4](29baeb4)) ### Miscellaneous Chores * Remove `distinct` keyword ([#5219](#5219)) ([1d62c59](1d62c59)) * Remove `param_witnesses` and `return_witnesses` from ABI ([#5154](#5154)) ([21562ae](21562ae)) </details> <details><summary>0.47.0</summary> ## [0.47.0](v0.46.0...v0.47.0) (2024-06-17) ### ⚠ BREAKING CHANGES * add session id to foreign call RPC requests ([#5205](#5205)) * restrict noir word size to u32 ([#5180](#5180)) * switch `bb` over to read ACIR from nargo artifacts (AztecProtocol/aztec-packages#6283) * specify databus arrays for BB (AztecProtocol/aztec-packages#6239) * remove `Opcode::Brillig` from ACIR (AztecProtocol/aztec-packages#5995) * AES blackbox (AztecProtocol/aztec-packages#6016) * Bit shift is restricted to u8 right operand ([#4907](#4907)) * contract interfaces and better function calls (AztecProtocol/aztec-packages#5687) * change backend width to 4 (AztecProtocol/aztec-packages#5374) * Use fixed size arrays in black box functions where sizes are known (AztecProtocol/aztec-packages#5620) * trap with revert data (AztecProtocol/aztec-packages#5732) * **acir:** BrilligCall opcode (AztecProtocol/aztec-packages#5709) * remove fixed-length keccak256 (AztecProtocol/aztec-packages#5617) * storage_layout and `#[aztec(storage)]` (AztecProtocol/aztec-packages#5387) * **acir:** Add predicate to call opcode (AztecProtocol/aztec-packages#5616) * contract_abi-exports (AztecProtocol/aztec-packages#5386) * Brillig typed memory (AztecProtocol/aztec-packages#5395) * **acir:** Program and witness stack structure (AztecProtocol/aztec-packages#5149) * automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508) * Acir call opcode (AztecProtocol/aztec-packages#4773) * Support contracts with no constructor (AztecProtocol/aztec-packages#5175) * Internal as a macro (AztecProtocol/aztec-packages#4898) * move noir out of yarn-project (AztecProtocol/aztec-packages#4479) * note type ids (AztecProtocol/aztec-packages#4500) * rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) * Add expression width into acir (AztecProtocol/aztec-packages#4014) * init storage macro (AztecProtocol/aztec-packages#4200) * **acir:** Move `is_recursive` flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) ### Features * `multi_scalar_mul` blackbox func (AztecProtocol/aztec-packages#6097) ([73a635e](73a635e)) * `variable_base_scalar_mul` blackbox func (AztecProtocol/aztec-packages#6039) ([73a635e](73a635e)) * Acir call opcode (AztecProtocol/aztec-packages#4773) ([c3c9e19](c3c9e19)) * **acir_gen:** Brillig stdlib ([#4848](#4848)) ([0c8175c](0c8175c)) * **acir_gen:** Fold attribute at compile-time and initial non inlined ACIR (AztecProtocol/aztec-packages#5341) ([a0f7474](a0f7474)) * **acir:** Add predicate to call opcode (AztecProtocol/aztec-packages#5616) ([2bd006a](2bd006a)) * **acir:** BrilligCall opcode (AztecProtocol/aztec-packages#5709) ([0f9ae0a](0f9ae0a)) * **acir:** Program and witness stack structure (AztecProtocol/aztec-packages#5149) ([13eb71b](13eb71b)) * Activate return_data in ACIR opcodes ([#5080](#5080)) ([c9fda3c](c9fda3c)) * **acvm_js:** Execute program ([#4694](#4694)) ([386f6d0](386f6d0)) * **acvm:** Execute multiple circuits (AztecProtocol/aztec-packages#5380) ([a0f7474](a0f7474)) * Add bit size to const opcode (AztecProtocol/aztec-packages#4385) ([158c8ce](158c8ce)) * Add CMOV instruction to brillig and brillig gen (AztecProtocol/aztec-packages#5308) ([13eb71b](13eb71b)) * Add expression width into acir (AztecProtocol/aztec-packages#4014) ([158c8ce](158c8ce)) * Add instrumentation for tracking variables in debugging ([#4122](#4122)) ([c58d691](c58d691)) * Add native rust implementation of schnorr signature verification ([#5053](#5053)) ([fab1c35](fab1c35)) * Add native rust implementations of pedersen functions ([#4871](#4871)) ([fb039f7](fb039f7)) * Add poseidon2 opcode implementation for acvm/brillig, and Noir ([#4398](#4398)) ([10e8292](10e8292)) * Add return values to aztec fns (AztecProtocol/aztec-packages#5389) ([2bd006a](2bd006a)) * Add session id to foreign call RPC requests ([#5205](#5205)) ([14adafc](14adafc)) * Added cast opcode and cast calldata (AztecProtocol/aztec-packages#4423) ([78ef013](78ef013)) * AES blackbox (AztecProtocol/aztec-packages#6016) ([73a635e](73a635e)) * Allow brillig to read arrays directly from memory (AztecProtocol/aztec-packages#4460) ([158c8ce](158c8ce)) * Allow nested arrays and vectors in Brillig foreign calls (AztecProtocol/aztec-packages#4478) ([158c8ce](158c8ce)) * Allow variables and stack trace inspection in the debugger ([#4184](#4184)) ([bf263fc](bf263fc)) * Automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508) ([13eb71b](13eb71b)) * **avm:** Back in avm context with macro - refactor context (AztecProtocol/aztec-packages#4438) ([158c8ce](158c8ce)) * **avm:** Brillig CONST of size > u128 (AztecProtocol/aztec-packages#5217) ([c3c9e19](c3c9e19)) * **avm:** Integrate AVM with initializers (AztecProtocol/aztec-packages#5469) ([2bd006a](2bd006a)) * **aztec-nr:** Initial work for aztec public vm macro (AztecProtocol/aztec-packages#4400) ([158c8ce](158c8ce)) * Backpropagate constants in ACIR during optimization ([#3926](#3926)) ([aad0da0](aad0da0)) * Bit shift is restricted to u8 right operand ([#4907](#4907)) ([c4b0369](c4b0369)) * Brillig heterogeneous memory cells (AztecProtocol/aztec-packages#5608) ([305bcdc](305bcdc)) * Brillig IR refactor (AztecProtocol/aztec-packages#5233) ([c3c9e19](c3c9e19)) * Brillig pointer codegen and execution (AztecProtocol/aztec-packages#5737) ([0f9ae0a](0f9ae0a)) * Brillig typed memory (AztecProtocol/aztec-packages#5395) ([0bc18c4](0bc18c4)) * Change backend width to 4 (AztecProtocol/aztec-packages#5374) ([0f9ae0a](0f9ae0a)) * Check initializer msg.sender matches deployer from address preimage (AztecProtocol/aztec-packages#5222) ([c3c9e19](c3c9e19)) * Contract interfaces and better function calls (AztecProtocol/aztec-packages#5687) ([0f9ae0a](0f9ae0a)) * Contract_abi-exports (AztecProtocol/aztec-packages#5386) ([2bd006a](2bd006a)) * Dynamic assertion payloads v2 (AztecProtocol/aztec-packages#5949) ([73a635e](73a635e)) * Evaluation of dynamic assert messages ([#4101](#4101)) ([c284e01](c284e01)) * Handle `BrilligCall` opcodes in the debugger ([#4897](#4897)) ([b380dc4](b380dc4)) * Impl of missing functionality in new key store (AztecProtocol/aztec-packages#5750) ([0f9ae0a](0f9ae0a)) * Increase default expression width to 4 ([#4995](#4995)) ([f01d309](f01d309)) * Init storage macro (AztecProtocol/aztec-packages#4200) ([158c8ce](158c8ce)) * Initial Earthly CI (AztecProtocol/aztec-packages#5069) ([c3c9e19](c3c9e19)) * Internal as a macro (AztecProtocol/aztec-packages#4898) ([5f57ebb](5f57ebb)) * Make ACVM generic across fields ([#5114](#5114)) ([70f374c](70f374c)) * Move abi demonomorphizer to noir_codegen and use noir_codegen in protocol types (AztecProtocol/aztec-packages#6302) ([436bbda](436bbda)) * Move to_radix to a blackbox (AztecProtocol/aztec-packages#6294) ([436bbda](436bbda)) * **nargo:** Handle call stacks for multiple Acir calls ([#4711](#4711)) ([5b23171](5b23171)) * **nargo:** Hidden option to show contract artifact paths written by `nargo compile` (AztecProtocol/aztec-packages#6131) ([ff67e14](ff67e14)) * New brillig field operations and refactor of binary operations (AztecProtocol/aztec-packages#5208) ([c3c9e19](c3c9e19)) * Note type ids (AztecProtocol/aztec-packages#4500) ([78ef013](78ef013)) * Parsing non-string assertion payloads in noir js (AztecProtocol/aztec-packages#6079) ([73a635e](73a635e)) * Private Kernel Recursion (AztecProtocol/aztec-packages#6278) ([436bbda](436bbda)) * Proper padding in ts AES and constrained AES in body and header computations (AztecProtocol/aztec-packages#6269) ([436bbda](436bbda)) * Remove conditional compilation of `bn254_blackbox_solver` ([#5058](#5058)) ([9420d7c](9420d7c)) * Remove external blackbox solver from acir simulator (AztecProtocol/aztec-packages#6586) ([a40a9a5](a40a9a5)) * Restore hashing args via slice for performance (AztecProtocol/aztec-packages#5539) ([2bd006a](2bd006a)) * Restrict noir word size to u32 ([#5180](#5180)) ([bdb2bc6](bdb2bc6)) * Separate runtimes of SSA functions before inlining ([#5121](#5121)) ([69eca9b](69eca9b)) * Set aztec private functions to be recursive (AztecProtocol/aztec-packages#6192) ([73a635e](73a635e)) * Signed integer division and modulus in brillig gen (AztecProtocol/aztec-packages#5279) ([c3c9e19](c3c9e19)) * **simulator:** Fetch return values at circuit execution (AztecProtocol/aztec-packages#5642) ([305bcdc](305bcdc)) * Specify databus arrays for BB (AztecProtocol/aztec-packages#6239) ([436bbda](436bbda)) * Storage_layout and `#[aztec(storage)]` (AztecProtocol/aztec-packages#5387) ([2bd006a](2bd006a)) * Support contracts with no constructor (AztecProtocol/aztec-packages#5175) ([c3c9e19](c3c9e19)) * Switch `bb` over to read ACIR from nargo artifacts (AztecProtocol/aztec-packages#6283) ([436bbda](436bbda)) * Sync from aztec-packages ([#4483](#4483)) ([fe8f277](fe8f277)) * Sync from noir (AztecProtocol/aztec-packages#5234) ([c3c9e19](c3c9e19)) * Sync from noir (AztecProtocol/aztec-packages#5286) ([c3c9e19](c3c9e19)) * Sync from noir (AztecProtocol/aztec-packages#5572) ([2bd006a](2bd006a)) * Sync from noir (AztecProtocol/aztec-packages#5619) ([2bd006a](2bd006a)) * Sync from noir (AztecProtocol/aztec-packages#5697) ([305bcdc](305bcdc)) * Sync from noir (AztecProtocol/aztec-packages#5794) ([0f9ae0a](0f9ae0a)) * Sync from noir (AztecProtocol/aztec-packages#5814) ([0f9ae0a](0f9ae0a)) * Sync from noir (AztecProtocol/aztec-packages#5935) ([1b867b1](1b867b1)) * Sync from noir (AztecProtocol/aztec-packages#5955) ([1b867b1](1b867b1)) * Sync from noir (AztecProtocol/aztec-packages#5999) ([1b867b1](1b867b1)) * Sync from noir (AztecProtocol/aztec-packages#6280) ([436bbda](436bbda)) * Sync from noir (AztecProtocol/aztec-packages#6332) ([436bbda](436bbda)) * Sync from noir (AztecProtocol/aztec-packages#6573) ([436bbda](436bbda)) * ToRadix BB + avm transpiler support (AztecProtocol/aztec-packages#6330) ([436bbda](436bbda)) * Trap with revert data (AztecProtocol/aztec-packages#5732) ([0f9ae0a](0f9ae0a)) * Use fixed size arrays in black box functions where sizes are known (AztecProtocol/aztec-packages#5620) ([0f9ae0a](0f9ae0a)) * Variable length returns (AztecProtocol/aztec-packages#5633) ([305bcdc](305bcdc)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable ([#4708](#4708)) ([8fea405](8fea405)) * Add support for nested arrays returned by oracles ([#5132](#5132)) ([f846879](f846879)) * Avoid huge unrolling in hash_args (AztecProtocol/aztec-packages#5703) ([305bcdc](305bcdc)) * Catch panics from EC point creation (e.g. the point is at infinity) ([#4790](#4790)) ([645dba1](645dba1)) * Check for public args in aztec functions (AztecProtocol/aztec-packages#6355) ([436bbda](436bbda)) * Don't reuse brillig with slice arguments (AztecProtocol/aztec-packages#5800) ([0f9ae0a](0f9ae0a)) * Issue 4682 and add solver for unconstrained bigintegers ([#4729](#4729)) ([e4d33c1](e4d33c1)) * Noir test incorrect reporting (AztecProtocol/aztec-packages#4925) ([5f57ebb](5f57ebb)) * Proper field inversion for bigints ([#4802](#4802)) ([b46d0e3](b46d0e3)) * Temporarily revert to_radix blackbox (AztecProtocol/aztec-packages#6304) ([436bbda](436bbda)) ### Miscellaneous Chores * **acir:** Move `is_recursive` flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) ([158c8ce](158c8ce)) * Move noir out of yarn-project (AztecProtocol/aztec-packages#4479) ([78ef013](78ef013)) * Remove `Opcode::Brillig` from ACIR (AztecProtocol/aztec-packages#5995) ([73a635e](73a635e)) * Remove fixed-length keccak256 (AztecProtocol/aztec-packages#5617) ([305bcdc](305bcdc)) * Rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) ([158c8ce](158c8ce)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: kevaundray <kevtheappdev@gmail.com>
Description
Problem*
Resolves an issue introduced by #5082 where
add_generics
would be called multiple times on a given item. Once when declaring the FuncMeta beforehand, and again when defining it afterward. This is an issue becauseadd_generics
will give a fresh set of generics each time. This meant the generics in a function's signature weren't the same type variables as the ones used internally, which led to type errors.Summary*
Additional Context
Down to
400226 errors in the stdlib down from 1050Edit: Fixed a case where structs never popped their generics out of scope
Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.