Skip to content
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: Initialize structs during def collection, not name resolution #2528

Merged
merged 1 commit into from
Sep 1, 2023

Conversation

jfecher
Copy link
Contributor

@jfecher jfecher commented Sep 1, 2023

Description

Problem*

Resolves #2502

Summary*

We now push structs to the node interner a bit earlier so that when aliases refer to them, they will already be initialized. Generally, initializing a global item should be done in the def collector and name resolution should only have to peek into the definition of the item to resolve those. For structs this means the struct name is resolved in def collection and the struct fields should be resolved during name resolution (because they may refer to other structs).

Documentation

  • This PR requires documentation updates when merged.

    • I will submit a noir-lang/docs PR.
    • I will request for and support Dev Rel's help in documenting this PR.

Additional Context

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@jfecher jfecher added this pull request to the merge queue Sep 1, 2023
Merged via the queue into master with commit f170529 Sep 1, 2023
12 checks passed
@jfecher jfecher deleted the jf/fix-2502 branch September 1, 2023 16:00
TomAFrench added a commit that referenced this pull request Sep 1, 2023
* master: (47 commits)
  fix: Initialize structs during def collection, not name resolution (#2528)
  feat: Apply optimizations to unconstrained code (#2348)
  chore(ci): Distinguish between expected failures and compiler panics in `compile_failure` tests. (#2518)
  chore: improve types in `acvm-backend-barretenberg` (#2516)
  feat(aztec_noir): abstract kernel return types (#2521)
  chore: remove usage of `Backend` trait (#2514)
  chore: delete `ProveAndVerifyCommand` (#2520)
  chore: Remove dead code from `acvm_backend_barretenberg` (#2512)
  chore: only install `tokio-util` dependency on windows (#2425)
  chore(aztec_noir):  imply the open keyword (#2508)
  chore: pull `acvm-backend-barretenberg` into main Noir repo (#2495)
  chore: clippy fix (#2507)
  chore: check if the noir aztec library is installed (#2505)
  chore: update ACIR artifacts (#2503)
  chore!: Update to `acvm-backend-barretenberg` v0.12.0 (#2377)
  fix: Bring back accidentally deleted double_verify_proof test. (#2501)
  chore(aztec_noir): import aztec library if not found yet (#2492)
  chore(abi)!: Replace struct name with fully qualified struct path (#2374)
  chore!: Remove keys from preprocessed artifacts (#2283)
  chore(noir): Release 0.10.5 (#2482)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ICE on Struct type aliases
2 participants