Reverse nesting structure of parameter patterns (#6930)

See
[here](https://docs.google.com/document/d/1rWcueFwIfZox6GKVGxiUG4cBzjrZ6djXiIDGyJDtrE4/edit?tab=t.0#heading=h.7mi143mdhr2h)
for an overview of the changes and their rationale.

Assisted-by: Gemini 3.1 Pro via Antigravity
This commit is contained in:
Geoff Romer
2026-03-23 20:38:20 +00:00
committed by GitHub
parent a345a74145
commit e0c6800ab3
310 changed files with 4271 additions and 4018 deletions
+7 -6
View File
@@ -45,14 +45,15 @@ auto AddReturnPatterns(Context& context, SemIR::LocId loc_id,
case CARBON_KIND(SemIR::InitForm _): {
auto pattern_type_id =
GetPatternType(context, form_expr.type_component_id);
auto return_slot_pattern_id = AddPatternInst<SemIR::ReturnSlotPattern>(
context, loc_id,
{.type_id = pattern_type_id,
.type_inst_id = form_expr.type_component_inst_id});
return_patterns.push_back(AddPatternInst<SemIR::OutParamPattern>(
auto out_param_id = AddPatternInst<SemIR::OutParamPattern>(
context, SemIR::LocId(form_expr.form_inst_id),
{.type_id = pattern_type_id,
.subpattern_id = return_slot_pattern_id}));
.pretty_name_id = SemIR::NameId::ReturnSlot});
return_patterns.push_back(AddPatternInst<SemIR::ReturnSlotPattern>(
context, SemIR::LocId(form_expr.form_inst_id),
{.type_id = pattern_type_id,
.subpattern_id = out_param_id,
.type_inst_id = form_expr.type_component_inst_id}));
break;
}
case SemIR::ErrorInst::Kind: {