-
Notifications
You must be signed in to change notification settings - Fork 204
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: 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <[email protected]>
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 <[email protected]>
🤖 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
Trait
for 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 thatT
isOne
. 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
where
clause 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 fmt
on default settings.