fix: let a trait impl that relies on another trait work#5646
fix: let a trait impl that relies on another trait work#5646
Conversation
The issue rust is pointing out is what if the same type implemented both traits |
|
@jfecher Oooh, I see. That makes sense. In this case in Noir we say "Expression type is ambigous". I guess Rust errors earlier but we still error on usage so that's good enough for now. |
jfecher
left a comment
There was a problem hiding this comment.
I'm not 100% sure we should allow this when Rust doesn't but the implementation is simple enough I'm willing to try it out until we run into problems later. For now it is a useful feature to have.
|
I think Rust does allow it. That is, it allows |
…r#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
🤖 I have created a release *beep* *boop* --- <details><summary>0.33.0</summary> ## [0.33.0](v0.32.0...v0.33.0) (2024-08-06) ### ⚠ BREAKING CHANGES * parse block and if statements independently of expressions in statements ([#5634](#5634)) * **frontend:** Restrict numeric generic types to unsigned ints up to `u32` ([#5581](#5581)) ### Features * **acir_gen:** Width aware ACIR gen addition ([#5493](#5493)) ([85fa592](85fa592)) * Add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` ([#5681](#5681)) ([d52fc05](d52fc05)) * Add `std::meta::type_of` and `impl Eq for Type` ([#5669](#5669)) ([0503956](0503956)) * Add `TraitDefinition::as_trait_constraint()` ([#5541](#5541)) ([0943223](0943223)) * Add `Type::as_struct` ([#5680](#5680)) ([ade69a9](ade69a9)) * Add `Type::is_field` and `Type::as_integer` ([#5670](#5670)) ([939357a](939357a)) * Add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` ([#5678](#5678)) ([604fa0d](604fa0d)) * Add a compile-time hash map type ([#5543](#5543)) ([c6e5c4b](c6e5c4b)) * Add a limited form of arithmetic on generics ([#5625](#5625)) ([0afb680](0afb680)) * Add parameter to call_data attribute ([#5599](#5599)) ([e8bb341](e8bb341)) * Allow inserting LSP inlay type hints ([#5620](#5620)) ([b33495d](b33495d)) * Avoid heap allocs when going to/from field (AztecProtocol/aztec-packages#7547) ([daad75c](daad75c)) * Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper ([#5683](#5683)) ([38397d3](38397d3)) * Don't eagerly error on cast expressions ([#5635](#5635)) ([0ca5d9d](0ca5d9d)) * Implement `poseidon2_permutation` in comptime interpreter ([#5590](#5590)) ([89dfbbf](89dfbbf)) * Implement `Value::Type` in comptime interpreter ([#5593](#5593)) ([4c3bf97](4c3bf97)) * Implement `zeroed` in the interpreter ([#5540](#5540)) ([ff8ca91](ff8ca91)) * Implement closures in the comptime interpreter ([#5682](#5682)) ([9e2a323](9e2a323)) * Implement format strings in the comptime interpreter ([#5596](#5596)) ([fd7002c](fd7002c)) * Integrate new proving systems in e2e (AztecProtocol/aztec-packages#6971) ([daad75c](daad75c)) * Let filenames in errors be relative to the current dir if possible ([#5642](#5642)) ([f656681](f656681)) * Let LSP work will with code generated by macros ([#5665](#5665)) ([8122624](8122624)) * LSP closing brace hints ([#5686](#5686)) ([2b18151](2b18151)) * LSP hover now includes "Go to" links ([#5677](#5677)) ([d466d49](d466d49)) * LSP inlay parameter hints ([#5553](#5553)) ([822fe2c](822fe2c)) * LSP inlay type hints on lambda parameters ([#5639](#5639)) ([80128ff](80128ff)) * Make Brillig do integer arithmetic operations using u128 instead of Bigint (AztecProtocol/aztec-packages#7518) ([daad75c](daad75c)) * **noir_js:** Expose UltraHonk and integration tests ([#5656](#5656)) ([4552b4f](4552b4f)) * Remove 'comptime or separate crate' restriction on comptime code ([#5609](#5609)) ([1cddf42](1cddf42)) * Resolve arguments to attributes ([#5649](#5649)) ([e139002](e139002)) * **ssa:** Simple serialization of unoptimized SSA to file ([#5679](#5679)) ([07ea107](07ea107)) * Sync from noir (AztecProtocol/aztec-packages#7432) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7444) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7454) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7512) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7577) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7583) ([daad75c](daad75c)) * Turbofish in struct pattern ([#5616](#5616)) ([b3c408b](b3c408b)) * Turbofish operator in struct constructor ([#5607](#5607)) ([106abd7](106abd7)) * Turbofish operator on path segments ([#5603](#5603)) ([0bb8372](0bb8372)) * Typing return values of embedded_curve_ops (AztecProtocol/aztec-packages#7413) ([daad75c](daad75c)) ### Bug Fixes * 'cannot eval non-comptime global' error ([#5586](#5586)) ([0a987c7](0a987c7)) * `NoMatchingImplFound` in comptime code only ([#5617](#5617)) ([28211a3](28211a3)) * Add trailing extra arguments for backend in gates_flamegraph (AztecProtocol/aztec-packages#7472) ([daad75c](daad75c)) * Allow calling a trait method with paths that don't consist of exactly two segments ([#5577](#5577)) ([88c0a40](88c0a40)) * Allow trailing comma when parsing where clauses ([#5594](#5594)) ([75bfe13](75bfe13)) * Allow using Self for function calls ([#5629](#5629)) ([b7e4f42](b7e4f42)) * Correct span for prefix operator ([#5624](#5624)) ([5824785](5824785)) * Correctly track sources for open LSP documents ([#5561](#5561)) ([9e61e97](9e61e97)) * Derive generic types ([#5674](#5674)) ([19e58a9](19e58a9)) * Don't panic when a macro fails to resolve ([#5537](#5537)) ([6109ddc](6109ddc)) * Elaborate struct & trait annotations in the correct module ([#5643](#5643)) ([d0a957b](d0a957b)) * Error on duplicate struct field ([#5585](#5585)) ([3aed671](3aed671)) * Error on incorrect generic count for impl and type alias ([#5623](#5623)) ([1f5d000](1f5d000)) * Error on trait impl generics count mismatch ([#5582](#5582)) ([da3d607](da3d607)) * Error on unbound generics in structs ([#5619](#5619)) ([efef6b4](efef6b4)) * Filter comptime globals ([#5538](#5538)) ([2adc6ac](2adc6ac)) * Fix `uhashmap` test name ([#5563](#5563)) ([d5de83f](d5de83f)) * Fix occurs check ([#5535](#5535)) ([51dd529](51dd529)) * Fix where clause issue in items generated from attributes ([#5673](#5673)) ([9a8cfc9](9a8cfc9)) * **frontend:** Disallow signed numeric generics ([#5572](#5572)) ([2b4853e](2b4853e)) * **frontend:** Error for when impl is stricter than trait ([#5343](#5343)) ([ece033f](ece033f)) * **frontend:** Restrict numeric generic types to unsigned ints up to `u32` ([#5581](#5581)) ([b85e764](b85e764)) * Let a trait impl that relies on another trait work ([#5646](#5646)) ([e00c370](e00c370)) * Let std::unsafe::zeroed() work for slices ([#5592](#5592)) ([7daee20](7daee20)) * Let trait calls work in globals ([#5602](#5602)) ([c02a6f6](c02a6f6)) * Let unary traits work at comptime ([#5507](#5507)) ([aa62d8a](aa62d8a)) * Lookup trait constraints methods in composite types ([#5595](#5595)) ([cec6390](cec6390)) * Parse block and if statements independently of expressions in statements ([#5634](#5634)) ([9341113](9341113)) * Revert "feat: Sync from noir (AztecProtocol/aztec-packages#7512)" (AztecProtocol/aztec-packages#7558) ([daad75c](daad75c)) * Run macros within comptime contexts ([#5576](#5576)) ([df44919](df44919)) * Speed up LSP ([#5650](#5650)) ([e5f1b36](e5f1b36)) * **ssa:** More robust array deduplication check ([#5547](#5547)) ([dd89b90](dd89b90)) * Switch verify proof to arrays ([#5664](#5664)) ([c1ed9fb](c1ed9fb)) * Type_of for pointer types ([#5536](#5536)) ([edb3810](edb3810)) * Workaround from_slice with nested slices ([#5648](#5648)) ([6310a55](6310a55)) </details> <details><summary>0.49.0</summary> ## [0.49.0](v0.48.0...v0.49.0) (2024-08-06) ### ⚠ BREAKING CHANGES * constant inputs for blackbox (AztecProtocol/aztec-packages#7222) * 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) ### 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_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_gen:** Width aware ACIR gen addition ([#5493](#5493)) ([85fa592](85fa592)) * **acir:** Add predicate to call opcode (AztecProtocol/aztec-packages#5616) ([2bd006a](2bd006a)) * **acir:** BrilligCall opcode (AztecProtocol/aztec-packages#5709) ([0f9ae0a](0f9ae0a)) * 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 native rust implementation of schnorr signature verification ([#5053](#5053)) ([fab1c35](fab1c35)) * Add native rust implementations of pedersen functions ([#4871](#4871)) ([fb039f7](fb039f7)) * Add return values to aztec fns (AztecProtocol/aztec-packages#5389) ([2bd006a](2bd006a)) * Add session id to foreign call RPC requests ([#5205](#5205)) ([14adafc](14adafc)) * AES blackbox (AztecProtocol/aztec-packages#6016) ([73a635e](73a635e)) * **avm:** Integrate AVM with initializers (AztecProtocol/aztec-packages#5469) ([2bd006a](2bd006a)) * Avoid heap allocs when going to/from field (AztecProtocol/aztec-packages#7547) ([daad75c](daad75c)) * Bit shift is restricted to u8 right operand ([#4907](#4907)) ([c4b0369](c4b0369)) * Brillig heterogeneous memory cells (AztecProtocol/aztec-packages#5608) ([305bcdc](305bcdc)) * 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)) * Constant inputs for blackbox (AztecProtocol/aztec-packages#7222) ([fb97bb9](fb97bb9)) * 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)) * 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)) * Integrate new proving systems in e2e (AztecProtocol/aztec-packages#6971) ([daad75c](daad75c)) * Make ACVM generic across fields ([#5114](#5114)) ([70f374c](70f374c)) * Make Brillig do integer arithmetic operations using u128 instead of Bigint (AztecProtocol/aztec-packages#7518) ([daad75c](daad75c)) * 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)) * 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)) * **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)) * Switch `bb` over to read ACIR from nargo artifacts (AztecProtocol/aztec-packages#6283) ([436bbda](436bbda)) * 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)) * Sync from noir (AztecProtocol/aztec-packages#7392) ([fb97bb9](fb97bb9)) * Sync from noir (AztecProtocol/aztec-packages#7400) ([fb97bb9](fb97bb9)) * Sync from noir (AztecProtocol/aztec-packages#7432) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7444) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7454) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7512) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7577) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7583) ([daad75c](daad75c)) * ToRadix BB + avm transpiler support (AztecProtocol/aztec-packages#6330) ([436bbda](436bbda)) * Trap with revert data (AztecProtocol/aztec-packages#5732) ([0f9ae0a](0f9ae0a)) * Typing return values of embedded_curve_ops (AztecProtocol/aztec-packages#7413) ([daad75c](daad75c)) * 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)) * Add trailing extra arguments for backend in gates_flamegraph (AztecProtocol/aztec-packages#7472) ([daad75c](daad75c)) * Avoid huge unrolling in hash_args (AztecProtocol/aztec-packages#5703) ([305bcdc](305bcdc)) * Avoid unnecessarily splitting expressions with multiplication terms with a shared term ([#5291](#5291)) ([19884f1](19884f1)) * 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)) * Handle struct with nested arrays in oracle return values ([#5244](#5244)) ([a30814f](a30814f)) * Issue 4682 and add solver for unconstrained bigintegers ([#4729](#4729)) ([e4d33c1](e4d33c1)) * Move BigInt modulus checks to runtime in brillig ([#5374](#5374)) ([741d339](741d339)) * Proper field inversion for bigints ([#4802](#4802)) ([b46d0e3](b46d0e3)) * Revert "feat: Sync from noir (AztecProtocol/aztec-packages#7512)" (AztecProtocol/aztec-packages#7558) ([daad75c](daad75c)) * Runtime brillig bigint id assignment ([#5369](#5369)) ([a8928dd](a8928dd)) * Temporarily revert to_radix blackbox (AztecProtocol/aztec-packages#6304) ([436bbda](436bbda)) ### Miscellaneous Chores * Remove `Opcode::Brillig` from ACIR (AztecProtocol/aztec-packages#5995) ([73a635e](73a635e)) * Remove fixed-length keccak256 (AztecProtocol/aztec-packages#5617) ([305bcdc](305bcdc)) </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>
feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…oir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…oir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…oir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r#5704) feat: add `Type::implements` (noir-lang/noir#5701) fix: Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r#5704) feat: add `Type::implements` (noir-lang/noir#5701) fix: Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…r#5704) feat: add `Type::implements` (noir-lang/noir#5701) fix: Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
fix(debugger): Update the debugger to handle the new Brillig debug metadata format (noir-lang/noir#5706) feat: add `Quoted::as_expr` and `Expr::as_function_call` (noir-lang/noir#5708) feat: LSP autocompletion for use statement (noir-lang/noir#5704) feat: add `Type::implements` (noir-lang/noir#5701) fix: Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
…g/noir#5710) feat: LSP path completion (noir-lang/noir#5712) fix(debugger): Update the debugger to handle the new Brillig debug metadata format (noir-lang/noir#5706) feat: add `Quoted::as_expr` and `Expr::as_function_call` (noir-lang/noir#5708) feat: LSP autocompletion for use statement (noir-lang/noir#5704) feat: add `Type::implements` (noir-lang/noir#5701) fix: Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646)
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix: Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) feat: add mutating FunctionDefinition functions (noir-lang/noir#5685) chore: Add docs tip about filenames between commands (noir-lang/noir#5695) fix: Add locations to most SSA instructions (noir-lang/noir#5697) feat: Add array_to_str_lossy (noir-lang/noir#5613) chore: Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) feat: add some `Module` comptime functions (noir-lang/noir#5684) chore: Release Noir(0.33.0) (noir-lang/noir#5550) feat: Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) feat(ssa): Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) feat: LSP closing brace hints (noir-lang/noir#5686) feat: Implement closures in the comptime interpreter (noir-lang/noir#5682) feat: add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) feat: add `Type::as_struct` (noir-lang/noir#5680) feat: LSP hover now includes "Go to" links (noir-lang/noir#5677) feat: add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) fix: Derive generic types (noir-lang/noir#5674) feat: Add a limited form of arithmetic on generics (noir-lang/noir#5625) feat: add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) fix: Fix where clause issue in items generated from attributes (noir-lang/noir#5673) feat(noir_js): Expose UltraHonk and integration tests (noir-lang/noir#5656) fix: workaround from_slice with nested slices (noir-lang/noir#5648) fix: Switch verify proof to arrays (noir-lang/noir#5664) feat: Resolve arguments to attributes (noir-lang/noir#5649) fix: Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) fix: let a trait impl that relies on another trait work (noir-lang/noir#5646) END_COMMIT_OVERRIDE --------- Co-authored-by: Maxim Vezenov <mvezenov@gmail.com>
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.49.0</summary> ## [0.49.0](aztec-package-v0.48.0...aztec-package-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * Sequencer no longer proves ([#7860](#7860)) ### Miscellaneous * Enable execute command on aws ecs services ([#7975](#7975)) ([4331bc6](4331bc6)) * Sequencer no longer proves ([#7860](#7860)) ([7168290](7168290)) * Terraform template for prover-node ([#7846](#7846)) ([546f946](546f946)) </details> <details><summary>barretenberg.js: 0.49.0</summary> ## [0.49.0](barretenberg.js-v0.48.0...barretenberg.js-v0.49.0) (2024-08-15) ### Miscellaneous * Pin yarn versions in noir-projects and bb/ts ([#7988](#7988)) ([83f33a1](83f33a1)) </details> <details><summary>aztec-packages: 0.49.0</summary> ## [0.49.0](aztec-packages-v0.48.0...aztec-packages-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * alternative key registry contract ([#7523](#7523)) * Sequencer no longer proves ([#7860](#7860)) ### Features * Add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) ([b1c7374](b1c7374)) * Add `Quoted::as_expr` and `Expr::as_function_call` (noir-lang/noir#5708) ([91042c7](91042c7)) * Add `Type::as_struct` (noir-lang/noir#5680) ([b1c7374](b1c7374)) * Add `Type::get_trait_impl` (noir-lang/noir#5716) ([ccbef55](ccbef55)) * Add `Type::implements` (noir-lang/noir#5701) ([91042c7](91042c7)) * Add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) ([b1c7374](b1c7374)) * Add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) ([b1c7374](b1c7374)) * Add a limited form of arithmetic on generics (noir-lang/noir#5625) ([b1c7374](b1c7374)) * Add array_to_str_lossy (noir-lang/noir#5613) ([b1c7374](b1c7374)) * Add generate-secret-and-hash to cli ([#7977](#7977)) ([cdf62a0](cdf62a0)) * Add mutating FunctionDefinition functions (noir-lang/noir#5685) ([b1c7374](b1c7374)) * Add proven flag to sent tx wait opts ([#7950](#7950)) ([e80e7d2](e80e7d2)) * Add some `Module` comptime functions (noir-lang/noir#5684) ([b1c7374](b1c7374)) * Alternative key registry contract ([#7523](#7523)) ([3e6a20f](3e6a20f)) * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](#7942)) ([9e8ba96](9e8ba96)) * Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) ([b1c7374](b1c7374)) * Destroy_note_unsafe ([#7891](#7891)) ([5cda7ba](5cda7ba)) * **docs:** Nits ([#7838](#7838)) ([a76c999](a76c999)) * Enable UltraHonk verifier ([#7923](#7923)) ([5e8b4a8](5e8b4a8)), closes [#7373](#7373) * Implement closures in the comptime interpreter (noir-lang/noir#5682) ([b1c7374](b1c7374)) * IVC integration tests using new accumulate model ([#7946](#7946)) ([c527ae9](c527ae9)) * LSP autocompletion for use statement (noir-lang/noir#5704) ([91042c7](91042c7)) * LSP closing brace hints (noir-lang/noir#5686) ([b1c7374](b1c7374)) * LSP fields, functions and methods completion after "." and "::" (noir-lang/noir#5714) ([ccbef55](ccbef55)) * LSP hover now includes "Go to" links (noir-lang/noir#5677) ([b1c7374](b1c7374)) * LSP path completion (noir-lang/noir#5712) ([91042c7](91042c7)) * **noir_js:** Expose UltraHonk and integration tests (noir-lang/noir#5656) ([b1c7374](b1c7374)) * Optimizing PrivateFPC ([#7980](#7980)) ([d018335](d018335)) * Private refunds optimizations ([#7968](#7968)) ([cea8295](cea8295)) * Resolve arguments to attributes (noir-lang/noir#5649) ([b1c7374](b1c7374)) * **ssa:** Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) ([b1c7374](b1c7374)) * Sync from aztec-packages (noir-lang/noir#5718) ([ccbef55](ccbef55)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](#7582)) ([a96a5ad](a96a5ad)) ### Bug Fixes * Add locations to most SSA instructions (noir-lang/noir#5697) ([b1c7374](b1c7374)) * Allow txs on block zero ([#7928](#7928)) ([5e25cd6](5e25cd6)) * Build error in e2e_block_building ([0d0646d](0d0646d)) * **debugger:** Update the debugger to handle the new Brillig debug metadata format (noir-lang/noir#5706) ([91042c7](91042c7)) * Delete forks after proving job has finished ([#7972](#7972)) ([2b4a842](2b4a842)) * Deploy verifier cmd ([#7983](#7983)) ([f4fa797](f4fa797)) * Derive generic types (noir-lang/noir#5674) ([b1c7374](b1c7374)) * Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) ([b1c7374](b1c7374)) * Do not mount ssh agent on OSX ([#7991](#7991)) ([950db8e](950db8e)) * **docs:** Add redirects for website links ([#7979](#7979)) ([e890814](e890814)) * Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) ([b1c7374](b1c7374)) * Fix where clause issue in items generated from attributes (noir-lang/noir#5673) ([b1c7374](b1c7374)) * Lay plumbing for having simulations throw an error if they cannot be added in a block ([#7839](#7839)) ([eedbc11](eedbc11)) * Let a trait impl that relies on another trait work (noir-lang/noir#5646) ([b1c7374](b1c7374)) * Only record bytecode if >0 ([#7932](#7932)) ([3f145b3](3f145b3)) * Remove missing file ([#7941](#7941)) ([4d9290f](4d9290f)) * Replace unused ArrayGet/Set with constrain if possibly out of bounds (noir-lang/noir#5691) ([ccbef55](ccbef55)) * Switch verify proof to arrays (noir-lang/noir#5664) ([b1c7374](b1c7374)) * Track L1 block for last L2 block body retrieved ([#7927](#7927)) ([cd36be4](cd36be4)), closes [#7918](#7918) * Unexpose get note nonces on pxe ([#7889](#7889)) ([163c3a6](163c3a6)) * Use data dir for lmdb forks ([#7973](#7973)) ([5b53d43](5b53d43)) * Workaround from_slice with nested slices (noir-lang/noir#5648) ([b1c7374](b1c7374)) ### Miscellaneous * Add docs tip about filenames between commands (noir-lang/noir#5695) ([b1c7374](b1c7374)) * Add env var to disable bb cleanup ([#7936](#7936)) ([806a370](806a370)) * Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) ([b1c7374](b1c7374)) * Add tests for noir<>ivc integration testing ([#7931](#7931)) ([7cc47a6](7cc47a6)) * Allow passing custom executors to fuzzer (noir-lang/noir#5710) ([91042c7](91042c7)) * **avm:** Fewer errors unless testing ([#7943](#7943)) ([33b65a9](33b65a9)) * **bb:** Constexpr simplifications ([#7906](#7906)) ([65d3b7f](65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](#7949)) ([5ca5138](5ca5138)) * **ci:** Print detailed target timings ([#7934](#7934)) ([fb574aa](fb574aa)) * Do not clean up bb files on err ([#7985](#7985)) ([75c6768](75c6768)) * Enable execute command on aws ecs services ([#7975](#7975)) ([4331bc6](4331bc6)) * Ensure bootstrapped networks have no pending blocks when proving starts ([#7986](#7986)) ([fb471b3](fb471b3)) * Fork logs and prover job catch ([#7982](#7982)) ([69bde53](69bde53)) * Move siloing to reset ([#7871](#7871)) ([014b5f0](014b5f0)) * Pin yarn versions in noir-projects and bb/ts ([#7988](#7988)) ([83f33a1](83f33a1)) * Release Noir(0.33.0) (noir-lang/noir#5550) ([b1c7374](b1c7374)) * Replace relative paths to noir-protocol-circuits ([cd5f138](cd5f138)) * Replace relative paths to noir-protocol-circuits ([6f3cef9](6f3cef9)) * Replace relative paths to noir-protocol-circuits ([54c4441](54c4441)) * Replace VERSION with IMAGE on provernet template ([d5e48aa](d5e48aa)) * Sequencer no longer proves ([#7860](#7860)) ([7168290](7168290)) * Simplify registry ([#7939](#7939)) ([8e0418f](8e0418f)) * Terraform template for prover-node ([#7846](#7846)) ([546f946](546f946)) * Update provernet docker compose template ([#7929](#7929)) ([33d47d2](33d47d2)) * Updating token with refunds ([#7969](#7969)) ([504deba](504deba)) </details> <details><summary>barretenberg: 0.49.0</summary> ## [0.49.0](barretenberg-v0.48.0...barretenberg-v0.49.0) (2024-08-15) ### Features * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](#7942)) ([9e8ba96](9e8ba96)) * IVC integration tests using new accumulate model ([#7946](#7946)) ([c527ae9](c527ae9)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](#7582)) ([a96a5ad](a96a5ad)) ### Miscellaneous * **avm:** Fewer errors unless testing ([#7943](#7943)) ([33b65a9](33b65a9)) * **bb:** Constexpr simplifications ([#7906](#7906)) ([65d3b7f](65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](#7949)) ([5ca5138](5ca5138)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@aztec-package-v0.48.0...aztec-package-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ### Miscellaneous * Enable execute command on aws ecs services ([#7975](AztecProtocol/aztec-packages#7975)) ([4331bc6](AztecProtocol/aztec-packages@4331bc6)) * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ([7168290](AztecProtocol/aztec-packages@7168290)) * Terraform template for prover-node ([#7846](AztecProtocol/aztec-packages#7846)) ([546f946](AztecProtocol/aztec-packages@546f946)) </details> <details><summary>barretenberg.js: 0.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@barretenberg.js-v0.48.0...barretenberg.js-v0.49.0) (2024-08-15) ### Miscellaneous * Pin yarn versions in noir-projects and bb/ts ([#7988](AztecProtocol/aztec-packages#7988)) ([83f33a1](AztecProtocol/aztec-packages@83f33a1)) </details> <details><summary>aztec-packages: 0.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@aztec-packages-v0.48.0...aztec-packages-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * alternative key registry contract ([#7523](AztecProtocol/aztec-packages#7523)) * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ### Features * Add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add `Quoted::as_expr` and `Expr::as_function_call` (noir-lang/noir#5708) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * Add `Type::as_struct` (noir-lang/noir#5680) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add `Type::get_trait_impl` (noir-lang/noir#5716) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * Add `Type::implements` (noir-lang/noir#5701) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * Add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add a limited form of arithmetic on generics (noir-lang/noir#5625) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add array_to_str_lossy (noir-lang/noir#5613) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add generate-secret-and-hash to cli ([#7977](AztecProtocol/aztec-packages#7977)) ([cdf62a0](AztecProtocol/aztec-packages@cdf62a0)) * Add mutating FunctionDefinition functions (noir-lang/noir#5685) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add proven flag to sent tx wait opts ([#7950](AztecProtocol/aztec-packages#7950)) ([e80e7d2](AztecProtocol/aztec-packages@e80e7d2)) * Add some `Module` comptime functions (noir-lang/noir#5684) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Alternative key registry contract ([#7523](AztecProtocol/aztec-packages#7523)) ([3e6a20f](AztecProtocol/aztec-packages@3e6a20f)) * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](AztecProtocol/aztec-packages#7942)) ([9e8ba96](AztecProtocol/aztec-packages@9e8ba96)) * Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Destroy_note_unsafe ([#7891](AztecProtocol/aztec-packages#7891)) ([5cda7ba](AztecProtocol/aztec-packages@5cda7ba)) * **docs:** Nits ([#7838](AztecProtocol/aztec-packages#7838)) ([a76c999](AztecProtocol/aztec-packages@a76c999)) * Enable UltraHonk verifier ([#7923](AztecProtocol/aztec-packages#7923)) ([5e8b4a8](AztecProtocol/aztec-packages@5e8b4a8)), closes [#7373](AztecProtocol/aztec-packages#7373) * Implement closures in the comptime interpreter (noir-lang/noir#5682) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * IVC integration tests using new accumulate model ([#7946](AztecProtocol/aztec-packages#7946)) ([c527ae9](AztecProtocol/aztec-packages@c527ae9)) * LSP autocompletion for use statement (noir-lang/noir#5704) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * LSP closing brace hints (noir-lang/noir#5686) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * LSP fields, functions and methods completion after "." and "::" (noir-lang/noir#5714) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * LSP hover now includes "Go to" links (noir-lang/noir#5677) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * LSP path completion (noir-lang/noir#5712) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * **noir_js:** Expose UltraHonk and integration tests (noir-lang/noir#5656) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Optimizing PrivateFPC ([#7980](AztecProtocol/aztec-packages#7980)) ([d018335](AztecProtocol/aztec-packages@d018335)) * Private refunds optimizations ([#7968](AztecProtocol/aztec-packages#7968)) ([cea8295](AztecProtocol/aztec-packages@cea8295)) * Resolve arguments to attributes (noir-lang/noir#5649) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * **ssa:** Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Sync from aztec-packages (noir-lang/noir#5718) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](AztecProtocol/aztec-packages#7582)) ([a96a5ad](AztecProtocol/aztec-packages@a96a5ad)) ### Bug Fixes * Add locations to most SSA instructions (noir-lang/noir#5697) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Allow txs on block zero ([#7928](AztecProtocol/aztec-packages#7928)) ([5e25cd6](AztecProtocol/aztec-packages@5e25cd6)) * Build error in e2e_block_building ([0d0646d](AztecProtocol/aztec-packages@0d0646d)) * **debugger:** Update the debugger to handle the new Brillig debug metadata format (noir-lang/noir#5706) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * Delete forks after proving job has finished ([#7972](AztecProtocol/aztec-packages#7972)) ([2b4a842](AztecProtocol/aztec-packages@2b4a842)) * Deploy verifier cmd ([#7983](AztecProtocol/aztec-packages#7983)) ([f4fa797](AztecProtocol/aztec-packages@f4fa797)) * Derive generic types (noir-lang/noir#5674) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Do not mount ssh agent on OSX ([#7991](AztecProtocol/aztec-packages#7991)) ([950db8e](AztecProtocol/aztec-packages@950db8e)) * **docs:** Add redirects for website links ([#7979](AztecProtocol/aztec-packages#7979)) ([e890814](AztecProtocol/aztec-packages@e890814)) * Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Fix where clause issue in items generated from attributes (noir-lang/noir#5673) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Lay plumbing for having simulations throw an error if they cannot be added in a block ([#7839](AztecProtocol/aztec-packages#7839)) ([eedbc11](AztecProtocol/aztec-packages@eedbc11)) * Let a trait impl that relies on another trait work (noir-lang/noir#5646) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Only record bytecode if >0 ([#7932](AztecProtocol/aztec-packages#7932)) ([3f145b3](AztecProtocol/aztec-packages@3f145b3)) * Remove missing file ([#7941](AztecProtocol/aztec-packages#7941)) ([4d9290f](AztecProtocol/aztec-packages@4d9290f)) * Replace unused ArrayGet/Set with constrain if possibly out of bounds (noir-lang/noir#5691) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * Switch verify proof to arrays (noir-lang/noir#5664) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Track L1 block for last L2 block body retrieved ([#7927](AztecProtocol/aztec-packages#7927)) ([cd36be4](AztecProtocol/aztec-packages@cd36be4)), closes [#7918](AztecProtocol/aztec-packages#7918) * Unexpose get note nonces on pxe ([#7889](AztecProtocol/aztec-packages#7889)) ([163c3a6](AztecProtocol/aztec-packages@163c3a6)) * Use data dir for lmdb forks ([#7973](AztecProtocol/aztec-packages#7973)) ([5b53d43](AztecProtocol/aztec-packages@5b53d43)) * Workaround from_slice with nested slices (noir-lang/noir#5648) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) ### Miscellaneous * Add docs tip about filenames between commands (noir-lang/noir#5695) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add env var to disable bb cleanup ([#7936](AztecProtocol/aztec-packages#7936)) ([806a370](AztecProtocol/aztec-packages@806a370)) * Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add tests for noir<>ivc integration testing ([#7931](AztecProtocol/aztec-packages#7931)) ([7cc47a6](AztecProtocol/aztec-packages@7cc47a6)) * Allow passing custom executors to fuzzer (noir-lang/noir#5710) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * **avm:** Fewer errors unless testing ([#7943](AztecProtocol/aztec-packages#7943)) ([33b65a9](AztecProtocol/aztec-packages@33b65a9)) * **bb:** Constexpr simplifications ([#7906](AztecProtocol/aztec-packages#7906)) ([65d3b7f](AztecProtocol/aztec-packages@65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](AztecProtocol/aztec-packages#7949)) ([5ca5138](AztecProtocol/aztec-packages@5ca5138)) * **ci:** Print detailed target timings ([#7934](AztecProtocol/aztec-packages#7934)) ([fb574aa](AztecProtocol/aztec-packages@fb574aa)) * Do not clean up bb files on err ([#7985](AztecProtocol/aztec-packages#7985)) ([75c6768](AztecProtocol/aztec-packages@75c6768)) * Enable execute command on aws ecs services ([#7975](AztecProtocol/aztec-packages#7975)) ([4331bc6](AztecProtocol/aztec-packages@4331bc6)) * Ensure bootstrapped networks have no pending blocks when proving starts ([#7986](AztecProtocol/aztec-packages#7986)) ([fb471b3](AztecProtocol/aztec-packages@fb471b3)) * Fork logs and prover job catch ([#7982](AztecProtocol/aztec-packages#7982)) ([69bde53](AztecProtocol/aztec-packages@69bde53)) * Move siloing to reset ([#7871](AztecProtocol/aztec-packages#7871)) ([014b5f0](AztecProtocol/aztec-packages@014b5f0)) * Pin yarn versions in noir-projects and bb/ts ([#7988](AztecProtocol/aztec-packages#7988)) ([83f33a1](AztecProtocol/aztec-packages@83f33a1)) * Release Noir(0.33.0) (noir-lang/noir#5550) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Replace relative paths to noir-protocol-circuits ([cd5f138](AztecProtocol/aztec-packages@cd5f138)) * Replace relative paths to noir-protocol-circuits ([6f3cef9](AztecProtocol/aztec-packages@6f3cef9)) * Replace relative paths to noir-protocol-circuits ([54c4441](AztecProtocol/aztec-packages@54c4441)) * Replace VERSION with IMAGE on provernet template ([d5e48aa](AztecProtocol/aztec-packages@d5e48aa)) * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ([7168290](AztecProtocol/aztec-packages@7168290)) * Simplify registry ([#7939](AztecProtocol/aztec-packages#7939)) ([8e0418f](AztecProtocol/aztec-packages@8e0418f)) * Terraform template for prover-node ([#7846](AztecProtocol/aztec-packages#7846)) ([546f946](AztecProtocol/aztec-packages@546f946)) * Update provernet docker compose template ([#7929](AztecProtocol/aztec-packages#7929)) ([33d47d2](AztecProtocol/aztec-packages@33d47d2)) * Updating token with refunds ([#7969](AztecProtocol/aztec-packages#7969)) ([504deba](AztecProtocol/aztec-packages@504deba)) </details> <details><summary>barretenberg: 0.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@barretenberg-v0.48.0...barretenberg-v0.49.0) (2024-08-15) ### Features * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](AztecProtocol/aztec-packages#7942)) ([9e8ba96](AztecProtocol/aztec-packages@9e8ba96)) * IVC integration tests using new accumulate model ([#7946](AztecProtocol/aztec-packages#7946)) ([c527ae9](AztecProtocol/aztec-packages@c527ae9)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](AztecProtocol/aztec-packages#7582)) ([a96a5ad](AztecProtocol/aztec-packages@a96a5ad)) ### Miscellaneous * **avm:** Fewer errors unless testing ([#7943](AztecProtocol/aztec-packages#7943)) ([33b65a9](AztecProtocol/aztec-packages@33b65a9)) * **bb:** Constexpr simplifications ([#7906](AztecProtocol/aztec-packages#7906)) ([65d3b7f](AztecProtocol/aztec-packages@65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](AztecProtocol/aztec-packages#7949)) ([5ca5138](AztecProtocol/aztec-packages@5ca5138)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Description
Problem
Resolves #5195
Summary
If I'm understanding the code correctly, when you have code like this:
the compiler will search in all impls of
Traitfor a matching one. Then:If an impl has a where clause, the compiler checks if that where clause matches. For example:
So here there's an impl for
Trait, it has a where clause, so the compiler checks if thatTisOne. And here's the thing: if there's no match, it would immediately error. I think that was the bug.In this PR, we capture that error but continue seeing if we can find a matching impl. If we can't find any impl, we use the error of the first non-matching
whereclause to help users.But... let me know if I got this wrong. I think I understood the code, but I'm not sure.
Additional Context
When trying out different codes with traits and impls I noticed that we don't error if two trait impls are conflicting. For example Rust gives an error in this case:
The error:
I don't know if it's a requirement to do this before merging this PR. Even if there are conflicting impls in Noir, the compiler does the right thing. For example this code:
prints:
Documentation*
Check one:
PR Checklist*
cargo fmton default settings.