-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Support for struct patterns #6680
Copy link
Copy link
Labels
good first issuePossibly a good first issue for newcomersPossibly a good first issue for newcomerstoolchain
Description
The Carbon toolchain is missing support for struct patterns, as documented here. As "first issues" go, this is probably fairly complex, but there are a couple ways of breaking it down to make it more manageable:
- You can split it up by compilation phase, implementing parsing, then checking, then lowering in separate PRs (I don't think this will need changes to lexing).
- You can split it up into sub-features: the core
{.foo = foo: Foo, .bar = bar: Bar}syntax, and then the{foo: Foo, bar: Bar}shorthand and the trailing, _syntax.
I'd recommend doing both: have each PR focus on a single phase of a single feature, and probably do all three phases of the core feature before starting on the shorthand or trailing , _ syntaxes.
Be sure to take a look at the toolchain docs, especially the one about pattern matching, if you're not already familiar with them. The existing support for tuple patterns should also be a useful point of reference, because the two features have a lot in common.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
good first issuePossibly a good first issue for newcomersPossibly a good first issue for newcomerstoolchain