fix: Error on infinitely recursive types#7579
Merged
Conversation
vezenovm
reviewed
Mar 4, 2025
asterite
reviewed
Mar 5, 2025
michaeljklein
suggested changes
Mar 7, 2025
Contributor
michaeljklein
left a comment
There was a problem hiding this comment.
What about a test for Foo<Bar<()>> where both Foo and Bar are enums? Or if that case works, what about if Bar is an alias or struct-wrapper of Foo?
Naming nit: are these recursive types or simply nested enums? I'd expect the error to be more similar to the nested slices error.
Contributor
Author
They're.. semi-recursive enums. Nested enums like |
…g/noir into jf/recursive-type-error
Contributor
Author
|
@michaeljklein Added more tests |
michaeljklein
approved these changes
Mar 7, 2025
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 8, 2025
feat: add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) chore: Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) fix: Error on infinitely recursive types (noir-lang/noir#7579) fix: update error message to display 128 bits as valid bit size (noir-lang/noir#7626) chore: update docs to reflect u128 type (noir-lang/noir#7623) feat: array concat method (noir-lang/noir#7199)
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 9, 2025
feat: add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) chore: Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) fix: Error on infinitely recursive types (noir-lang/noir#7579) fix: update error message to display 128 bits as valid bit size (noir-lang/noir#7626) chore: update docs to reflect u128 type (noir-lang/noir#7623) feat: array concat method (noir-lang/noir#7199)
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 9, 2025
feat: add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) chore: Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) fix: Error on infinitely recursive types (noir-lang/noir#7579) fix: update error message to display 128 bits as valid bit size (noir-lang/noir#7626) chore: update docs to reflect u128 type (noir-lang/noir#7623) feat: array concat method (noir-lang/noir#7199)
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 10, 2025
feat: add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) chore: Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) fix: Error on infinitely recursive types (noir-lang/noir#7579) fix: update error message to display 128 bits as valid bit size (noir-lang/noir#7626) chore: update docs to reflect u128 type (noir-lang/noir#7623) feat: array concat method (noir-lang/noir#7199)
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 10, 2025
feat: add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) chore: Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) fix: Error on infinitely recursive types (noir-lang/noir#7579) fix: update error message to display 128 bits as valid bit size (noir-lang/noir#7626) chore: update docs to reflect u128 type (noir-lang/noir#7623) feat: array concat method (noir-lang/noir#7199)
This was referenced Mar 10, 2025
AztecBot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 11, 2025
chore: remove unnecessary trait bounds (noir-lang/noir#7635) feat: add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) chore: Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) fix: Error on infinitely recursive types (noir-lang/noir#7579) fix: update error message to display 128 bits as valid bit size (noir-lang/noir#7626) chore: update docs to reflect u128 type (noir-lang/noir#7623) feat: array concat method (noir-lang/noir#7199)
This was referenced Mar 11, 2025
TomAFrench
added a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 11, 2025
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: bump external pinned commits (noir-lang/noir#7640) chore: remove unnecessary trait bounds (noir-lang/noir#7635) feat: add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) chore: Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) fix: Error on infinitely recursive types (noir-lang/noir#7579) fix: update error message to display 128 bits as valid bit size (noir-lang/noir#7626) chore: update docs to reflect u128 type (noir-lang/noir#7623) feat: array concat method (noir-lang/noir#7199) END_COMMIT_OVERRIDE --------- Co-authored-by: TomAFrench <tom@tomfren.ch>
sklppy88
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Mar 11, 2025
🤖 I have created a new Aztec Packages release --- ## [0.79.0](v0.78.1...v0.79.0) (2025-03-11) ### ⚠ BREAKING CHANGES * aggregate data for batch calls ([#12562](#12562)) ### Features * add extra attributes to target_info ([#12583](#12583)) ([c296422](c296422)) * add optional oracle resolver url in `acvm_cli` (noir-lang/noir#7630) ([cc6cdbb](cc6cdbb)) * allow to pay via sponsored fpc from cli ([#12598](#12598)) ([877de5c](877de5c)) * array concat method (noir-lang/noir#7199) ([cc6cdbb](cc6cdbb)) * **avm:** ToRadix gadget ([#12528](#12528)) ([02a7171](02a7171)) * aztec-up -v flag ([#12590](#12590)) ([6a41565](6a41565)) * **bb:** consider polynomial end_index when constructing partially evaluated multivariates ([#12530](#12530)) ([abd22cd](abd22cd)) * **config:** add fallbacks ([#12593](#12593)) ([f2f9ef3](f2f9ef3)) * **p2p:** add trusted peers mechanics ([#12447](#12447)) ([d67f7e8](d67f7e8)) * **p2p:** peer manager peer count metrics ([#12575](#12575)) ([b4891c1](b4891c1)) * provision alerts ([#12561](#12561)) ([2ea1767](2ea1767)) * Resolve callstacks in protocol circuit errors on wasm ([#12573](#12573)) ([657299b](657299b)) ### Bug Fixes * aggregate data for batch calls ([#12562](#12562)) ([bd0b3b6](bd0b3b6)) * broken kind transfer test ([#12611](#12611)) ([6e91934](6e91934)) * Cl/release fixes 2 ([#12595](#12595)) ([fc597f4](fc597f4)) * Cl/release noir refs ([#12597](#12597)) ([fdcfcaf](fdcfcaf)) * demote log ([#12626](#12626)) ([bec8953](bec8953)) * deploy method test ([#12609](#12609)) ([f2c06c2](f2c06c2)) * Do not report epoch as complete until blocks have synced ([#12638](#12638)) ([2ddfa76](2ddfa76)), closes [#12625](#12625) * Error on infinitely recursive types (noir-lang/noir#7579) ([cc6cdbb](cc6cdbb)) * get L1 tx utils config from env ([#12620](#12620)) ([d930c01](d930c01)) * Log overflow handling in reset ([#12579](#12579)) ([283b624](283b624)) * metrics update ([#12571](#12571)) ([80a5df2](80a5df2)) * **sandbox:** query release please manifest for version if in a docker container ([#12591](#12591)) ([db8ebc6](db8ebc6)) * **spartan:** setup needs kubectl ([#12580](#12580)) ([753cb33](753cb33)) * update dead partial notes link ([#12629](#12629)) ([5a1dc4c](5a1dc4c)) * update error message to display 128 bits as valid bit size (noir-lang/noir#7626) ([cc6cdbb](cc6cdbb)) * update fallback transport ([#12470](#12470)) ([88f0711](88f0711)) ### Miscellaneous * bump external pinned commits (noir-lang/noir#7640) ([cc6cdbb](cc6cdbb)) * **ci3:** add helper for uncached test introspection ([#12618](#12618)) ([9ac518b](9ac518b)) * **ci3:** better memsuspend_limit comment ([#12622](#12622)) ([de84187](de84187)) * clean up upgrade test and other small things ([#12558](#12558)) ([c28abe1](c28abe1)) * cleanup eth artifacts + misc aztec.js reorg ([#12563](#12563)) ([6623244](6623244)) * **docs:** Updated accounts page ([#12019](#12019)) ([d45dac9](d45dac9)) * Fix mac build ([#12610](#12610)) ([adceed6](adceed6)) * gemini soundness regression test ([#12570](#12570)) ([c654106](c654106)) * more sane e2e_prover/full timeout ([#12619](#12619)) ([add9d35](add9d35)) * reactivate acir_test for `regression_5045` ([#12548](#12548)) ([c89f89c](c89f89c)) * remove unnecessary trait bounds (noir-lang/noir#7635) ([cc6cdbb](cc6cdbb)) * Rename `StructDefinition` to `TypeDefinition` (noir-lang/noir#7614) ([cc6cdbb](cc6cdbb)) * replace relative paths to noir-protocol-circuits ([4f7f5c3](4f7f5c3)) * replace relative paths to noir-protocol-circuits ([0f68d11](0f68d11)) * replace relative paths to noir-protocol-circuits ([8f593ce](8f593ce)) * replace relative paths to noir-protocol-circuits ([251ae38](251ae38)) * rollup library cleanup ([#12621](#12621)) ([361fc59](361fc59)) * **sandbox:** drop cheat-codes log level ([#12586](#12586)) ([24f04c7](24f04c7)) * **sandbox:** expose anvil port ([#12599](#12599)) ([955f1b0](955f1b0)) * **testnet:** updating script for ignition, change naming ([#12566](#12566)) ([2d7b69d](2d7b69d)) * turn on masking in eccvm ([#12467](#12467)) ([aacb91a](aacb91a)) * Update Bb line counting script ([#12350](#12350)) ([7a41843](7a41843)) * update docs to reflect u128 type (noir-lang/noir#7623) ([cc6cdbb](cc6cdbb)) * Validate blobs posted to sink belong to our L2 ([#12587](#12587)) ([9578f1e](9578f1e)), closes [#12497](#12497) ### Documentation * update cli-wallet commands in profiler doc ([#12568](#12568)) ([239a4fb](239a4fb)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Problem*
Resolves #7173
Summary*
Adds a check during monomorphization that we never create any recursive types which are likely to be infinitely sized.
Additional Context
I also added a file for monomorphization tests so we don't have to keep creating a full
test_programfor these monomorphization errors.Documentation*
Check one:
PR Checklist*
cargo fmton default settings.