carbon-language/carbon-lang

Support for struct patterns

Open

#6680 aperta il 2 feb 2026

Vedi su GitHub
 (7 commenti) (0 reazioni) (0 assegnatari)C++ (1535 fork)batch import
good first issuetoolchain

Metriche repository

Star
 (33.701 star)
Metriche merge PR
 (Merge medio 3g 6h) (129 PR mergiate in 30 g)

Descrizione

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.

Guida contributor