-
Notifications
You must be signed in to change notification settings - Fork 219
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
feat: Implement traits - parser support #2094 #2230
feat: Implement traits - parser support #2094 #2230
Conversation
* Add several parsing traits test * Expand trait definition in AST to include body * Add diagnostic error when where clause is not appled on generic type
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.
Looks mostly good, but lets revert the changed error check for no longer disallowing patterns in trait parameters. To match rust we should always disallow them.
Co-authored-by: jfecher <jfecher11@gmail.com>
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.
Looks good. My bad for holding this up 👍
* master: (80 commits) fix: properly capture lvalues in closure environments (#2120) (#2257) fix: Optimize contracts built by `nargo info` (#2259) chore: impl Display for DebugType (#2258) chore: update `noir_wasm` build process to match `acvm_js` (#2067) feat: Implement traits - parser support #2094 (#2230) chore: Refactor DefCollector duplicate errors (#2231) chore: Address clippy warnings (#2246) feat: Support `contract` package type in `nargo info` command (#2249) feat: Add slice append (#2241) chore: Bump `async-lsp` to v0.0.5 (#2186) chore: Move the remaining `nargo_cli` lib funcs into `nargo` crate (#2225) chore: Add test for eddsa (#2237) chore: Split `Nargo.toml` operations into separate package (#2224) fix(stdlib): correct `tecurve::contains` formula (#1821) feat: Remove `comptime` and warn upon usage (#2178) fix: Remove last vestige of array of structs to struct of arrays conversion (#2217) fix: Add foreign impl error (#2216) feat(nargo)!: Replace `--contracts` flag with `contract` package type (#2204) feat: Optimize `x < 0` for unsigned `x` to false (#2206) fix: Initialize numeric generics' type to a polymorphic integer when used in an expression (#2179) ...
* master: (29 commits) feat(nargo): Add support for contracts in `nargo check` (#2267) chore(ci): Name wasm job more clearly (#2269) chore(ci): Create cache key with consideration to target (#2273) chore(ci): Run publish workflow against PRs (#2268) chore: Merge in contents of `build-nargo` repository (#2211) fix(lsp): Improve dependency resolution in context of `Nargo.toml` (#2226) chore: Remove unnecessary duplication in how we test Noir compiler (#2248) fix: properly capture lvalues in closure environments (#2120) (#2257) fix: Optimize contracts built by `nargo info` (#2259) chore: impl Display for DebugType (#2258) chore: update `noir_wasm` build process to match `acvm_js` (#2067) feat: Implement traits - parser support #2094 (#2230) chore: Refactor DefCollector duplicate errors (#2231) chore: Address clippy warnings (#2246) feat: Support `contract` package type in `nargo info` command (#2249) feat: Add slice append (#2241) chore: Bump `async-lsp` to v0.0.5 (#2186) chore: Move the remaining `nargo_cli` lib funcs into `nargo` crate (#2225) chore: Add test for eddsa (#2237) chore: Split `Nargo.toml` operations into separate package (#2224) ...
* master: feat(nargo): Add support for contracts in `nargo check` (#2267) chore(ci): Name wasm job more clearly (#2269) chore(ci): Create cache key with consideration to target (#2273) chore(ci): Run publish workflow against PRs (#2268) chore: Merge in contents of `build-nargo` repository (#2211) fix(lsp): Improve dependency resolution in context of `Nargo.toml` (#2226) chore: Remove unnecessary duplication in how we test Noir compiler (#2248) fix: properly capture lvalues in closure environments (#2120) (#2257) fix: Optimize contracts built by `nargo info` (#2259) chore: impl Display for DebugType (#2258) chore: update `noir_wasm` build process to match `acvm_js` (#2067) feat: Implement traits - parser support #2094 (#2230) chore: Refactor DefCollector duplicate errors (#2231) chore: Address clippy warnings (#2246) feat: Support `contract` package type in `nargo info` command (#2249)
Description
Parser support for traits
Problem*
After the first prototype of traits implementation we agreed to split into small PRs and merge them one by one in master branch.
This is the first from many to follow. Enjoy
Resolves
Summary*
After this PR the parser with parse ( with traits are experimental warnings ) the following code
Documentation
This PR requires documentation updates when merged.
PR Checklist*
cargo fmt
on default settings.