You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
…es (#5203)
# Description
## Problem\*
Resolves#4591
## Summary\*
Implements macro calls `foo!()` and splicing via the `$` operator of
`Expr` values into `quote` expressions.
```rust
comptime fn my_macro(x: Field, y: Field) -> Expr {
quote { $x + $y + x + y }
}
fn main(x: Field, y: pub Field) {
let result = my_macro!(1, 2);
assert_eq(result, 1 + 2 + x + y);
}
```
## Additional Context
This feature is elaborator-only and does not work with the resolver /
type checker. I've yet to add the integration test that pairs with this
as a result since I'd have to add a check to the build step to exclude
it from any runs without `--use-elaborator`. I'll add this later but the
PR should be ready for review at least now.
## Documentation\*
Check one:
- [ ] No documentation needed.
- [ ] Documentation included in this PR.
- [x] **[For Experimental Features]** Documentation to be submitted in a
separate PR.
# PR Checklist\*
- [x] I have tested the changes locally.
- [x] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.
---------
Co-authored-by: Maxim Vezenov <[email protected]>
Problem
When quoting code, Noir needs a way to splice in other code snippets to combine them, similar to string interpolation.
Happy Case
Add code splicing (unquoting code into other quoted code snippets) as shown here https://hackmd.io/Tkzo_ryvTsWMPESmWHPiZw?view
Project Impact
None
Impact Context
No response
Workaround
None
Workaround Description
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
None
Support Needs
No response
The text was updated successfully, but these errors were encountered: