carbon-language/carbon-lang

Support for struct patterns

Open

#6,680 创建于 2026年2月2日

在 GitHub 查看
 (7 评论) (0 反应) (0 负责人)C++ (1,535 fork)batch import
good first issuetoolchain

仓库指标

Star
 (33,701 star)
PR 合并指标
 (平均合并 3天 6小时) (30 天内合并 129 个 PR)

描述

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.

贡献者指南