-
Notifications
You must be signed in to change notification settings - Fork 242
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(experimental): Parse match expressions #7243
Conversation
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.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20
.
Benchmark suite | Current: b6acd60 | Previous: a9e9850 | Ratio |
---|---|---|---|
noir-lang_noir_sort_ |
1 s |
0 s |
+∞ |
noir-lang_eddsa_ |
2 s |
1 s |
2 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
(ready for review 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.
Looks good!
Co-authored-by: Ary Borenszweig <[email protected]>
…_make_arrays` (noir-lang/noir#7264) chore: early check type equality in try_unify (noir-lang/noir#7263) feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261) feat(experimental): Parse match expressions (noir-lang/noir#7243) feat(experimental): Implement zeroed for enums (noir-lang/noir#7252) fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260) fix: Add missing `is_empty` check for enums (noir-lang/noir#7257) feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
noir-lang/noir#7264) chore: early check type equality in try_unify (noir-lang/noir#7263) feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261) feat(experimental): Parse match expressions (noir-lang/noir#7243) feat(experimental): Implement zeroed for enums (noir-lang/noir#7252) fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260) fix: Add missing `is_empty` check for enums (noir-lang/noir#7257) feat(experimental): Implement enum tag constants (noir-lang/noir#7183) fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253) fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242) feat: Sync from aztec-packages (noir-lang/noir#7241) chore: bump gates diff (noir-lang/noir#7245) feat: simplify subtraction from self to return zero (noir-lang/noir#7189) feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186) fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239) feat: Allow resolved types in constructors (noir-lang/noir#7223) chore: clarify to_radix docs examples (noir-lang/noir#7230) chore: fix struct example (noir-lang/noir#7198) feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197) chore: start tracking time to run critical library tests (noir-lang/noir#7221) chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222) fix(brillig): Globals entry point reachability analysis (noir-lang/noir#7188) chore: update docs to use devcontainer feature (noir-lang/noir#7206) chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209) chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211) chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203) chore: build docs in the merge queue (noir-lang/noir#7218) fix: correct reversed callstacks (noir-lang/noir#7212) chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210) feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
Description
Problem*
Working towards #988
Summary*
Add parser, formatter, lsp support for match expressions
Additional Context
Still can't use these in a program, we panic in the monomorphizer for them. Just pushing these somewhat trivial changes before the chunkier changes of compiling match expressions to a decision tree, checking for completeness, redundancy, then monomorphizing etc.
Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.