carbon-language/carbon-lang

Support for struct patterns

オープン

#6,680 opened on 2026/02/02

 (7 件のコメント) (0 件のリアクション) (0 人の担当者)C++ (1,535 件のフォーク)batch import
good first issuetoolchain

Repository metrics

Stars
 (33,701 個のスター)
PR merge metrics
 (平均マージ 3d 6h) (30d で 129 merged PRs)

説明

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.

コントリビューターガイド