Get rid of AddPatternInst (#7075)

Instead, use the inst category to select the right block stack. This
simplifies the API for adding insts, and in subsequent changes it will
enable certain inst kinds like `SpliceInst` to seamlessly function as
either procedural insts or pattern insts.
This commit is contained in:
Geoff Romer
2026-04-16 23:31:31 +00:00
committed by GitHub
parent af04d08965
commit e7626f46cc
10 changed files with 40 additions and 58 deletions
+4 -4
View File
@@ -69,7 +69,7 @@ auto EndSubpattern(Context& context, NodeStack& node_stack) -> void {
auto expr_region_id = PopSubpatternExpr(context, *maybe_expr_id);
auto pattern_type_id =
GetPatternType(context, context.insts().Get(*maybe_expr_id).type_id());
node_stack.Push(node_id, AddPatternInst<SemIR::ExprPattern>(
node_stack.Push(node_id, AddInst<SemIR::ExprPattern>(
context, node_id,
{.type_id = pattern_type_id,
.expr_region_id = expr_region_id}));
@@ -147,8 +147,8 @@ auto AddBindingPattern(Context& context, SemIR::LocId name_loc,
.value_id = SemIR::InstId::None}));
auto binding_pattern_id =
AddPatternInst(context, SemIR::LocIdAndInst::RuntimeVerified(
context.sem_ir(), name_loc, pattern));
AddInst(context, SemIR::LocIdAndInst::RuntimeVerified(context.sem_ir(),
name_loc, pattern));
if (pattern.kind == SemIR::SymbolicBindingPattern::Kind) {
context.scope_stack().PushCompileTimeBinding(bind_id);
@@ -206,7 +206,7 @@ auto AddParamPattern(Context& context, SemIR::LocId loc_id,
auto pattern_type_id = GetPatternType(context, type_id);
const auto& param_pattern_kind =
is_ref ? SemIR::RefParamPattern::Kind : SemIR::ValueParamPattern::Kind;
auto pattern_id = AddPatternInst(
auto pattern_id = AddInst(
context, SemIR::LocIdAndInst::RuntimeVerified(
context.sem_ir(), loc_id,
SemIR::AnyLeafParamPattern{.kind = param_pattern_kind,