mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user