Add the form ID to FormParamPattern (#6928)

This enables some nice simplifications, and it's also a step toward a
broader restructuring of binding and parameter patterns.

Assisted-by: Gemini 3.1 Pro via Antigravity
This commit is contained in:
Geoff Romer
2026-03-20 01:08:38 +00:00
committed by GitHub
parent ce50f181f1
commit 8e5b358ec2
11 changed files with 65 additions and 88 deletions
+3 -6
View File
@@ -572,12 +572,9 @@ auto FileContext::FunctionTypeInfoBuilder::HandleParameter(
// corresponds to its form.
if (auto form_param_pattern =
param_pattern.TryAs<SemIR::FormParamPattern>()) {
auto form_binding_pattern = sem_ir.insts().GetAs<SemIR::FormBindingPattern>(
form_param_pattern->subpattern_id);
auto form_id =
sem_ir.entity_names().Get(form_binding_pattern.entity_name_id).form_id;
CARBON_CHECK(!form_id.is_symbolic(), "TODO");
auto form_inst_id = sem_ir.constant_values().GetInstId(form_id);
CARBON_CHECK(!form_param_pattern->form_id.is_symbolic(), "TODO");
auto form_inst_id =
sem_ir.constant_values().GetInstId(form_param_pattern->form_id);
auto form_kind = sem_ir.insts().Get(form_inst_id).kind();
switch (form_kind) {
case SemIR::InitForm::Kind: