diff --git a/toolchain/check/handle_binding_pattern.cpp b/toolchain/check/handle_binding_pattern.cpp index 9e9a8f9bf692..89f29963496f 100644 --- a/toolchain/check/handle_binding_pattern.cpp +++ b/toolchain/check/handle_binding_pattern.cpp @@ -176,8 +176,8 @@ static auto HandleAnyBindingPattern(Context& context, Parse::NodeId node_id, context.decl_introducer_state_stack().innermost(); auto form_id = node_kind == Parse::FormBindingPattern::Kind - ? context.constant_values().Get(type_expr.inst_id) - : SemIR::ConstantId::None; + ? type_expr.inst_id + : SemIR::InstId::None; // Adds a binding pattern for `node_id`, with the given kind and subpattern, // and adds its name to the current context. The subpattern must not be diff --git a/toolchain/check/pattern.cpp b/toolchain/check/pattern.cpp index 4fca17f1fdda..4bf736931dee 100644 --- a/toolchain/check/pattern.cpp +++ b/toolchain/check/pattern.cpp @@ -81,7 +81,7 @@ auto EndSubpattern(Context& context, NodeStack& node_stack) -> void { } auto AddBindingEntityName(Context& context, SemIR::NameId name_id, - SemIR::ConstantId form_id, bool is_unused, + SemIR::InstId form_id, bool is_unused, BindingPhase phase) -> SemIR::EntityNameId { SemIR::EntityName entity_name = { .name_id = name_id, @@ -213,11 +213,10 @@ auto AddParamPattern(Context& context, SemIR::LocId loc_id, .type_id = pattern_type_id, .pretty_name_id = name_id})); - auto entity_name_id = - AddBindingEntityName(context, name_id, - /*form_id=*/SemIR::ConstantId::None, - /*is_unused=*/false, - /*phase=*/BindingPhase::Runtime); + auto entity_name_id = AddBindingEntityName(context, name_id, + /*form_id=*/SemIR::InstId::None, + /*is_unused=*/false, + /*phase=*/BindingPhase::Runtime); return AddBindingPattern(context, loc_id, type_expr_region_id, {.kind = SemIR::WrapperBindingPattern::Kind, .type_id = GetPatternType(context, type_id), diff --git a/toolchain/check/pattern.h b/toolchain/check/pattern.h index 9573b9ac65c0..3bba72304097 100644 --- a/toolchain/check/pattern.h +++ b/toolchain/check/pattern.h @@ -48,7 +48,7 @@ enum class BindingPhase { Template, Symbolic, Runtime }; // Creates an entity name for a binding pattern with the given properties. auto AddBindingEntityName(Context& context, SemIR::NameId name_id, - SemIR::ConstantId form_id, bool is_unused, + SemIR::InstId form_id, bool is_unused, BindingPhase phase) -> SemIR::EntityNameId; // Creates a binding pattern and the associated binding inst, and returns their diff --git a/toolchain/check/pattern_match.cpp b/toolchain/check/pattern_match.cpp index ec9c39f7c653..192663002636 100644 --- a/toolchain/check/pattern_match.cpp +++ b/toolchain/check/pattern_match.cpp @@ -300,8 +300,7 @@ static auto ConversionKindFor(Context& context, SemIR::Inst pattern, auto form_id = context.entity_names() .Get(form_binding_pattern.entity_name_id) .form_id; - auto form_inst_id = context.constant_values().GetInstId(form_id); - auto form_inst = context.insts().Get(form_inst_id); + auto form_inst = context.insts().Get(form_id); switch (form_inst.kind()) { case SemIR::InitForm::Kind: @@ -320,9 +319,7 @@ static auto ConversionKindFor(Context& context, SemIR::Inst pattern, } } case CARBON_KIND(SemIR::FormParamPattern form_param_pattern): { - auto form_inst_id = - context.constant_values().GetInstId(form_param_pattern.form_id); - auto form_inst = context.insts().Get(form_inst_id); + auto form_inst = context.insts().Get(form_param_pattern.form_id); switch (form_inst.kind()) { case SemIR::InitForm::Kind: @@ -429,9 +426,7 @@ static auto ParamKindFor(Context& context, SemIR::Inst param_pattern, case SemIR::ValueParamPattern::Kind: return SemIR::ValueParam::Kind; case CARBON_KIND(SemIR::FormParamPattern form_param_pattern): { - auto form_inst_id = - context.constant_values().GetInstId(form_param_pattern.form_id); - auto form_inst = context.insts().Get(form_inst_id); + auto form_inst = context.insts().Get(form_param_pattern.form_id); switch (form_inst.kind()) { case SemIR::InitForm::Kind: case SemIR::RefForm::Kind: @@ -480,8 +475,7 @@ auto MatchContext::DoPreWork(State state, SemIR::AnyParamPattern param_pattern, case SemIR::FormParamPattern::Kind: { auto form_param_pattern = context_.insts().GetAs(entry.pattern_id); - if (!context_.constant_values().InstIs( - form_param_pattern.form_id)) { + if (!context_.insts().Is(form_param_pattern.form_id)) { break; } [[fallthrough]]; diff --git a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon index 8d612519b3bb..29e7405e234e 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon @@ -67,10 +67,10 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: name_scope50000001: {inst: inst50000011, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name2: inst50000014, name3: inst5000002A, name4: inst5000004E}} // CHECK:STDOUT: name_scope50000002: {inst: inst50000014, parent_scope: name_scope50000001, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: -// CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name50000001: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name50000002: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name50000003: {name: name4, parent_scope: name_scope50000001, index: -1, is_template: 0, is_unused: 0, form: constant} +// CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name50000001: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name50000002: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name50000003: {name: name4, parent_scope: name_scope50000001, index: -1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: cpp_global_vars: // CHECK:STDOUT: cpp_global_var50000000: {key: {entity_name_id: entity_name50000003}, clang_decl_id: clang_decl_id50000008} // CHECK:STDOUT: functions: diff --git a/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon b/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon index 068cacbe0763..d0813309c55c 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon @@ -139,7 +139,7 @@ fn B() { // CHECK:STDOUT: name_scope0: {inst: instF, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst70000011, name0: inst70000012}} // CHECK:STDOUT: name_scope70000001: {inst: inst70000011, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst70000017}} // CHECK:STDOUT: entity_names: -// CHECK:STDOUT: entity_name70000000: {name: name1, parent_scope: name_scope70000001, index: -1, is_template: 0, is_unused: 0, form: constant} +// CHECK:STDOUT: entity_name70000000: {name: name1, parent_scope: name_scope70000001, index: -1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function70000000: {name: name0, parent_scope: name_scope0, call_param_patterns_id: inst_block_empty, call_params_id: inst_block_empty, body: [inst_block70000006]} diff --git a/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon b/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon index 4d9c74aef516..25a3d117a5fe 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon @@ -158,7 +158,7 @@ fn B() { // CHECK:STDOUT: name_scope0: {inst: instF, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst70000011, name0: inst70000012}} // CHECK:STDOUT: name_scope70000001: {inst: inst70000011, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst70000017}} // CHECK:STDOUT: entity_names: -// CHECK:STDOUT: entity_name70000000: {name: name1, parent_scope: name_scope70000001, index: -1, is_template: 0, is_unused: 0, form: constant} +// CHECK:STDOUT: entity_name70000000: {name: name1, parent_scope: name_scope70000001, index: -1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function70000000: {name: name0, parent_scope: name_scope0, call_param_patterns_id: inst_block_empty, call_params_id: inst_block_empty, body: [inst_block70000006]} diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon index 596f0faba9cc..9f0d047fdf3c 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -271,70 +271,70 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: name_scope7800000C: {inst: inst780000DB, parent_scope: name_scope78000001, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: name_scope7800000D: {inst: inst7800011F, parent_scope: name_scope78000001, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: -// CHECK:STDOUT: entity_name78000000: {name: name(PeriodSelf), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000001: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000002: {name: name2, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000003: {name: name3, parent_scope: name_scope78000001, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000004: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000005: {name: name4, parent_scope: name_scope78000003, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000006: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000007: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000008: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000009: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800000A: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800000B: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800000C: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800000D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800000E: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800000F: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000010: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000011: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000012: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000013: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000014: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000015: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000016: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000017: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000018: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000019: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800001A: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800001B: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800001C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800001D: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800001E: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800001F: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000020: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000021: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000022: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000023: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000024: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000025: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000026: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000027: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000028: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000029: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800002A: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800002B: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800002C: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800002D: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800002E: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800002F: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000030: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000031: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000032: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000033: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000034: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000035: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000036: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000037: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000038: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name78000039: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800003A: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800003B: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800003C: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800003D: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800003E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: constant} -// CHECK:STDOUT: entity_name7800003F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: constant} +// CHECK:STDOUT: entity_name78000000: {name: name(PeriodSelf), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000001: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000002: {name: name2, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000003: {name: name3, parent_scope: name_scope78000001, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000004: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000005: {name: name4, parent_scope: name_scope78000003, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000006: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000007: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000008: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000009: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000A: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000B: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000C: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000E: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000F: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000010: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000011: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000012: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000013: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000014: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000015: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000016: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000017: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000018: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000019: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001A: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001B: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001D: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001E: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001F: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000020: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000021: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000022: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000023: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000024: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000025: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000026: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000027: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000028: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000029: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002A: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002B: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002C: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002D: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002E: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002F: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000030: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000031: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000032: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000033: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000034: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000035: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000036: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000037: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000038: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000039: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800003A: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800003B: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800003C: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800003D: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800003E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800003F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function78000000: {name: name0, parent_scope: name_scope0, call_param_patterns_id: inst_block78000011, call_params_id: inst_block78000012, return_type_inst_id: inst78000030, return_form_inst_id: inst78000032, return_patterns_id: inst_block78000010, body: [inst_block78000019]} diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon index 942f664a8aea..c15a716beb20 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon @@ -31,7 +31,7 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: name_scopes: // CHECK:STDOUT: name_scope0: {inst: instF, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst5000002A}} // CHECK:STDOUT: entity_names: -// CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: constant} +// CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function50000000: {name: name0, parent_scope: name_scope0, call_param_patterns_id: inst_block5000000C, call_params_id: inst_block5000000D, return_type_inst_id: inst50000020, return_form_inst_id: inst50000021, return_patterns_id: inst_block5000000B, body: [inst_block50000010]} diff --git a/toolchain/check/thunk.cpp b/toolchain/check/thunk.cpp index 7c106dcf6111..e17f6e6ac704 100644 --- a/toolchain/check/thunk.cpp +++ b/toolchain/check/thunk.cpp @@ -74,9 +74,9 @@ static auto CloneBindingPattern(Context& context, SemIR::InstId pattern_id, phase = entity_name.is_template ? BindingPhase::Template : BindingPhase::Symbolic; } - pattern.entity_name_id = AddBindingEntityName( - context, entity_name.name_id, /*form_id=*/SemIR::ConstantId::None, - entity_name.is_unused, phase); + pattern.entity_name_id = AddBindingEntityName(context, entity_name.name_id, + /*form_id=*/SemIR::InstId::None, + entity_name.is_unused, phase); if (pattern.kind == SemIR::WrapperBindingPattern::Kind) { auto subpattern = context.insts().GetAs( pattern.subpattern_id); diff --git a/toolchain/lower/file_context.cpp b/toolchain/lower/file_context.cpp index 8f067344f3c1..a71456265287 100644 --- a/toolchain/lower/file_context.cpp +++ b/toolchain/lower/file_context.cpp @@ -683,10 +683,7 @@ auto FileContext::FunctionTypeInfoBuilder::TryHandleParameter( // corresponds to its form. if (auto form_param_pattern = param_pattern.TryAs()) { - 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(); + auto form_kind = sem_ir.insts().Get(form_param_pattern->form_id).kind(); switch (form_kind) { case SemIR::InitForm::Kind: param_kind = SemIR::VarParamPattern::Kind; diff --git a/toolchain/sem_ir/entity_name.h b/toolchain/sem_ir/entity_name.h index dcbb1484d853..94b2ddc35fbf 100644 --- a/toolchain/sem_ir/entity_name.h +++ b/toolchain/sem_ir/entity_name.h @@ -64,7 +64,7 @@ struct EntityName : public Printable { // // TODO: Unify this with the previous three fields, which also represent form // information. - ConstantId form_id = ConstantId::None; + InstId form_id = InstId::None; }; // Value store for EntityName. In addition to the regular ValueStore diff --git a/toolchain/sem_ir/expr_info.cpp b/toolchain/sem_ir/expr_info.cpp index 26533f038aa8..c6932e78e2e3 100644 --- a/toolchain/sem_ir/expr_info.cpp +++ b/toolchain/sem_ir/expr_info.cpp @@ -95,11 +95,7 @@ static auto GetExprCategoryImpl(const File* ir, InstId inst_id) } } else if constexpr (std::same_as) { auto form_id = ir->entity_names().Get(inst.entity_name_id).form_id; - if (form_id.is_symbolic()) { - return ExprCategory::Dependent; - } - auto form_inst_id = ir->constant_values().GetInstId(form_id); - auto form_inst = ir->insts().Get(form_inst_id); + auto form_inst = ir->insts().Get(form_id); CARBON_KIND_SWITCH(form_inst) { case InitForm::Kind: // A `var` binding pattern produces a `ref` binding. diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index 42f01edfd1e3..3fe3748c9a93 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -800,7 +800,7 @@ struct FormParamPattern { TypeId type_id; NameId pretty_name_id; - ConstantId form_id; + InstId form_id; }; // The type `Core.Form`.