Skip to content

chore(experimental): Elaborate impls & non-trait impls#5007

Merged
jfecher merged 29 commits intomasterfrom
jf/elaborator-impls
May 21, 2024
Merged

chore(experimental): Elaborate impls & non-trait impls#5007
jfecher merged 29 commits intomasterfrom
jf/elaborator-impls

Conversation

@jfecher
Copy link
Contributor

@jfecher jfecher commented May 9, 2024

Description

Problem*

Working towards #4594

Summary*

Adds support for impls and trait impls to the elaborator.

This was somewhat satisfying to add since the existing code for this in dc_crate.rs is very messy & long winded due to our current design of creating a new NameResolver for every resolution. Keeping everything in the same elaborator and not needing to keep setting the interner, def maps, current crate, module, generics, append errors, etc saved many lines. I think this implementation is roughly half the size as a result.

Additional Context

Still need types, type aliases, and globals after this. The pass is testable after that but is expected to fail the comptime tests at least. So I'll need to inline the comptime scanning pass in the elaborator as well. After that the pass is theoretically done but realistically there will be bugs to fix before we can make it the default.

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

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

Base automatically changed from jf/integrate-elaborator to master May 9, 2024 19:43
@jfecher jfecher requested a review from michaeljklein May 20, 2024 19:18
@jfecher jfecher enabled auto-merge May 21, 2024 13:53
@jfecher jfecher added this pull request to the merge queue May 21, 2024
Merged via the queue into master with commit aea60c0 May 21, 2024
@jfecher jfecher deleted the jf/elaborator-impls branch May 21, 2024 16:18
AztecBot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request May 21, 2024
…ic definition (noir-lang/noir#5041)

feat: Implement turbofish operator (noir-lang/noir#3542)
feat: add `as_witness` builtin function in order to constrain a witness to be equal to a variable  (noir-lang/noir#4641)
chore(experimental): Elaborate impls & non-trait impls (noir-lang/noir#5007)
feat: add native rust implementation of schnorr signature verification (noir-lang/noir#5053)
chore: Release Noir(0.30.0) (noir-lang/noir#4981)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request May 21, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix(frontend): Call trait method with mut self from generic definition
(noir-lang/noir#5041)
feat: Implement turbofish operator
(noir-lang/noir#3542)
feat: add `as_witness` builtin function in order to constrain a witness
to be equal to a variable (noir-lang/noir#4641)
chore(experimental): Elaborate impls & non-trait impls
(noir-lang/noir#5007)
feat: add native rust implementation of schnorr signature verification
(noir-lang/noir#5053)
chore: Release Noir(0.30.0)
(noir-lang/noir#4981)
END_COMMIT_OVERRIDE

---------

Co-authored-by: TomAFrench <tom@tomfren.ch>
AztecBot pushed a commit that referenced this pull request May 21, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix(frontend): Call trait method with mut self from generic definition
(#5041)
feat: Implement turbofish operator
(#3542)
feat: add `as_witness` builtin function in order to constrain a witness
to be equal to a variable (#4641)
chore(experimental): Elaborate impls & non-trait impls
(#5007)
feat: add native rust implementation of schnorr signature verification
(#5053)
chore: Release Noir(0.30.0)
(#4981)
END_COMMIT_OVERRIDE

---------

Co-authored-by: TomAFrench <tom@tomfren.ch>
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.

3 participants