mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 22:02:23 +01:00
This implements initializing expression semantics for structs and tuples, following #2006 and discussions since. Tuple and (and analogously, struct) literals are treated as having a mixed expression category that is later resolved based on how the literal is used, as either a tuple initializer or a tuple value, at which point we create a `TupleInit` or `TupleValue` that represents the formation of the tuple initializer or tuple value from the tuple literal. There's quite a lot of TODOs here, and the SemIR representation is still not quite right, but this seems like a good place to checkpoint some incremental progress.