From efb5d6d25a493d8a356b97633a380e2f03c1b877 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 9 Oct 2024 12:03:15 -0700 Subject: [PATCH] Assign locations to instructions in a generic eval block. (#4393) The locations point to the first instruction in the generic that needed the relevant constant value or type. For now, this must makes the formatted SemIR a bit more useful, but in the future it will also provide locations for diagnostics caused by monomorphization failure. --- toolchain/check/generic.cpp | 21 +- .../check/testdata/array/generic_empty.carbon | 26 +- .../builtins/int/make_type_signed.carbon | 40 +-- .../builtins/int/make_type_unsigned.carbon | 40 +-- .../testdata/class/fail_addr_not_self.carbon | 10 +- .../testdata/class/fail_generic_method.carbon | 44 +-- .../testdata/class/fail_self_param.carbon | 24 +- .../check/testdata/class/generic/basic.carbon | 94 +++--- .../check/testdata/class/generic/call.carbon | 210 ++++++------ .../check/testdata/class/generic/field.carbon | 136 ++++---- .../testdata/class/generic/import.carbon | 56 ++-- .../check/testdata/class/generic/init.carbon | 168 +++++----- .../class/generic/member_access.carbon | 190 +++++------ .../class/generic/member_inline.carbon | 86 ++--- .../class/generic/member_out_of_line.carbon | 210 ++++++------ .../class/generic/method_deduce.carbon | 76 ++--- .../testdata/class/generic/redeclare.carbon | 98 +++--- .../check/testdata/class/generic/self.carbon | 68 ++-- .../testdata/class/generic_method.carbon | 54 +-- .../class/no_prelude/generic_vs_params.carbon | 50 +-- .../class/no_prelude/syntactic_merge.carbon | 136 ++++---- .../class/syntactic_merge_literal.carbon | 44 +-- toolchain/check/testdata/deduce/array.carbon | 132 ++++---- .../check/testdata/deduce/generic_type.carbon | 238 ++++++------- .../check/testdata/deduce/int_float.carbon | 48 +-- toolchain/check/testdata/deduce/tuple.carbon | 138 ++++---- .../testdata/deduce/type_operator.carbon | 138 ++++---- .../check/testdata/eval/fail_symbolic.carbon | 12 +- toolchain/check/testdata/eval/symbolic.carbon | 52 +-- .../no_prelude/syntactic_merge.carbon | 20 +- .../testdata/function/generic/deduce.carbon | 234 ++++++------- .../generic/fail_todo_param_in_type.carbon | 12 +- .../function/generic/no_prelude/call.carbon | 198 +++++------ .../fail_type_param_mismatch.carbon | 38 +-- .../generic/no_prelude/forward_decl.carbon | 10 +- .../no_prelude/indirect_generic_type.carbon | 42 +-- .../generic/no_prelude/type_param.carbon | 32 +- .../no_prelude/type_param_scope.carbon | 30 +- .../function/generic/redeclare.carbon | 188 +++++------ .../function/generic/return_slot.carbon | 24 +- .../impl/fail_extend_impl_forall.carbon | 74 ++-- .../impl/fail_impl_bad_assoc_fn.carbon | 56 ++-- .../check/testdata/impl/impl_forall.carbon | 26 +- .../check/testdata/impl/lookup/generic.carbon | 316 +++++++++--------- .../impl/lookup/no_prelude/impl_forall.carbon | 256 +++++++------- .../no_prelude/generic_redeclaration.carbon | 126 +++---- .../impl/no_prelude/import_generic.carbon | 66 ++-- .../impl/no_prelude/interface_args.carbon | 68 ++-- .../impl/no_prelude/self_in_signature.carbon | 44 +-- ..._todo_define_default_fn_out_of_line.carbon | 20 +- .../no_prelude/as_type_of_type.carbon | 20 +- .../no_prelude/assoc_const_in_generic.carbon | 74 ++-- .../fail_add_member_outside_definition.carbon | 6 +- .../fail_generic_redeclaration.carbon | 44 +-- .../no_prelude/fail_todo_facet_lookup.carbon | 36 +- .../fail_todo_generic_default_fn.carbon | 46 +-- .../interface/no_prelude/generic.carbon | 130 +++---- .../generic_binding_after_assoc_const.carbon | 20 +- .../no_prelude/generic_import.carbon | 26 +- .../no_prelude/generic_vs_params.carbon | 50 +-- .../no_prelude/syntactic_merge.carbon | 232 ++++++------- .../testdata/let/compile_time_bindings.carbon | 18 +- .../testdata/namespace/fail_params.carbon | 8 +- .../operators/overloaded/implicit_as.carbon | 18 +- .../no_prelude/fail_export_name_params.carbon | 16 +- toolchain/check/testdata/struct/import.carbon | 10 +- toolchain/check/testdata/tuple/import.carbon | 10 +- .../testdata/where_expr/constraints.carbon | 100 +++--- .../testdata/where_expr/designator.carbon | 40 +-- .../testdata/where_expr/fail_not_facet.carbon | 10 +- 70 files changed, 2719 insertions(+), 2714 deletions(-) diff --git a/toolchain/check/generic.cpp b/toolchain/check/generic.cpp index 8787c9562544..a91177ed8134 100644 --- a/toolchain/check/generic.cpp +++ b/toolchain/check/generic.cpp @@ -9,6 +9,7 @@ #include "toolchain/check/generic_region_stack.h" #include "toolchain/check/subst.h" #include "toolchain/sem_ir/ids.h" +#include "toolchain/sem_ir/inst.h" namespace Carbon::Check { @@ -59,11 +60,12 @@ class RebuildGenericConstantInEvalBlockCallbacks final public: RebuildGenericConstantInEvalBlockCallbacks( Context& context, SemIR::GenericId generic_id, - SemIR::GenericInstIndex::Region region, + SemIR::GenericInstIndex::Region region, SemIR::LocId loc_id, ConstantsInGenericMap& constants_in_generic) : context_(context), generic_id_(generic_id), region_(region), + loc_id_(loc_id), constants_in_generic_(constants_in_generic) {} // Check for instructions for which we already have a mapping into the eval @@ -121,10 +123,10 @@ class RebuildGenericConstantInEvalBlockCallbacks final // TODO: Add a function on `Context` to add the instruction without // inserting it into the dependent instructions list or computing a // constant value for it. - // TODO: Provide a location based on the location of the instruction - // that uses the constant. + // TODO: Is the location we pick here always appropriate for the new + // instruction? auto inst_id = context_.sem_ir().insts().AddInNoBlock( - SemIR::LocIdAndInst::NoLoc(new_inst)); + SemIR::LocIdAndInst::UncheckedLoc(loc_id_, new_inst)); auto const_id = AddGenericConstantInstToEvalBlock( context_, generic_id_, region_, const_inst_id, inst_id); context_.constant_values().Set(inst_id, const_id); @@ -137,6 +139,7 @@ class RebuildGenericConstantInEvalBlockCallbacks final Context& context_; SemIR::GenericId generic_id_; SemIR::GenericInstIndex::Region region_; + SemIR::LocId loc_id_; ConstantsInGenericMap& constants_in_generic_; }; } // namespace @@ -147,7 +150,7 @@ class RebuildGenericConstantInEvalBlockCallbacks final // type in each specific. static auto AddGenericTypeToEvalBlock( Context& context, SemIR::GenericId generic_id, - SemIR::GenericInstIndex::Region region, + SemIR::GenericInstIndex::Region region, SemIR::LocId loc_id, ConstantsInGenericMap& constants_in_generic, SemIR::TypeId type_id) -> SemIR::TypeId { // Substitute into the type's constant instruction and rebuild it in the eval @@ -155,7 +158,7 @@ static auto AddGenericTypeToEvalBlock( auto type_inst_id = SubstInst(context, context.types().GetInstId(type_id), RebuildGenericConstantInEvalBlockCallbacks( - context, generic_id, region, constants_in_generic)); + context, generic_id, region, loc_id, constants_in_generic)); return context.GetTypeIdForTypeInst(type_inst_id); } @@ -174,7 +177,8 @@ static auto AddGenericConstantToEvalBlock( auto new_inst_id = SubstInst(context, const_inst_id, RebuildGenericConstantInEvalBlockCallbacks( - context, generic_id, region, constants_in_generic)); + context, generic_id, region, + context.insts().GetLocId(inst_id), constants_in_generic)); CARBON_CHECK(new_inst_id != const_inst_id, "Did not apply any substitutions to symbolic constant {0}", context.insts().Get(const_inst_id)); @@ -227,7 +231,8 @@ static auto MakeGenericEvalBlock(Context& context, SemIR::GenericId generic_id, GenericRegionStack::DependencyKind::None) { auto inst = context.insts().Get(inst_id); auto type_id = AddGenericTypeToEvalBlock( - context, generic_id, region, constants_in_generic, inst.type_id()); + context, generic_id, region, context.insts().GetLocId(inst_id), + constants_in_generic, inst.type_id()); // TODO: Eventually, completeness requirements should be modeled as // constraints on the generic rather than properties of the type. For now, // require the transformed type to be complete if the original was. diff --git a/toolchain/check/testdata/array/generic_empty.carbon b/toolchain/check/testdata/array/generic_empty.carbon index 6de4e24527e2..fbda058c5865 100644 --- a/toolchain/check/testdata/array/generic_empty.carbon +++ b/toolchain/check/testdata/array/generic_empty.carbon @@ -49,33 +49,33 @@ fn G(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @G(%T.loc11_6.1: type) { +// CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = array_type constants.%.2, @G.%T.1 (%T) [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %array: @G.%.1 (%.3) = tuple_value () [symbolic = %array (constants.%array)] +// CHECK:STDOUT: %.loc13_17.2: type = array_type constants.%.2, @G.%T.loc11_6.2 (%T) [symbolic = %.loc13_17.2 (constants.%.3)] +// CHECK:STDOUT: %array: @G.%.loc13_17.2 (%.3) = tuple_value () [symbolic = %array (constants.%array)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc11: type) { +// CHECK:STDOUT: fn(%T.loc11_6.1: type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: %.loc13_16: i32 = int_literal 0 [template = constants.%.2] -// CHECK:STDOUT: %.loc13_17: type = array_type %.loc13_16, %T [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %arr.var: ref @G.%.1 (%.3) = var arr -// CHECK:STDOUT: %arr: ref @G.%.1 (%.3) = bind_name arr, %arr.var +// CHECK:STDOUT: %.loc13_17.1: type = array_type %.loc13_16, %T [symbolic = %.loc13_17.2 (constants.%.3)] +// CHECK:STDOUT: %arr.var: ref @G.%.loc13_17.2 (%.3) = var arr +// CHECK:STDOUT: %arr: ref @G.%.loc13_17.2 (%.3) = bind_name arr, %arr.var // CHECK:STDOUT: %.loc13_22.1: %.1 = tuple_literal () -// CHECK:STDOUT: %.loc13_22.2: init @G.%.1 (%.3) = array_init () to %arr.var [symbolic = %array (constants.%array)] -// CHECK:STDOUT: %.loc13_23: init @G.%.1 (%.3) = converted %.loc13_22.1, %.loc13_22.2 [symbolic = %array (constants.%array)] +// CHECK:STDOUT: %.loc13_22.2: init @G.%.loc13_17.2 (%.3) = array_init () to %arr.var [symbolic = %array (constants.%array)] +// CHECK:STDOUT: %.loc13_23: init @G.%.loc13_17.2 (%.3) = converted %.loc13_22.1, %.loc13_22.2 [symbolic = %array (constants.%array)] // CHECK:STDOUT: assign %arr.var, %.loc13_23 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/int/make_type_signed.carbon b/toolchain/check/testdata/builtins/int/make_type_signed.carbon index afe1ee442d94..123dea4e8beb 100644 --- a/toolchain/check/testdata/builtins/int/make_type_signed.carbon +++ b/toolchain/check/testdata/builtins/int/make_type_signed.carbon @@ -200,26 +200,26 @@ var m: Int(1000000000); // CHECK:STDOUT: } // CHECK:STDOUT: %Symbolic.decl: %Symbolic.type = fn_decl @Symbolic [template = constants.%Symbolic] { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 0 -// CHECK:STDOUT: %x.patt: @Symbolic.%.1 (%.6) = binding_pattern x +// CHECK:STDOUT: %x.patt: @Symbolic.%.loc14_28 (%.6) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc14_17.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc14_17.2: type = converted %int.make_type_32, %.loc14_17.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc14: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc14_13.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc14_13.2 (constants.%N)] // CHECK:STDOUT: %Int.ref.loc14_25: %Int.type = name_ref Int, imports.%import_ref.1 [template = constants.%Int] -// CHECK:STDOUT: %N.ref.loc14_29: i32 = name_ref N, %N.loc14 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %int.make_type_signed.loc14_28: init type = call %Int.ref.loc14_25(%N.ref.loc14_29) [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_30.1: type = value_of_initializer %int.make_type_signed.loc14_28 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_30.2: type = converted %int.make_type_signed.loc14_28, %.loc14_30.1 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %x.param: @Symbolic.%.1 (%.6) = param x, runtime_param0 -// CHECK:STDOUT: %x: @Symbolic.%.1 (%.6) = bind_name x, %x.param +// CHECK:STDOUT: %N.ref.loc14_29: i32 = name_ref N, %N.loc14_13.1 [symbolic = %N.loc14_13.2 (constants.%N)] +// CHECK:STDOUT: %int.make_type_signed.loc14_28: init type = call %Int.ref.loc14_25(%N.ref.loc14_29) [symbolic = %.loc14_28 (constants.%.6)] +// CHECK:STDOUT: %.loc14_30.1: type = value_of_initializer %int.make_type_signed.loc14_28 [symbolic = %.loc14_28 (constants.%.6)] +// CHECK:STDOUT: %.loc14_30.2: type = converted %int.make_type_signed.loc14_28, %.loc14_30.1 [symbolic = %.loc14_28 (constants.%.6)] +// CHECK:STDOUT: %x.param: @Symbolic.%.loc14_28 (%.6) = param x, runtime_param0 +// CHECK:STDOUT: %x: @Symbolic.%.loc14_28 (%.6) = bind_name x, %x.param // CHECK:STDOUT: %Int.ref.loc14_36: %Int.type = name_ref Int, imports.%import_ref.1 [template = constants.%Int] -// CHECK:STDOUT: %N.ref.loc14_40: i32 = name_ref N, %N.loc14 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %int.make_type_signed.loc14_39: init type = call %Int.ref.loc14_36(%N.ref.loc14_40) [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_41.1: type = value_of_initializer %int.make_type_signed.loc14_39 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_41.2: type = converted %int.make_type_signed.loc14_39, %.loc14_41.1 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %return: ref @Symbolic.%.1 (%.6) = var +// CHECK:STDOUT: %N.ref.loc14_40: i32 = name_ref N, %N.loc14_13.1 [symbolic = %N.loc14_13.2 (constants.%N)] +// CHECK:STDOUT: %int.make_type_signed.loc14_39: init type = call %Int.ref.loc14_36(%N.ref.loc14_40) [symbolic = %.loc14_28 (constants.%.6)] +// CHECK:STDOUT: %.loc14_41.1: type = value_of_initializer %int.make_type_signed.loc14_39 [symbolic = %.loc14_28 (constants.%.6)] +// CHECK:STDOUT: %.loc14_41.2: type = converted %int.make_type_signed.loc14_39, %.loc14_41.1 [symbolic = %.loc14_28 (constants.%.6)] +// CHECK:STDOUT: %return: ref @Symbolic.%.loc14_28 (%.6) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -239,22 +239,22 @@ var m: Int(1000000000); // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Symbolic(%N.loc14: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %.1: type = int_type signed, %N.1 [symbolic = %.1 (constants.%.6)] +// CHECK:STDOUT: generic fn @Symbolic(%N.loc14_13.1: i32) { +// CHECK:STDOUT: %N.loc14_13.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc14_13.2 (constants.%N)] +// CHECK:STDOUT: %.loc14_28: type = int_type signed, %N.loc14_13.2 [symbolic = %.loc14_28 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.loc14: i32, %x: @Symbolic.%.1 (%.6)) -> @Symbolic.%.1 (%.6) { +// CHECK:STDOUT: fn(%N.loc14_13.1: i32, %x: @Symbolic.%.loc14_28 (%.6)) -> @Symbolic.%.loc14_28 (%.6) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Symbolic.%.1 (%.6) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Symbolic.%.loc14_28 (%.6) = name_ref x, %x // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Symbolic(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %N.loc14_13.2 => constants.%N +// CHECK:STDOUT: %.loc14_28 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_zero_size.carbon diff --git a/toolchain/check/testdata/builtins/int/make_type_unsigned.carbon b/toolchain/check/testdata/builtins/int/make_type_unsigned.carbon index de4ad5ce4c4c..f2c175fc799b 100644 --- a/toolchain/check/testdata/builtins/int/make_type_unsigned.carbon +++ b/toolchain/check/testdata/builtins/int/make_type_unsigned.carbon @@ -200,26 +200,26 @@ var m: UInt(1000000000); // CHECK:STDOUT: } // CHECK:STDOUT: %Symbolic.decl: %Symbolic.type = fn_decl @Symbolic [template = constants.%Symbolic] { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 0 -// CHECK:STDOUT: %x.patt: @Symbolic.%.1 (%.6) = binding_pattern x +// CHECK:STDOUT: %x.patt: @Symbolic.%.loc14_29 (%.6) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc14_17.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc14_17.2: type = converted %int.make_type_32, %.loc14_17.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc14: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc14_13.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc14_13.2 (constants.%N)] // CHECK:STDOUT: %UInt.ref.loc14_25: %UInt.type = name_ref UInt, imports.%import_ref.1 [template = constants.%UInt] -// CHECK:STDOUT: %N.ref.loc14_30: i32 = name_ref N, %N.loc14 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %int.make_type_unsigned.loc14_29: init type = call %UInt.ref.loc14_25(%N.ref.loc14_30) [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_31.1: type = value_of_initializer %int.make_type_unsigned.loc14_29 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_31.2: type = converted %int.make_type_unsigned.loc14_29, %.loc14_31.1 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %x.param: @Symbolic.%.1 (%.6) = param x, runtime_param0 -// CHECK:STDOUT: %x: @Symbolic.%.1 (%.6) = bind_name x, %x.param +// CHECK:STDOUT: %N.ref.loc14_30: i32 = name_ref N, %N.loc14_13.1 [symbolic = %N.loc14_13.2 (constants.%N)] +// CHECK:STDOUT: %int.make_type_unsigned.loc14_29: init type = call %UInt.ref.loc14_25(%N.ref.loc14_30) [symbolic = %.loc14_29 (constants.%.6)] +// CHECK:STDOUT: %.loc14_31.1: type = value_of_initializer %int.make_type_unsigned.loc14_29 [symbolic = %.loc14_29 (constants.%.6)] +// CHECK:STDOUT: %.loc14_31.2: type = converted %int.make_type_unsigned.loc14_29, %.loc14_31.1 [symbolic = %.loc14_29 (constants.%.6)] +// CHECK:STDOUT: %x.param: @Symbolic.%.loc14_29 (%.6) = param x, runtime_param0 +// CHECK:STDOUT: %x: @Symbolic.%.loc14_29 (%.6) = bind_name x, %x.param // CHECK:STDOUT: %UInt.ref.loc14_37: %UInt.type = name_ref UInt, imports.%import_ref.1 [template = constants.%UInt] -// CHECK:STDOUT: %N.ref.loc14_42: i32 = name_ref N, %N.loc14 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %int.make_type_unsigned.loc14_41: init type = call %UInt.ref.loc14_37(%N.ref.loc14_42) [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_43.1: type = value_of_initializer %int.make_type_unsigned.loc14_41 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %.loc14_43.2: type = converted %int.make_type_unsigned.loc14_41, %.loc14_43.1 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %return: ref @Symbolic.%.1 (%.6) = var +// CHECK:STDOUT: %N.ref.loc14_42: i32 = name_ref N, %N.loc14_13.1 [symbolic = %N.loc14_13.2 (constants.%N)] +// CHECK:STDOUT: %int.make_type_unsigned.loc14_41: init type = call %UInt.ref.loc14_37(%N.ref.loc14_42) [symbolic = %.loc14_29 (constants.%.6)] +// CHECK:STDOUT: %.loc14_43.1: type = value_of_initializer %int.make_type_unsigned.loc14_41 [symbolic = %.loc14_29 (constants.%.6)] +// CHECK:STDOUT: %.loc14_43.2: type = converted %int.make_type_unsigned.loc14_41, %.loc14_43.1 [symbolic = %.loc14_29 (constants.%.6)] +// CHECK:STDOUT: %return: ref @Symbolic.%.loc14_29 (%.6) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -239,22 +239,22 @@ var m: UInt(1000000000); // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Symbolic(%N.loc14: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %.1: type = int_type unsigned, %N.1 [symbolic = %.1 (constants.%.6)] +// CHECK:STDOUT: generic fn @Symbolic(%N.loc14_13.1: i32) { +// CHECK:STDOUT: %N.loc14_13.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc14_13.2 (constants.%N)] +// CHECK:STDOUT: %.loc14_29: type = int_type unsigned, %N.loc14_13.2 [symbolic = %.loc14_29 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.loc14: i32, %x: @Symbolic.%.1 (%.6)) -> @Symbolic.%.1 (%.6) { +// CHECK:STDOUT: fn(%N.loc14_13.1: i32, %x: @Symbolic.%.loc14_29 (%.6)) -> @Symbolic.%.loc14_29 (%.6) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Symbolic.%.1 (%.6) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Symbolic.%.loc14_29 (%.6) = name_ref x, %x // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Symbolic(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %N.loc14_13.2 => constants.%N +// CHECK:STDOUT: %.loc14_29 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_zero_size.carbon diff --git a/toolchain/check/testdata/class/fail_addr_not_self.carbon b/toolchain/check/testdata/class/fail_addr_not_self.carbon index 6280ed865470..df2702dbb6b3 100644 --- a/toolchain/check/testdata/class/fail_addr_not_self.carbon +++ b/toolchain/check/testdata/class/fail_addr_not_self.carbon @@ -65,7 +65,7 @@ class Class { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [template = constants.%Class] // CHECK:STDOUT: %.loc16: type = ptr_type %Class [template = constants.%.1] // CHECK:STDOUT: %a.param: %.1 = param a, runtime_param -// CHECK:STDOUT: %a.loc16: %.1 = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc16_13.1: %.1 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc16_13.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %b.patt: %.1 = binding_pattern b @@ -83,15 +83,15 @@ class Class { // CHECK:STDOUT: .G = %G.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%a.loc16: %.1) { -// CHECK:STDOUT: %a.1: %.1 = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic fn @F(%a.loc16_13.1: %.1) { +// CHECK:STDOUT: %a.loc16_13.2: %.1 = bind_symbolic_name a, 0 [symbolic = %a.loc16_13.2 (constants.%a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%a.loc16: %.1](); +// CHECK:STDOUT: fn[%a.loc16_13.1: %.1](); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%b: %.1); // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc16_13.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_generic_method.carbon b/toolchain/check/testdata/class/fail_generic_method.carbon index 778558636d05..4ca01a75a2e3 100644 --- a/toolchain/check/testdata/class/fail_generic_method.carbon +++ b/toolchain/check/testdata/class/fail_generic_method.carbon @@ -76,7 +76,7 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.5] { // CHECK:STDOUT: %self.patt: = binding_pattern self @@ -86,7 +86,7 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %.loc32_14.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc32_14.2: type = converted %int.make_type_32, %.loc32_14.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc32: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc32_10.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc32_10.2 (constants.%N)] // CHECK:STDOUT: %Self.ref: = name_ref Self, [template = ] // CHECK:STDOUT: %self.param: = param self, runtime_param0 // CHECK:STDOUT: %self: = bind_name self, %self.param @@ -96,20 +96,20 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc11_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc12_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc11_13.2 (%T) [symbolic = %.loc12_8.2 (constants.%.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %.2: type = struct_type {.a: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %.loc14_1.2: type = struct_type {.a: @Class.%T.loc11_13.2 (%T)} [symbolic = %.loc14_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc14_1.3: = complete_type_witness @Class.%.loc14_1.2 (%.3) [symbolic = %.loc14_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12: @Class.%.1 (%.2) = field_decl a, element0 [template] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_13.1 [symbolic = %T.loc11_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_8.1: @Class.%.loc12_8.2 (%.2) = field_decl a, element0 [template] // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] { // CHECK:STDOUT: %self.patt: @F.%Class (%Class.2) = binding_pattern self // CHECK:STDOUT: %n.patt: @F.%T (%T) = binding_pattern n @@ -118,20 +118,20 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc13 [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %self.param: @F.%Class (%Class.2) = param self, runtime_param0 // CHECK:STDOUT: %self: @F.%Class (%Class.2) = bind_name self, %self.param -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %n.param: @F.%T (%T) = param n, runtime_param1 // CHECK:STDOUT: %n: @F.%T (%T) = bind_name n, %n.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc14: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %.loc14_1.1: = complete_type_witness %.3 [symbolic = %.loc14_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 -// CHECK:STDOUT: .a = %.loc12 +// CHECK:STDOUT: .a = %.loc12_8.1 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc11: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc11_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: @@ -140,8 +140,8 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%N.loc32: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic fn @.1(%N.loc32_10.1: i32) { +// CHECK:STDOUT: %N.loc32_10.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc32_10.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -152,11 +152,11 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@F.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { @@ -164,11 +164,11 @@ fn Class(N:! i32).F[self: Self](n: T) {} // CHECK:STDOUT: %Class => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc11_13.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc32_10.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/fail_self_param.carbon b/toolchain/check/testdata/class/fail_self_param.carbon index cb511c34eb9d..20fbc05f4a41 100644 --- a/toolchain/check/testdata/class/fail_self_param.carbon +++ b/toolchain/check/testdata/class/fail_self_param.carbon @@ -52,13 +52,13 @@ var v: C(0); // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [template = constants.%C.1] { // CHECK:STDOUT: %self.patt: type = symbolic_binding_pattern self, 0 -// CHECK:STDOUT: %x.patt: @C.%self.1 (%self) = symbolic_binding_pattern x, 1 +// CHECK:STDOUT: %x.patt: @C.%self.loc14_9.2 (%self) = symbolic_binding_pattern x, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: type = param self, runtime_param -// CHECK:STDOUT: %self.loc14: type = bind_symbolic_name self, 0, %self.param [symbolic = %self.1 (constants.%self)] -// CHECK:STDOUT: %self.ref: type = name_ref self, %self.loc14 [symbolic = %self.1 (constants.%self)] -// CHECK:STDOUT: %x.param: @C.%self.1 (%self) = param x, runtime_param -// CHECK:STDOUT: %x.loc14: @C.%self.1 (%self) = bind_symbolic_name x, 1, %x.param [symbolic = %x.1 (constants.%x)] +// CHECK:STDOUT: %self.loc14_9.1: type = bind_symbolic_name self, 0, %self.param [symbolic = %self.loc14_9.2 (constants.%self)] +// CHECK:STDOUT: %self.ref: type = name_ref self, %self.loc14_9.1 [symbolic = %self.loc14_9.2 (constants.%self)] +// CHECK:STDOUT: %x.param: @C.%self.loc14_9.2 (%self) = param x, runtime_param +// CHECK:STDOUT: %x.loc14_22.1: @C.%self.loc14_9.2 (%self) = bind_symbolic_name x, 1, %x.param [symbolic = %x.loc14_22.2 (constants.%x)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref: %C.type = name_ref C, %C.decl [template = constants.%C.1] // CHECK:STDOUT: %.loc15: i32 = int_literal 0 [template = constants.%.4] @@ -67,9 +67,9 @@ var v: C(0); // CHECK:STDOUT: %v: ref %C.3 = bind_name v, %v.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%self.loc14: type, %x.loc14: @C.%self.1 (%self)) { -// CHECK:STDOUT: %self.1: type = bind_symbolic_name self, 0 [symbolic = %self.1 (constants.%self)] -// CHECK:STDOUT: %x.1: %self = bind_symbolic_name x, 1 [symbolic = %x.1 (constants.%x)] +// CHECK:STDOUT: generic class @C(%self.loc14_9.1: type, %x.loc14_22.1: @C.%self.loc14_9.2 (%self)) { +// CHECK:STDOUT: %self.loc14_9.2: type = bind_symbolic_name self, 0 [symbolic = %self.loc14_9.2 (constants.%self)] +// CHECK:STDOUT: %x.loc14_22.2: %self = bind_symbolic_name x, 1 [symbolic = %x.loc14_22.2 (constants.%x)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -82,13 +82,13 @@ var v: C(0); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%self, constants.%x) { -// CHECK:STDOUT: %self.1 => constants.%self -// CHECK:STDOUT: %x.1 => constants.%x +// CHECK:STDOUT: %self.loc14_9.2 => constants.%self +// CHECK:STDOUT: %x.loc14_22.2 => constants.%x // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(i32, constants.%.4) { -// CHECK:STDOUT: %self.1 => i32 -// CHECK:STDOUT: %x.1 => constants.%.4 +// CHECK:STDOUT: %self.loc14_9.2 => i32 +// CHECK:STDOUT: %x.loc14_22.2 => constants.%.4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index 4677aeb95222..e818ffb06fd4 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -70,42 +70,42 @@ class Declaration(T:! type); // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Declaration.decl: %Declaration.type = class_decl @Declaration [template = constants.%Declaration.1] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc24: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc24_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc24_19.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc11_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.1) [symbolic = %GetAddr.type (constants.%GetAddr.type)] +// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc11_13.2) [symbolic = %GetAddr.type (constants.%GetAddr.type)] // CHECK:STDOUT: %GetAddr: @Class.%GetAddr.type (%GetAddr.type) = struct_value () [symbolic = %GetAddr (constants.%GetAddr)] -// CHECK:STDOUT: %GetValue.type: type = fn_type @GetValue, @Class(%T.1) [symbolic = %GetValue.type (constants.%GetValue.type)] +// CHECK:STDOUT: %GetValue.type: type = fn_type @GetValue, @Class(%T.loc11_13.2) [symbolic = %GetValue.type (constants.%GetValue.type)] // CHECK:STDOUT: %GetValue: @Class.%GetValue.type (%GetValue.type) = struct_value () [symbolic = %GetValue (constants.%GetValue)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %.2: type = struct_type {.k: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.5)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.5) [symbolic = %.3 (constants.%.6)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc21_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc11_13.2 (%T) [symbolic = %.loc21_8.2 (constants.%.4)] +// CHECK:STDOUT: %.loc22_1.2: type = struct_type {.k: @Class.%T.loc11_13.2 (%T)} [symbolic = %.loc22_1.2 (constants.%.5)] +// CHECK:STDOUT: %.loc22_1.3: = complete_type_witness @Class.%.loc22_1.2 (%.5) [symbolic = %.loc22_1.3 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %GetAddr.decl: @Class.%GetAddr.type (%GetAddr.type) = fn_decl @GetAddr [symbolic = @Class.%GetAddr (constants.%GetAddr)] { -// CHECK:STDOUT: %self.patt: @GetAddr.%.1 (%.2) = binding_pattern self +// CHECK:STDOUT: %self.patt: @GetAddr.%.loc12_29.1 (%.2) = binding_pattern self // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc12_25: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc12_25 [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.loc12_29: type = ptr_type %Class.2 [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %self.param: @GetAddr.%.1 (%.2) = param self, runtime_param0 -// CHECK:STDOUT: %self: @GetAddr.%.1 (%.2) = bind_name self, %self.param -// CHECK:STDOUT: %.loc12_14: @GetAddr.%.1 (%.2) = addr_pattern %self -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %.loc12_38: type = ptr_type %T [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %return: ref @GetAddr.%.2 (%.3) = var +// CHECK:STDOUT: %.loc12_29.2: type = ptr_type %Class.2 [symbolic = %.loc12_29.1 (constants.%.2)] +// CHECK:STDOUT: %self.param: @GetAddr.%.loc12_29.1 (%.2) = param self, runtime_param0 +// CHECK:STDOUT: %self: @GetAddr.%.loc12_29.1 (%.2) = bind_name self, %self.param +// CHECK:STDOUT: %.loc12_14: @GetAddr.%.loc12_29.1 (%.2) = addr_pattern %self +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %.loc12_38.2: type = ptr_type %T [symbolic = %.loc12_38.1 (constants.%.3)] +// CHECK:STDOUT: %return: ref @GetAddr.%.loc12_38.1 (%.3) = var // CHECK:STDOUT: } // CHECK:STDOUT: %GetValue.decl: @Class.%GetValue.type (%GetValue.type) = fn_decl @GetValue [symbolic = @Class.%GetValue (constants.%GetValue)] { // CHECK:STDOUT: %self.patt: @GetValue.%Class (%Class.2) = binding_pattern self @@ -114,58 +114,58 @@ class Declaration(T:! type); // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc17 [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %self.param: @GetValue.%Class (%Class.2) = param self, runtime_param0 // CHECK:STDOUT: %self: @GetValue.%Class (%Class.2) = bind_name self, %self.param -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return: ref @GetValue.%T (%T) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc21: @Class.%.1 (%.4) = field_decl k, element0 [template] -// CHECK:STDOUT: %.loc22: = complete_type_witness %.5 [symbolic = %.3 (constants.%.6)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_13.1 [symbolic = %T.loc11_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc21_8.1: @Class.%.loc21_8.2 (%.4) = field_decl k, element0 [template] +// CHECK:STDOUT: %.loc22_1.1: = complete_type_witness %.5 [symbolic = %.loc22_1.3 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 // CHECK:STDOUT: .GetAddr = %GetAddr.decl // CHECK:STDOUT: .GetValue = %GetValue.decl -// CHECK:STDOUT: .k = %.loc21 +// CHECK:STDOUT: .k = %.loc21_8.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Declaration(%T.loc24: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Declaration(%T.loc24_19.1: type) { +// CHECK:STDOUT: %T.loc24_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc24_19.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc11: type) { +// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc11_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = ptr_type @GetAddr.%Class (%Class.2) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = ptr_type @GetAddr.%T (%T) [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc12_29.1: type = ptr_type @GetAddr.%Class (%Class.2) [symbolic = %.loc12_29.1 (constants.%.2)] +// CHECK:STDOUT: %.loc12_38.1: type = ptr_type @GetAddr.%T (%T) [symbolic = %.loc12_38.1 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.3: type = unbound_element_type @GetAddr.%Class (%Class.2), @GetAddr.%T (%T) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %.loc13_17.3: type = unbound_element_type @GetAddr.%Class (%Class.2), @GetAddr.%T (%T) [symbolic = %.loc13_17.3 (constants.%.4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[addr %self: @GetAddr.%.1 (%.2)]() -> @GetAddr.%.2 (%.3) { +// CHECK:STDOUT: fn[addr %self: @GetAddr.%.loc12_29.1 (%.2)]() -> @GetAddr.%.loc12_38.1 (%.3) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @GetAddr.%.1 (%.2) = name_ref self, %self +// CHECK:STDOUT: %self.ref: @GetAddr.%.loc12_29.1 (%.2) = name_ref self, %self // CHECK:STDOUT: %.loc13_17.1: ref @GetAddr.%Class (%Class.2) = deref %self.ref -// CHECK:STDOUT: %k.ref: @GetAddr.%.3 (%.4) = name_ref k, @Class.%.loc21 [template = @Class.%.loc21] +// CHECK:STDOUT: %k.ref: @GetAddr.%.loc13_17.3 (%.4) = name_ref k, @Class.%.loc21_8.1 [template = @Class.%.loc21_8.1] // CHECK:STDOUT: %.loc13_17.2: ref @GetAddr.%T (%T) = class_element_access %.loc13_17.1, element0 -// CHECK:STDOUT: %.loc13_12: @GetAddr.%.2 (%.3) = addr_of %.loc13_17.2 +// CHECK:STDOUT: %.loc13_12: @GetAddr.%.loc12_38.1 (%.3) = addr_of %.loc13_17.2 // CHECK:STDOUT: return %.loc13_12 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetValue(@Class.%T.loc11: type) { +// CHECK:STDOUT: generic fn @GetValue(@Class.%T.loc11_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = unbound_element_type @GetValue.%Class (%Class.2), @GetValue.%T (%T) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc18_16.3: type = unbound_element_type @GetValue.%Class (%Class.2), @GetValue.%T (%T) [symbolic = %.loc18_16.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self: @GetValue.%Class (%Class.2)]() -> @GetValue.%T (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @GetValue.%Class (%Class.2) = name_ref self, %self -// CHECK:STDOUT: %k.ref: @GetValue.%.1 (%.4) = name_ref k, @Class.%.loc21 [template = @Class.%.loc21] +// CHECK:STDOUT: %k.ref: @GetValue.%.loc18_16.3 (%.4) = name_ref k, @Class.%.loc21_8.1 [template = @Class.%.loc21_8.1] // CHECK:STDOUT: %.loc18_16.1: ref @GetValue.%T (%T) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc18_16.2: @GetValue.%T (%T) = bind_value %.loc18_16.1 // CHECK:STDOUT: return %.loc18_16.2 @@ -173,7 +173,7 @@ class Declaration(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type @@ -181,24 +181,24 @@ class Declaration(T:! type); // CHECK:STDOUT: %GetValue.type => constants.%GetValue.type // CHECK:STDOUT: %GetValue => constants.%GetValue // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.4 -// CHECK:STDOUT: %.2 => constants.%.5 -// CHECK:STDOUT: %.3 => constants.%.6 +// CHECK:STDOUT: %.loc21_8.2 => constants.%.4 +// CHECK:STDOUT: %.loc22_1.2 => constants.%.5 +// CHECK:STDOUT: %.loc22_1.3 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@GetAddr.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GetAddr(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 +// CHECK:STDOUT: %.loc12_29.1 => constants.%.2 +// CHECK:STDOUT: %.loc12_38.1 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@GetValue.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GetValue(constants.%T) { @@ -206,11 +206,11 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc11_13.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Declaration(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc24_19.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/call.carbon b/toolchain/check/testdata/class/generic/call.carbon index 8f1f6743cc95..6f8e064a843f 100644 --- a/toolchain/check/testdata/class/generic/call.carbon +++ b/toolchain/check/testdata/class/generic/call.carbon @@ -134,12 +134,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc4: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.ref.loc6: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] @@ -159,9 +159,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %b: ref %Class.4 = bind_name b, %b.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type, %N.loc4: i32) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: i32) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.2: i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -176,20 +176,20 @@ class Outer(T:! type) { // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%.4, constants.%.5) { -// CHECK:STDOUT: %T.1 => constants.%.4 -// CHECK:STDOUT: %N.1 => constants.%.5 +// CHECK:STDOUT: %T.loc4_13.2 => constants.%.4 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%.5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%.1, constants.%.7) { -// CHECK:STDOUT: %T.1 => constants.%.1 -// CHECK:STDOUT: %N.1 => constants.%.7 +// CHECK:STDOUT: %T.loc4_13.2 => constants.%.1 +// CHECK:STDOUT: %N.loc4_23.2 => constants.%.7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -237,12 +237,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc4: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] @@ -253,9 +253,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %a: ref = bind_name a, %a.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type, %N.loc4: i32) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: i32) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.2: i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -270,8 +270,8 @@ class Outer(T:! type) { // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_too_many.carbon @@ -319,12 +319,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc4: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] @@ -337,9 +337,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %a: ref = bind_name a, %a.var // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type, %N.loc4: i32) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: i32) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.2: i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -354,8 +354,8 @@ class Outer(T:! type) { // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_conversion.carbon @@ -425,12 +425,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc4: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1] // CHECK:STDOUT: %.loc15_14: i32 = int_literal 5 [template = constants.%.4] @@ -465,9 +465,9 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type, %N.loc4: i32) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type, %N.loc4_23.1: i32) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.2: i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -490,8 +490,8 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %N.loc4_23.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -588,15 +588,15 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc2: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc2_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc2_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Outer(%T.loc2: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Outer(%T.loc2_13.1: type) { +// CHECK:STDOUT: %T.loc2_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.1) [symbolic = %Inner.type (constants.%Inner.type.1)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc2_13.2) [symbolic = %Inner.type (constants.%Inner.type.1)] // CHECK:STDOUT: %Inner: @Outer.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner (constants.%Inner.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -604,7 +604,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc3: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc3_15.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc3_15.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc17: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -614,46 +614,46 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc2: type, %U.loc3: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc2_13.1: type, %U.loc3_15.1: type) { +// CHECK:STDOUT: %U.loc3_15.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc3_15.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %A.type: type = fn_type @A, @Inner(%T, %U.1) [symbolic = %A.type (constants.%A.type.1)] +// CHECK:STDOUT: %A.type: type = fn_type @A, @Inner(%T, %U.loc3_15.2) [symbolic = %A.type (constants.%A.type.1)] // CHECK:STDOUT: %A: @Inner.%A.type (%A.type.1) = struct_value () [symbolic = %A (constants.%A.1)] -// CHECK:STDOUT: %B.type: type = fn_type @B, @Inner(%T, %U.1) [symbolic = %B.type (constants.%B.type.1)] +// CHECK:STDOUT: %B.type: type = fn_type @B, @Inner(%T, %U.loc3_15.2) [symbolic = %B.type (constants.%B.type.1)] // CHECK:STDOUT: %B: @Inner.%B.type (%B.type.1) = struct_value () [symbolic = %B (constants.%B.1)] -// CHECK:STDOUT: %C.type: type = fn_type @C, @Inner(%T, %U.1) [symbolic = %C.type (constants.%C.type.1)] +// CHECK:STDOUT: %C.type: type = fn_type @C, @Inner(%T, %U.loc3_15.2) [symbolic = %C.type (constants.%C.type.1)] // CHECK:STDOUT: %C: @Inner.%C.type (%C.type.1) = struct_value () [symbolic = %C (constants.%C.1)] -// CHECK:STDOUT: %D.type: type = fn_type @D, @Inner(%T, %U.1) [symbolic = %D.type (constants.%D.type.1)] +// CHECK:STDOUT: %D.type: type = fn_type @D, @Inner(%T, %U.loc3_15.2) [symbolic = %D.type (constants.%D.type.1)] // CHECK:STDOUT: %D: @Inner.%D.type (%D.type.1) = struct_value () [symbolic = %D (constants.%D.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %A.decl: @Inner.%A.type (%A.type.1) = fn_decl @A [symbolic = @Inner.%A (constants.%A.1)] {} { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [template = constants.%Outer.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Outer.loc4: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.1 (constants.%Outer.2)] -// CHECK:STDOUT: %return: ref @A.%Outer.1 (%Outer.2) = var +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Outer.loc4_20.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc4_20.1 (constants.%Outer.2)] +// CHECK:STDOUT: %return: ref @A.%Outer.loc4_20.1 (%Outer.2) = var // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: @Inner.%B.type (%B.type.1) = fn_decl @B [symbolic = @Inner.%B (constants.%B.1)] {} { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [template = constants.%Outer.1] -// CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Outer.loc7: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.1 (constants.%Outer.3)] -// CHECK:STDOUT: %return: ref @B.%Outer.1 (%Outer.3) = var +// CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.1 [symbolic = %U (constants.%U)] +// CHECK:STDOUT: %Outer.loc7_20.2: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.loc7_20.1 (constants.%Outer.3)] +// CHECK:STDOUT: %return: ref @B.%Outer.loc7_20.1 (%Outer.3) = var // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: @Inner.%C.type (%C.type.1) = fn_decl @C [symbolic = @Inner.%C (constants.%C.1)] {} { -// CHECK:STDOUT: %.loc10: @C.%Inner.type (%Inner.type.1) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %Inner.ref: @C.%Inner.type (%Inner.type.1) = name_ref Inner, %.loc10 [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.loc10: type = class_type @Inner, @Inner(constants.%T, constants.%T) [symbolic = %Inner.2 (constants.%Inner.3)] -// CHECK:STDOUT: %return: ref @C.%Inner.2 (%Inner.3) = var +// CHECK:STDOUT: %.loc10: @C.%Inner.type (%Inner.type.1) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.loc10_15 (constants.%Inner.1)] +// CHECK:STDOUT: %Inner.ref: @C.%Inner.type (%Inner.type.1) = name_ref Inner, %.loc10 [symbolic = %Inner.loc10_15 (constants.%Inner.1)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Inner.loc10_20.2: type = class_type @Inner, @Inner(constants.%T, constants.%T) [symbolic = %Inner.loc10_20.1 (constants.%Inner.3)] +// CHECK:STDOUT: %return: ref @C.%Inner.loc10_20.1 (%Inner.3) = var // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: @Inner.%D.type (%D.type.1) = fn_decl @D [symbolic = @Inner.%D (constants.%D.1)] {} { -// CHECK:STDOUT: %.loc13: @D.%Inner.type (%Inner.type.1) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %Inner.ref: @D.%Inner.type (%Inner.type.1) = name_ref Inner, %.loc13 [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Inner.loc13: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.2 (constants.%Inner.2)] -// CHECK:STDOUT: %return: ref @D.%Inner.2 (%Inner.2) = var +// CHECK:STDOUT: %.loc13: @D.%Inner.type (%Inner.type.1) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.loc13_15 (constants.%Inner.1)] +// CHECK:STDOUT: %Inner.ref: @D.%Inner.type (%Inner.type.1) = name_ref Inner, %.loc13 [symbolic = %Inner.loc13_15 (constants.%Inner.1)] +// CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.1 [symbolic = %U (constants.%U)] +// CHECK:STDOUT: %Inner.loc13_20.2: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_20.1 (constants.%Inner.2)] +// CHECK:STDOUT: %return: ref @D.%Inner.loc13_20.1 (%Inner.2) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.loc16: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -666,77 +666,77 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(@Outer.%T.loc2: type, @Inner.%U.loc3: type) { +// CHECK:STDOUT: generic fn @A(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Outer.1: type = class_type @Outer, @Outer(%T) [symbolic = %Outer.1 (constants.%Outer.2)] +// CHECK:STDOUT: %Outer.loc4_20.1: type = class_type @Outer, @Outer(%T) [symbolic = %Outer.loc4_20.1 (constants.%Outer.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %struct: @A.%Outer.1 (%Outer.2) = struct_value () [symbolic = %struct (constants.%struct.1)] +// CHECK:STDOUT: %struct: @A.%Outer.loc4_20.1 (%Outer.2) = struct_value () [symbolic = %struct (constants.%struct.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return: @A.%Outer.1 (%Outer.2) { +// CHECK:STDOUT: fn() -> %return: @A.%Outer.loc4_20.1 (%Outer.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc5_15.1: %.2 = struct_literal () -// CHECK:STDOUT: %.loc5_15.2: init @A.%Outer.1 (%Outer.2) = class_init (), %return [symbolic = %struct (constants.%struct.1)] -// CHECK:STDOUT: %.loc5_16: init @A.%Outer.1 (%Outer.2) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %struct (constants.%struct.1)] +// CHECK:STDOUT: %.loc5_15.2: init @A.%Outer.loc4_20.1 (%Outer.2) = class_init (), %return [symbolic = %struct (constants.%struct.1)] +// CHECK:STDOUT: %.loc5_16: init @A.%Outer.loc4_20.1 (%Outer.2) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %struct (constants.%struct.1)] // CHECK:STDOUT: return %.loc5_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @B(@Outer.%T.loc2: type, @Inner.%U.loc3: type) { +// CHECK:STDOUT: generic fn @B(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Outer.1: type = class_type @Outer, @Outer(%U) [symbolic = %Outer.1 (constants.%Outer.3)] +// CHECK:STDOUT: %Outer.loc7_20.1: type = class_type @Outer, @Outer(%U) [symbolic = %Outer.loc7_20.1 (constants.%Outer.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %struct: @B.%Outer.1 (%Outer.3) = struct_value () [symbolic = %struct (constants.%struct.2)] +// CHECK:STDOUT: %struct: @B.%Outer.loc7_20.1 (%Outer.3) = struct_value () [symbolic = %struct (constants.%struct.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return: @B.%Outer.1 (%Outer.3) { +// CHECK:STDOUT: fn() -> %return: @B.%Outer.loc7_20.1 (%Outer.3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc8_15.1: %.2 = struct_literal () -// CHECK:STDOUT: %.loc8_15.2: init @B.%Outer.1 (%Outer.3) = class_init (), %return [symbolic = %struct (constants.%struct.2)] -// CHECK:STDOUT: %.loc8_16: init @B.%Outer.1 (%Outer.3) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %struct (constants.%struct.2)] +// CHECK:STDOUT: %.loc8_15.2: init @B.%Outer.loc7_20.1 (%Outer.3) = class_init (), %return [symbolic = %struct (constants.%struct.2)] +// CHECK:STDOUT: %.loc8_16: init @B.%Outer.loc7_20.1 (%Outer.3) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %struct (constants.%struct.2)] // CHECK:STDOUT: return %.loc8_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @C(@Outer.%T.loc2: type, @Inner.%U.loc3: type) { +// CHECK:STDOUT: generic fn @C(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.1)] -// CHECK:STDOUT: %Inner.1: @C.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %Inner.2: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.2 (constants.%Inner.3)] +// CHECK:STDOUT: %Inner.loc10_15: @C.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner.loc10_15 (constants.%Inner.1)] +// CHECK:STDOUT: %Inner.loc10_20.1: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.loc10_20.1 (constants.%Inner.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %struct: @C.%Inner.2 (%Inner.3) = struct_value () [symbolic = %struct (constants.%struct.3)] +// CHECK:STDOUT: %struct: @C.%Inner.loc10_20.1 (%Inner.3) = struct_value () [symbolic = %struct (constants.%struct.3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return: @C.%Inner.2 (%Inner.3) { +// CHECK:STDOUT: fn() -> %return: @C.%Inner.loc10_20.1 (%Inner.3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc11_15.1: %.2 = struct_literal () -// CHECK:STDOUT: %.loc11_15.2: init @C.%Inner.2 (%Inner.3) = class_init (), %return [symbolic = %struct (constants.%struct.3)] -// CHECK:STDOUT: %.loc11_16: init @C.%Inner.2 (%Inner.3) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %struct (constants.%struct.3)] +// CHECK:STDOUT: %.loc11_15.2: init @C.%Inner.loc10_20.1 (%Inner.3) = class_init (), %return [symbolic = %struct (constants.%struct.3)] +// CHECK:STDOUT: %.loc11_16: init @C.%Inner.loc10_20.1 (%Inner.3) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %struct (constants.%struct.3)] // CHECK:STDOUT: return %.loc11_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @D(@Outer.%T.loc2: type, @Inner.%U.loc3: type) { +// CHECK:STDOUT: generic fn @D(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T) [symbolic = %Inner.type (constants.%Inner.type.1)] -// CHECK:STDOUT: %Inner.1: @D.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner.1 (constants.%Inner.1)] +// CHECK:STDOUT: %Inner.loc13_15: @D.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner.loc13_15 (constants.%Inner.1)] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Inner.2: type = class_type @Inner, @Inner(%T, %U) [symbolic = %Inner.2 (constants.%Inner.2)] +// CHECK:STDOUT: %Inner.loc13_20.1: type = class_type @Inner, @Inner(%T, %U) [symbolic = %Inner.loc13_20.1 (constants.%Inner.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %struct: @D.%Inner.2 (%Inner.2) = struct_value () [symbolic = %struct (constants.%struct.4)] +// CHECK:STDOUT: %struct: @D.%Inner.loc13_20.1 (%Inner.2) = struct_value () [symbolic = %struct (constants.%struct.4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return: @D.%Inner.2 (%Inner.2) { +// CHECK:STDOUT: fn() -> %return: @D.%Inner.loc13_20.1 (%Inner.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc14_15.1: %.2 = struct_literal () -// CHECK:STDOUT: %.loc14_15.2: init @D.%Inner.2 (%Inner.2) = class_init (), %return [symbolic = %struct (constants.%struct.4)] -// CHECK:STDOUT: %.loc14_16: init @D.%Inner.2 (%Inner.2) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %struct (constants.%struct.4)] +// CHECK:STDOUT: %.loc14_15.2: init @D.%Inner.loc13_20.1 (%Inner.2) = class_init (), %return [symbolic = %struct (constants.%struct.4)] +// CHECK:STDOUT: %.loc14_16: init @D.%Inner.loc13_20.1 (%Inner.2) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %struct (constants.%struct.4)] // CHECK:STDOUT: return %.loc14_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.1 @@ -744,7 +744,7 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc3_15.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T @@ -759,16 +759,16 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@A.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Outer.1 => constants.%Outer.2 +// CHECK:STDOUT: %Outer.loc4_20.1 => constants.%Outer.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%U +// CHECK:STDOUT: %T.loc2_13.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.2 @@ -776,16 +776,16 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@B.%U) { -// CHECK:STDOUT: %T.1 => constants.%U +// CHECK:STDOUT: %T.loc2_13.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B(constants.%T, constants.%U) { // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Outer.1 => constants.%Outer.3 +// CHECK:STDOUT: %Outer.loc7_20.1 => constants.%Outer.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%T) { -// CHECK:STDOUT: %U.1 => constants.%T +// CHECK:STDOUT: %U.loc3_15.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T @@ -800,41 +800,41 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@C.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(@C.%T, @C.%T) { -// CHECK:STDOUT: %U.1 => constants.%T +// CHECK:STDOUT: %U.loc3_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.1 -// CHECK:STDOUT: %Inner.1 => constants.%Inner.1 -// CHECK:STDOUT: %Inner.2 => constants.%Inner.3 +// CHECK:STDOUT: %Inner.loc10_15 => constants.%Inner.1 +// CHECK:STDOUT: %Inner.loc10_20.1 => constants.%Inner.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(@D.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(@D.%T, @D.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc3_15.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.1 -// CHECK:STDOUT: %Inner.1 => constants.%Inner.1 +// CHECK:STDOUT: %Inner.loc13_15 => constants.%Inner.1 // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Inner.2 => constants.%Inner.2 +// CHECK:STDOUT: %Inner.loc13_20.1 => constants.%Inner.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(@Inner.%T, @Inner.%U.1) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: specific @Inner(@Inner.%T, @Inner.%U.loc3_15.2) { +// CHECK:STDOUT: %U.loc3_15.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer(@Outer.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Outer(@Outer.%T.loc2_13.2) { +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index 05422f43f41a..4ac7a07ac6e4 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -85,7 +85,7 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %c.patt: %Class.3 = binding_pattern c @@ -104,51 +104,51 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %c.patt: @G.%Class.1 (%Class.2) = binding_pattern c +// CHECK:STDOUT: %c.patt: @G.%Class.loc19_24.2 (%Class.2) = binding_pattern c // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc19: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc19_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_6.2 (constants.%T)] // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %T.ref.loc19_25: type = name_ref T, %T.loc19 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class.loc19: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %c.param: @G.%Class.1 (%Class.2) = param c, runtime_param0 -// CHECK:STDOUT: %c: @G.%Class.1 (%Class.2) = bind_name c, %c.param -// CHECK:STDOUT: %T.ref.loc19_32: type = name_ref T, %T.loc19 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @G.%T.1 (%T) = var +// CHECK:STDOUT: %T.ref.loc19_25: type = name_ref T, %T.loc19_6.1 [symbolic = %T.loc19_6.2 (constants.%T)] +// CHECK:STDOUT: %Class.loc19_24.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_24.2 (constants.%Class.2)] +// CHECK:STDOUT: %c.param: @G.%Class.loc19_24.2 (%Class.2) = param c, runtime_param0 +// CHECK:STDOUT: %c: @G.%Class.loc19_24.2 (%Class.2) = bind_name c, %c.param +// CHECK:STDOUT: %T.ref.loc19_32: type = name_ref T, %T.loc19_6.1 [symbolic = %T.loc19_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @G.%T.loc19_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 -// CHECK:STDOUT: %c.patt: @H.%Class.1 (%Class.4) = binding_pattern c +// CHECK:STDOUT: %c.patt: @H.%Class.loc23_24.2 (%Class.4) = binding_pattern c // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc23: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc23_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc23_6.2 (constants.%U)] // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %U.ref.loc23_25: type = name_ref U, %U.loc23 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %Class.loc23: type = class_type @Class, @Class(constants.%U) [symbolic = %Class.1 (constants.%Class.4)] -// CHECK:STDOUT: %c.param: @H.%Class.1 (%Class.4) = param c, runtime_param0 -// CHECK:STDOUT: %c: @H.%Class.1 (%Class.4) = bind_name c, %c.param -// CHECK:STDOUT: %U.ref.loc23_32: type = name_ref U, %U.loc23 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %return: ref @H.%U.1 (%U) = var +// CHECK:STDOUT: %U.ref.loc23_25: type = name_ref U, %U.loc23_6.1 [symbolic = %U.loc23_6.2 (constants.%U)] +// CHECK:STDOUT: %Class.loc23_24.1: type = class_type @Class, @Class(constants.%U) [symbolic = %Class.loc23_24.2 (constants.%Class.4)] +// CHECK:STDOUT: %c.param: @H.%Class.loc23_24.2 (%Class.4) = param c, runtime_param0 +// CHECK:STDOUT: %c: @H.%Class.loc23_24.2 (%Class.4) = bind_name c, %c.param +// CHECK:STDOUT: %U.ref.loc23_32: type = name_ref U, %U.loc23_6.1 [symbolic = %U.loc23_6.2 (constants.%U)] +// CHECK:STDOUT: %return: ref @H.%U.loc23_6.2 (%U) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc11_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = struct_type {.x: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc12_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc11_13.2 (%T) [symbolic = %.loc12_8.2 (constants.%.2)] +// CHECK:STDOUT: %.loc13_1.2: type = struct_type {.x: @Class.%T.loc11_13.2 (%T)} [symbolic = %.loc13_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc13_1.3: = complete_type_witness @Class.%.loc13_1.2 (%.3) [symbolic = %.loc13_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12: @Class.%.1 (%.2) = field_decl x, element0 [template] -// CHECK:STDOUT: %.loc13: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_13.1 [symbolic = %T.loc11_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_8.1: @Class.%.loc12_8.2 (%.2) = field_decl x, element0 [template] +// CHECK:STDOUT: %.loc13_1.1: = complete_type_witness %.3 [symbolic = %.loc13_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 -// CHECK:STDOUT: .x = %.loc12 +// CHECK:STDOUT: .x = %.loc12_8.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -157,95 +157,95 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: fn @F(%c: %Class.3) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %Class.3 = name_ref c, %c -// CHECK:STDOUT: %x.ref: %.5 = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] +// CHECK:STDOUT: %x.ref: %.5 = name_ref x, @Class.%.loc12_8.1 [template = @Class.%.loc12_8.1] // CHECK:STDOUT: %.loc16_11.1: ref i32 = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc16_11.2: i32 = bind_value %.loc16_11.1 // CHECK:STDOUT: return %.loc16_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc19: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class.1: type = class_type @Class, @Class(%T.1) [symbolic = %Class.1 (constants.%Class.2)] +// CHECK:STDOUT: generic fn @G(%T.loc19_6.1: type) { +// CHECK:STDOUT: %T.loc19_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_6.2 (constants.%T)] +// CHECK:STDOUT: %Class.loc19_24.2: type = class_type @Class, @Class(%T.loc19_6.2) [symbolic = %Class.loc19_24.2 (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = unbound_element_type @G.%Class.1 (%Class.2), @G.%T.1 (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc20_11.3: type = unbound_element_type @G.%Class.loc19_24.2 (%Class.2), @G.%T.loc19_6.2 (%T) [symbolic = %.loc20_11.3 (constants.%.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc19: type, %c: @G.%Class.1 (%Class.2)) -> @G.%T.1 (%T) { +// CHECK:STDOUT: fn(%T.loc19_6.1: type, %c: @G.%Class.loc19_24.2 (%Class.2)) -> @G.%T.loc19_6.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @G.%Class.1 (%Class.2) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @G.%.1 (%.2) = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] -// CHECK:STDOUT: %.loc20_11.1: ref @G.%T.1 (%T) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc20_11.2: @G.%T.1 (%T) = bind_value %.loc20_11.1 +// CHECK:STDOUT: %c.ref: @G.%Class.loc19_24.2 (%Class.2) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @G.%.loc20_11.3 (%.2) = name_ref x, @Class.%.loc12_8.1 [template = @Class.%.loc12_8.1] +// CHECK:STDOUT: %.loc20_11.1: ref @G.%T.loc19_6.2 (%T) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc20_11.2: @G.%T.loc19_6.2 (%T) = bind_value %.loc20_11.1 // CHECK:STDOUT: return %.loc20_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @H(%U.loc23: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %Class.1: type = class_type @Class, @Class(%U.1) [symbolic = %Class.1 (constants.%Class.4)] +// CHECK:STDOUT: generic fn @H(%U.loc23_6.1: type) { +// CHECK:STDOUT: %U.loc23_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc23_6.2 (constants.%U)] +// CHECK:STDOUT: %Class.loc23_24.2: type = class_type @Class, @Class(%U.loc23_6.2) [symbolic = %Class.loc23_24.2 (constants.%Class.4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = unbound_element_type @H.%Class.1 (%Class.4), @H.%U.1 (%U) [symbolic = %.1 (constants.%.10)] +// CHECK:STDOUT: %.loc24_11.3: type = unbound_element_type @H.%Class.loc23_24.2 (%Class.4), @H.%U.loc23_6.2 (%U) [symbolic = %.loc24_11.3 (constants.%.10)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc23: type, %c: @H.%Class.1 (%Class.4)) -> @H.%U.1 (%U) { +// CHECK:STDOUT: fn(%U.loc23_6.1: type, %c: @H.%Class.loc23_24.2 (%Class.4)) -> @H.%U.loc23_6.2 (%U) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @H.%Class.1 (%Class.4) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @H.%.1 (%.10) = name_ref x, @Class.%.loc12 [template = @Class.%.loc12] -// CHECK:STDOUT: %.loc24_11.1: ref @H.%U.1 (%U) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc24_11.2: @H.%U.1 (%U) = bind_value %.loc24_11.1 +// CHECK:STDOUT: %c.ref: @H.%Class.loc23_24.2 (%Class.4) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @H.%.loc24_11.3 (%.10) = name_ref x, @Class.%.loc12_8.1 [template = @Class.%.loc12_8.1] +// CHECK:STDOUT: %.loc24_11.1: ref @H.%U.loc23_6.2 (%U) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc24_11.2: @H.%U.loc23_6.2 (%U) = bind_value %.loc24_11.1 // CHECK:STDOUT: return %.loc24_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 -// CHECK:STDOUT: %.3 => constants.%.4 +// CHECK:STDOUT: %.loc12_8.2 => constants.%.2 +// CHECK:STDOUT: %.loc13_1.2 => constants.%.3 +// CHECK:STDOUT: %.loc13_1.3 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc11_13.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(i32) { -// CHECK:STDOUT: %T.1 => i32 +// CHECK:STDOUT: %T.loc11_13.2 => i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.3 -// CHECK:STDOUT: %.1 => constants.%.5 -// CHECK:STDOUT: %.2 => constants.%.6 -// CHECK:STDOUT: %.3 => constants.%.7 +// CHECK:STDOUT: %.loc12_8.2 => constants.%.5 +// CHECK:STDOUT: %.loc13_1.2 => constants.%.6 +// CHECK:STDOUT: %.loc13_1.3 => constants.%.7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@G.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@G.%T.loc19_6.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %Class.1 => constants.%Class.2 +// CHECK:STDOUT: %T.loc19_6.2 => constants.%T +// CHECK:STDOUT: %Class.loc19_24.2 => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%U +// CHECK:STDOUT: %T.loc11_13.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.4 -// CHECK:STDOUT: %.1 => constants.%.10 -// CHECK:STDOUT: %.2 => constants.%.11 -// CHECK:STDOUT: %.3 => constants.%.12 +// CHECK:STDOUT: %.loc12_8.2 => constants.%.10 +// CHECK:STDOUT: %.loc13_1.2 => constants.%.11 +// CHECK:STDOUT: %.loc13_1.3 => constants.%.12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@H.%U.1) { -// CHECK:STDOUT: %T.1 => constants.%U +// CHECK:STDOUT: specific @Class(@H.%U.loc23_6.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U -// CHECK:STDOUT: %Class.1 => constants.%Class.4 +// CHECK:STDOUT: %U.loc23_6.2 => constants.%U +// CHECK:STDOUT: %Class.loc23_24.2 => constants.%Class.4 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 7f0c54a2a623..0b9a5231d9f0 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -135,13 +135,13 @@ class Class(U:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CompleteClass.decl: %CompleteClass.type = class_decl @CompleteClass [template = constants.%CompleteClass.1] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_21.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_21.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type.2 = fn_decl @F.2 [template = constants.%F.2] {} { // CHECK:STDOUT: %CompleteClass.ref: %CompleteClass.type = name_ref CompleteClass, file.%CompleteClass.decl [template = constants.%CompleteClass.1] @@ -153,26 +153,26 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @CompleteClass(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @CompleteClass(%T.loc6_21.1: type) { +// CHECK:STDOUT: %T.loc6_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_21.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.1) [symbolic = %CompleteClass (constants.%CompleteClass.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.2), i32 [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T.1) [symbolic = %F.type (constants.%F.type.1)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.loc6_21.2) [symbolic = %CompleteClass (constants.%CompleteClass.2)] +// CHECK:STDOUT: %.loc7_8.2: type = unbound_element_type @CompleteClass.%CompleteClass (%CompleteClass.2), i32 [symbolic = %.loc7_8.2 (constants.%.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T.loc6_21.2) [symbolic = %F.type (constants.%F.type.1)] // CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.1) = struct_value () [symbolic = %F (constants.%F.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc7_10.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc7_10.2: type = converted %int.make_type_32, %.loc7_10.1 [template = i32] -// CHECK:STDOUT: %.loc7_8: @CompleteClass.%.1 (%.2) = field_decl n, element0 [template] +// CHECK:STDOUT: %.loc7_8.1: @CompleteClass.%.loc7_8.2 (%.2) = field_decl n, element0 [template] // CHECK:STDOUT: %F.decl: @CompleteClass.%F.type (%F.type.1) = fn_decl @F.1 [symbolic = @CompleteClass.%F (constants.%F.1)] {} { // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc8_13.1: type = value_of_initializer %int.make_type_32 [template = i32] @@ -183,14 +183,14 @@ class Class(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%CompleteClass.2 -// CHECK:STDOUT: .n = %.loc7_8 +// CHECK:STDOUT: .n = %.loc7_8.1 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@CompleteClass.%T.loc6: type) { +// CHECK:STDOUT: generic fn @F.1(@CompleteClass.%T.loc6_21.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() -> i32 { @@ -203,27 +203,27 @@ class Class(U:! type) { // CHECK:STDOUT: fn @F.2() -> %CompleteClass.3; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc6_21.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.2 -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %.loc7_8.2 => constants.%.2 // CHECK:STDOUT: %F.type => constants.%F.type.1 // CHECK:STDOUT: %F => constants.%F.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @CompleteClass(@CompleteClass.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @CompleteClass(@CompleteClass.%T.loc6_21.2) { +// CHECK:STDOUT: %T.loc6_21.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(i32) { -// CHECK:STDOUT: %T.1 => i32 +// CHECK:STDOUT: %T.loc6_21.2 => i32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- foo.impl.carbon @@ -310,18 +310,18 @@ class Class(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = struct_type {.x: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %.loc5_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.loc5_8.2 (constants.%.2)] +// CHECK:STDOUT: %.loc6_1.2: type = struct_type {.x: @Class.%T.1 (%T)} [symbolic = %.loc6_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc6_1.3: = complete_type_witness @Class.%.loc6_1.2 (%.3) [symbolic = %.loc6_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc5: @Class.%.1 (%.2) = field_decl x, element0 [template] -// CHECK:STDOUT: %.loc6: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %.loc5_8.1: @Class.%.loc5_8.2 (%.2) = field_decl x, element0 [template] +// CHECK:STDOUT: %.loc6_1.1: = complete_type_witness %.3 [symbolic = %.loc6_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 -// CHECK:STDOUT: .x = %.loc5 +// CHECK:STDOUT: .x = %.loc5_8.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -840,7 +840,7 @@ class Class(U:! type) { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc12: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc12_13.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc12_13.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -850,8 +850,8 @@ class Class(U:! type) { // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%U.loc12: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic class @.1(%U.loc12_13.1: type) { +// CHECK:STDOUT: %U.loc12_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_13.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -871,6 +871,6 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc12_13.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index b3dd81132b9d..47b9469683d1 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -94,19 +94,19 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructGeneric.decl: %InitFromStructGeneric.type = fn_decl @InitFromStructGeneric [template = constants.%InitFromStructGeneric] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%T.loc8_26.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc8_39: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc8_45: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc8_26.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_26.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc8_39: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.loc8_26.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.loc8_26.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc8_45: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [template = constants.%InitFromStructSpecific] { // CHECK:STDOUT: %x.patt: i32 = binding_pattern x @@ -123,52 +123,52 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = struct_type {.k: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc5_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc4_13.2 (%T) [symbolic = %.loc5_8.2 (constants.%.2)] +// CHECK:STDOUT: %.loc6_1.2: type = struct_type {.k: @Class.%T.loc4_13.2 (%T)} [symbolic = %.loc6_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc6_1.3: = complete_type_witness @Class.%.loc6_1.2 (%.3) [symbolic = %.loc6_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc5: @Class.%.1 (%.2) = field_decl k, element0 [template] -// CHECK:STDOUT: %.loc6: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc5_8.1: @Class.%.loc5_8.2 (%.2) = field_decl k, element0 [template] +// CHECK:STDOUT: %.loc6_1.1: = complete_type_witness %.3 [symbolic = %.loc6_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 -// CHECK:STDOUT: .k = %.loc5 +// CHECK:STDOUT: .k = %.loc5_8.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @InitFromStructGeneric(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @InitFromStructGeneric(%T.loc8_26.1: type) { +// CHECK:STDOUT: %T.loc8_26.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_26.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class.1: type = class_type @Class, @Class(%T.1) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = struct_type {.k: @InitFromStructGeneric.%T.1 (%T)} [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %.2: type = unbound_element_type @InitFromStructGeneric.%Class.1 (%Class.2), @InitFromStructGeneric.%T.1 (%T) [symbolic = %.2 (constants.%.2)] +// CHECK:STDOUT: %Class.loc9_15.2: type = class_type @Class, @Class(%T.loc8_26.2) [symbolic = %Class.loc9_15.2 (constants.%Class.2)] +// CHECK:STDOUT: %.loc9_28.5: type = struct_type {.k: @InitFromStructGeneric.%T.loc8_26.2 (%T)} [symbolic = %.loc9_28.5 (constants.%.3)] +// CHECK:STDOUT: %.loc10_11.3: type = unbound_element_type @InitFromStructGeneric.%Class.loc9_15.2 (%Class.2), @InitFromStructGeneric.%T.loc8_26.2 (%T) [symbolic = %.loc10_11.3 (constants.%.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc8: type, %x: @InitFromStructGeneric.%T.1 (%T)) -> @InitFromStructGeneric.%T.1 (%T) { +// CHECK:STDOUT: fn(%T.loc8_26.1: type, %x: @InitFromStructGeneric.%T.loc8_26.2 (%T)) -> @InitFromStructGeneric.%T.loc8_26.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class.loc9: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.1 (%Class.2) = var v -// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.1 (%Class.2) = bind_name v, %v.var -// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc9_28.1: @InitFromStructGeneric.%.1 (%.3) = struct_literal (%x.ref) -// CHECK:STDOUT: %.loc9_28.2: ref @InitFromStructGeneric.%T.1 (%T) = class_element_access %v.var, element0 -// CHECK:STDOUT: %.loc9_28.3: init @InitFromStructGeneric.%T.1 (%T) = initialize_from %x.ref to %.loc9_28.2 -// CHECK:STDOUT: %.loc9_28.4: init @InitFromStructGeneric.%Class.1 (%Class.2) = class_init (%.loc9_28.3), %v.var -// CHECK:STDOUT: %.loc9_29: init @InitFromStructGeneric.%Class.1 (%Class.2) = converted %.loc9_28.1, %.loc9_28.4 +// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)] +// CHECK:STDOUT: %Class.loc9_15.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc9_15.2 (constants.%Class.2)] +// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc9_15.2 (%Class.2) = var v +// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc9_15.2 (%Class.2) = bind_name v, %v.var +// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.loc8_26.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %.loc9_28.1: @InitFromStructGeneric.%.loc9_28.5 (%.3) = struct_literal (%x.ref) +// CHECK:STDOUT: %.loc9_28.2: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = class_element_access %v.var, element0 +// CHECK:STDOUT: %.loc9_28.3: init @InitFromStructGeneric.%T.loc8_26.2 (%T) = initialize_from %x.ref to %.loc9_28.2 +// CHECK:STDOUT: %.loc9_28.4: init @InitFromStructGeneric.%Class.loc9_15.2 (%Class.2) = class_init (%.loc9_28.3), %v.var +// CHECK:STDOUT: %.loc9_29: init @InitFromStructGeneric.%Class.loc9_15.2 (%Class.2) = converted %.loc9_28.1, %.loc9_28.4 // CHECK:STDOUT: assign %v.var, %.loc9_29 -// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.1 (%Class.2) = name_ref v, %v -// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%.2 (%.2) = name_ref k, @Class.%.loc5 [template = @Class.%.loc5] -// CHECK:STDOUT: %.loc10_11.1: ref @InitFromStructGeneric.%T.1 (%T) = class_element_access %v.ref, element0 -// CHECK:STDOUT: %.loc10_11.2: @InitFromStructGeneric.%T.1 (%T) = bind_value %.loc10_11.1 +// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc9_15.2 (%Class.2) = name_ref v, %v +// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%.loc10_11.3 (%.2) = name_ref k, @Class.%.loc5_8.1 [template = @Class.%.loc5_8.1] +// CHECK:STDOUT: %.loc10_11.1: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = class_element_access %v.ref, element0 +// CHECK:STDOUT: %.loc10_11.2: @InitFromStructGeneric.%T.loc8_26.2 (%T) = bind_value %.loc10_11.1 // CHECK:STDOUT: return %.loc10_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -192,42 +192,42 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %.loc14_31: init %Class.3 = converted %.loc14_30.1, %.loc14_30.4 // CHECK:STDOUT: assign %v.var, %.loc14_31 // CHECK:STDOUT: %v.ref: ref %Class.3 = name_ref v, %v -// CHECK:STDOUT: %k.ref: %.6 = name_ref k, @Class.%.loc5 [template = @Class.%.loc5] +// CHECK:STDOUT: %k.ref: %.6 = name_ref k, @Class.%.loc5_8.1 [template = @Class.%.loc5_8.1] // CHECK:STDOUT: %.loc15_11.1: ref i32 = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc15_11.2: i32 = bind_value %.loc15_11.1 // CHECK:STDOUT: return %.loc15_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 -// CHECK:STDOUT: %.3 => constants.%.4 +// CHECK:STDOUT: %.loc5_8.2 => constants.%.2 +// CHECK:STDOUT: %.loc6_1.2 => constants.%.3 +// CHECK:STDOUT: %.loc6_1.3 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc4_13.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromStructGeneric(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_26.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@InitFromStructGeneric.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@InitFromStructGeneric.%T.loc8_26.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(i32) { -// CHECK:STDOUT: %T.1 => i32 +// CHECK:STDOUT: %T.loc4_13.2 => i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.3 -// CHECK:STDOUT: %.1 => constants.%.6 -// CHECK:STDOUT: %.2 => constants.%.7 -// CHECK:STDOUT: %.3 => constants.%.8 +// CHECK:STDOUT: %.loc5_8.2 => constants.%.6 +// CHECK:STDOUT: %.loc6_1.2 => constants.%.7 +// CHECK:STDOUT: %.loc6_1.3 => constants.%.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adapt.carbon @@ -276,19 +276,19 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromAdaptedGeneric.decl: %InitFromAdaptedGeneric.type = fn_decl @InitFromAdaptedGeneric [template = constants.%InitFromAdaptedGeneric] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc8_40: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @InitFromAdaptedGeneric.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @InitFromAdaptedGeneric.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc8_46: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc8_27.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_27.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc8_40: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc8_46: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [template = constants.%InitFromAdaptedSpecific] { // CHECK:STDOUT: %x.patt: i32 = binding_pattern x @@ -305,39 +305,39 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Adapt(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Adapt(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: = complete_type_witness @Adapt.%T.1 (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc6_1.2: = complete_type_witness @Adapt.%T.loc4_13.2 (%T) [symbolic = %.loc6_1.2 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: adapt_decl %T -// CHECK:STDOUT: %.loc6: = complete_type_witness %T [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc6_1.1: = complete_type_witness %T [symbolic = %.loc6_1.2 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Adapt.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @InitFromAdaptedGeneric(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @InitFromAdaptedGeneric(%T.loc8_27.1: type) { +// CHECK:STDOUT: %T.loc8_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_27.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Adapt.1: type = class_type @Adapt, @Adapt(%T.1) [symbolic = %Adapt.1 (constants.%Adapt.2)] +// CHECK:STDOUT: %Adapt.loc9_21.2: type = class_type @Adapt, @Adapt(%T.loc8_27.2) [symbolic = %Adapt.loc9_21.2 (constants.%Adapt.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc8: type, %x: @InitFromAdaptedGeneric.%T.1 (%T)) -> @InitFromAdaptedGeneric.%T.1 (%T) { +// CHECK:STDOUT: fn(%T.loc8_27.1: type, %x: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T)) -> @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = name_ref x, %x // CHECK:STDOUT: %Adapt.ref: %Adapt.type = name_ref Adapt, file.%Adapt.decl [template = constants.%Adapt.1] -// CHECK:STDOUT: %T.ref.loc9_22: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Adapt.loc9: type = class_type @Adapt, @Adapt(constants.%T) [symbolic = %Adapt.1 (constants.%Adapt.2)] -// CHECK:STDOUT: %.loc9_13.1: @InitFromAdaptedGeneric.%Adapt.1 (%Adapt.2) = as_compatible %x.ref -// CHECK:STDOUT: %.loc9_13.2: @InitFromAdaptedGeneric.%Adapt.1 (%Adapt.2) = converted %x.ref, %.loc9_13.1 -// CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc9_26.1: @InitFromAdaptedGeneric.%T.1 (%T) = as_compatible %.loc9_13.2 -// CHECK:STDOUT: %.loc9_26.2: @InitFromAdaptedGeneric.%T.1 (%T) = converted %.loc9_13.2, %.loc9_26.1 +// CHECK:STDOUT: %T.ref.loc9_22: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] +// CHECK:STDOUT: %Adapt.loc9_21.1: type = class_type @Adapt, @Adapt(constants.%T) [symbolic = %Adapt.loc9_21.2 (constants.%Adapt.2)] +// CHECK:STDOUT: %.loc9_13.1: @InitFromAdaptedGeneric.%Adapt.loc9_21.2 (%Adapt.2) = as_compatible %x.ref +// CHECK:STDOUT: %.loc9_13.2: @InitFromAdaptedGeneric.%Adapt.loc9_21.2 (%Adapt.2) = converted %x.ref, %.loc9_13.1 +// CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] +// CHECK:STDOUT: %.loc9_26.1: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = as_compatible %.loc9_13.2 +// CHECK:STDOUT: %.loc9_26.2: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = converted %.loc9_13.2, %.loc9_26.1 // CHECK:STDOUT: return %.loc9_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -363,24 +363,24 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapt(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %.loc6_1.2 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromAdaptedGeneric(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_27.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Adapt(@InitFromAdaptedGeneric.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Adapt(@InitFromAdaptedGeneric.%T.loc8_27.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapt(i32) { -// CHECK:STDOUT: %T.1 => i32 +// CHECK:STDOUT: %T.loc4_13.2 => i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %.loc6_1.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index 9ad42d8a2a67..75e885c0b23b 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -115,7 +115,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc2: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc2_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc2_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %DirectFieldAccess.decl: %DirectFieldAccess.type = fn_decl @DirectFieldAccess [template = constants.%DirectFieldAccess] { // CHECK:STDOUT: %x.patt: %Class.3 = binding_pattern x @@ -165,22 +165,22 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc2: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc2_13.1: type) { +// CHECK:STDOUT: %T.loc2_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.1) [symbolic = %Get.type (constants.%Get.type.1)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc2_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc3_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc2_13.2 (%T) [symbolic = %.loc3_8.2 (constants.%.2)] +// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc2_13.2) [symbolic = %Get.type (constants.%Get.type.1)] // CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.1) = struct_value () [symbolic = %Get (constants.%Get.1)] -// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.1) [symbolic = %GetAddr.type (constants.%GetAddr.type.1)] +// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc2_13.2) [symbolic = %GetAddr.type (constants.%GetAddr.type.1)] // CHECK:STDOUT: %GetAddr: @Class.%GetAddr.type (%GetAddr.type.1) = struct_value () [symbolic = %GetAddr (constants.%GetAddr.1)] -// CHECK:STDOUT: %.2: type = struct_type {.x: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.5)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.5) [symbolic = %.3 (constants.%.6)] +// CHECK:STDOUT: %.loc8_1.2: type = struct_type {.x: @Class.%T.loc2_13.2 (%T)} [symbolic = %.loc8_1.2 (constants.%.5)] +// CHECK:STDOUT: %.loc8_1.3: = complete_type_witness @Class.%.loc8_1.2 (%.5) [symbolic = %.loc8_1.3 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc2 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc3: @Class.%.1 (%.2) = field_decl x, element0 [template] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc2_13.1 [symbolic = %T.loc2_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc3_8.1: @Class.%.loc3_8.2 (%.2) = field_decl x, element0 [template] // CHECK:STDOUT: %Get.decl: @Class.%Get.type (%Get.type.1) = fn_decl @Get [symbolic = @Class.%Get (constants.%Get.1)] { // CHECK:STDOUT: %self.patt: @Get.%Class (%Class.2) = binding_pattern self // CHECK:STDOUT: } { @@ -188,65 +188,65 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_16 [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %self.param: @Get.%Class (%Class.2) = param self, runtime_param0 // CHECK:STDOUT: %self: @Get.%Class (%Class.2) = bind_name self, %self.param -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return: ref @Get.%T (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %GetAddr.decl: @Class.%GetAddr.type (%GetAddr.type.1) = fn_decl @GetAddr [symbolic = @Class.%GetAddr (constants.%GetAddr.1)] { -// CHECK:STDOUT: %self.patt: @GetAddr.%.1 (%.3) = binding_pattern self +// CHECK:STDOUT: %self.patt: @GetAddr.%.loc7_29.1 (%.3) = binding_pattern self // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_25: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc7_25 [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.loc7_29: type = ptr_type %Class.2 [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %self.param: @GetAddr.%.1 (%.3) = param self, runtime_param0 -// CHECK:STDOUT: %self: @GetAddr.%.1 (%.3) = bind_name self, %self.param -// CHECK:STDOUT: %.loc7_14: @GetAddr.%.1 (%.3) = addr_pattern %self -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %.loc7_38: type = ptr_type %T [symbolic = %.2 (constants.%.4)] -// CHECK:STDOUT: %return: ref @GetAddr.%.2 (%.4) = var +// CHECK:STDOUT: %.loc7_29.2: type = ptr_type %Class.2 [symbolic = %.loc7_29.1 (constants.%.3)] +// CHECK:STDOUT: %self.param: @GetAddr.%.loc7_29.1 (%.3) = param self, runtime_param0 +// CHECK:STDOUT: %self: @GetAddr.%.loc7_29.1 (%.3) = bind_name self, %self.param +// CHECK:STDOUT: %.loc7_14: @GetAddr.%.loc7_29.1 (%.3) = addr_pattern %self +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %.loc7_38.2: type = ptr_type %T [symbolic = %.loc7_38.1 (constants.%.4)] +// CHECK:STDOUT: %return: ref @GetAddr.%.loc7_38.1 (%.4) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8: = complete_type_witness %.5 [symbolic = %.3 (constants.%.6)] +// CHECK:STDOUT: %.loc8_1.1: = complete_type_witness %.5 [symbolic = %.loc8_1.3 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 -// CHECK:STDOUT: .x = %.loc3 +// CHECK:STDOUT: .x = %.loc3_8.1 // CHECK:STDOUT: .Get = %Get.decl // CHECK:STDOUT: .GetAddr = %GetAddr.decl // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Get(@Class.%T.loc2: type) { +// CHECK:STDOUT: generic fn @Get(@Class.%T.loc2_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = unbound_element_type @Get.%Class (%Class.2), @Get.%T (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc5_42.3: type = unbound_element_type @Get.%Class (%Class.2), @Get.%T (%T) [symbolic = %.loc5_42.3 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self: @Get.%Class (%Class.2)]() -> @Get.%T (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Get.%Class (%Class.2) = name_ref self, %self -// CHECK:STDOUT: %x.ref: @Get.%.1 (%.2) = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] +// CHECK:STDOUT: %x.ref: @Get.%.loc5_42.3 (%.2) = name_ref x, @Class.%.loc3_8.1 [template = @Class.%.loc3_8.1] // CHECK:STDOUT: %.loc5_42.1: ref @Get.%T (%T) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc5_42.2: @Get.%T (%T) = bind_value %.loc5_42.1 // CHECK:STDOUT: return %.loc5_42.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc2: type) { +// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc2_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = ptr_type @GetAddr.%Class (%Class.2) [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %.2: type = ptr_type @GetAddr.%T (%T) [symbolic = %.2 (constants.%.4)] +// CHECK:STDOUT: %.loc7_29.1: type = ptr_type @GetAddr.%Class (%Class.2) [symbolic = %.loc7_29.1 (constants.%.3)] +// CHECK:STDOUT: %.loc7_38.1: type = ptr_type @GetAddr.%T (%T) [symbolic = %.loc7_38.1 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.3: type = unbound_element_type @GetAddr.%Class (%Class.2), @GetAddr.%T (%T) [symbolic = %.3 (constants.%.2)] +// CHECK:STDOUT: %.loc7_54.3: type = unbound_element_type @GetAddr.%Class (%Class.2), @GetAddr.%T (%T) [symbolic = %.loc7_54.3 (constants.%.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[addr %self: @GetAddr.%.1 (%.3)]() -> @GetAddr.%.2 (%.4) { +// CHECK:STDOUT: fn[addr %self: @GetAddr.%.loc7_29.1 (%.3)]() -> @GetAddr.%.loc7_38.1 (%.4) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @GetAddr.%.1 (%.3) = name_ref self, %self +// CHECK:STDOUT: %self.ref: @GetAddr.%.loc7_29.1 (%.3) = name_ref self, %self // CHECK:STDOUT: %.loc7_54.1: ref @GetAddr.%Class (%Class.2) = deref %self.ref -// CHECK:STDOUT: %x.ref: @GetAddr.%.3 (%.2) = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] +// CHECK:STDOUT: %x.ref: @GetAddr.%.loc7_54.3 (%.2) = name_ref x, @Class.%.loc3_8.1 [template = @Class.%.loc3_8.1] // CHECK:STDOUT: %.loc7_54.2: ref @GetAddr.%T (%T) = class_element_access %.loc7_54.1, element0 -// CHECK:STDOUT: %.loc7_49: @GetAddr.%.2 (%.4) = addr_of %.loc7_54.2 +// CHECK:STDOUT: %.loc7_49: @GetAddr.%.loc7_38.1 (%.4) = addr_of %.loc7_54.2 // CHECK:STDOUT: return %.loc7_49 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -256,7 +256,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: fn @DirectFieldAccess(%x: %Class.3) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %x.ref.loc11_10: %Class.3 = name_ref x, %x -// CHECK:STDOUT: %x.ref.loc11_11: %.8 = name_ref x, @Class.%.loc3 [template = @Class.%.loc3] +// CHECK:STDOUT: %x.ref.loc11_11: %.8 = name_ref x, @Class.%.loc3_8.1 [template = @Class.%.loc3_8.1] // CHECK:STDOUT: %.loc11_11.1: ref i32 = class_element_access %x.ref.loc11_10, element0 // CHECK:STDOUT: %.loc11_11.2: i32 = bind_value %.loc11_11.1 // CHECK:STDOUT: return %.loc11_11.2 @@ -291,21 +291,21 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %.loc3_8.2 => constants.%.2 // CHECK:STDOUT: %Get.type => constants.%Get.type.1 // CHECK:STDOUT: %Get => constants.%Get.1 // CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type.1 // CHECK:STDOUT: %GetAddr => constants.%GetAddr.1 -// CHECK:STDOUT: %.2 => constants.%.5 -// CHECK:STDOUT: %.3 => constants.%.6 +// CHECK:STDOUT: %.loc8_1.2 => constants.%.5 +// CHECK:STDOUT: %.loc8_1.3 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@Get.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%T) { @@ -314,32 +314,32 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@GetAddr.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GetAddr(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.3 -// CHECK:STDOUT: %.2 => constants.%.4 +// CHECK:STDOUT: %.loc7_29.1 => constants.%.3 +// CHECK:STDOUT: %.loc7_38.1 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc2_13.2) { +// CHECK:STDOUT: %T.loc2_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(i32) { -// CHECK:STDOUT: %T.1 => i32 +// CHECK:STDOUT: %T.loc2_13.2 => i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.3 -// CHECK:STDOUT: %.1 => constants.%.8 +// CHECK:STDOUT: %.loc3_8.2 => constants.%.8 // CHECK:STDOUT: %Get.type => constants.%Get.type.2 // CHECK:STDOUT: %Get => constants.%Get.2 // CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type.2 // CHECK:STDOUT: %GetAddr => constants.%GetAddr.2 -// CHECK:STDOUT: %.2 => constants.%.9 -// CHECK:STDOUT: %.3 => constants.%.10 +// CHECK:STDOUT: %.loc8_1.2 => constants.%.9 +// CHECK:STDOUT: %.loc8_1.3 => constants.%.10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(i32) { @@ -350,8 +350,8 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: specific @GetAddr(i32) { // CHECK:STDOUT: %T => i32 // CHECK:STDOUT: %Class => constants.%Class.3 -// CHECK:STDOUT: %.1 => constants.%.12 -// CHECK:STDOUT: %.2 => constants.%.13 +// CHECK:STDOUT: %.loc7_29.1 => constants.%.12 +// CHECK:STDOUT: %.loc7_38.1 => constants.%.13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_static_member_fn_call.carbon @@ -419,17 +419,17 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %StaticMemberFunctionCall.decl: %StaticMemberFunctionCall.type = fn_decl @StaticMemberFunctionCall [template = constants.%StaticMemberFunctionCall] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_29.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_29.2 (constants.%T)] // CHECK:STDOUT: %Class.ref.loc8: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class.loc8: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %return: ref @StaticMemberFunctionCall.%Class.1 (%Class.2) = var +// CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc8_29.1 [symbolic = %T.loc8_29.2 (constants.%T)] +// CHECK:STDOUT: %Class.loc8_47.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc8_47.2 (constants.%Class.2)] +// CHECK:STDOUT: %return: ref @StaticMemberFunctionCall.%Class.loc8_47.2 (%Class.2) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -452,19 +452,19 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.1) [symbolic = %Make.type (constants.%Make.type)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.loc4_13.2) [symbolic = %Make.type (constants.%Make.type)] // CHECK:STDOUT: %Make: @Class.%Make.type (%Make.type) = struct_value () [symbolic = %Make (constants.%Make)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Make.decl: @Class.%Make.type (%Make.type) = fn_decl @Make [symbolic = @Class.%Make (constants.%Make)] {} { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc5: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %return: ref @Make.%Class.1 (%Class.2) = var +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Class.loc5_21.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc5_21.1 (constants.%Class.2)] +// CHECK:STDOUT: %return: ref @Make.%Class.loc5_21.1 (%Class.2) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.loc6: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -474,48 +474,48 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(@Class.%T.loc4: type) { +// CHECK:STDOUT: generic fn @Make(@Class.%T.loc4_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.1: type = class_type @Class, @Class(%T) [symbolic = %Class.1 (constants.%Class.2)] +// CHECK:STDOUT: %Class.loc5_21.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc5_21.1 (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %struct: @Make.%Class.1 (%Class.2) = struct_value () [symbolic = %struct (constants.%struct)] +// CHECK:STDOUT: %struct: @Make.%Class.loc5_21.1 (%Class.2) = struct_value () [symbolic = %struct (constants.%struct)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return: @Make.%Class.1 (%Class.2) { +// CHECK:STDOUT: fn() -> %return: @Make.%Class.loc5_21.1 (%Class.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc5_35.1: %.2 = struct_literal () -// CHECK:STDOUT: %.loc5_35.2: init @Make.%Class.1 (%Class.2) = class_init (), %return [symbolic = %struct (constants.%struct)] -// CHECK:STDOUT: %.loc5_36: init @Make.%Class.1 (%Class.2) = converted %.loc5_35.1, %.loc5_35.2 [symbolic = %struct (constants.%struct)] +// CHECK:STDOUT: %.loc5_35.2: init @Make.%Class.loc5_21.1 (%Class.2) = class_init (), %return [symbolic = %struct (constants.%struct)] +// CHECK:STDOUT: %.loc5_36: init @Make.%Class.loc5_21.1 (%Class.2) = converted %.loc5_35.1, %.loc5_35.2 [symbolic = %struct (constants.%struct)] // CHECK:STDOUT: return %.loc5_36 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @StaticMemberFunctionCall(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class.1: type = class_type @Class, @Class(%T.1) [symbolic = %Class.1 (constants.%Class.2)] +// CHECK:STDOUT: generic fn @StaticMemberFunctionCall(%T.loc8_29.1: type) { +// CHECK:STDOUT: %T.loc8_29.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_29.2 (constants.%T)] +// CHECK:STDOUT: %Class.loc8_47.2: type = class_type @Class, @Class(%T.loc8_29.2) [symbolic = %Class.loc8_47.2 (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.1) [symbolic = %Make.type (constants.%Make.type)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.loc8_29.2) [symbolic = %Make.type (constants.%Make.type)] // CHECK:STDOUT: %Make: @StaticMemberFunctionCall.%Make.type (%Make.type) = struct_value () [symbolic = %Make (constants.%Make)] -// CHECK:STDOUT: %ImplicitAs.type.1: type = interface_type @ImplicitAs, @ImplicitAs(%Class.1) [symbolic = %ImplicitAs.type.1 (constants.%ImplicitAs.type.3)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Class.1) [symbolic = %Convert.type (constants.%Convert.type.2)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @StaticMemberFunctionCall.%ImplicitAs.type.1 (%ImplicitAs.type.3), @StaticMemberFunctionCall.%Convert.type (%Convert.type.2) [symbolic = %.1 (constants.%.7)] -// CHECK:STDOUT: %.2: @StaticMemberFunctionCall.%.1 (%.7) = assoc_entity element0, imports.%import_ref.5 [symbolic = %.2 (constants.%.8)] +// CHECK:STDOUT: %ImplicitAs.type.loc15_25.2: type = interface_type @ImplicitAs, @ImplicitAs(%Class.loc8_47.2) [symbolic = %ImplicitAs.type.loc15_25.2 (constants.%ImplicitAs.type.3)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Class.loc8_47.2) [symbolic = %Convert.type (constants.%Convert.type.2)] +// CHECK:STDOUT: %.loc15_25.3: type = assoc_entity_type @StaticMemberFunctionCall.%ImplicitAs.type.loc15_25.2 (%ImplicitAs.type.3), @StaticMemberFunctionCall.%Convert.type (%Convert.type.2) [symbolic = %.loc15_25.3 (constants.%.7)] +// CHECK:STDOUT: %.loc15_25.4: @StaticMemberFunctionCall.%.loc15_25.3 (%.7) = assoc_entity element0, imports.%import_ref.5 [symbolic = %.loc15_25.4 (constants.%.8)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc8: type) -> %return: @StaticMemberFunctionCall.%Class.1 (%Class.2) { +// CHECK:STDOUT: fn(%T.loc8_29.1: type) -> %return: @StaticMemberFunctionCall.%Class.loc8_47.2 (%Class.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Class.ref.loc15: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %T.ref.loc15: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class.loc15: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] +// CHECK:STDOUT: %T.ref.loc15: type = name_ref T, %T.loc8_29.1 [symbolic = %T.loc8_29.2 (constants.%T)] +// CHECK:STDOUT: %Class.loc15: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc8_47.2 (constants.%Class.2)] // CHECK:STDOUT: %.loc15_18: @StaticMemberFunctionCall.%Make.type (%Make.type) = specific_constant @Class.%Make.decl, @Class(constants.%T) [symbolic = %Make (constants.%Make)] // CHECK:STDOUT: %Make.ref: @StaticMemberFunctionCall.%Make.type (%Make.type) = name_ref Make, %.loc15_18 [symbolic = %Make (constants.%Make)] -// CHECK:STDOUT: %.loc15_23.1: ref @StaticMemberFunctionCall.%Class.1 (%Class.2) = temporary_storage -// CHECK:STDOUT: %Make.call: init @StaticMemberFunctionCall.%Class.1 (%Class.2) = call %Make.ref() to %.loc15_23.1 -// CHECK:STDOUT: %ImplicitAs.type.loc15: type = interface_type @ImplicitAs, @ImplicitAs(constants.%Class.2) [symbolic = %ImplicitAs.type.1 (constants.%ImplicitAs.type.3)] -// CHECK:STDOUT: %.loc15_25.1: @StaticMemberFunctionCall.%.1 (%.7) = specific_constant imports.%import_ref.3, @ImplicitAs(constants.%Class.2) [symbolic = %.2 (constants.%.8)] -// CHECK:STDOUT: %Convert.ref: @StaticMemberFunctionCall.%.1 (%.7) = name_ref Convert, %.loc15_25.1 [symbolic = %.2 (constants.%.8)] -// CHECK:STDOUT: %.loc15_23.2: ref @StaticMemberFunctionCall.%Class.1 (%Class.2) = temporary %.loc15_23.1, %Make.call -// CHECK:STDOUT: %.loc15_25.2: @StaticMemberFunctionCall.%Class.1 (%Class.2) = converted %Make.call, [template = ] +// CHECK:STDOUT: %.loc15_23.1: ref @StaticMemberFunctionCall.%Class.loc8_47.2 (%Class.2) = temporary_storage +// CHECK:STDOUT: %Make.call: init @StaticMemberFunctionCall.%Class.loc8_47.2 (%Class.2) = call %Make.ref() to %.loc15_23.1 +// CHECK:STDOUT: %ImplicitAs.type.loc15_25.1: type = interface_type @ImplicitAs, @ImplicitAs(constants.%Class.2) [symbolic = %ImplicitAs.type.loc15_25.2 (constants.%ImplicitAs.type.3)] +// CHECK:STDOUT: %.loc15_25.1: @StaticMemberFunctionCall.%.loc15_25.3 (%.7) = specific_constant imports.%import_ref.3, @ImplicitAs(constants.%Class.2) [symbolic = %.loc15_25.4 (constants.%.8)] +// CHECK:STDOUT: %Convert.ref: @StaticMemberFunctionCall.%.loc15_25.3 (%.7) = name_ref Convert, %.loc15_25.1 [symbolic = %.loc15_25.4 (constants.%.8)] +// CHECK:STDOUT: %.loc15_23.2: ref @StaticMemberFunctionCall.%Class.loc8_47.2 (%Class.2) = temporary %.loc15_23.1, %Make.call +// CHECK:STDOUT: %.loc15_25.2: @StaticMemberFunctionCall.%Class.loc8_47.2 (%Class.2) = converted %Make.call, [template = ] // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -529,7 +529,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type @@ -537,25 +537,25 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@Make.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Class.1 => constants.%Class.2 +// CHECK:STDOUT: %Class.loc5_21.1 => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc4_13.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@StaticMemberFunctionCall.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@StaticMemberFunctionCall.%T.loc8_29.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StaticMemberFunctionCall(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %Class.1 => constants.%Class.2 +// CHECK:STDOUT: %T.loc8_29.2 => constants.%T +// CHECK:STDOUT: %Class.loc8_47.2 => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -588,7 +588,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %.2 => constants.%.8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ImplicitAs(@StaticMemberFunctionCall.%Class.1) { +// CHECK:STDOUT: specific @ImplicitAs(@StaticMemberFunctionCall.%Class.loc8_47.2) { // CHECK:STDOUT: %Dest => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_inline.carbon b/toolchain/check/testdata/class/generic/member_inline.carbon index fd1a3a984bd5..8027f483c8b2 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -79,31 +79,31 @@ class C(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.1) [symbolic = %G.type (constants.%G.type)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.loc4_13.2) [symbolic = %G.type (constants.%G.type)] // CHECK:STDOUT: %G: @Class.%G.type (%G.type) = struct_value () [symbolic = %G (constants.%G)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = struct_type {.n: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc13_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc4_13.2 (%T) [symbolic = %.loc13_8.2 (constants.%.2)] +// CHECK:STDOUT: %.loc14_1.2: type = struct_type {.n: @Class.%T.loc4_13.2 (%T)} [symbolic = %.loc14_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc14_1.3: = complete_type_witness @Class.%.loc14_1.2 (%.3) [symbolic = %.loc14_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] { // CHECK:STDOUT: %n.patt: @F.%T (%T) = binding_pattern n // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %n.param: @F.%T (%T) = param n, runtime_param0 // CHECK:STDOUT: %n: @F.%T (%T) = bind_name n, %n.param -// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return: ref @F.%T (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: @Class.%G.type (%G.type) = fn_decl @G [symbolic = @Class.%G (constants.%G)] { @@ -113,22 +113,22 @@ class C(T:! type) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc9 [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %self.param: @G.%Class (%Class.2) = param self, runtime_param0 // CHECK:STDOUT: %self: @G.%Class (%Class.2) = bind_name self, %self.param -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return: ref @G.%T (%T) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc13: @Class.%.1 (%.2) = field_decl n, element0 [template] -// CHECK:STDOUT: %.loc14: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc13_8.1: @Class.%.loc13_8.2 (%.2) = field_decl n, element0 [template] +// CHECK:STDOUT: %.loc14_1.1: = complete_type_witness %.3 [symbolic = %.loc14_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl -// CHECK:STDOUT: .n = %.loc13 +// CHECK:STDOUT: .n = %.loc13_8.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc4: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc4_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -140,17 +140,17 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Class.%T.loc4: type) { +// CHECK:STDOUT: generic fn @G(@Class.%T.loc4_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = unbound_element_type @G.%Class (%Class.2), @G.%T (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc10_16.3: type = unbound_element_type @G.%Class (%Class.2), @G.%T (%T) [symbolic = %.loc10_16.3 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self: @G.%Class (%Class.2)]() -> @G.%T (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @G.%Class (%Class.2) = name_ref self, %self -// CHECK:STDOUT: %n.ref: @G.%.1 (%.2) = name_ref n, @Class.%.loc13 [template = @Class.%.loc13] +// CHECK:STDOUT: %n.ref: @G.%.loc10_16.3 (%.2) = name_ref n, @Class.%.loc13_8.1 [template = @Class.%.loc13_8.1] // CHECK:STDOUT: %.loc10_16.1: ref @G.%T (%T) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc10_16.2: @G.%T (%T) = bind_value %.loc10_16.1 // CHECK:STDOUT: return %.loc10_16.2 @@ -158,7 +158,7 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type @@ -166,9 +166,9 @@ class C(T:! type) { // CHECK:STDOUT: %G.type => constants.%G.type // CHECK:STDOUT: %G => constants.%G // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 -// CHECK:STDOUT: %.3 => constants.%.4 +// CHECK:STDOUT: %.loc13_8.2 => constants.%.2 +// CHECK:STDOUT: %.loc14_1.2 => constants.%.3 +// CHECK:STDOUT: %.loc14_1.3 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { @@ -176,7 +176,7 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@G.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { @@ -184,8 +184,8 @@ class C(T:! type) { // CHECK:STDOUT: %Class => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc4_13.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_member_inline.carbon @@ -227,63 +227,63 @@ class C(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc4_9.1: type) { +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @C(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @C(%T.loc4_9.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @C.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.1) [symbolic = %C (constants.%C.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @C.%C (%C.2), %.2 [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.2) [symbolic = %C (constants.%C.2)] +// CHECK:STDOUT: %.loc11_11.2: type = unbound_element_type @C.%C (%C.2), %.2 [symbolic = %.loc11_11.2 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @C.%F.type (%F.type) = fn_decl @F [symbolic = @C.%F (constants.%F)] {} {} // CHECK:STDOUT: %.loc11_14.1: %.2 = struct_literal () // CHECK:STDOUT: %.loc11_14.2: type = converted %.loc11_14.1, constants.%.2 [template = constants.%.2] -// CHECK:STDOUT: %.loc11_11: @C.%.1 (%.3) = field_decl data, element0 [template] +// CHECK:STDOUT: %.loc11_11.1: @C.%.loc11_11.2 (%.3) = field_decl data, element0 [template] // CHECK:STDOUT: %.loc12: = complete_type_witness %.4 [template = constants.%.5] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C.2 // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: .data = %.loc11_11 +// CHECK:STDOUT: .data = %.loc11_11.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@C.%T.loc4: type) { +// CHECK:STDOUT: generic fn @F(@C.%T.loc4_9.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @F.%C (%C.2), %.2 [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: %.loc9: type = unbound_element_type @F.%C (%C.2), %.2 [symbolic = %.loc9 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %data.ref: @F.%.1 (%.3) = name_ref data, @C.%.loc11_11 [template = @C.%.loc11_11] +// CHECK:STDOUT: %data.ref: @F.%.loc9 (%.3) = name_ref data, @C.%.loc11_11.1 [template = @C.%.loc11_11.1] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type // CHECK:STDOUT: %F => constants.%F // CHECK:STDOUT: %C => constants.%C.2 -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %.loc11_11.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(@C.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @C(@C.%T.loc4_9.2) { +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@F.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_out_of_line.carbon b/toolchain/check/testdata/class/generic/member_out_of_line.carbon index f682cc62437f..32a43c555286 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -146,7 +146,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [symbolic = constants.%F] { // CHECK:STDOUT: %n.patt: %T = binding_pattern n @@ -173,28 +173,28 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.1) [symbolic = %G.type (constants.%G.type)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.loc4_13.2) [symbolic = %G.type (constants.%G.type)] // CHECK:STDOUT: %G: @Class.%G.type (%G.type) = struct_value () [symbolic = %G (constants.%G)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = struct_type {.n: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc7_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc4_13.2 (%T) [symbolic = %.loc7_8.2 (constants.%.2)] +// CHECK:STDOUT: %.loc8_1.2: type = struct_type {.n: @Class.%T.loc4_13.2 (%T)} [symbolic = %.loc8_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc8_1.3: = complete_type_witness @Class.%.loc8_1.2 (%.3) [symbolic = %.loc8_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] { // CHECK:STDOUT: %n.patt: %T = binding_pattern n // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %n.param.loc5: @F.%T.1 (%T) = param n, runtime_param0 -// CHECK:STDOUT: %n.loc5: @F.%T.1 (%T) = bind_name n, %n.param.loc5 -// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return.var.loc5: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T.loc5 (constants.%T)] +// CHECK:STDOUT: %n.param.loc5: @F.%T.loc5 (%T) = param n, runtime_param0 +// CHECK:STDOUT: %n.loc5: @F.%T.loc5 (%T) = bind_name n, %n.param.loc5 +// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T.loc5 (constants.%T)] +// CHECK:STDOUT: %return.var.loc5: ref @F.%T.loc5 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: @Class.%G.type (%G.type) = fn_decl @G [symbolic = @Class.%G (constants.%G)] { // CHECK:STDOUT: %self.patt: %Class.2 = binding_pattern self @@ -203,52 +203,52 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Self.ref.loc6: type = name_ref Self, %.loc6 [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %self.param.loc6: @G.%Class (%Class.2) = param self, runtime_param0 // CHECK:STDOUT: %self.loc6: @G.%Class (%Class.2) = bind_name self, %self.param.loc6 -// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @Class.%T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return.var.loc6: ref @G.%T.1 (%T) = var +// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T.loc6 (constants.%T)] +// CHECK:STDOUT: %return.var.loc6: ref @G.%T.loc6 (%T) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc7: @Class.%.1 (%.2) = field_decl n, element0 [template] -// CHECK:STDOUT: %.loc8: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc7_8.1: @Class.%.loc7_8.2 (%.2) = field_decl n, element0 [template] +// CHECK:STDOUT: %.loc8_1.1: = complete_type_witness %.3 [symbolic = %.loc8_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: .G = %G.decl -// CHECK:STDOUT: .n = %.loc7 +// CHECK:STDOUT: .n = %.loc7_8.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(@Class.%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc5: type = bind_symbolic_name T, 0 [symbolic = %T.loc5 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.loc10: %T) -> %T { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %n.ref: @F.%T.1 (%T) = name_ref n, %n.loc10 +// CHECK:STDOUT: %n.ref: @F.%T.loc5 (%T) = name_ref n, %n.loc10 // CHECK:STDOUT: return %n.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Class.%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: generic fn @G(@Class.%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0 [symbolic = %T.loc6 (constants.%T)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc6) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = unbound_element_type @G.%Class (%Class.2), @G.%T.1 (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc15_14.3: type = unbound_element_type @G.%Class (%Class.2), @G.%T.loc6 (%T) [symbolic = %.loc15_14.3 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.loc14: %Class.2]() -> %T { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @G.%Class (%Class.2) = name_ref self, %self.loc14 -// CHECK:STDOUT: %n.ref: @G.%.1 (%.2) = name_ref n, @Class.%.loc7 [template = @Class.%.loc7] -// CHECK:STDOUT: %.loc15_14.1: ref @G.%T.1 (%T) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc15_14.2: @G.%T.1 (%T) = bind_value %.loc15_14.1 +// CHECK:STDOUT: %n.ref: @G.%.loc15_14.3 (%.2) = name_ref n, @Class.%.loc7_8.1 [template = @Class.%.loc7_8.1] +// CHECK:STDOUT: %.loc15_14.1: ref @G.%T.loc6 (%T) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc15_14.2: @G.%T.loc6 (%T) = bind_value %.loc15_14.1 // CHECK:STDOUT: return %.loc15_14.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type @@ -256,26 +256,26 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %G.type => constants.%G.type // CHECK:STDOUT: %G => constants.%G // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 -// CHECK:STDOUT: %.3 => constants.%.4 +// CHECK:STDOUT: %.loc7_8.2 => constants.%.2 +// CHECK:STDOUT: %.loc8_1.2 => constants.%.3 +// CHECK:STDOUT: %.loc8_1.3 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc5 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@G.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@G.%T.loc6) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc6 => constants.%T // CHECK:STDOUT: %Class => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc4_13.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested.carbon @@ -320,7 +320,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [symbolic = constants.%F] { // CHECK:STDOUT: %self.patt: %B.2 = binding_pattern self @@ -341,20 +341,20 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @A(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @A(%T.loc4_9.1: type) { +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %B.type: type = generic_class_type @B, @A(%T.1) [symbolic = %B.type (constants.%B.type)] +// CHECK:STDOUT: %B.type: type = generic_class_type @B, @A(%T.loc4_9.2) [symbolic = %B.type (constants.%B.type)] // CHECK:STDOUT: %B: @A.%B.type (%B.type) = struct_value () [symbolic = %B (constants.%B.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %B.decl: @A.%B.type (%B.type) = class_decl @B [symbolic = @A.%B (constants.%B.1)] { // CHECK:STDOUT: %N.patt: @B.%T (%T) = symbolic_binding_pattern N, 1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc4 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc4_9.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.param: @B.%T (%T) = param N, runtime_param -// CHECK:STDOUT: %N.loc5: @B.%T (%T) = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc5_11.1: @B.%T (%T) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc5_11.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -364,12 +364,12 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @B(@A.%T.loc4: type, %N.loc5: @B.%T (%T)) { +// CHECK:STDOUT: generic class @B(@A.%T.loc4_9.1: type, %N.loc5_11.1: @B.%T (%T)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %N.1: %T = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc5_11.2: %T = bind_symbolic_name N, 1 [symbolic = %N.loc5_11.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @B(%T, %N.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @B(%T, %N.loc5_11.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @B.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -381,9 +381,9 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Self.ref.loc6: type = name_ref Self, %.loc6 [symbolic = %B (constants.%B.2)] // CHECK:STDOUT: %self.param.loc6: @F.%B (%B.2) = param self, runtime_param0 // CHECK:STDOUT: %self.loc6: @F.%B (%B.2) = bind_name self, %self.param.loc6 -// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @A.%T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %a.param.loc6: @F.%T.1 (%T) = param a, runtime_param1 -// CHECK:STDOUT: %a.loc6: @F.%T.1 (%T) = bind_name a, %a.param.loc6 +// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @A.%T.loc4_9.1 [symbolic = %T.loc6 (constants.%T)] +// CHECK:STDOUT: %a.param.loc6: @F.%T.loc6 (%T) = param a, runtime_param1 +// CHECK:STDOUT: %a.loc6: @F.%T.loc6 (%T) = bind_name a, %a.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %.loc7: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -393,10 +393,10 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@A.%T.loc4: type, @B.%N.loc5: @B.%T (%T)) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.1: %T = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %B: type = class_type @B, @B(%T.1, %N.1) [symbolic = %B (constants.%B.2)] +// CHECK:STDOUT: generic fn @F(@A.%T.loc4_9.1: type, @B.%N.loc5_11.1: @B.%T (%T)) { +// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0 [symbolic = %T.loc6 (constants.%T)] +// CHECK:STDOUT: %N.loc6: %T = bind_symbolic_name N, 1 [symbolic = %N.loc6 (constants.%N)] +// CHECK:STDOUT: %B: type = class_type @B, @B(%T.loc6, %N.loc6) [symbolic = %B (constants.%B.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -407,7 +407,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %B.type => constants.%B.type @@ -416,31 +416,31 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: specific @B(constants.%T, constants.%N) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc5_11.2 => constants.%N // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type // CHECK:STDOUT: %F => constants.%F // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B(@F.%T.1, @F.%N.1) { +// CHECK:STDOUT: specific @B(@F.%T.loc6, @F.%N.loc6) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc5_11.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %T.loc6 => constants.%T +// CHECK:STDOUT: %N.loc6 => constants.%N // CHECK:STDOUT: %B => constants.%B.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B(@B.%T, @B.%N.1) { +// CHECK:STDOUT: specific @B(@B.%T, @B.%N.loc5_11.2) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc5_11.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(@A.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @A(@A.%T.loc4_9.2) { +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_not_generic_vs_generic.carbon @@ -479,7 +479,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %NotGeneric.decl: type = class_decl @NotGeneric [template = constants.%NotGeneric] {} {} // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] {} { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc15: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc15_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc15_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -494,8 +494,8 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: fn @F(); // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc15: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @.1(%T.loc15_15.1: type) { +// CHECK:STDOUT: %T.loc15_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -506,7 +506,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc15_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_too_few_args.carbon @@ -548,16 +548,16 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Generic(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Generic(%T.loc4_15.1: type) { +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %TooFew.type: type = fn_type @TooFew, @Generic(%T.1) [symbolic = %TooFew.type (constants.%TooFew.type)] +// CHECK:STDOUT: %TooFew.type: type = fn_type @TooFew, @Generic(%T.loc4_15.2) [symbolic = %TooFew.type (constants.%TooFew.type)] // CHECK:STDOUT: %TooFew: @Generic.%TooFew.type (%TooFew.type) = struct_value () [symbolic = %TooFew (constants.%TooFew)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -570,7 +570,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TooFew(@Generic.%T.loc4: type) { +// CHECK:STDOUT: generic fn @TooFew(@Generic.%T.loc4_15.1: type) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -581,13 +581,13 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TooFew(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(@Generic.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Generic(@Generic.%T.loc4_15.2) { +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_too_many_args.carbon @@ -630,21 +630,21 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] {} { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc15: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc15_12.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc15_12.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc15: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc15_22.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc15_22.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Generic(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Generic(%T.loc4_15.1: type) { +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %TooMany.type: type = fn_type @TooMany, @Generic(%T.1) [symbolic = %TooMany.type (constants.%TooMany.type)] +// CHECK:STDOUT: %TooMany.type: type = fn_type @TooMany, @Generic(%T.loc4_15.2) [symbolic = %TooMany.type (constants.%TooMany.type)] // CHECK:STDOUT: %TooMany: @Generic.%TooMany.type (%TooMany.type) = struct_value () [symbolic = %TooMany (constants.%TooMany)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -657,14 +657,14 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TooMany(@Generic.%T.loc4: type) { +// CHECK:STDOUT: generic fn @TooMany(@Generic.%T.loc4_15.1: type) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc15: type, %U.loc15: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @.1(%T.loc15_12.1: type, %U.loc15_22.1: type) { +// CHECK:STDOUT: %T.loc15_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T)] +// CHECK:STDOUT: %U.loc15_22.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_22.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -675,18 +675,18 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TooMany(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(@Generic.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Generic(@Generic.%T.loc4_15.2) { +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %T.loc15_12.2 => constants.%T +// CHECK:STDOUT: %U.loc15_22.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_wrong_arg_type.carbon @@ -729,21 +729,21 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] {} { // CHECK:STDOUT: %.loc14_17.1: %.1 = tuple_literal () // CHECK:STDOUT: %.loc14_17.2: type = converted %.loc14_17.1, constants.%.1 [template = constants.%.1] // CHECK:STDOUT: %T.param: %.1 = param T, runtime_param -// CHECK:STDOUT: %T.loc14: %.1 = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc14_12.1: %.1 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_12.2 (constants.%T.2)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Generic(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic class @Generic(%T.loc4_15.1: type) { +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType, @Generic(%T.1) [symbolic = %WrongType.type (constants.%WrongType.type)] +// CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType, @Generic(%T.loc4_15.2) [symbolic = %WrongType.type (constants.%WrongType.type)] // CHECK:STDOUT: %WrongType: @Generic.%WrongType.type (%WrongType.type) = struct_value () [symbolic = %WrongType (constants.%WrongType)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -756,13 +756,13 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WrongType(@Generic.%T.loc4: type) { +// CHECK:STDOUT: generic fn @WrongType(@Generic.%T.loc4_15.1: type) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc14: %.1) { -// CHECK:STDOUT: %T.1: %.1 = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic fn @.1(%T.loc14_12.1: %.1) { +// CHECK:STDOUT: %T.loc14_12.2: %.1 = bind_symbolic_name T, 0 [symbolic = %T.loc14_12.2 (constants.%T.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -773,16 +773,16 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WrongType(constants.%T.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(@Generic.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: specific @Generic(@Generic.%T.loc4_15.2) { +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc14_12.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index 059763dcd997..20c46588c9fb 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -88,7 +88,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc14: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc14_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [template = constants.%CallGenericMethod] { // CHECK:STDOUT: %c.patt: %Class.3 = binding_pattern c @@ -134,13 +134,13 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc14: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc14_13.1: type) { +// CHECK:STDOUT: %T.loc14_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.1) [symbolic = %Get.type (constants.%Get.type.1)] +// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc14_13.2) [symbolic = %Get.type (constants.%Get.type.1)] // CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.1) = struct_value () [symbolic = %Get (constants.%Get.1)] -// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T.1) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.1)] +// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T.loc14_13.2) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.1)] // CHECK:STDOUT: %GetNoDeduce: @Class.%GetNoDeduce.type (%GetNoDeduce.type.1) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -148,27 +148,27 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc15: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc14 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc15 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %.loc15_28.1: %.4 = tuple_literal (%T.ref, %U.ref) -// CHECK:STDOUT: %.loc15_28.2: type = converted %.loc15_28.1, constants.%.5 [symbolic = %.1 (constants.%.5)] -// CHECK:STDOUT: %return: ref @Get.%.1 (%.5) = var +// CHECK:STDOUT: %U.loc15_10.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc15_10.2 (constants.%U)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc15_10.1 [symbolic = %U.loc15_10.2 (constants.%U)] +// CHECK:STDOUT: %.loc15_28.2: %.4 = tuple_literal (%T.ref, %U.ref) +// CHECK:STDOUT: %.loc15_28.3: type = converted %.loc15_28.2, constants.%.5 [symbolic = %.loc15_28.1 (constants.%.5)] +// CHECK:STDOUT: %return: ref @Get.%.loc15_28.1 (%.5) = var // CHECK:STDOUT: } // CHECK:STDOUT: %GetNoDeduce.decl: @Class.%GetNoDeduce.type (%GetNoDeduce.type.1) = fn_decl @GetNoDeduce [symbolic = @Class.%GetNoDeduce (constants.%GetNoDeduce.1)] { // CHECK:STDOUT: %x.patt: @GetNoDeduce.%T (%T) = binding_pattern x // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc16_21: type = name_ref T, @Class.%T.loc14 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref.loc16_21: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %x.param: @GetNoDeduce.%T (%T) = param x, runtime_param0 // CHECK:STDOUT: %x: @GetNoDeduce.%T (%T) = bind_name x, %x.param // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc16: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %T.ref.loc16_38: type = name_ref T, @Class.%T.loc14 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc16 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %.loc16_42.1: %.4 = tuple_literal (%T.ref.loc16_38, %U.ref) -// CHECK:STDOUT: %.loc16_42.2: type = converted %.loc16_42.1, constants.%.5 [symbolic = %.1 (constants.%.5)] -// CHECK:STDOUT: %return: ref @GetNoDeduce.%.1 (%.5) = var +// CHECK:STDOUT: %U.loc16_24.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc16_24.2 (constants.%U)] +// CHECK:STDOUT: %T.ref.loc16_38: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc16_24.1 [symbolic = %U.loc16_24.2 (constants.%U)] +// CHECK:STDOUT: %.loc16_42.2: %.4 = tuple_literal (%T.ref.loc16_38, %U.ref) +// CHECK:STDOUT: %.loc16_42.3: type = converted %.loc16_42.2, constants.%.5 [symbolic = %.loc16_42.1 (constants.%.5)] +// CHECK:STDOUT: %return: ref @GetNoDeduce.%.loc16_42.1 (%.5) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.loc17: = complete_type_witness %.1 [template = constants.%.2] // CHECK:STDOUT: @@ -179,20 +179,20 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Get(@Class.%T.loc14: type, %U.loc15: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @Get(@Class.%T.loc14_13.1: type, %U.loc15_10.1: type) { +// CHECK:STDOUT: %U.loc15_10.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_10.2 (constants.%U)] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %.1: type = tuple_type (@Get.%T (%T), @Get.%U.1 (%U)) [symbolic = %.1 (constants.%.5)] +// CHECK:STDOUT: %.loc15_28.1: type = tuple_type (@Get.%T (%T), @Get.%U.loc15_10.2 (%U)) [symbolic = %.loc15_28.1 (constants.%.5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc15: type) -> @Get.%.1 (%.5); +// CHECK:STDOUT: fn(%U.loc15_10.1: type) -> @Get.%.loc15_28.1 (%.5); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetNoDeduce(@Class.%T.loc14: type, %U.loc16: type) { +// CHECK:STDOUT: generic fn @GetNoDeduce(@Class.%T.loc14_13.1: type, %U.loc16_24.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %.1: type = tuple_type (@GetNoDeduce.%T (%T), @GetNoDeduce.%U.1 (%U)) [symbolic = %.1 (constants.%.5)] +// CHECK:STDOUT: %U.loc16_24.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc16_24.2 (constants.%U)] +// CHECK:STDOUT: %.loc16_42.1: type = tuple_type (@GetNoDeduce.%T (%T), @GetNoDeduce.%U.loc16_24.2 (%U)) [symbolic = %.loc16_42.1 (constants.%.5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x: @GetNoDeduce.%T (%T), %U.loc16: type) -> @GetNoDeduce.%.1 (%.5); +// CHECK:STDOUT: fn(%x: @GetNoDeduce.%T (%T), %U.loc16_24.1: type) -> @GetNoDeduce.%.loc16_42.1 (%.5); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallGenericMethod(%c: %Class.3) -> %return: %.6 { @@ -224,27 +224,27 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc14_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%T, constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc15_10.2 => constants.%U // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %.1 => constants.%.5 +// CHECK:STDOUT: %.loc15_28.1 => constants.%.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GetNoDeduce(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U -// CHECK:STDOUT: %.1 => constants.%.5 +// CHECK:STDOUT: %U.loc16_24.2 => constants.%U +// CHECK:STDOUT: %.loc16_42.1 => constants.%.5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc14_13.2) { +// CHECK:STDOUT: %T.loc14_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%A) { -// CHECK:STDOUT: %T.1 => constants.%A +// CHECK:STDOUT: %T.loc14_13.2 => constants.%A // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Get.type => constants.%Get.type.2 @@ -254,14 +254,14 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%A, constants.%B) { -// CHECK:STDOUT: %U.1 => constants.%B +// CHECK:STDOUT: %U.loc15_10.2 => constants.%B // CHECK:STDOUT: %T => constants.%A -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %.loc15_28.1 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GetNoDeduce(constants.%A, constants.%B) { // CHECK:STDOUT: %T => constants.%A -// CHECK:STDOUT: %U.1 => constants.%B -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %U.loc16_24.2 => constants.%B +// CHECK:STDOUT: %.loc16_42.1 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/redeclare.carbon b/toolchain/check/testdata/class/generic/redeclare.carbon index 2cf32cd21cc6..8a8e32bde6f4 100644 --- a/toolchain/check/testdata/class/generic/redeclare.carbon +++ b/toolchain/check/testdata/class/generic/redeclare.carbon @@ -121,7 +121,7 @@ class E(U:! type) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param.loc4: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param.loc4 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param.loc4 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Generic.decl.loc6: %Generic.type = class_decl @Generic [template = constants.%Generic.1] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 @@ -131,8 +131,8 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Generic(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Generic(%T.loc4_15.1: type) { +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -145,7 +145,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_list.carbon @@ -185,14 +185,14 @@ class E(U:! type) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A; // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%T.loc12: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @.1(%T.loc12_9.1: type) { +// CHECK:STDOUT: %T.loc12_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -205,7 +205,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc12_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_implicit_param_list.carbon @@ -255,29 +255,29 @@ class E(U:! type) {} // CHECK:STDOUT: %.loc4_13.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_13.2: type = converted %int.make_type_32, %.loc4_13.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc4: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N.1)] +// CHECK:STDOUT: %N.loc4_9.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_9.2 (constants.%N.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.2] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %N.patt: @.1.%T.1 (%T) = symbolic_binding_pattern N, 1 +// CHECK:STDOUT: %N.patt: @.1.%T.loc12_9.2 (%T) = symbolic_binding_pattern N, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.param: @.1.%T.1 (%T) = param N, runtime_param -// CHECK:STDOUT: %N.loc12: @.1.%T.1 (%T) = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N.2)] +// CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc12_9.1 [symbolic = %T.loc12_9.2 (constants.%T)] +// CHECK:STDOUT: %N.param: @.1.%T.loc12_9.2 (%T) = param N, runtime_param +// CHECK:STDOUT: %N.loc12_19.1: @.1.%T.loc12_9.2 (%T) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc12_19.2 (constants.%N.2)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @B(%N.loc4: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N.1)] +// CHECK:STDOUT: generic class @B(%N.loc4_9.1: i32) { +// CHECK:STDOUT: %N.loc4_9.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.1)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%T.loc12: type, %N.loc12: @.1.%T.1 (%T)) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.1: %T = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N.2)] +// CHECK:STDOUT: generic class @.1(%T.loc12_9.1: type, %N.loc12_19.1: @.1.%T.loc12_9.2 (%T)) { +// CHECK:STDOUT: %T.loc12_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T)] +// CHECK:STDOUT: %N.loc12_19.2: %T = bind_symbolic_name N, 1 [symbolic = %N.loc12_19.2 (constants.%N.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -292,12 +292,12 @@ class E(U:! type) {} // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @B(constants.%N.1) { -// CHECK:STDOUT: %N.1 => constants.%N.1 +// CHECK:STDOUT: %N.loc4_9.2 => constants.%N.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T, constants.%N.2) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N.2 +// CHECK:STDOUT: %T.loc12_9.2 => constants.%T +// CHECK:STDOUT: %N.loc12_19.2 => constants.%N.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_count.carbon @@ -343,31 +343,31 @@ class E(U:! type) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.2] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: %U.patt: i32 = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_9.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc12_23.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc12_23.2: type = converted %int.make_type_32, %.loc12_23.1 [template = i32] // CHECK:STDOUT: %U.param: i32 = param U, runtime_param -// CHECK:STDOUT: %U.loc12: i32 = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc12_19.1: i32 = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc12_19.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc4_9.1: type) { +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%T.loc12: type, %U.loc12: i32) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: i32 = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic class @.1(%T.loc12_9.1: type, %U.loc12_19.1: i32) { +// CHECK:STDOUT: %T.loc12_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T)] +// CHECK:STDOUT: %U.loc12_19.2: i32 = bind_symbolic_name U, 1 [symbolic = %U.loc12_19.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -382,12 +382,12 @@ class E(U:! type) {} // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %T.loc12_9.2 => constants.%T +// CHECK:STDOUT: %U.loc12_19.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_type.carbon @@ -433,7 +433,7 @@ class E(U:! type) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.2] { // CHECK:STDOUT: %T.patt: i32 = symbolic_binding_pattern T, 0 @@ -442,18 +442,18 @@ class E(U:! type) {} // CHECK:STDOUT: %.loc12_13.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc12_13.2: type = converted %int.make_type_32, %.loc12_13.1 [template = i32] // CHECK:STDOUT: %T.param: i32 = param T, runtime_param -// CHECK:STDOUT: %T.loc12: i32 = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc12_9.1: i32 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_9.2 (constants.%T.2)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic class @D(%T.loc4_9.1: type) { +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%T.loc12: i32) { -// CHECK:STDOUT: %T.1: i32 = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic class @.1(%T.loc12_9.1: i32) { +// CHECK:STDOUT: %T.loc12_9.2: i32 = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -468,11 +468,11 @@ class E(U:! type) {} // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc12_9.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_name.carbon @@ -514,24 +514,24 @@ class E(U:! type) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.2] { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc11: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc11_9.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc11_9.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @E(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @E(%T.loc4_9.1: type) { +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%U.loc11: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic class @.1(%U.loc11_9.1: type) { +// CHECK:STDOUT: %U.loc11_9.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc11_9.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -544,10 +544,10 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @E(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc11_9.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index 5f901c85e20f..99ef28fee0f0 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -61,19 +61,19 @@ class Class(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc11_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T.1) [symbolic = %MakeSelf.type (constants.%MakeSelf.type)] +// CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T.loc11_13.2) [symbolic = %MakeSelf.type (constants.%MakeSelf.type)] // CHECK:STDOUT: %MakeSelf: @Class.%MakeSelf.type (%MakeSelf.type) = struct_value () [symbolic = %MakeSelf (constants.%MakeSelf)] -// CHECK:STDOUT: %MakeClass.type: type = fn_type @MakeClass, @Class(%T.1) [symbolic = %MakeClass.type (constants.%MakeClass.type)] +// CHECK:STDOUT: %MakeClass.type: type = fn_type @MakeClass, @Class(%T.loc11_13.2) [symbolic = %MakeClass.type (constants.%MakeClass.type)] // CHECK:STDOUT: %MakeClass: @Class.%MakeClass.type (%MakeClass.type) = struct_value () [symbolic = %MakeClass (constants.%MakeClass)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -84,9 +84,9 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %MakeClass.decl: @Class.%MakeClass.type (%MakeClass.type) = fn_decl @MakeClass [symbolic = @Class.%MakeClass (constants.%MakeClass)] {} { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc15: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %return: ref @MakeClass.%Class.1 (%Class.2) = var +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Class.loc15_26.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc15_26.1 (constants.%Class.2)] +// CHECK:STDOUT: %return: ref @MakeClass.%Class.loc15_26.1 (%Class.2) = var // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] {} {} // CHECK:STDOUT: %.loc20: = complete_type_witness %.2 [template = constants.%.3] @@ -99,24 +99,24 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeSelf(@Class.%T.loc11: type) { +// CHECK:STDOUT: generic fn @MakeSelf(@Class.%T.loc11_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @MakeSelf.%Class (%Class.2); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeClass(@Class.%T.loc11: type) { +// CHECK:STDOUT: generic fn @MakeClass(@Class.%T.loc11_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.1: type = class_type @Class, @Class(%T) [symbolic = %Class.1 (constants.%Class.2)] +// CHECK:STDOUT: %Class.loc15_26.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc15_26.1 (constants.%Class.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @MakeClass.%Class.1 (%Class.2); +// CHECK:STDOUT: fn() -> @MakeClass.%Class.loc15_26.1 (%Class.2); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc11: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc11_13.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.1: type = class_type @Class, @Class(%T) [symbolic = %Class.1 (constants.%Class.2)] +// CHECK:STDOUT: %Class.loc17_17.2: type = class_type @Class, @Class(%T) [symbolic = %Class.loc17_17.2 (constants.%Class.2)] // CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T) [symbolic = %MakeSelf.type (constants.%MakeSelf.type)] // CHECK:STDOUT: %MakeSelf: @F.%MakeSelf.type (%MakeSelf.type) = struct_value () [symbolic = %MakeSelf (constants.%MakeSelf)] // CHECK:STDOUT: %MakeClass.type: type = fn_type @MakeClass, @Class(%T) [symbolic = %MakeClass.type (constants.%MakeClass.type)] @@ -125,30 +125,30 @@ class Class(T:! type) { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc17: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %c.var: ref @F.%Class.1 (%Class.2) = var c -// CHECK:STDOUT: %c: ref @F.%Class.1 (%Class.2) = bind_name c, %c.var +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Class.loc17_17.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc17_17.2 (constants.%Class.2)] +// CHECK:STDOUT: %c.var: ref @F.%Class.loc17_17.2 (%Class.2) = var c +// CHECK:STDOUT: %c: ref @F.%Class.loc17_17.2 (%Class.2) = bind_name c, %c.var // CHECK:STDOUT: %.loc17_23: @F.%MakeSelf.type (%MakeSelf.type) = specific_constant @Class.%MakeSelf.decl, @Class(constants.%T) [symbolic = %MakeSelf (constants.%MakeSelf)] // CHECK:STDOUT: %MakeSelf.ref: @F.%MakeSelf.type (%MakeSelf.type) = name_ref MakeSelf, %.loc17_23 [symbolic = %MakeSelf (constants.%MakeSelf)] -// CHECK:STDOUT: %.loc17_9: ref @F.%Class.1 (%Class.2) = splice_block %c.var {} -// CHECK:STDOUT: %MakeSelf.call: init @F.%Class.1 (%Class.2) = call %MakeSelf.ref() to %.loc17_9 +// CHECK:STDOUT: %.loc17_9: ref @F.%Class.loc17_17.2 (%Class.2) = splice_block %c.var {} +// CHECK:STDOUT: %MakeSelf.call: init @F.%Class.loc17_17.2 (%Class.2) = call %MakeSelf.ref() to %.loc17_9 // CHECK:STDOUT: assign %c.var, %MakeSelf.call -// CHECK:STDOUT: %.loc18_12: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc18_12 [symbolic = %Class.1 (constants.%Class.2)] -// CHECK:STDOUT: %s.var: ref @F.%Class.1 (%Class.2) = var s -// CHECK:STDOUT: %s: ref @F.%Class.1 (%Class.2) = bind_name s, %s.var +// CHECK:STDOUT: %.loc18_12: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = %Class.loc17_17.2 (constants.%Class.2)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc18_12 [symbolic = %Class.loc17_17.2 (constants.%Class.2)] +// CHECK:STDOUT: %s.var: ref @F.%Class.loc17_17.2 (%Class.2) = var s +// CHECK:STDOUT: %s: ref @F.%Class.loc17_17.2 (%Class.2) = bind_name s, %s.var // CHECK:STDOUT: %.loc18_19: @F.%MakeClass.type (%MakeClass.type) = specific_constant @Class.%MakeClass.decl, @Class(constants.%T) [symbolic = %MakeClass (constants.%MakeClass)] // CHECK:STDOUT: %MakeClass.ref: @F.%MakeClass.type (%MakeClass.type) = name_ref MakeClass, %.loc18_19 [symbolic = %MakeClass (constants.%MakeClass)] -// CHECK:STDOUT: %.loc18_9: ref @F.%Class.1 (%Class.2) = splice_block %s.var {} -// CHECK:STDOUT: %MakeClass.call: init @F.%Class.1 (%Class.2) = call %MakeClass.ref() to %.loc18_9 +// CHECK:STDOUT: %.loc18_9: ref @F.%Class.loc17_17.2 (%Class.2) = splice_block %s.var {} +// CHECK:STDOUT: %MakeClass.call: init @F.%Class.loc17_17.2 (%Class.2) = call %MakeClass.ref() to %.loc18_9 // CHECK:STDOUT: assign %s.var, %MakeClass.call // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %MakeSelf.type => constants.%MakeSelf.type @@ -160,7 +160,7 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@MakeSelf.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MakeSelf(constants.%T) { @@ -169,21 +169,21 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@MakeClass.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MakeClass(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Class.1 => constants.%Class.2 +// CHECK:STDOUT: %Class.loc15_26.1 => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc11_13.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(@F.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic_method.carbon b/toolchain/check/testdata/class/generic_method.carbon index 0cb7cc5dd011..3b23f8d062b2 100644 --- a/toolchain/check/testdata/class/generic_method.carbon +++ b/toolchain/check/testdata/class/generic_method.carbon @@ -54,7 +54,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [symbolic = constants.%F] { // CHECK:STDOUT: %self.patt: %Class.2 = binding_pattern self @@ -72,20 +72,20 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc11_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc11_13.2) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: %.loc12_8.2: type = unbound_element_type @Class.%Class (%Class.2), @Class.%T.loc11_13.2 (%T) [symbolic = %.loc12_8.2 (constants.%.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %.2: type = struct_type {.a: @Class.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @Class.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %.loc14_1.2: type = struct_type {.a: @Class.%T.loc11_13.2 (%T)} [symbolic = %.loc14_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc14_1.3: = complete_type_witness @Class.%.loc14_1.2 (%.3) [symbolic = %.loc14_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12: @Class.%.1 (%.2) = field_decl a, element0 [template] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_13.1 [symbolic = %T.loc11_13.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_8.1: @Class.%.loc12_8.2 (%.2) = field_decl a, element0 [template] // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] { // CHECK:STDOUT: %self.patt: %Class.2 = binding_pattern self // CHECK:STDOUT: %n.patt: %T = binding_pattern n @@ -94,22 +94,22 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: %Self.ref.loc13: type = name_ref Self, %.loc13 [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: %self.param.loc13: @F.%Class (%Class.2) = param self, runtime_param0 // CHECK:STDOUT: %self.loc13: @F.%Class (%Class.2) = bind_name self, %self.param.loc13 -// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, @Class.%T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %n.param.loc13: @F.%T.1 (%T) = param n, runtime_param1 -// CHECK:STDOUT: %n.loc13: @F.%T.1 (%T) = bind_name n, %n.param.loc13 +// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T.loc13 (constants.%T)] +// CHECK:STDOUT: %n.param.loc13: @F.%T.loc13 (%T) = param n, runtime_param1 +// CHECK:STDOUT: %n.loc13: @F.%T.loc13 (%T) = bind_name n, %n.param.loc13 // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc14: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %.loc14_1.1: = complete_type_witness %.3 [symbolic = %.loc14_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%Class.2 -// CHECK:STDOUT: .a = %.loc12 +// CHECK:STDOUT: .a = %.loc12_8.1 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.1) [symbolic = %Class (constants.%Class.2)] +// CHECK:STDOUT: generic fn @F(@Class.%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc13: type = bind_symbolic_name T, 0 [symbolic = %T.loc13 (constants.%T)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc13) [symbolic = %Class (constants.%Class.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -120,27 +120,27 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Class => constants.%Class.2 -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %.loc12_8.2 => constants.%.2 // CHECK:STDOUT: %F.type => constants.%F.type // CHECK:STDOUT: %F => constants.%F -// CHECK:STDOUT: %.2 => constants.%.3 -// CHECK:STDOUT: %.3 => constants.%.4 +// CHECK:STDOUT: %.loc14_1.2 => constants.%.3 +// CHECK:STDOUT: %.loc14_1.3 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@F.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@F.%T.loc13) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc13 => constants.%T // CHECK:STDOUT: %Class => constants.%Class.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(@Class.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Class(@Class.%T.loc11_13.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon b/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon index 31929fdc36a1..2bde5713fdf6 100644 --- a/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon +++ b/toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon @@ -109,13 +109,13 @@ fn F(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_24.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_24.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [template = constants.%C.1] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [template = constants.%X] {} {} // CHECK:STDOUT: %NotGenericNoParams.ref: type = name_ref NotGenericNoParams, %NotGenericNoParams.decl [template = constants.%NotGenericNoParams] @@ -161,8 +161,8 @@ fn F(T:! type) { // CHECK:STDOUT: .Self = constants.%NotGenericButParams.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericAndParams.1(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @GenericAndParams.1(%T.loc6_24.1: type) { +// CHECK:STDOUT: %T.loc6_24.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_24.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -174,11 +174,11 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc8_9.1: type) { +// CHECK:STDOUT: %T.loc8_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.2, @C(%T.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.2)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.2, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.2)] // CHECK:STDOUT: %GenericAndParams: @C.%GenericAndParams.type (%GenericAndParams.type.2) = struct_value () [symbolic = %GenericAndParams (constants.%GenericAndParams.3)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -187,7 +187,7 @@ fn F(T:! type) { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc10: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc10_26.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc10_26.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc11: = complete_type_witness %.1 [template = constants.%.2] // CHECK:STDOUT: @@ -198,7 +198,7 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericNoParams(@C.%T.loc8: type) { +// CHECK:STDOUT: generic class @GenericNoParams(@C.%T.loc8_9.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -209,8 +209,8 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericAndParams.2(@C.%T.loc8: type, %U.loc10: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic class @GenericAndParams.2(@C.%T.loc8_9.1: type, %U.loc10_26.1: type) { +// CHECK:STDOUT: %U.loc10_26.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc10_26.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -255,31 +255,31 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.1(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc6_24.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericNoParams(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.2(constants.%T, constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc10_26.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(@C.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @C(@C.%T.loc8_9.2) { +// CHECK:STDOUT: %T.loc8_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.1(constants.%X) { -// CHECK:STDOUT: %T.1 => constants.%X +// CHECK:STDOUT: %T.loc6_24.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { -// CHECK:STDOUT: %T.1 => constants.%X +// CHECK:STDOUT: %T.loc8_9.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.3 @@ -287,7 +287,7 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.2(constants.%X, constants.%X) { -// CHECK:STDOUT: %U.1 => constants.%X +// CHECK:STDOUT: %U.loc10_26.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -351,7 +351,7 @@ fn F(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc10_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -362,21 +362,21 @@ fn F(T:! type) { // CHECK:STDOUT: .Self = constants.%A.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc10: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc10_6.1: type) { +// CHECK:STDOUT: %T.loc10_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc10: type) { +// CHECK:STDOUT: fn(%T.loc10_6.1: type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc10 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T)] // CHECK:STDOUT: %A: type = class_type @A [template = constants.%A.2] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc10_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon index a574788f6526..36ba919599a7 100644 --- a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon @@ -210,7 +210,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param.loc7: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param.loc7 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0, %a.param.loc7 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc8: %Foo.type = class_decl @Foo [template = constants.%Foo.1] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -224,7 +224,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param.loc10: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc10: %C = bind_symbolic_name a, 0, %a.param.loc10 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc10_11.1: %C = bind_symbolic_name a, 0, %a.param.loc10 [symbolic = %a.loc10_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc11: %Bar.type = class_decl @Bar [template = constants.%Bar.1] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -242,8 +242,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -255,8 +255,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Bar(%a.loc10: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Bar(%a.loc10_11.1: %C) { +// CHECK:STDOUT: %a.loc10_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -269,11 +269,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc10_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- spacing.carbon @@ -300,7 +300,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param.loc6: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_17.1: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.loc6_17.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = class_decl @Foo [template = constants.%Foo.1] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -318,8 +318,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc6_17.1: %C) { +// CHECK:STDOUT: %a.loc6_17.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_17.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -332,7 +332,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_17.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_parens.carbon @@ -362,14 +362,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc14: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc14_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc14_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -380,14 +380,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %C) { +// CHECK:STDOUT: %a.loc6_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc14: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @.1(%a.loc14_11.1: %C) { +// CHECK:STDOUT: %a.loc14_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -400,11 +400,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc14_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_raw_identifier.carbon @@ -431,7 +431,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param.loc6: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = class_decl @Foo [template = constants.%Foo.1] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -449,8 +449,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %C) { +// CHECK:STDOUT: %a.loc6_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -463,7 +463,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- two_file.carbon @@ -497,14 +497,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = class_decl @Bar [template = constants.%Bar.1] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc8_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc8_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -515,24 +515,24 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Bar(%a.loc8: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Bar(%a.loc8_11.1: %C) { +// CHECK:STDOUT: %a.loc8_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc8_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- two_file.impl.carbon @@ -654,14 +654,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %b.patt: %C = symbolic_binding_pattern b, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %b.param: %C = param b, runtime_param -// CHECK:STDOUT: %b.loc15: %C = bind_symbolic_name b, 0, %b.param [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: %b.loc15_11.1: %C = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc15_11.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -672,14 +672,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%b.loc15: %C) { -// CHECK:STDOUT: %b.1: %C = bind_symbolic_name b, 0 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: generic class @.1(%b.loc15_11.1: %C) { +// CHECK:STDOUT: %b.loc15_11.2: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_11.2 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -692,11 +692,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%b) { -// CHECK:STDOUT: %b.1 => constants.%b +// CHECK:STDOUT: %b.loc15_11.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias.carbon @@ -729,14 +729,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc15: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc15_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -747,14 +747,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc15: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @.1(%a.loc15_11.1: %C) { +// CHECK:STDOUT: %a.loc15_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -767,11 +767,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc15_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduced_alias.carbon @@ -804,14 +804,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc15: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc15_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -822,14 +822,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc7_11.1: %C) { +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc15: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @.1(%a.loc15_11.1: %C) { +// CHECK:STDOUT: %a.loc15_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -842,11 +842,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc15_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- alias_two_file.carbon @@ -873,7 +873,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -884,14 +884,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %C) { +// CHECK:STDOUT: %a.loc6_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_alias_two_file.impl.carbon @@ -983,7 +983,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %.loc6: type = const_type %C [template = constants.%.3] // CHECK:STDOUT: %a.param: %.3 = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.1: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.5] { // CHECK:STDOUT: %a.patt: %.3 = symbolic_binding_pattern a, 0 @@ -992,7 +992,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %.loc18_22: type = const_type %C [template = constants.%.3] // CHECK:STDOUT: %.loc18_15: type = const_type %.3 [template = constants.%.3] // CHECK:STDOUT: %a.param: %.3 = param a, runtime_param -// CHECK:STDOUT: %a.loc18: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc18_11.1: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc18_11.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1003,14 +1003,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%a.loc6: %.3) { -// CHECK:STDOUT: %a.1: %.3 = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @Foo(%a.loc6_11.1: %.3) { +// CHECK:STDOUT: %a.loc6_11.2: %.3 = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%a.loc18: %.3) { -// CHECK:STDOUT: %a.1: %.3 = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @.1(%a.loc18_11.1: %.3) { +// CHECK:STDOUT: %a.loc18_11.2: %.3 = bind_symbolic_name a, 0 [symbolic = %a.loc18_11.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1023,11 +1023,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc18_11.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_self_type.carbon diff --git a/toolchain/check/testdata/class/syntactic_merge_literal.carbon b/toolchain/check/testdata/class/syntactic_merge_literal.carbon index 1d633cff7e73..7ce731254d97 100644 --- a/toolchain/check/testdata/class/syntactic_merge_literal.carbon +++ b/toolchain/check/testdata/class/syntactic_merge_literal.carbon @@ -77,7 +77,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc2_13.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc2_13.2: type = converted %int.make_type_32, %.loc2_13.1 [template = i32] // CHECK:STDOUT: %a.param: i32 = param a, runtime_param -// CHECK:STDOUT: %a.loc2: i32 = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc2_9.1: i32 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc2_9.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc3: %D.type = class_decl @D [template = constants.%D.1] { // CHECK:STDOUT: %b.patt: %C.3 = symbolic_binding_pattern b, 0 @@ -86,7 +86,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc3: i32 = int_literal 1000 [template = constants.%.4] // CHECK:STDOUT: %C.loc3: type = class_type @C, @C(constants.%.4) [template = constants.%C.3] // CHECK:STDOUT: %b.param.loc3: %C.3 = param b, runtime_param -// CHECK:STDOUT: %b.loc3: %C.3 = bind_symbolic_name b, 0, %b.param.loc3 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: %b.loc3_9.1: %C.3 = bind_symbolic_name b, 0, %b.param.loc3 [symbolic = %b.loc3_9.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc4: %D.type = class_decl @D [template = constants.%D.1] { // CHECK:STDOUT: %b.patt: %C.3 = symbolic_binding_pattern b, 0 @@ -99,8 +99,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%a.loc2: i32) { -// CHECK:STDOUT: %a.1: i32 = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @C(%a.loc2_9.1: i32) { +// CHECK:STDOUT: %a.loc2_9.2: i32 = bind_symbolic_name a, 0 [symbolic = %a.loc2_9.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -112,8 +112,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%b.loc3: %C.3) { -// CHECK:STDOUT: %b.1: %C.3 = bind_symbolic_name b, 0 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: generic class @D(%b.loc3_9.1: %C.3) { +// CHECK:STDOUT: %b.loc3_9.2: %C.3 = bind_symbolic_name b, 0 [symbolic = %b.loc3_9.2 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -128,15 +128,15 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc2_9.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%.4) { -// CHECK:STDOUT: %a.1 => constants.%.4 +// CHECK:STDOUT: %a.loc2_9.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%b) { -// CHECK:STDOUT: %b.1 => constants.%b +// CHECK:STDOUT: %b.loc3_9.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_int_mismatch.carbon @@ -191,7 +191,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc2_13.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc2_13.2: type = converted %int.make_type_32, %.loc2_13.1 [template = i32] // CHECK:STDOUT: %a.param: i32 = param a, runtime_param -// CHECK:STDOUT: %a.loc2: i32 = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc2_9.1: i32 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc2_9.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: %D.type = class_decl @D [template = constants.%D.1] { // CHECK:STDOUT: %b.patt: %C.3 = symbolic_binding_pattern b, 0 @@ -200,7 +200,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc3: i32 = int_literal 1000 [template = constants.%.4] // CHECK:STDOUT: %C: type = class_type @C, @C(constants.%.4) [template = constants.%C.3] // CHECK:STDOUT: %b.param: %C.3 = param b, runtime_param -// CHECK:STDOUT: %b.loc3: %C.3 = bind_symbolic_name b, 0, %b.param [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: %b.loc3_9.1: %C.3 = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc3_9.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = class_decl @.1 [template = constants.%.5] { // CHECK:STDOUT: %b.patt: %C.3 = symbolic_binding_pattern b, 0 @@ -209,12 +209,12 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc10_15: i32 = int_literal 1000 [template = constants.%.4] // CHECK:STDOUT: %C: type = class_type @C, @C(constants.%.4) [template = constants.%C.3] // CHECK:STDOUT: %b.param: %C.3 = param b, runtime_param -// CHECK:STDOUT: %b.loc10: %C.3 = bind_symbolic_name b, 0, %b.param [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: %b.loc10_9.1: %C.3 = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc10_9.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%a.loc2: i32) { -// CHECK:STDOUT: %a.1: i32 = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic class @C(%a.loc2_9.1: i32) { +// CHECK:STDOUT: %a.loc2_9.2: i32 = bind_symbolic_name a, 0 [symbolic = %a.loc2_9.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -226,14 +226,14 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%b.loc3: %C.3) { -// CHECK:STDOUT: %b.1: %C.3 = bind_symbolic_name b, 0 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: generic class @D(%b.loc3_9.1: %C.3) { +// CHECK:STDOUT: %b.loc3_9.2: %C.3 = bind_symbolic_name b, 0 [symbolic = %b.loc3_9.2 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @.1(%b.loc10: %C.3) { -// CHECK:STDOUT: %b.1: %C.3 = bind_symbolic_name b, 0 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: generic class @.1(%b.loc10_9.1: %C.3) { +// CHECK:STDOUT: %b.loc10_9.2: %C.3 = bind_symbolic_name b, 0 [symbolic = %b.loc10_9.2 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -248,18 +248,18 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc2_9.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%.4) { -// CHECK:STDOUT: %a.1 => constants.%.4 +// CHECK:STDOUT: %a.loc2_9.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%b) { -// CHECK:STDOUT: %b.1 => constants.%b +// CHECK:STDOUT: %b.loc3_9.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%b) { -// CHECK:STDOUT: %b.1 => constants.%b +// CHECK:STDOUT: %b.loc10_9.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index c6f005063520..667f0993274e 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -147,17 +147,17 @@ fn G() -> C { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %a.patt: @F.%.1 (%.4) = binding_pattern a +// CHECK:STDOUT: %a.patt: @F.%.loc6_24.2 (%.4) = binding_pattern a // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc6_20: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_20: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %.loc6_23: i32 = int_literal 3 [template = constants.%.3] -// CHECK:STDOUT: %.loc6_24: type = array_type %.loc6_23, %T [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %a.param: @F.%.1 (%.4) = param a, runtime_param0 -// CHECK:STDOUT: %a: @F.%.1 (%.4) = bind_name a, %a.param -// CHECK:STDOUT: %T.ref.loc6_30: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %.loc6_24.1: type = array_type %.loc6_23, %T [symbolic = %.loc6_24.2 (constants.%.4)] +// CHECK:STDOUT: %a.param: @F.%.loc6_24.2 (%.4) = param a, runtime_param0 +// CHECK:STDOUT: %a: @F.%.loc6_24.2 (%.4) = bind_name a, %a.param +// CHECK:STDOUT: %T.ref.loc6_30: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C] @@ -172,19 +172,19 @@ fn G() -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = array_type constants.%.3, @F.%T.1 (%T) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_24.2: type = array_type constants.%.3, @F.%T.loc6_6.2 (%T) [symbolic = %.loc6_24.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc6: type](%a: @F.%.1 (%.4)) -> @F.%T.1 (%T) { +// CHECK:STDOUT: fn[%T.loc6_6.1: type](%a: @F.%.loc6_24.2 (%.4)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @F.%.1 (%.4) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @F.%.loc6_24.2 (%.4) = name_ref a, %a // CHECK:STDOUT: %.loc6_43: i32 = int_literal 0 [template = constants.%.7] -// CHECK:STDOUT: %.loc6_44.1: ref @F.%.1 (%.4) = value_as_ref %a.ref -// CHECK:STDOUT: %.loc6_44.2: ref @F.%T.1 (%T) = array_index %.loc6_44.1, %.loc6_43 -// CHECK:STDOUT: %.loc6_44.3: @F.%T.1 (%T) = bind_value %.loc6_44.2 +// CHECK:STDOUT: %.loc6_44.1: ref @F.%.loc6_24.2 (%.4) = value_as_ref %a.ref +// CHECK:STDOUT: %.loc6_44.2: ref @F.%T.loc6_6.2 (%T) = array_index %.loc6_44.1, %.loc6_43 +// CHECK:STDOUT: %.loc6_44.3: @F.%T.loc6_6.2 (%T) = bind_value %.loc6_44.2 // CHECK:STDOUT: return %.loc6_44.3 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -224,13 +224,13 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %.loc6_24.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C -// CHECK:STDOUT: %.1 => constants.%.9 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%C +// CHECK:STDOUT: %.loc6_24.2 => constants.%.9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_bound_only.carbon @@ -291,9 +291,9 @@ fn G() -> C { // CHECK:STDOUT: %.loc10_10.1: type = value_of_initializer %int.make_type_32.loc10_10 [template = i32] // CHECK:STDOUT: %.loc10_10.2: type = converted %int.make_type_32.loc10_10, %.loc10_10.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc10: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc10_6.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %N.ref.loc10_22: i32 = name_ref N, %N.loc10 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc10_22: i32 = name_ref N, %N.loc10_6.1 [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: %.loc10_23: type = array_type %N.ref.loc10_22, %C [template = ] // CHECK:STDOUT: %a.param: = param a, runtime_param0 // CHECK:STDOUT: %a: = bind_name a, %a.param @@ -317,14 +317,14 @@ fn G() -> C { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc10: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic fn @F(%N.loc10_6.1: i32) { +// CHECK:STDOUT: %N.loc10_6.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.loc10: i32](%a: ) -> i32 { +// CHECK:STDOUT: fn[%N.loc10_6.1: i32](%a: ) -> i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc10_42: i32 = name_ref N, %N.loc10 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc10_42: i32 = name_ref N, %N.loc10_6.1 [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: return %N.ref.loc10_42 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -361,7 +361,7 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc10_6.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_type_and_bound.carbon @@ -421,19 +421,19 @@ fn G() -> C { // CHECK:STDOUT: %a.patt: = binding_pattern a // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc10_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_6.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc10_20.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc10_20.2: type = converted %int.make_type_32, %.loc10_20.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc10: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %T.ref.loc10_29: type = name_ref T, %T.loc10 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.ref: i32 = name_ref N, %N.loc10 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc10_16.1: i32 = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc10_16.2 (constants.%N)] +// CHECK:STDOUT: %T.ref.loc10_29: type = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T)] +// CHECK:STDOUT: %N.ref: i32 = name_ref N, %N.loc10_16.1 [symbolic = %N.loc10_16.2 (constants.%N)] // CHECK:STDOUT: %.loc10_33: type = array_type %N.ref, %T [template = ] // CHECK:STDOUT: %a.param: = param a, runtime_param0 // CHECK:STDOUT: %a: = bind_name a, %a.param -// CHECK:STDOUT: %T.ref.loc10_39: type = name_ref T, %T.loc10 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.ref.loc10_39: type = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc10_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} { // CHECK:STDOUT: %C.ref.loc12: type = name_ref C, file.%C.decl [template = constants.%C] @@ -450,11 +450,11 @@ fn G() -> C { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc10: type, %N.loc10: i32) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic fn @F(%T.loc10_6.1: type, %N.loc10_16.1: i32) { +// CHECK:STDOUT: %T.loc10_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.2 (constants.%T)] +// CHECK:STDOUT: %N.loc10_16.2: i32 = bind_symbolic_name N, 1 [symbolic = %N.loc10_16.2 (constants.%N)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc10: type, %N.loc10: i32](%a: ) -> @F.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc10_6.1: type, %N.loc10_16.1: i32](%a: ) -> @F.%T.loc10_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G() -> %return: %C { @@ -489,8 +489,8 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %T.loc10_6.2 => constants.%T +// CHECK:STDOUT: %N.loc10_16.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_bound_mismatch.carbon @@ -568,17 +568,17 @@ fn G() -> C { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %a.patt: @F.%.1 (%.4) = binding_pattern a +// CHECK:STDOUT: %a.patt: @F.%.loc6_24.2 (%.4) = binding_pattern a // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc6_20: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_20: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] // CHECK:STDOUT: %.loc6_23: i32 = int_literal 2 [template = constants.%.3] -// CHECK:STDOUT: %.loc6_24: type = array_type %.loc6_23, %T [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %a.param: @F.%.1 (%.4) = param a, runtime_param0 -// CHECK:STDOUT: %a: @F.%.1 (%.4) = bind_name a, %a.param -// CHECK:STDOUT: %T.ref.loc6_30: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %.loc6_24.1: type = array_type %.loc6_23, %T [symbolic = %.loc6_24.2 (constants.%.4)] +// CHECK:STDOUT: %a.param: @F.%.loc6_24.2 (%.4) = param a, runtime_param0 +// CHECK:STDOUT: %a: @F.%.loc6_24.2 (%.4) = bind_name a, %a.param +// CHECK:STDOUT: %T.ref.loc6_30: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C] @@ -612,19 +612,19 @@ fn G() -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = array_type constants.%.3, @F.%T.1 (%T) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_24.2: type = array_type constants.%.3, @F.%T.loc6_6.2 (%T) [symbolic = %.loc6_24.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc6: type](%a: @F.%.1 (%.4)) -> @F.%T.1 (%T) { +// CHECK:STDOUT: fn[%T.loc6_6.1: type](%a: @F.%.loc6_24.2 (%.4)) -> @F.%T.loc6_6.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @F.%.1 (%.4) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @F.%.loc6_24.2 (%.4) = name_ref a, %a // CHECK:STDOUT: %.loc6_43: i32 = int_literal 0 [template = constants.%.7] -// CHECK:STDOUT: %.loc6_44.1: ref @F.%.1 (%.4) = value_as_ref %a.ref -// CHECK:STDOUT: %.loc6_44.2: ref @F.%T.1 (%T) = array_index %.loc6_44.1, %.loc6_43 -// CHECK:STDOUT: %.loc6_44.3: @F.%T.1 (%T) = bind_value %.loc6_44.2 +// CHECK:STDOUT: %.loc6_44.1: ref @F.%.loc6_24.2 (%.4) = value_as_ref %a.ref +// CHECK:STDOUT: %.loc6_44.2: ref @F.%T.loc6_6.2 (%T) = array_index %.loc6_44.1, %.loc6_43 +// CHECK:STDOUT: %.loc6_44.3: @F.%T.loc6_6.2 (%T) = bind_value %.loc6_44.2 // CHECK:STDOUT: return %.loc6_44.3 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -675,13 +675,13 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %.loc6_24.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C -// CHECK:STDOUT: %.1 => constants.%.14 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%C +// CHECK:STDOUT: %.loc6_24.2 => constants.%.14 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -775,9 +775,9 @@ fn G() -> C { // CHECK:STDOUT: %.loc10_10.1: type = value_of_initializer %int.make_type_32.loc10_10 [template = i32] // CHECK:STDOUT: %.loc10_10.2: type = converted %int.make_type_32.loc10_10, %.loc10_10.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc10: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc10_6.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] -// CHECK:STDOUT: %N.ref.loc10_22: i32 = name_ref N, %N.loc10 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc10_22: i32 = name_ref N, %N.loc10_6.1 [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: %.loc10_23: type = array_type %N.ref.loc10_22, %C [template = ] // CHECK:STDOUT: %a.param: = param a, runtime_param0 // CHECK:STDOUT: %a: = bind_name a, %a.param @@ -808,14 +808,14 @@ fn G() -> C { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc10: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic fn @F(%N.loc10_6.1: i32) { +// CHECK:STDOUT: %N.loc10_6.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.loc10: i32](%a: ) -> i32 { +// CHECK:STDOUT: fn[%N.loc10_6.1: i32](%a: ) -> i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc10_42: i32 = name_ref N, %N.loc10 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc10_42: i32 = name_ref N, %N.loc10_6.1 [symbolic = %N.loc10_6.2 (constants.%N)] // CHECK:STDOUT: return %N.ref.loc10_42 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -852,6 +852,6 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc10_6.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index a225e97e09d2..48f827fedf49 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -110,22 +110,22 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [template = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %p.patt: @F.%C.1 (%C.2) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%C.loc7_20.2 (%C.2) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc7: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.1] -// CHECK:STDOUT: %T.ref.loc7_21: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %C.loc7: type = class_type @C, @C(constants.%T) [symbolic = %C.1 (constants.%C.2)] -// CHECK:STDOUT: %p.param: @F.%C.1 (%C.2) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%C.1 (%C.2) = bind_name p, %p.param -// CHECK:STDOUT: %T.ref.loc7_28: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.ref.loc7_21: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %C.loc7_20.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_20.2 (constants.%C.2)] +// CHECK:STDOUT: %p.param: @F.%C.loc7_20.2 (%C.2) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%C.loc7_20.2 (%C.2) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref.loc7_28: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc7_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %p.patt: %C.3 = binding_pattern p @@ -140,8 +140,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc4_9.1: type) { +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -160,11 +160,11 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc7: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %C.1: type = class_type @C, @C(%T.1) [symbolic = %C.1 (constants.%C.2)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %C.loc7_20.2: type = class_type @C, @C(%T.loc7_6.2) [symbolic = %C.loc7_20.2 (constants.%C.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc7: type](%p: @F.%C.1 (%C.2)) -> @F.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc7_6.1: type](%p: @F.%C.loc7_20.2 (%C.2)) -> @F.%T.loc7_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p: %C.3) -> %return: %D { @@ -177,27 +177,27 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(@F.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @C(@F.%T.loc7_6.2) { +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %C.1 => constants.%C.2 +// CHECK:STDOUT: %T.loc7_6.2 => constants.%T +// CHECK:STDOUT: %C.loc7_20.2 => constants.%C.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%D) { -// CHECK:STDOUT: %T.1 => constants.%D +// CHECK:STDOUT: %T.loc4_9.2 => constants.%D // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%D) { -// CHECK:STDOUT: %T.1 => constants.%D -// CHECK:STDOUT: %C.1 => constants.%C.3 +// CHECK:STDOUT: %T.loc7_6.2 => constants.%D +// CHECK:STDOUT: %C.loc7_20.2 => constants.%C.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- interface.carbon @@ -245,20 +245,20 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %p.patt: @F.%I.1 (%I.2) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%I.loc7_20.2 (%I.2) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc7: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %I.ref: %I.type = name_ref I, file.%I.decl [template = constants.%I.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %I.loc7: type = class_type @I, @I(constants.%T) [symbolic = %I.1 (constants.%I.2)] -// CHECK:STDOUT: %p.param: @F.%I.1 (%I.2) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%I.1 (%I.2) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %I.loc7_20.1: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_20.2 (constants.%I.2)] +// CHECK:STDOUT: %p.param: @F.%I.loc7_20.2 (%I.2) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%I.loc7_20.2 (%I.2) = bind_name p, %p.param // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %return: ref %C = var // CHECK:STDOUT: } @@ -275,8 +275,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @I(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @I(%T.loc4_9.1: type) { +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -295,11 +295,11 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc7: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %I.1: type = class_type @I, @I(%T.1) [symbolic = %I.1 (constants.%I.2)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %I.loc7_20.2: type = class_type @I, @I(%T.loc7_6.2) [symbolic = %I.loc7_20.2 (constants.%I.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc7: type](%p: @F.%I.1 (%I.2)) -> %C; +// CHECK:STDOUT: fn[%T.loc7_6.1: type](%p: @F.%I.loc7_20.2 (%I.2)) -> %C; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p: %I.3) -> %return: %C { @@ -312,27 +312,27 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@F.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @I(@F.%T.loc7_6.2) { +// CHECK:STDOUT: %T.loc4_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %I.1 => constants.%I.2 +// CHECK:STDOUT: %T.loc7_6.2 => constants.%T +// CHECK:STDOUT: %I.loc7_20.2 => constants.%I.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C +// CHECK:STDOUT: %T.loc4_9.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C -// CHECK:STDOUT: %I.1 => constants.%I.3 +// CHECK:STDOUT: %T.loc7_6.2 => constants.%C +// CHECK:STDOUT: %I.loc7_20.2 => constants.%I.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested.carbon @@ -394,33 +394,33 @@ fn G() -> i32 { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [template = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 -// CHECK:STDOUT: %p.patt: @F.%Inner.2 (%Inner.2) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%Inner.loc13_43.2 (%Inner.2) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc13: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc13: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc13_16.2 (constants.%U)] // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [template = constants.%Outer.1] -// CHECK:STDOUT: %T.ref.loc13_35: type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %Outer.loc13: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.1 (constants.%Outer.2)] -// CHECK:STDOUT: %.loc13_37: @F.%Inner.type (%Inner.type.1) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %Inner.ref: @F.%Inner.type (%Inner.type.1) = name_ref Inner, %.loc13_37 [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %U.ref.loc13_44: type = name_ref U, %U.loc13 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %Inner.loc13: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.2 (constants.%Inner.2)] -// CHECK:STDOUT: %p.param: @F.%Inner.2 (%Inner.2) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%Inner.2 (%Inner.2) = bind_name p, %p.param -// CHECK:STDOUT: %T.ref.loc13_52: type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.ref.loc13_55: type = name_ref U, %U.loc13 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %T.ref.loc13_35: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %Outer.loc13_34.1: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc13_34.2 (constants.%Outer.2)] +// CHECK:STDOUT: %.loc13_37: @F.%Inner.type (%Inner.type.1) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.loc13_37 (constants.%Inner.1)] +// CHECK:STDOUT: %Inner.ref: @F.%Inner.type (%Inner.type.1) = name_ref Inner, %.loc13_37 [symbolic = %Inner.loc13_37 (constants.%Inner.1)] +// CHECK:STDOUT: %U.ref.loc13_44: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)] +// CHECK:STDOUT: %Inner.loc13_43.1: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_43.2 (constants.%Inner.2)] +// CHECK:STDOUT: %p.param: @F.%Inner.loc13_43.2 (%Inner.2) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%Inner.loc13_43.2 (%Inner.2) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref.loc13_52: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %U.ref.loc13_55: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)] // CHECK:STDOUT: %.loc13_56.1: %.5 = tuple_literal (%T.ref.loc13_52, %U.ref.loc13_55) -// CHECK:STDOUT: %.loc13_56.2: type = converted %.loc13_56.1, constants.%.6 [symbolic = %.1 (constants.%.6)] -// CHECK:STDOUT: %return: ref @F.%.1 (%.6) = var +// CHECK:STDOUT: %.loc13_56.2: type = converted %.loc13_56.1, constants.%.6 [symbolic = %.loc13_56.3 (constants.%.6)] +// CHECK:STDOUT: %return: ref @F.%.loc13_56.3 (%.6) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %p.patt: %Inner.4 = binding_pattern p @@ -442,11 +442,11 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Outer(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Outer(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.1) [symbolic = %Inner.type (constants.%Inner.type.1)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.1)] // CHECK:STDOUT: %Inner: @Outer.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner (constants.%Inner.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -454,7 +454,7 @@ fn G() -> i32 { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc5: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc5_15.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc5_15.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc6: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -464,8 +464,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4: type, %U.loc5: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.1: type, %U.loc5_15.1: type) { +// CHECK:STDOUT: %U.loc5_15.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc5_15.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -491,16 +491,16 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc13: type, %U.loc13: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %Outer.1: type = class_type @Outer, @Outer(%T.1) [symbolic = %Outer.1 (constants.%Outer.2)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.1) [symbolic = %Inner.type (constants.%Inner.type.1)] -// CHECK:STDOUT: %Inner.1: @F.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner.1 (constants.%Inner.1)] -// CHECK:STDOUT: %Inner.2: type = class_type @Inner, @Inner(%T.1, %U.1) [symbolic = %Inner.2 (constants.%Inner.2)] -// CHECK:STDOUT: %.1: type = tuple_type (@F.%T.1 (%T), @F.%U.1 (%U)) [symbolic = %.1 (constants.%.6)] +// CHECK:STDOUT: generic fn @F(%T.loc13_6.1: type, %U.loc13_16.1: type) { +// CHECK:STDOUT: %T.loc13_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %U.loc13_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.2 (constants.%U)] +// CHECK:STDOUT: %Outer.loc13_34.2: type = class_type @Outer, @Outer(%T.loc13_6.2) [symbolic = %Outer.loc13_34.2 (constants.%Outer.2)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_6.2) [symbolic = %Inner.type (constants.%Inner.type.1)] +// CHECK:STDOUT: %Inner.loc13_37: @F.%Inner.type (%Inner.type.1) = struct_value () [symbolic = %Inner.loc13_37 (constants.%Inner.1)] +// CHECK:STDOUT: %Inner.loc13_43.2: type = class_type @Inner, @Inner(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %Inner.loc13_43.2 (constants.%Inner.2)] +// CHECK:STDOUT: %.loc13_56.3: type = tuple_type (@F.%T.loc13_6.2 (%T), @F.%U.loc13_16.2 (%U)) [symbolic = %.loc13_56.3 (constants.%.6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc13: type, %U.loc13: type](%p: @F.%Inner.2 (%Inner.2)) -> @F.%.1 (%.6); +// CHECK:STDOUT: fn[%T.loc13_6.1: type, %U.loc13_16.1: type](%p: @F.%Inner.loc13_43.2 (%Inner.2)) -> @F.%.loc13_56.3 (%.6); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p: %Inner.4) -> %return: %.7 { @@ -513,7 +513,7 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.1 @@ -521,33 +521,33 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc5_15.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer(@Outer.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Outer(@Outer.%T.loc4_13.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Outer(@F.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Outer(@F.%T.loc13_6.2) { +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(@F.%T.1, @F.%U.1) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: specific @Inner(@F.%T.loc13_6.2, @F.%U.loc13_16.2) { +// CHECK:STDOUT: %U.loc5_15.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U -// CHECK:STDOUT: %Outer.1 => constants.%Outer.2 +// CHECK:STDOUT: %T.loc13_6.2 => constants.%T +// CHECK:STDOUT: %U.loc13_16.2 => constants.%U +// CHECK:STDOUT: %Outer.loc13_34.2 => constants.%Outer.2 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.1 -// CHECK:STDOUT: %Inner.1 => constants.%Inner.1 -// CHECK:STDOUT: %Inner.2 => constants.%Inner.2 -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %Inner.loc13_37 => constants.%Inner.1 +// CHECK:STDOUT: %Inner.loc13_43.2 => constants.%Inner.2 +// CHECK:STDOUT: %.loc13_56.3 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C +// CHECK:STDOUT: %T.loc4_13.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.2 @@ -555,19 +555,19 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%C, constants.%D) { -// CHECK:STDOUT: %U.1 => constants.%D +// CHECK:STDOUT: %U.loc5_15.2 => constants.%D // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C, constants.%D) { -// CHECK:STDOUT: %T.1 => constants.%C -// CHECK:STDOUT: %U.1 => constants.%D -// CHECK:STDOUT: %Outer.1 => constants.%Outer.3 +// CHECK:STDOUT: %T.loc13_6.2 => constants.%C +// CHECK:STDOUT: %U.loc13_16.2 => constants.%D +// CHECK:STDOUT: %Outer.loc13_34.2 => constants.%Outer.3 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.2 -// CHECK:STDOUT: %Inner.1 => constants.%Inner.3 -// CHECK:STDOUT: %Inner.2 => constants.%Inner.4 -// CHECK:STDOUT: %.1 => constants.%.7 +// CHECK:STDOUT: %Inner.loc13_37 => constants.%Inner.3 +// CHECK:STDOUT: %Inner.loc13_43.2 => constants.%Inner.4 +// CHECK:STDOUT: %.loc13_56.3 => constants.%.7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nontype.carbon @@ -622,22 +622,22 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc4_23.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_23.2: type = converted %int.make_type_32, %.loc4_23.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc4: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc4_19.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_19.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 0 -// CHECK:STDOUT: %x.patt: @F.%WithNontype.1 (%WithNontype.2) = binding_pattern x +// CHECK:STDOUT: %x.patt: @F.%WithNontype.loc6_29.2 (%WithNontype.2) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %int.make_type_32.loc6_10: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc6_10.1: type = value_of_initializer %int.make_type_32.loc6_10 [template = i32] // CHECK:STDOUT: %.loc6_10.2: type = converted %int.make_type_32.loc6_10, %.loc6_10.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc6: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc6_6.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc6_6.2 (constants.%N)] // CHECK:STDOUT: %WithNontype.ref: %WithNontype.type = name_ref WithNontype, file.%WithNontype.decl [template = constants.%WithNontype.1] -// CHECK:STDOUT: %N.ref.loc6_30: i32 = name_ref N, %N.loc6 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %WithNontype.loc6: type = class_type @WithNontype, @WithNontype(constants.%N) [symbolic = %WithNontype.1 (constants.%WithNontype.2)] -// CHECK:STDOUT: %x.param: @F.%WithNontype.1 (%WithNontype.2) = param x, runtime_param0 -// CHECK:STDOUT: %x: @F.%WithNontype.1 (%WithNontype.2) = bind_name x, %x.param +// CHECK:STDOUT: %N.ref.loc6_30: i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N)] +// CHECK:STDOUT: %WithNontype.loc6_29.1: type = class_type @WithNontype, @WithNontype(constants.%N) [symbolic = %WithNontype.loc6_29.2 (constants.%WithNontype.2)] +// CHECK:STDOUT: %x.param: @F.%WithNontype.loc6_29.2 (%WithNontype.2) = param x, runtime_param0 +// CHECK:STDOUT: %x: @F.%WithNontype.loc6_29.2 (%WithNontype.2) = bind_name x, %x.param // CHECK:STDOUT: %int.make_type_32.loc6_37: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc6_37.1: type = value_of_initializer %int.make_type_32.loc6_37 [template = i32] // CHECK:STDOUT: %.loc6_37.2: type = converted %int.make_type_32.loc6_37, %.loc6_37.1 [template = i32] @@ -651,8 +651,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @WithNontype(%N.loc4: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic class @WithNontype(%N.loc4_19.1: i32) { +// CHECK:STDOUT: %N.loc4_19.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -666,15 +666,15 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc6: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %WithNontype.1: type = class_type @WithNontype, @WithNontype(%N.1) [symbolic = %WithNontype.1 (constants.%WithNontype.2)] +// CHECK:STDOUT: generic fn @F(%N.loc6_6.1: i32) { +// CHECK:STDOUT: %N.loc6_6.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N)] +// CHECK:STDOUT: %WithNontype.loc6_29.2: type = class_type @WithNontype, @WithNontype(%N.loc6_6.2) [symbolic = %WithNontype.loc6_29.2 (constants.%WithNontype.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.loc6: i32](%x: @F.%WithNontype.1 (%WithNontype.2)) -> i32 { +// CHECK:STDOUT: fn[%N.loc6_6.1: i32](%x: @F.%WithNontype.loc6_29.2 (%WithNontype.2)) -> i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_50: i32 = name_ref N, %N.loc6 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc6_50: i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N)] // CHECK:STDOUT: return %N.ref.loc6_50 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -698,28 +698,28 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithNontype(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc4_19.2 => constants.%N // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithNontype(@F.%N.1) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: specific @WithNontype(@F.%N.loc6_6.2) { +// CHECK:STDOUT: %N.loc4_19.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N -// CHECK:STDOUT: %WithNontype.1 => constants.%WithNontype.2 +// CHECK:STDOUT: %N.loc6_6.2 => constants.%N +// CHECK:STDOUT: %WithNontype.loc6_29.2 => constants.%WithNontype.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithNontype(constants.%.5) { -// CHECK:STDOUT: %N.1 => constants.%.5 +// CHECK:STDOUT: %N.loc4_19.2 => constants.%.5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%.5) { -// CHECK:STDOUT: %N.1 => constants.%.5 -// CHECK:STDOUT: %WithNontype.1 => constants.%WithNontype.3 +// CHECK:STDOUT: %N.loc6_6.2 => constants.%.5 +// CHECK:STDOUT: %WithNontype.loc6_29.2 => constants.%WithNontype.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/int_float.carbon b/toolchain/check/testdata/deduce/int_float.carbon index 164b86de28be..8101eb12adc9 100644 --- a/toolchain/check/testdata/deduce/int_float.carbon +++ b/toolchain/check/testdata/deduce/int_float.carbon @@ -80,21 +80,21 @@ fn G(a: f64) -> i32 { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %N.patt: i32 = symbolic_binding_pattern N, 0 -// CHECK:STDOUT: %n.patt: @F.%.1 (%.2) = binding_pattern n +// CHECK:STDOUT: %n.patt: @F.%.loc4_26 (%.2) = binding_pattern n // CHECK:STDOUT: } { // CHECK:STDOUT: %int.make_type_32.loc4_10: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_10.1: type = value_of_initializer %int.make_type_32.loc4_10 [template = i32] // CHECK:STDOUT: %.loc4_10.2: type = converted %int.make_type_32.loc4_10, %.loc4_10.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc4: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc4_6.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc4_6.2 (constants.%N)] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%import_ref.2 [template = constants.%Int] -// CHECK:STDOUT: %N.ref.loc4: i32 = name_ref N, %N.loc4 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %int.make_type_signed: init type = call %Int.ref(%N.ref.loc4) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.loc4_28.1: type = value_of_initializer %int.make_type_signed [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.loc4_28.2: type = converted %int.make_type_signed, %.loc4_28.1 [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %n.param: @F.%.1 (%.2) = param n, runtime_param0 -// CHECK:STDOUT: %n: @F.%.1 (%.2) = bind_name n, %n.param +// CHECK:STDOUT: %N.ref.loc4: i32 = name_ref N, %N.loc4_6.1 [symbolic = %N.loc4_6.2 (constants.%N)] +// CHECK:STDOUT: %int.make_type_signed: init type = call %Int.ref(%N.ref.loc4) [symbolic = %.loc4_26 (constants.%.2)] +// CHECK:STDOUT: %.loc4_28.1: type = value_of_initializer %int.make_type_signed [symbolic = %.loc4_26 (constants.%.2)] +// CHECK:STDOUT: %.loc4_28.2: type = converted %int.make_type_signed, %.loc4_28.1 [symbolic = %.loc4_26 (constants.%.2)] +// CHECK:STDOUT: %n.param: @F.%.loc4_26 (%.2) = param n, runtime_param0 +// CHECK:STDOUT: %n: @F.%.loc4_26 (%.2) = bind_name n, %n.param // CHECK:STDOUT: %int.make_type_32.loc4_34: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_34.1: type = value_of_initializer %int.make_type_32.loc4_34 [template = i32] // CHECK:STDOUT: %.loc4_34.2: type = converted %int.make_type_32.loc4_34, %.loc4_34.1 [template = i32] @@ -120,15 +120,15 @@ fn G(a: f64) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%size: i32) -> type = "int.make_type_signed"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc4: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] -// CHECK:STDOUT: %.1: type = int_type signed, %N.1 [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: generic fn @F(%N.loc4_6.1: i32) { +// CHECK:STDOUT: %N.loc4_6.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_6.2 (constants.%N)] +// CHECK:STDOUT: %.loc4_26: type = int_type signed, %N.loc4_6.2 [symbolic = %.loc4_26 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.loc4: i32](%n: @F.%.1 (%.2)) -> i32 { +// CHECK:STDOUT: fn[%N.loc4_6.1: i32](%n: @F.%.loc4_26 (%.2)) -> i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc5: i32 = name_ref N, %N.loc4 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc5: i32 = name_ref N, %N.loc4_6.1 [symbolic = %N.loc4_6.2 (constants.%N)] // CHECK:STDOUT: return %N.ref.loc5 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -144,13 +144,13 @@ fn G(a: f64) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %N.loc4_6.2 => constants.%N +// CHECK:STDOUT: %.loc4_26 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%.3) { -// CHECK:STDOUT: %N.1 => constants.%.3 -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %N.loc4_6.2 => constants.%.3 +// CHECK:STDOUT: %.loc4_26 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_float.carbon @@ -201,10 +201,10 @@ fn G(a: f64) -> i32 { // CHECK:STDOUT: %.loc8_10.1: type = value_of_initializer %int.make_type_32.loc8_10 [template = i32] // CHECK:STDOUT: %.loc8_10.2: type = converted %int.make_type_32.loc8_10, %.loc8_10.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc8: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc8_6.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc8_6.2 (constants.%N)] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [template = imports.%Core] // CHECK:STDOUT: %Float.ref: %Float.type = name_ref Float, imports.%import_ref.2 [template = constants.%Float] -// CHECK:STDOUT: %N.ref.loc8: i32 = name_ref N, %N.loc8 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc8: i32 = name_ref N, %N.loc8_6.1 [symbolic = %N.loc8_6.2 (constants.%N)] // CHECK:STDOUT: %float.make_type: init type = call %Float.ref(%N.ref.loc8) // CHECK:STDOUT: %.loc8_30.1: type = value_of_initializer %float.make_type // CHECK:STDOUT: %.loc8_30.2: type = converted %float.make_type, %.loc8_30.1 @@ -235,14 +235,14 @@ fn G(a: f64) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @Float(%size: i32) -> type = "float.make_type"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc8: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic fn @F(%N.loc8_6.1: i32) { +// CHECK:STDOUT: %N.loc8_6.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc8_6.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%N.loc8: i32](%n: ) -> i32 { +// CHECK:STDOUT: fn[%N.loc8_6.1: i32](%n: ) -> i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc9: i32 = name_ref N, %N.loc8 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc9: i32 = name_ref N, %N.loc8_6.1 [symbolic = %N.loc8_6.2 (constants.%N)] // CHECK:STDOUT: return %N.ref.loc9 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -255,6 +255,6 @@ fn G(a: f64) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc8_6.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index 9e9b7fb88d23..3edfa1571991 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -101,20 +101,20 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 -// CHECK:STDOUT: %pair.patt: @F.%.1 (%.4) = binding_pattern pair +// CHECK:STDOUT: %pair.patt: @F.%.loc7_37.3 (%.4) = binding_pattern pair // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc7: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc7: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.ref.loc7_36: type = name_ref U, %U.loc7 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc7_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc7_16.2 (constants.%U)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %U.ref.loc7_36: type = name_ref U, %U.loc7_16.1 [symbolic = %U.loc7_16.2 (constants.%U)] // CHECK:STDOUT: %.loc7_37.1: %.3 = tuple_literal (%T.ref, %U.ref.loc7_36) -// CHECK:STDOUT: %.loc7_37.2: type = converted %.loc7_37.1, constants.%.4 [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %pair.param: @F.%.1 (%.4) = param pair, runtime_param0 -// CHECK:STDOUT: %pair: @F.%.1 (%.4) = bind_name pair, %pair.param -// CHECK:STDOUT: %U.ref.loc7_43: type = name_ref U, %U.loc7 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %return: ref @F.%U.1 (%U) = var +// CHECK:STDOUT: %.loc7_37.2: type = converted %.loc7_37.1, constants.%.4 [symbolic = %.loc7_37.3 (constants.%.4)] +// CHECK:STDOUT: %pair.param: @F.%.loc7_37.3 (%.4) = param pair, runtime_param0 +// CHECK:STDOUT: %pair: @F.%.loc7_37.3 (%.4) = bind_name pair, %pair.param +// CHECK:STDOUT: %U.ref.loc7_43: type = name_ref U, %U.loc7_16.1 [symbolic = %U.loc7_16.2 (constants.%U)] +// CHECK:STDOUT: %return: ref @F.%U.loc7_16.2 (%U) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %pair.patt: %.6 = binding_pattern pair @@ -144,12 +144,12 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc7: type, %U.loc7: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %.1: type = tuple_type (@F.%T.1 (%T), @F.%U.1 (%U)) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type, %U.loc7_16.1: type) { +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %U.loc7_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc7_16.2 (constants.%U)] +// CHECK:STDOUT: %.loc7_37.3: type = tuple_type (@F.%T.loc7_6.2 (%T), @F.%U.loc7_16.2 (%U)) [symbolic = %.loc7_37.3 (constants.%.4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc7: type, %U.loc7: type](%pair: @F.%.1 (%.4)) -> @F.%U.1 (%U); +// CHECK:STDOUT: fn[%T.loc7_6.1: type, %U.loc7_16.1: type](%pair: @F.%.loc7_37.3 (%.4)) -> @F.%U.loc7_16.2 (%U); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%pair: %.6) -> %return: %D { @@ -162,15 +162,15 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %T.loc7_6.2 => constants.%T +// CHECK:STDOUT: %U.loc7_16.2 => constants.%U +// CHECK:STDOUT: %.loc7_37.3 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C, constants.%D) { -// CHECK:STDOUT: %T.1 => constants.%C -// CHECK:STDOUT: %U.1 => constants.%D -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %T.loc7_6.2 => constants.%C +// CHECK:STDOUT: %U.loc7_16.2 => constants.%D +// CHECK:STDOUT: %.loc7_37.3 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- tuple_value.carbon @@ -238,32 +238,32 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %.loc4_31.5: type = converted %int.make_type_32.loc4_28, %.loc4_31.4 [template = i32] // CHECK:STDOUT: %.loc4_31.6: type = converted %.loc4_31.1, constants.%.3 [template = constants.%.3] // CHECK:STDOUT: %Pair.param: %.3 = param Pair, runtime_param -// CHECK:STDOUT: %Pair.loc4: %.3 = bind_symbolic_name Pair, 0, %Pair.param [symbolic = %Pair.1 (constants.%Pair)] +// CHECK:STDOUT: %Pair.loc4_15.1: %.3 = bind_symbolic_name Pair, 0, %Pair.param [symbolic = %Pair.loc4_15.2 (constants.%Pair)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %A.patt: i32 = symbolic_binding_pattern A, 0 // CHECK:STDOUT: %B.patt: i32 = symbolic_binding_pattern B, 1 -// CHECK:STDOUT: %h.patt: @F.%HasPair.1 (%HasPair.3) = binding_pattern h +// CHECK:STDOUT: %h.patt: @F.%HasPair.loc6_34.2 (%HasPair.3) = binding_pattern h // CHECK:STDOUT: } { // CHECK:STDOUT: %int.make_type_32.loc6_10: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc6_10.1: type = value_of_initializer %int.make_type_32.loc6_10 [template = i32] // CHECK:STDOUT: %.loc6_10.2: type = converted %int.make_type_32.loc6_10, %.loc6_10.1 [template = i32] // CHECK:STDOUT: %A.param: i32 = param A, runtime_param -// CHECK:STDOUT: %A.loc6: i32 = bind_symbolic_name A, 0, %A.param [symbolic = %A.1 (constants.%A)] +// CHECK:STDOUT: %A.loc6_6.1: i32 = bind_symbolic_name A, 0, %A.param [symbolic = %A.loc6_6.2 (constants.%A)] // CHECK:STDOUT: %int.make_type_32.loc6_19: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc6_19.1: type = value_of_initializer %int.make_type_32.loc6_19 [template = i32] // CHECK:STDOUT: %.loc6_19.2: type = converted %int.make_type_32.loc6_19, %.loc6_19.1 [template = i32] // CHECK:STDOUT: %B.param: i32 = param B, runtime_param -// CHECK:STDOUT: %B.loc6: i32 = bind_symbolic_name B, 1, %B.param [symbolic = %B.1 (constants.%B)] +// CHECK:STDOUT: %B.loc6_15.1: i32 = bind_symbolic_name B, 1, %B.param [symbolic = %B.loc6_15.2 (constants.%B)] // CHECK:STDOUT: %HasPair.ref: %HasPair.type = name_ref HasPair, file.%HasPair.decl [template = constants.%HasPair.1] -// CHECK:STDOUT: %A.ref: i32 = name_ref A, %A.loc6 [symbolic = %A.1 (constants.%A)] -// CHECK:STDOUT: %B.ref.loc6_39: i32 = name_ref B, %B.loc6 [symbolic = %B.1 (constants.%B)] +// CHECK:STDOUT: %A.ref: i32 = name_ref A, %A.loc6_6.1 [symbolic = %A.loc6_6.2 (constants.%A)] +// CHECK:STDOUT: %B.ref.loc6_39: i32 = name_ref B, %B.loc6_15.1 [symbolic = %B.loc6_15.2 (constants.%B)] // CHECK:STDOUT: %.loc6_40: %.3 = tuple_literal (%A.ref, %B.ref.loc6_39) -// CHECK:STDOUT: %tuple.loc6: %.3 = tuple_value (%A.ref, %B.ref.loc6_39) [symbolic = %tuple.1 (constants.%tuple.1)] -// CHECK:STDOUT: %.loc6_34: %.3 = converted %.loc6_40, %tuple.loc6 [symbolic = %tuple.1 (constants.%tuple.1)] -// CHECK:STDOUT: %HasPair.loc6: type = class_type @HasPair, @HasPair(constants.%tuple.1) [symbolic = %HasPair.1 (constants.%HasPair.3)] -// CHECK:STDOUT: %h.param: @F.%HasPair.1 (%HasPair.3) = param h, runtime_param0 -// CHECK:STDOUT: %h: @F.%HasPair.1 (%HasPair.3) = bind_name h, %h.param +// CHECK:STDOUT: %tuple.loc6_40.1: %.3 = tuple_value (%A.ref, %B.ref.loc6_39) [symbolic = %tuple.loc6_40.2 (constants.%tuple.1)] +// CHECK:STDOUT: %.loc6_34: %.3 = converted %.loc6_40, %tuple.loc6_40.1 [symbolic = %tuple.loc6_40.2 (constants.%tuple.1)] +// CHECK:STDOUT: %HasPair.loc6_34.1: type = class_type @HasPair, @HasPair(constants.%tuple.1) [symbolic = %HasPair.loc6_34.2 (constants.%HasPair.3)] +// CHECK:STDOUT: %h.param: @F.%HasPair.loc6_34.2 (%HasPair.3) = param h, runtime_param0 +// CHECK:STDOUT: %h: @F.%HasPair.loc6_34.2 (%HasPair.3) = bind_name h, %h.param // CHECK:STDOUT: %int.make_type_32.loc6_47: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc6_47.1: type = value_of_initializer %int.make_type_32.loc6_47 [template = i32] // CHECK:STDOUT: %.loc6_47.2: type = converted %int.make_type_32.loc6_47, %.loc6_47.1 [template = i32] @@ -288,8 +288,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HasPair(%Pair.loc4: %.3) { -// CHECK:STDOUT: %Pair.1: %.3 = bind_symbolic_name Pair, 0 [symbolic = %Pair.1 (constants.%Pair)] +// CHECK:STDOUT: generic class @HasPair(%Pair.loc4_15.1: %.3) { +// CHECK:STDOUT: %Pair.loc4_15.2: %.3 = bind_symbolic_name Pair, 0 [symbolic = %Pair.loc4_15.2 (constants.%Pair)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -303,17 +303,17 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%A.loc6: i32, %B.loc6: i32) { -// CHECK:STDOUT: %A.1: i32 = bind_symbolic_name A, 0 [symbolic = %A.1 (constants.%A)] -// CHECK:STDOUT: %B.1: i32 = bind_symbolic_name B, 1 [symbolic = %B.1 (constants.%B)] -// CHECK:STDOUT: %tuple.1: %.3 = tuple_value (%A.1, %B.1) [symbolic = %tuple.1 (constants.%tuple.1)] -// CHECK:STDOUT: %HasPair.1: type = class_type @HasPair, @HasPair(%tuple.1) [symbolic = %HasPair.1 (constants.%HasPair.3)] +// CHECK:STDOUT: generic fn @F(%A.loc6_6.1: i32, %B.loc6_15.1: i32) { +// CHECK:STDOUT: %A.loc6_6.2: i32 = bind_symbolic_name A, 0 [symbolic = %A.loc6_6.2 (constants.%A)] +// CHECK:STDOUT: %B.loc6_15.2: i32 = bind_symbolic_name B, 1 [symbolic = %B.loc6_15.2 (constants.%B)] +// CHECK:STDOUT: %tuple.loc6_40.2: %.3 = tuple_value (%A.loc6_6.2, %B.loc6_15.2) [symbolic = %tuple.loc6_40.2 (constants.%tuple.1)] +// CHECK:STDOUT: %HasPair.loc6_34.2: type = class_type @HasPair, @HasPair(%tuple.loc6_40.2) [symbolic = %HasPair.loc6_34.2 (constants.%HasPair.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%A.loc6: i32, %B.loc6: i32](%h: @F.%HasPair.1 (%HasPair.3)) -> i32 { +// CHECK:STDOUT: fn[%A.loc6_6.1: i32, %B.loc6_15.1: i32](%h: @F.%HasPair.loc6_34.2 (%HasPair.3)) -> i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %B.ref.loc6_60: i32 = name_ref B, %B.loc6 [symbolic = %B.1 (constants.%B)] +// CHECK:STDOUT: %B.ref.loc6_60: i32 = name_ref B, %B.loc6_15.1 [symbolic = %B.loc6_15.2 (constants.%B)] // CHECK:STDOUT: return %B.ref.loc6_60 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -329,37 +329,37 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasPair(constants.%Pair) { -// CHECK:STDOUT: %Pair.1 => constants.%Pair +// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%Pair // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasPair(constants.%tuple.1) { -// CHECK:STDOUT: %Pair.1 => constants.%tuple.1 +// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasPair(@F.%tuple.1) { -// CHECK:STDOUT: %Pair.1 => constants.%tuple.1 +// CHECK:STDOUT: specific @HasPair(@F.%tuple.loc6_40.2) { +// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%A, constants.%B) { -// CHECK:STDOUT: %A.1 => constants.%A -// CHECK:STDOUT: %B.1 => constants.%B -// CHECK:STDOUT: %tuple.1 => constants.%tuple.1 -// CHECK:STDOUT: %HasPair.1 => constants.%HasPair.3 +// CHECK:STDOUT: %A.loc6_6.2 => constants.%A +// CHECK:STDOUT: %B.loc6_15.2 => constants.%B +// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.1 +// CHECK:STDOUT: %HasPair.loc6_34.2 => constants.%HasPair.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasPair(constants.%tuple.2) { -// CHECK:STDOUT: %Pair.1 => constants.%tuple.2 +// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%.8, constants.%.9) { -// CHECK:STDOUT: %A.1 => constants.%.8 -// CHECK:STDOUT: %B.1 => constants.%.9 -// CHECK:STDOUT: %tuple.1 => constants.%tuple.2 -// CHECK:STDOUT: %HasPair.1 => constants.%HasPair.4 +// CHECK:STDOUT: %A.loc6_6.2 => constants.%.8 +// CHECK:STDOUT: %B.loc6_15.2 => constants.%.9 +// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.2 +// CHECK:STDOUT: %HasPair.loc6_34.2 => constants.%HasPair.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_inconsistent.carbon @@ -409,18 +409,18 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %D.decl: type = class_decl @D [template = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %pair.patt: @F.%.1 (%.4) = binding_pattern pair +// CHECK:STDOUT: %pair.patt: @F.%.loc7_27.3 (%.4) = binding_pattern pair // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc7: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc7_23: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc7_26: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc7_23: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc7_26: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: %.loc7_27.1: %.3 = tuple_literal (%T.ref.loc7_23, %T.ref.loc7_26) -// CHECK:STDOUT: %.loc7_27.2: type = converted %.loc7_27.1, constants.%.4 [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %pair.param: @F.%.1 (%.4) = param pair, runtime_param0 -// CHECK:STDOUT: %pair: @F.%.1 (%.4) = bind_name pair, %pair.param -// CHECK:STDOUT: %T.ref.loc7_33: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %.loc7_27.2: type = converted %.loc7_27.1, constants.%.4 [symbolic = %.loc7_27.3 (constants.%.4)] +// CHECK:STDOUT: %pair.param: @F.%.loc7_27.3 (%.4) = param pair, runtime_param0 +// CHECK:STDOUT: %pair: @F.%.loc7_27.3 (%.4) = bind_name pair, %pair.param +// CHECK:STDOUT: %T.ref.loc7_33: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc7_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %pair.patt: %.6 = binding_pattern pair @@ -450,11 +450,11 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc7: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = tuple_type (@F.%T.1 (%T), @F.%T.1 (%T)) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.1: type) { +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc7_27.3: type = tuple_type (@F.%T.loc7_6.2 (%T), @F.%T.loc7_6.2 (%T)) [symbolic = %.loc7_27.3 (constants.%.4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc7: type](%pair: @F.%.1 (%.4)) -> @F.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc7_6.1: type](%pair: @F.%.loc7_27.3 (%.4)) -> @F.%T.loc7_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%pair: %.6) -> %return: %D { @@ -465,7 +465,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %T.loc7_6.2 => constants.%T +// CHECK:STDOUT: %.loc7_27.3 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/type_operator.carbon b/toolchain/check/testdata/deduce/type_operator.carbon index d44aedd188b1..c72f0bdf94c8 100644 --- a/toolchain/check/testdata/deduce/type_operator.carbon +++ b/toolchain/check/testdata/deduce/type_operator.carbon @@ -103,16 +103,16 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %p.patt: @F.%.1 (%.3) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%.loc6_20.2 (%.3) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc6: type = ptr_type %T [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %p.param: @F.%.1 (%.3) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%.1 (%.3) = bind_name p, %p.param -// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_20.1: type = ptr_type %T [symbolic = %.loc6_20.2 (constants.%.3)] +// CHECK:STDOUT: %p.param: @F.%.loc6_20.2 (%.3) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%.loc6_20.2 (%.3) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %p.patt: %.5 = binding_pattern p @@ -133,11 +133,11 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_20.2: type = ptr_type @F.%T.loc6_6.2 (%T) [symbolic = %.loc6_20.2 (constants.%.3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc6: type](%p: @F.%.1 (%.3)) -> @F.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc6_6.1: type](%p: @F.%.loc6_20.2 (%.3)) -> @F.%T.loc6_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p: %.5) -> %return: %C { @@ -150,13 +150,13 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %.loc6_20.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C -// CHECK:STDOUT: %.1 => constants.%.5 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%C +// CHECK:STDOUT: %.loc6_20.2 => constants.%.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- const.carbon @@ -202,17 +202,17 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %p.patt: @F.%.2 (%.4) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%.loc6_26.2 (%.4) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc6_19: type = const_type %T [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %.loc6_26: type = ptr_type %.3 [symbolic = %.2 (constants.%.4)] -// CHECK:STDOUT: %p.param: @F.%.2 (%.4) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%.2 (%.4) = bind_name p, %p.param -// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_19.1: type = const_type %T [symbolic = %.loc6_19.2 (constants.%.3)] +// CHECK:STDOUT: %.loc6_26.1: type = ptr_type %.3 [symbolic = %.loc6_26.2 (constants.%.4)] +// CHECK:STDOUT: %p.param: @F.%.loc6_26.2 (%.4) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%.loc6_26.2 (%.4) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %p.patt: %.7 = binding_pattern p @@ -234,12 +234,12 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = const_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %.2: type = ptr_type @F.%.1 (%.3) [symbolic = %.2 (constants.%.4)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_19.2: type = const_type @F.%T.loc6_6.2 (%T) [symbolic = %.loc6_19.2 (constants.%.3)] +// CHECK:STDOUT: %.loc6_26.2: type = ptr_type @F.%.loc6_19.2 (%.3) [symbolic = %.loc6_26.2 (constants.%.4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc6: type](%p: @F.%.2 (%.4)) -> @F.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc6_6.1: type](%p: @F.%.loc6_26.2 (%.4)) -> @F.%T.loc6_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p: %.7) -> %return: %C { @@ -252,15 +252,15 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.3 -// CHECK:STDOUT: %.2 => constants.%.4 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %.loc6_19.2 => constants.%.3 +// CHECK:STDOUT: %.loc6_26.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C -// CHECK:STDOUT: %.1 => constants.%.6 -// CHECK:STDOUT: %.2 => constants.%.7 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%C +// CHECK:STDOUT: %.loc6_19.2 => constants.%.6 +// CHECK:STDOUT: %.loc6_26.2 => constants.%.7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nonconst_from_const.carbon @@ -305,16 +305,16 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %p.patt: @F.%.1 (%.3) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%.loc6_20.2 (%.3) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc6: type = ptr_type %T [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %p.param: @F.%.1 (%.3) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%.1 (%.3) = bind_name p, %p.param -// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_20.1: type = ptr_type %T [symbolic = %.loc6_20.2 (constants.%.3)] +// CHECK:STDOUT: %p.param: @F.%.loc6_20.2 (%.3) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%.loc6_20.2 (%.3) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %p.patt: %.6 = binding_pattern p @@ -337,11 +337,11 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_20.2: type = ptr_type @F.%T.loc6_6.2 (%T) [symbolic = %.loc6_20.2 (constants.%.3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc6: type](%p: @F.%.1 (%.3)) -> @F.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc6_6.1: type](%p: @F.%.loc6_20.2 (%.3)) -> @F.%T.loc6_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p: %.6) -> %return: %.5 { @@ -354,13 +354,13 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %.loc6_20.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%.5) { -// CHECK:STDOUT: %T.1 => constants.%.5 -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%.5 +// CHECK:STDOUT: %.loc6_20.2 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_const_from_nonconst.carbon @@ -406,17 +406,17 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %p.patt: @F.%.2 (%.4) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%.loc6_26.2 (%.4) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc6_19: type = const_type %T [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %.loc6_26: type = ptr_type %.3 [symbolic = %.2 (constants.%.4)] -// CHECK:STDOUT: %p.param: @F.%.2 (%.4) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%.2 (%.4) = bind_name p, %p.param -// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_19.1: type = const_type %T [symbolic = %.loc6_19.2 (constants.%.3)] +// CHECK:STDOUT: %.loc6_26.1: type = ptr_type %.3 [symbolic = %.loc6_26.2 (constants.%.4)] +// CHECK:STDOUT: %p.param: @F.%.loc6_26.2 (%.4) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%.loc6_26.2 (%.4) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %p.patt: %.6 = binding_pattern p @@ -438,12 +438,12 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = const_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %.2: type = ptr_type @F.%.1 (%.3) [symbolic = %.2 (constants.%.4)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type) { +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_19.2: type = const_type @F.%T.loc6_6.2 (%T) [symbolic = %.loc6_19.2 (constants.%.3)] +// CHECK:STDOUT: %.loc6_26.2: type = ptr_type @F.%.loc6_19.2 (%.3) [symbolic = %.loc6_26.2 (constants.%.4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc6: type](%p: @F.%.2 (%.4)) -> @F.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc6_6.1: type](%p: @F.%.loc6_26.2 (%.4)) -> @F.%T.loc6_6.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%p: %.6) -> %return: %.7 { @@ -454,8 +454,8 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.3 -// CHECK:STDOUT: %.2 => constants.%.4 +// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %.loc6_19.2 => constants.%.3 +// CHECK:STDOUT: %.loc6_26.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/fail_symbolic.carbon b/toolchain/check/testdata/eval/fail_symbolic.carbon index 3cdef98f22f7..260a8f027392 100644 --- a/toolchain/check/testdata/eval/fail_symbolic.carbon +++ b/toolchain/check/testdata/eval/fail_symbolic.carbon @@ -55,21 +55,21 @@ fn G(N:! i32) { // CHECK:STDOUT: %.loc12_10.1: type = value_of_initializer %int.make_type_32.loc12 [template = i32] // CHECK:STDOUT: %.loc12_10.2: type = converted %int.make_type_32.loc12, %.loc12_10.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc12: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc12_6.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc12_6.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%N.loc12: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic fn @G(%N.loc12_6.1: i32) { +// CHECK:STDOUT: %N.loc12_6.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc12_6.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.loc12: i32) { +// CHECK:STDOUT: fn(%N.loc12_6.1: i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int.make_type_32.loc16: init type = call constants.%Int32() [template = i32] -// CHECK:STDOUT: %N.ref: i32 = name_ref N, %N.loc12 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref: i32 = name_ref N, %N.loc12_6.1 [symbolic = %N.loc12_6.2 (constants.%N)] // CHECK:STDOUT: %.loc16_11.1: type = value_of_initializer %int.make_type_32.loc16 [template = i32] // CHECK:STDOUT: %.loc16_11.2: type = converted %int.make_type_32.loc16, %.loc16_11.1 [template = i32] // CHECK:STDOUT: %.loc16_17: type = array_type %N.ref, i32 [template = ] @@ -80,6 +80,6 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc12_6.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/symbolic.carbon b/toolchain/check/testdata/eval/symbolic.carbon index 057a22c27d76..13b15d6874c8 100644 --- a/toolchain/check/testdata/eval/symbolic.carbon +++ b/toolchain/check/testdata/eval/symbolic.carbon @@ -57,44 +57,44 @@ fn F(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc12_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc12: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc12_6.1: type) { +// CHECK:STDOUT: %T.loc12_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = const_type @F.%T.1 (%T) [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: type = tuple_type (@F.%.1 (%.2), @F.%.2 (%.3)) [symbolic = %.3 (constants.%.5)] -// CHECK:STDOUT: %.4: type = struct_type {.a: @F.%T.1 (%T)} [symbolic = %.4 (constants.%.8)] -// CHECK:STDOUT: %.5: type = array_type constants.%.9, @F.%T.1 (%T) [symbolic = %.5 (constants.%.10)] +// CHECK:STDOUT: %.loc13_12.2: type = ptr_type @F.%T.loc12_6.2 (%T) [symbolic = %.loc13_12.2 (constants.%.2)] +// CHECK:STDOUT: %.loc13_15.2: type = const_type @F.%T.loc12_6.2 (%T) [symbolic = %.loc13_15.2 (constants.%.3)] +// CHECK:STDOUT: %.loc13_22.3: type = tuple_type (@F.%.loc13_12.2 (%.2), @F.%.loc13_15.2 (%.3)) [symbolic = %.loc13_22.3 (constants.%.5)] +// CHECK:STDOUT: %.loc14_16.2: type = struct_type {.a: @F.%T.loc12_6.2 (%T)} [symbolic = %.loc14_16.2 (constants.%.8)] +// CHECK:STDOUT: %.loc15_15.2: type = array_type constants.%.9, @F.%T.loc12_6.2 (%T) [symbolic = %.loc15_15.2 (constants.%.10)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc12: type) { +// CHECK:STDOUT: fn(%T.loc12_6.1: type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref.loc13_11: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc13_12: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %T.ref.loc13_21: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc13_15: type = const_type %T [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.loc13_22.1: %.4 = tuple_literal (%.loc13_12, %.loc13_15) -// CHECK:STDOUT: %.loc13_22.2: type = converted %.loc13_22.1, constants.%.5 [symbolic = %.3 (constants.%.5)] -// CHECK:STDOUT: %u.var: ref @F.%.3 (%.5) = var u -// CHECK:STDOUT: %u: ref @F.%.3 (%.5) = bind_name u, %u.var -// CHECK:STDOUT: %T.ref.loc14: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc14: type = struct_type {.a: %T} [symbolic = %.4 (constants.%.8)] -// CHECK:STDOUT: %v.var: ref @F.%.4 (%.8) = var v -// CHECK:STDOUT: %v: ref @F.%.4 (%.8) = bind_name v, %v.var -// CHECK:STDOUT: %T.ref.loc15: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc13_11: type = name_ref T, %T.loc12_6.1 [symbolic = %T.loc12_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc13_12.1: type = ptr_type %T [symbolic = %.loc13_12.2 (constants.%.2)] +// CHECK:STDOUT: %T.ref.loc13_21: type = name_ref T, %T.loc12_6.1 [symbolic = %T.loc12_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc13_15.1: type = const_type %T [symbolic = %.loc13_15.2 (constants.%.3)] +// CHECK:STDOUT: %.loc13_22.1: %.4 = tuple_literal (%.loc13_12.1, %.loc13_15.1) +// CHECK:STDOUT: %.loc13_22.2: type = converted %.loc13_22.1, constants.%.5 [symbolic = %.loc13_22.3 (constants.%.5)] +// CHECK:STDOUT: %u.var: ref @F.%.loc13_22.3 (%.5) = var u +// CHECK:STDOUT: %u: ref @F.%.loc13_22.3 (%.5) = bind_name u, %u.var +// CHECK:STDOUT: %T.ref.loc14: type = name_ref T, %T.loc12_6.1 [symbolic = %T.loc12_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc14_16.1: type = struct_type {.a: %T} [symbolic = %.loc14_16.2 (constants.%.8)] +// CHECK:STDOUT: %v.var: ref @F.%.loc14_16.2 (%.8) = var v +// CHECK:STDOUT: %v: ref @F.%.loc14_16.2 (%.8) = bind_name v, %v.var +// CHECK:STDOUT: %T.ref.loc15: type = name_ref T, %T.loc12_6.1 [symbolic = %T.loc12_6.2 (constants.%T)] // CHECK:STDOUT: %.loc15_14: i32 = int_literal 5 [template = constants.%.9] -// CHECK:STDOUT: %.loc15_15: type = array_type %.loc15_14, %T [symbolic = %.5 (constants.%.10)] -// CHECK:STDOUT: %w.var: ref @F.%.5 (%.10) = var w -// CHECK:STDOUT: %w: ref @F.%.5 (%.10) = bind_name w, %w.var +// CHECK:STDOUT: %.loc15_15.1: type = array_type %.loc15_14, %T [symbolic = %.loc15_15.2 (constants.%.10)] +// CHECK:STDOUT: %w.var: ref @F.%.loc15_15.2 (%.10) = var w +// CHECK:STDOUT: %w: ref @F.%.loc15_15.2 (%.10) = bind_name w, %w.var // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc12_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon index 4e5dbd129772..4fc8ebe5c3eb 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon @@ -628,14 +628,14 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_8.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_8.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc15: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc15_8.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_8.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -646,29 +646,29 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic fn @Foo(%a.loc7_8.1: %C) { +// CHECK:STDOUT: %a.loc7_8.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_8.2 (constants.%a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%a.loc7: %C](); +// CHECK:STDOUT: fn[%a.loc7_8.1: %C](); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%a.loc15: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic fn @.1(%a.loc15_8.1: %C) { +// CHECK:STDOUT: %a.loc15_8.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_8.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%a.loc15: %C]() { +// CHECK:STDOUT: fn[%a.loc15_8.1: %C]() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_8.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc15_8.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_alias_in_return.carbon diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 8bf08054fed7..e469895b5f89 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -160,10 +160,10 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc4: type = ptr_type %T [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%.1 (%.1) = var +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_39.1: type = ptr_type %T [symbolic = %.loc4_39.2 (constants.%.1)] +// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%.loc4_39.2 (%.1) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParam.decl: %CallExplicitGenericParam.type = fn_decl @CallExplicitGenericParam [template = constants.%CallExplicitGenericParam] {} { // CHECK:STDOUT: %int.make_type_32.loc6: init type = call constants.%Int32() [template = i32] @@ -176,19 +176,19 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc10 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc10_62: type = struct_type {.a: %T} [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %.loc10_63: type = ptr_type %.4 [symbolic = %.2 (constants.%.5)] -// CHECK:STDOUT: %return: ref @CallExplicitGenericParamWithGenericArg.%.2 (%.5) = var +// CHECK:STDOUT: %T.loc10_43.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_43.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc10_43.1 [symbolic = %T.loc10_43.2 (constants.%T)] +// CHECK:STDOUT: %.loc10_62.1: type = struct_type {.a: %T} [symbolic = %.loc10_62.2 (constants.%.4)] +// CHECK:STDOUT: %.loc10_63.1: type = ptr_type %.4 [symbolic = %.loc10_63.2 (constants.%.5)] +// CHECK:STDOUT: %return: ref @CallExplicitGenericParamWithGenericArg.%.loc10_63.2 (%.5) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ExplicitGenericParam(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @ExplicitGenericParam.%T.1 (%T) [symbolic = %.1 (constants.%.1)] +// CHECK:STDOUT: generic fn @ExplicitGenericParam(%T.loc4_25.1: type) { +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_39.2: type = ptr_type @ExplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %.loc4_39.2 (constants.%.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc4: type) -> @ExplicitGenericParam.%.1 (%.1); +// CHECK:STDOUT: fn(%T.loc4_25.1: type) -> @ExplicitGenericParam.%.loc4_39.2 (%.1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; @@ -205,44 +205,44 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: return %.loc7_35.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallExplicitGenericParamWithGenericArg(%T.loc10: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.1 (%T)} [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %.2: type = ptr_type @CallExplicitGenericParamWithGenericArg.%.1 (%.4) [symbolic = %.2 (constants.%.5)] +// CHECK:STDOUT: generic fn @CallExplicitGenericParamWithGenericArg(%T.loc10_43.1: type) { +// CHECK:STDOUT: %T.loc10_43.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_43.2 (constants.%T)] +// CHECK:STDOUT: %.loc10_62.2: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.2 (%T)} [symbolic = %.loc10_62.2 (constants.%.4)] +// CHECK:STDOUT: %.loc10_63.2: type = ptr_type @CallExplicitGenericParamWithGenericArg.%.loc10_62.2 (%.4) [symbolic = %.loc10_63.2 (constants.%.5)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc10: type) -> @CallExplicitGenericParamWithGenericArg.%.2 (%.5) { +// CHECK:STDOUT: fn(%T.loc10_43.1: type) -> @CallExplicitGenericParamWithGenericArg.%.loc10_63.2 (%.5) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [template = constants.%ExplicitGenericParam] -// CHECK:STDOUT: %T.ref.loc11: type = name_ref T, %T.loc10 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc11_37: type = struct_type {.a: %T} [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamWithGenericArg.%.2 (%.5) = call %ExplicitGenericParam.ref() -// CHECK:STDOUT: %.loc11_39.1: @CallExplicitGenericParamWithGenericArg.%.2 (%.5) = value_of_initializer %ExplicitGenericParam.call -// CHECK:STDOUT: %.loc11_39.2: @CallExplicitGenericParamWithGenericArg.%.2 (%.5) = converted %ExplicitGenericParam.call, %.loc11_39.1 +// CHECK:STDOUT: %T.ref.loc11: type = name_ref T, %T.loc10_43.1 [symbolic = %T.loc10_43.2 (constants.%T)] +// CHECK:STDOUT: %.loc11_37: type = struct_type {.a: %T} [symbolic = %.loc10_62.2 (constants.%.4)] +// CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamWithGenericArg.%.loc10_63.2 (%.5) = call %ExplicitGenericParam.ref() +// CHECK:STDOUT: %.loc11_39.1: @CallExplicitGenericParamWithGenericArg.%.loc10_63.2 (%.5) = value_of_initializer %ExplicitGenericParam.call +// CHECK:STDOUT: %.loc11_39.2: @CallExplicitGenericParamWithGenericArg.%.loc10_63.2 (%.5) = converted %ExplicitGenericParam.call, %.loc11_39.1 // CHECK:STDOUT: return %.loc11_39.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.1 +// CHECK:STDOUT: %T.loc4_25.2 => constants.%T +// CHECK:STDOUT: %.loc4_39.2 => constants.%.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(i32) { -// CHECK:STDOUT: %T.1 => i32 -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %T.loc4_25.2 => i32 +// CHECK:STDOUT: %.loc4_39.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallExplicitGenericParamWithGenericArg(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.4 -// CHECK:STDOUT: %.2 => constants.%.5 +// CHECK:STDOUT: %T.loc10_43.2 => constants.%T +// CHECK:STDOUT: %.loc10_62.2 => constants.%.4 +// CHECK:STDOUT: %.loc10_63.2 => constants.%.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%.4) { -// CHECK:STDOUT: %T.1 => constants.%.4 -// CHECK:STDOUT: %.1 => constants.%.5 +// CHECK:STDOUT: %T.loc4_25.2 => constants.%.4 +// CHECK:STDOUT: %.loc4_39.2 => constants.%.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_explicit_vs_deduced.carbon @@ -289,16 +289,16 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %A.decl: type = class_decl @A [template = constants.%A] {} {} // CHECK:STDOUT: %ExplicitAndAlsoDeduced.decl: %ExplicitAndAlsoDeduced.type = fn_decl @ExplicitAndAlsoDeduced [template = constants.%ExplicitAndAlsoDeduced] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @ExplicitAndAlsoDeduced.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc6_40: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @ExplicitAndAlsoDeduced.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @ExplicitAndAlsoDeduced.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc6_46: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc6: type = ptr_type %T [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%.1 (%.3) = var +// CHECK:STDOUT: %T.loc6_27.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_27.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_40: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc6_46: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_47.1: type = ptr_type %T [symbolic = %.loc6_47.2 (constants.%.3)] +// CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%.loc6_47.2 (%.3) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitAndAlsoDeduced.decl: %CallExplicitAndAlsoDeduced.type = fn_decl @CallExplicitAndAlsoDeduced [template = constants.%CallExplicitAndAlsoDeduced] { // CHECK:STDOUT: %n.patt: i32 = binding_pattern n @@ -323,11 +323,11 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ExplicitAndAlsoDeduced(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @ExplicitAndAlsoDeduced.%T.1 (%T) [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: generic fn @ExplicitAndAlsoDeduced(%T.loc6_27.1: type) { +// CHECK:STDOUT: %T.loc6_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_27.2 (constants.%T)] +// CHECK:STDOUT: %.loc6_47.2: type = ptr_type @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) [symbolic = %.loc6_47.2 (constants.%.3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc6: type, %x: @ExplicitAndAlsoDeduced.%T.1 (%T)) -> @ExplicitAndAlsoDeduced.%.1 (%.3); +// CHECK:STDOUT: fn(%T.loc6_27.1: type, %x: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T)) -> @ExplicitAndAlsoDeduced.%.loc6_47.2 (%.3); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; @@ -341,8 +341,8 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %T.loc6_27.2 => constants.%T +// CHECK:STDOUT: %.loc6_47.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_implicit.carbon @@ -384,16 +384,16 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ImplicitGenericParam.decl: %ImplicitGenericParam.type = fn_decl @ImplicitGenericParam [template = constants.%ImplicitGenericParam] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @ImplicitGenericParam.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @ImplicitGenericParam.%T.loc4_25.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @ImplicitGenericParam.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @ImplicitGenericParam.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc4: type = ptr_type %T [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %return: ref @ImplicitGenericParam.%.1 (%.1) = var +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @ImplicitGenericParam.%T.loc4_25.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @ImplicitGenericParam.%T.loc4_25.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_45.1: type = ptr_type %T [symbolic = %.loc4_45.2 (constants.%.1)] +// CHECK:STDOUT: %return: ref @ImplicitGenericParam.%.loc4_45.2 (%.1) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitGenericParam.decl: %CallImplicitGenericParam.type = fn_decl @CallImplicitGenericParam [template = constants.%CallImplicitGenericParam] { // CHECK:STDOUT: %n.patt: i32 = binding_pattern n @@ -411,11 +411,11 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitGenericParam(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @ImplicitGenericParam.%T.1 (%T) [symbolic = %.1 (constants.%.1)] +// CHECK:STDOUT: generic fn @ImplicitGenericParam(%T.loc4_25.1: type) { +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_45.2: type = ptr_type @ImplicitGenericParam.%T.loc4_25.2 (%T) [symbolic = %.loc4_45.2 (constants.%.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc4: type](%x: @ImplicitGenericParam.%T.1 (%T)) -> @ImplicitGenericParam.%.1 (%.1); +// CHECK:STDOUT: fn[%T.loc4_25.1: type](%x: @ImplicitGenericParam.%T.loc4_25.2 (%T)) -> @ImplicitGenericParam.%.loc4_45.2 (%.1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; @@ -431,13 +431,13 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.1 +// CHECK:STDOUT: %T.loc4_25.2 => constants.%T +// CHECK:STDOUT: %.loc4_45.2 => constants.%.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(i32) { -// CHECK:STDOUT: %T.1 => i32 -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %T.loc4_25.2 => i32 +// CHECK:STDOUT: %.loc4_45.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduce_nested_tuple.carbon @@ -484,29 +484,29 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TupleParam.decl: %TupleParam.type = fn_decl @TupleParam [template = constants.%TupleParam] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @TupleParam.%.1 (%.3) = binding_pattern x +// CHECK:STDOUT: %x.patt: @TupleParam.%.loc4_35.5 (%.3) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [symbolic = %T.loc4_15.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_35.1: %.2 = tuple_literal (%T.ref, %int.make_type_32) // CHECK:STDOUT: %.loc4_35.2: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_35.3: type = converted %int.make_type_32, %.loc4_35.2 [template = i32] -// CHECK:STDOUT: %.loc4_35.4: type = converted %.loc4_35.1, constants.%.3 [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %x.param: @TupleParam.%.1 (%.3) = param x, runtime_param0 -// CHECK:STDOUT: %x: @TupleParam.%.1 (%.3) = bind_name x, %x.param +// CHECK:STDOUT: %.loc4_35.4: type = converted %.loc4_35.1, constants.%.3 [symbolic = %.loc4_35.5 (constants.%.3)] +// CHECK:STDOUT: %x.param: @TupleParam.%.loc4_35.5 (%.3) = param x, runtime_param0 +// CHECK:STDOUT: %x: @TupleParam.%.loc4_35.5 (%.3) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallTupleParam.decl: %CallTupleParam.type = fn_decl @CallTupleParam [template = constants.%CallTupleParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TupleParam(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = tuple_type (@TupleParam.%T.1 (%T), i32) [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: generic fn @TupleParam(%T.loc4_15.1: type) { +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_35.5: type = tuple_type (@TupleParam.%T.loc4_15.2 (%T), i32) [symbolic = %.loc4_35.5 (constants.%.3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc4: type](%x: @TupleParam.%.1 (%.3)); +// CHECK:STDOUT: fn[%T.loc4_15.1: type](%x: @TupleParam.%.loc4_35.5 (%.3)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallTupleParam() { @@ -522,13 +522,13 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TupleParam(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %.loc4_35.5 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TupleParam(i32) { -// CHECK:STDOUT: %T.1 => i32 -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %T.loc4_15.2 => i32 +// CHECK:STDOUT: %.loc4_35.5 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_deduce_nested_struct.carbon @@ -572,28 +572,28 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %StructParam.decl: %StructParam.type = fn_decl @StructParam [template = constants.%StructParam] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @StructParam.%.1 (%.2) = binding_pattern x +// CHECK:STDOUT: %x.patt: @StructParam.%.loc4_44.2 (%.2) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_16.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_16.1 [symbolic = %T.loc4_16.2 (constants.%T)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc4_41.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc4_41.2: type = converted %int.make_type_32, %.loc4_41.1 [template = i32] -// CHECK:STDOUT: %.loc4_44: type = struct_type {.a: %T, .b: i32} [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %x.param: @StructParam.%.1 (%.2) = param x, runtime_param0 -// CHECK:STDOUT: %x: @StructParam.%.1 (%.2) = bind_name x, %x.param +// CHECK:STDOUT: %.loc4_44.1: type = struct_type {.a: %T, .b: i32} [symbolic = %.loc4_44.2 (constants.%.2)] +// CHECK:STDOUT: %x.param: @StructParam.%.loc4_44.2 (%.2) = param x, runtime_param0 +// CHECK:STDOUT: %x: @StructParam.%.loc4_44.2 (%.2) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallStructParam.decl: %CallStructParam.type = fn_decl @CallStructParam [template = constants.%CallStructParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @StructParam(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = struct_type {.a: @StructParam.%T.1 (%T), .b: i32} [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: generic fn @StructParam(%T.loc4_16.1: type) { +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_44.2: type = struct_type {.a: @StructParam.%T.loc4_16.2 (%T), .b: i32} [symbolic = %.loc4_44.2 (constants.%.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc4: type](%x: @StructParam.%.1 (%.2)); +// CHECK:STDOUT: fn[%T.loc4_16.1: type](%x: @StructParam.%.loc4_44.2 (%.2)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallStructParam() { @@ -606,8 +606,8 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StructParam(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %T.loc4_16.2 => constants.%T +// CHECK:STDOUT: %.loc4_44.2 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_incomplete.carbon @@ -646,26 +646,26 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %ImplicitNotDeducible.decl: %ImplicitNotDeducible.type = fn_decl @ImplicitNotDeducible [template = constants.%ImplicitNotDeducible] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 -// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_25.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc6: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc6 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%U.1 (%U) = var +// CHECK:STDOUT: %U.loc6_35.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc6_35.2 (constants.%U)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_25.1 [symbolic = %T.loc6_25.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc6_35.1 [symbolic = %U.loc6_35.2 (constants.%U)] +// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%U.loc6_35.2 (%U) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitNotDeducible.decl: %CallImplicitNotDeducible.type = fn_decl @CallImplicitNotDeducible [template = constants.%CallImplicitNotDeducible] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitNotDeducible(%T.loc6: type, %U.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @ImplicitNotDeducible(%T.loc6_25.1: type, %U.loc6_35.1: type) { +// CHECK:STDOUT: %T.loc6_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_25.2 (constants.%T)] +// CHECK:STDOUT: %U.loc6_35.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc6_35.2 (constants.%U)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc6: type, %U.loc6: type](%x: @ImplicitNotDeducible.%T.1 (%T)) -> @ImplicitNotDeducible.%U.1 (%U); +// CHECK:STDOUT: fn[%T.loc6_25.1: type, %U.loc6_35.1: type](%x: @ImplicitNotDeducible.%T.loc6_25.2 (%T)) -> @ImplicitNotDeducible.%U.loc6_35.2 (%U); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallImplicitNotDeducible() { @@ -676,8 +676,8 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitNotDeducible(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %T.loc6_25.2 => constants.%T +// CHECK:STDOUT: %U.loc6_35.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_inconsistent.carbon @@ -716,27 +716,27 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %ImplicitNotDeducible.decl: %ImplicitNotDeducible.type = fn_decl @ImplicitNotDeducible [template = constants.%ImplicitNotDeducible] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%T.1 (%T) = binding_pattern x -// CHECK:STDOUT: %y.patt: @ImplicitNotDeducible.%T.1 (%T) = binding_pattern y +// CHECK:STDOUT: %x.patt: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = binding_pattern x +// CHECK:STDOUT: %y.patt: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = binding_pattern y // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %y.param: @ImplicitNotDeducible.%T.1 (%T) = param y, runtime_param1 -// CHECK:STDOUT: %y: @ImplicitNotDeducible.%T.1 (%T) = bind_name y, %y.param -// CHECK:STDOUT: %T.ref.loc4_50: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %y.param: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = param y, runtime_param1 +// CHECK:STDOUT: %y: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name y, %y.param +// CHECK:STDOUT: %T.ref.loc4_50: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%T.loc4_25.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitNotDeducible.decl: %CallImplicitNotDeducible.type = fn_decl @CallImplicitNotDeducible [template = constants.%CallImplicitNotDeducible] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplicitNotDeducible(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @ImplicitNotDeducible(%T.loc4_25.1: type) { +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc4: type](%x: @ImplicitNotDeducible.%T.1 (%T), %y: @ImplicitNotDeducible.%T.1 (%T)) -> @ImplicitNotDeducible.%T.1 (%T); +// CHECK:STDOUT: fn[%T.loc4_25.1: type](%x: @ImplicitNotDeducible.%T.loc4_25.2 (%T), %y: @ImplicitNotDeducible.%T.loc4_25.2 (%T)) -> @ImplicitNotDeducible.%T.loc4_25.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallImplicitNotDeducible() { @@ -749,6 +749,6 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitNotDeducible(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_25.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/fail_todo_param_in_type.carbon b/toolchain/check/testdata/function/generic/fail_todo_param_in_type.carbon index c9d5ec1800dc..d7258e78235a 100644 --- a/toolchain/check/testdata/function/generic/fail_todo_param_in_type.carbon +++ b/toolchain/check/testdata/function/generic/fail_todo_param_in_type.carbon @@ -53,9 +53,9 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: %.loc14_10.1: type = value_of_initializer %int.make_type_32.loc14_10 [template = i32] // CHECK:STDOUT: %.loc14_10.2: type = converted %int.make_type_32.loc14_10, %.loc14_10.1 [template = i32] // CHECK:STDOUT: %N.param: i32 = param N, runtime_param -// CHECK:STDOUT: %N.loc14: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.loc14_6.1: i32 = bind_symbolic_name N, 0, %N.param [symbolic = %N.loc14_6.2 (constants.%N)] // CHECK:STDOUT: %int.make_type_32.loc14_19: init type = call constants.%Int32() [template = i32] -// CHECK:STDOUT: %N.ref: i32 = name_ref N, %N.loc14 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %N.ref: i32 = name_ref N, %N.loc14_6.1 [symbolic = %N.loc14_6.2 (constants.%N)] // CHECK:STDOUT: %.loc14_19.1: type = value_of_initializer %int.make_type_32.loc14_19 [template = i32] // CHECK:STDOUT: %.loc14_19.2: type = converted %int.make_type_32.loc14_19, %.loc14_19.1 [template = i32] // CHECK:STDOUT: %.loc14_25: type = array_type %N.ref, i32 [template = ] @@ -67,13 +67,13 @@ fn F(N:! i32, a: [i32; N]*); // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc14: i32) { -// CHECK:STDOUT: %N.1: i32 = bind_symbolic_name N, 0 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic fn @F(%N.loc14_6.1: i32) { +// CHECK:STDOUT: %N.loc14_6.2: i32 = bind_symbolic_name N, 0 [symbolic = %N.loc14_6.2 (constants.%N)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%N.loc14: i32, %a: ); +// CHECK:STDOUT: fn(%N.loc14_6.1: i32, %a: ); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %N.loc14_6.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/call.carbon b/toolchain/check/testdata/function/generic/no_prelude/call.carbon index 7b8be1464f0d..77d57deaafa9 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/call.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/call.carbon @@ -82,41 +82,41 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [template = constants.%Function] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @Function.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @Function.%T.loc4_13.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @Function.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @Function.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @Function.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @Function.%T.loc4_13.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @Function.%T.loc4_13.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [template = constants.%CallGeneric] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @CallGeneric.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @CallGeneric.%T.loc8_16.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGeneric.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @CallGeneric.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @CallGeneric.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc8_16.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @CallGeneric.%T.loc8_16.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @CallGeneric.%T.loc8_16.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [template = constants.%CallGenericPtr] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @CallGenericPtr.%.1 (%.2) = binding_pattern x +// CHECK:STDOUT: %x.patt: @CallGenericPtr.%.loc12_33.2 (%.2) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12_33: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %x.param: @CallGenericPtr.%.1 (%.2) = param x, runtime_param0 -// CHECK:STDOUT: %x: @CallGenericPtr.%.1 (%.2) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12_40: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %return: ref @CallGenericPtr.%.1 (%.2) = var +// CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_33.1: type = ptr_type %T [symbolic = %.loc12_33.2 (constants.%.2)] +// CHECK:STDOUT: %x.param: @CallGenericPtr.%.loc12_33.2 (%.2) = param x, runtime_param0 +// CHECK:STDOUT: %x: @CallGenericPtr.%.loc12_33.2 (%.2) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_40: type = ptr_type %T [symbolic = %.loc12_33.2 (constants.%.2)] +// CHECK:STDOUT: %return: ref @CallGenericPtr.%.loc12_33.2 (%.2) = var // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [template = constants.%CallSpecific] { @@ -137,50 +137,50 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Function(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @Function(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc4: type, %x: @Function.%T.1 (%T)) -> @Function.%T.1 (%T) { +// CHECK:STDOUT: fn(%T.loc4_13.1: type, %x: @Function.%T.loc4_13.2 (%T)) -> @Function.%T.loc4_13.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.loc4_13.2 (%T) = name_ref x, %x // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGeneric(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @CallGeneric(%T.loc8_16.1: type) { +// CHECK:STDOUT: %T.loc8_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc8: type, %x: @CallGeneric.%T.1 (%T)) -> @CallGeneric.%T.1 (%T) { +// CHECK:STDOUT: fn(%T.loc8_16.1: type, %x: @CallGeneric.%T.loc8_16.2 (%T)) -> @CallGeneric.%T.loc8_16.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] -// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.ref: @CallGeneric.%T.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.1 (%T) = call %Function.ref(%x.ref) -// CHECK:STDOUT: %.loc9_24.1: @CallGeneric.%T.1 (%T) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc9_24.2: @CallGeneric.%T.1 (%T) = converted %Function.call, %.loc9_24.1 +// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.loc8_16.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.loc8_16.2 (%T) = call %Function.ref(%x.ref) +// CHECK:STDOUT: %.loc9_24.1: @CallGeneric.%T.loc8_16.2 (%T) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc9_24.2: @CallGeneric.%T.loc8_16.2 (%T) = converted %Function.call, %.loc9_24.1 // CHECK:STDOUT: return %.loc9_24.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @CallGenericPtr.%T.1 (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12_19.1: type) { +// CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_33.2: type = ptr_type @CallGenericPtr.%T.loc12_19.2 (%T) [symbolic = %.loc12_33.2 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc12: type, %x: @CallGenericPtr.%.1 (%.2)) -> @CallGenericPtr.%.1 (%.2) { +// CHECK:STDOUT: fn(%T.loc12_19.1: type, %x: @CallGenericPtr.%.loc12_33.2 (%.2)) -> @CallGenericPtr.%.loc12_33.2 (%.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] -// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc13_20: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %x.ref: @CallGenericPtr.%.1 (%.2) = name_ref x, %x -// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%.1 (%.2) = call %Function.ref(%x.ref) -// CHECK:STDOUT: %.loc13_25.1: @CallGenericPtr.%.1 (%.2) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc13_25.2: @CallGenericPtr.%.1 (%.2) = converted %Function.call, %.loc13_25.1 +// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %.loc13_20: type = ptr_type %T [symbolic = %.loc12_33.2 (constants.%.2)] +// CHECK:STDOUT: %x.ref: @CallGenericPtr.%.loc12_33.2 (%.2) = name_ref x, %x +// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%.loc12_33.2 (%.2) = call %Function.ref(%x.ref) +// CHECK:STDOUT: %.loc13_25.1: @CallGenericPtr.%.loc12_33.2 (%.2) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc13_25.2: @CallGenericPtr.%.loc12_33.2 (%.2) = converted %Function.call, %.loc13_25.1 // CHECK:STDOUT: return %.loc13_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -196,24 +196,24 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_16.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %T.loc12_19.2 => constants.%T +// CHECK:STDOUT: %.loc12_33.2 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%.2) { -// CHECK:STDOUT: %T.1 => constants.%.2 +// CHECK:STDOUT: %T.loc4_13.2 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C +// CHECK:STDOUT: %T.loc4_13.2 => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- deduced.carbon @@ -246,41 +246,41 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [template = constants.%Function] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @Function.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @Function.%T.loc4_13.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @Function.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @Function.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @Function.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @Function.%T.loc4_13.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @Function.%T.loc4_13.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [template = constants.%CallGeneric] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @CallGeneric.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @CallGeneric.%T.loc8_16.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGeneric.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @CallGeneric.%T.1 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @CallGeneric.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc8_16.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @CallGeneric.%T.loc8_16.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @CallGeneric.%T.loc8_16.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [template = constants.%CallGenericPtr] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @CallGenericPtr.%.1 (%.2) = binding_pattern x +// CHECK:STDOUT: %x.patt: @CallGenericPtr.%.loc12_33.2 (%.2) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12_33: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %x.param: @CallGenericPtr.%.1 (%.2) = param x, runtime_param0 -// CHECK:STDOUT: %x: @CallGenericPtr.%.1 (%.2) = bind_name x, %x.param -// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12_40: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %return: ref @CallGenericPtr.%.1 (%.2) = var +// CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_33.1: type = ptr_type %T [symbolic = %.loc12_33.2 (constants.%.2)] +// CHECK:STDOUT: %x.param: @CallGenericPtr.%.loc12_33.2 (%.2) = param x, runtime_param0 +// CHECK:STDOUT: %x: @CallGenericPtr.%.loc12_33.2 (%.2) = bind_name x, %x.param +// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_40: type = ptr_type %T [symbolic = %.loc12_33.2 (constants.%.2)] +// CHECK:STDOUT: %return: ref @CallGenericPtr.%.loc12_33.2 (%.2) = var // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [template = constants.%CallSpecific] { @@ -301,47 +301,47 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Function(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @Function(%T.loc4_13.1: type) { +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn[%T.loc4: type](%x: @Function.%T.1 (%T)) -> @Function.%T.1 (%T) { +// CHECK:STDOUT: fn[%T.loc4_13.1: type](%x: @Function.%T.loc4_13.2 (%T)) -> @Function.%T.loc4_13.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.loc4_13.2 (%T) = name_ref x, %x // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGeneric(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @CallGeneric(%T.loc8_16.1: type) { +// CHECK:STDOUT: %T.loc8_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc8: type, %x: @CallGeneric.%T.1 (%T)) -> @CallGeneric.%T.1 (%T) { +// CHECK:STDOUT: fn(%T.loc8_16.1: type, %x: @CallGeneric.%T.loc8_16.2 (%T)) -> @CallGeneric.%T.loc8_16.2 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] -// CHECK:STDOUT: %x.ref: @CallGeneric.%T.1 (%T) = name_ref x, %x -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.1 (%T) = call %Function.ref(%x.ref) -// CHECK:STDOUT: %.loc9_21.1: @CallGeneric.%T.1 (%T) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc9_21.2: @CallGeneric.%T.1 (%T) = converted %Function.call, %.loc9_21.1 +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.loc8_16.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.loc8_16.2 (%T) = call %Function.ref(%x.ref) +// CHECK:STDOUT: %.loc9_21.1: @CallGeneric.%T.loc8_16.2 (%T) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc9_21.2: @CallGeneric.%T.loc8_16.2 (%T) = converted %Function.call, %.loc9_21.1 // CHECK:STDOUT: return %.loc9_21.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @CallGenericPtr.%T.1 (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12_19.1: type) { +// CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_33.2: type = ptr_type @CallGenericPtr.%T.loc12_19.2 (%T) [symbolic = %.loc12_33.2 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc12: type, %x: @CallGenericPtr.%.1 (%.2)) -> @CallGenericPtr.%.1 (%.2) { +// CHECK:STDOUT: fn(%T.loc12_19.1: type, %x: @CallGenericPtr.%.loc12_33.2 (%.2)) -> @CallGenericPtr.%.loc12_33.2 (%.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function] -// CHECK:STDOUT: %x.ref: @CallGenericPtr.%.1 (%.2) = name_ref x, %x -// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%.1 (%.2) = call %Function.ref(%x.ref) -// CHECK:STDOUT: %.loc13_21.1: @CallGenericPtr.%.1 (%.2) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc13_21.2: @CallGenericPtr.%.1 (%.2) = converted %Function.call, %.loc13_21.1 +// CHECK:STDOUT: %x.ref: @CallGenericPtr.%.loc12_33.2 (%.2) = name_ref x, %x +// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%.loc12_33.2 (%.2) = call %Function.ref(%x.ref) +// CHECK:STDOUT: %.loc13_21.1: @CallGenericPtr.%.loc12_33.2 (%.2) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc13_21.2: @CallGenericPtr.%.loc12_33.2 (%.2) = converted %Function.call, %.loc13_21.1 // CHECK:STDOUT: return %.loc13_21.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -356,23 +356,23 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_16.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %T.loc12_19.2 => constants.%T +// CHECK:STDOUT: %.loc12_33.2 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%.2) { -// CHECK:STDOUT: %T.1 => constants.%.2 +// CHECK:STDOUT: %T.loc4_13.2 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C +// CHECK:STDOUT: %T.loc4_13.2 => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon b/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon index d6db8759033b..57a9ebb4a154 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon @@ -36,37 +36,37 @@ fn F(T:! type, U:! type) { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc11: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc11_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc11_16.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc11: type, %U.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @F(%T.loc11_6.1: type, %U.loc11_16.1: type) { +// CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %U.loc11_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc11_16.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc12_11.2: type = ptr_type @F.%T.loc11_6.2 (%T) [symbolic = %.loc12_11.2 (constants.%.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc11: type, %U.loc11: type) { +// CHECK:STDOUT: fn(%T.loc11_6.1: type, %U.loc11_16.1: type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %p.var: ref @F.%.1 (%.2) = var p -// CHECK:STDOUT: %p: ref @F.%.1 (%.2) = bind_name p, %p.var -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc11 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %p.ref: ref @F.%.1 (%.2) = name_ref p, %p -// CHECK:STDOUT: %.loc16_15: @F.%.1 (%.2) = bind_value %p.ref -// CHECK:STDOUT: %.loc16_14: ref @F.%T.1 (%T) = deref %.loc16_15 -// CHECK:STDOUT: %.loc16_16: @F.%U.1 (%U) = converted %.loc16_14, [template = ] -// CHECK:STDOUT: %n: @F.%U.1 (%U) = bind_name n, +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_11.1: type = ptr_type %T [symbolic = %.loc12_11.2 (constants.%.2)] +// CHECK:STDOUT: %p.var: ref @F.%.loc12_11.2 (%.2) = var p +// CHECK:STDOUT: %p: ref @F.%.loc12_11.2 (%.2) = bind_name p, %p.var +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc11_16.1 [symbolic = %U.loc11_16.2 (constants.%U)] +// CHECK:STDOUT: %p.ref: ref @F.%.loc12_11.2 (%.2) = name_ref p, %p +// CHECK:STDOUT: %.loc16_15: @F.%.loc12_11.2 (%.2) = bind_value %p.ref +// CHECK:STDOUT: %.loc16_14: ref @F.%T.loc11_6.2 (%T) = deref %.loc16_15 +// CHECK:STDOUT: %.loc16_16: @F.%U.loc11_16.2 (%U) = converted %.loc16_14, [template = ] +// CHECK:STDOUT: %n: @F.%U.loc11_16.2 (%U) = bind_name n, // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %T.loc11_6.2 => constants.%T +// CHECK:STDOUT: %U.loc11_16.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/forward_decl.carbon b/toolchain/check/testdata/function/generic/no_prelude/forward_decl.carbon index 1d7e137c74cb..37f06558ddbf 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/forward_decl.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/forward_decl.carbon @@ -27,17 +27,17 @@ fn F(T:! type); // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc11_6.1: type) { +// CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc11: type); +// CHECK:STDOUT: fn(%T.loc11_6.1: type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon b/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon index 18d2ed861f7a..bfdb8e2671e3 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon @@ -29,40 +29,40 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %p.patt: @F.%.2 (%.2) = binding_pattern p +// CHECK:STDOUT: %p.patt: @F.%.loc11_21.2 (%.2) = binding_pattern p // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc11_19: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc11_20: type = ptr_type %T [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %.loc11_21: type = ptr_type %.1 [symbolic = %.2 (constants.%.2)] -// CHECK:STDOUT: %p.param: @F.%.2 (%.2) = param p, runtime_param0 -// CHECK:STDOUT: %p: @F.%.2 (%.2) = bind_name p, %p.param -// CHECK:STDOUT: %T.ref.loc11_27: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc11_28: type = ptr_type %T [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %return: ref @F.%.1 (%.1) = var +// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc11_19: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc11_20.1: type = ptr_type %T [symbolic = %.loc11_20.2 (constants.%.1)] +// CHECK:STDOUT: %.loc11_21.1: type = ptr_type %.1 [symbolic = %.loc11_21.2 (constants.%.2)] +// CHECK:STDOUT: %p.param: @F.%.loc11_21.2 (%.2) = param p, runtime_param0 +// CHECK:STDOUT: %p: @F.%.loc11_21.2 (%.2) = bind_name p, %p.param +// CHECK:STDOUT: %T.ref.loc11_27: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc11_28: type = ptr_type %T [symbolic = %.loc11_20.2 (constants.%.1)] +// CHECK:STDOUT: %return: ref @F.%.loc11_20.2 (%.1) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %.2: type = ptr_type @F.%.1 (%.1) [symbolic = %.2 (constants.%.2)] +// CHECK:STDOUT: generic fn @F(%T.loc11_6.1: type) { +// CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc11_20.2: type = ptr_type @F.%T.loc11_6.2 (%T) [symbolic = %.loc11_20.2 (constants.%.1)] +// CHECK:STDOUT: %.loc11_21.2: type = ptr_type @F.%.loc11_20.2 (%.1) [symbolic = %.loc11_21.2 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc11: type, %p: @F.%.2 (%.2)) -> @F.%.1 (%.1) { +// CHECK:STDOUT: fn(%T.loc11_6.1: type, %p: @F.%.loc11_21.2 (%.2)) -> @F.%.loc11_20.2 (%.1) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: @F.%.2 (%.2) = name_ref p, %p -// CHECK:STDOUT: %.loc12_10.1: ref @F.%.1 (%.1) = deref %p.ref -// CHECK:STDOUT: %.loc12_10.2: @F.%.1 (%.1) = bind_value %.loc12_10.1 +// CHECK:STDOUT: %p.ref: @F.%.loc11_21.2 (%.2) = name_ref p, %p +// CHECK:STDOUT: %.loc12_10.1: ref @F.%.loc11_20.2 (%.1) = deref %p.ref +// CHECK:STDOUT: %.loc12_10.2: @F.%.loc11_20.2 (%.1) = bind_value %.loc12_10.1 // CHECK:STDOUT: return %.loc12_10.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.1 -// CHECK:STDOUT: %.2 => constants.%.2 +// CHECK:STDOUT: %T.loc11_6.2 => constants.%T +// CHECK:STDOUT: %.loc11_20.2 => constants.%.1 +// CHECK:STDOUT: %.loc11_21.2 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon b/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon index a465c91dc0ed..a88715ac3660 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/type_param.carbon @@ -31,33 +31,33 @@ fn F(T:! type) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc11_6.1: type) { +// CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc12_11.2: type = ptr_type @F.%T.loc11_6.2 (%T) [symbolic = %.loc12_11.2 (constants.%.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc11: type) { +// CHECK:STDOUT: fn(%T.loc11_6.1: type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref.loc12: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc12: type = ptr_type %T [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %p.var: ref @F.%.1 (%.2) = var p -// CHECK:STDOUT: %p: ref @F.%.1 (%.2) = bind_name p, %p.var -// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %p.ref: ref @F.%.1 (%.2) = name_ref p, %p -// CHECK:STDOUT: %.loc13_15: @F.%.1 (%.2) = bind_value %p.ref -// CHECK:STDOUT: %.loc13_14.1: ref @F.%T.1 (%T) = deref %.loc13_15 -// CHECK:STDOUT: %.loc13_14.2: @F.%T.1 (%T) = bind_value %.loc13_14.1 -// CHECK:STDOUT: %n: @F.%T.1 (%T) = bind_name n, %.loc13_14.2 +// CHECK:STDOUT: %T.ref.loc12: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc12_11.1: type = ptr_type %T [symbolic = %.loc12_11.2 (constants.%.2)] +// CHECK:STDOUT: %p.var: ref @F.%.loc12_11.2 (%.2) = var p +// CHECK:STDOUT: %p: ref @F.%.loc12_11.2 (%.2) = bind_name p, %p.var +// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %p.ref: ref @F.%.loc12_11.2 (%.2) = name_ref p, %p +// CHECK:STDOUT: %.loc13_15: @F.%.loc12_11.2 (%.2) = bind_value %p.ref +// CHECK:STDOUT: %.loc13_14.1: ref @F.%T.loc11_6.2 (%T) = deref %.loc13_15 +// CHECK:STDOUT: %.loc13_14.2: @F.%T.loc11_6.2 (%T) = bind_value %.loc13_14.1 +// CHECK:STDOUT: %n: @F.%T.loc11_6.2 (%T) = bind_name n, %.loc13_14.2 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/no_prelude/type_param_scope.carbon b/toolchain/check/testdata/function/generic/no_prelude/type_param_scope.carbon index 0aa08430adf6..0380d296b65e 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/type_param_scope.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/type_param_scope.carbon @@ -28,34 +28,34 @@ fn F(T:! type, n: T) -> T { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %n.patt: @F.%T.1 (%T) = binding_pattern n +// CHECK:STDOUT: %n.patt: @F.%T.loc11_6.2 (%T) = binding_pattern n // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc11_19: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %n.param: @F.%T.1 (%T) = param n, runtime_param0 -// CHECK:STDOUT: %n: @F.%T.1 (%T) = bind_name n, %n.param -// CHECK:STDOUT: %T.ref.loc11_25: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @F.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc11_19: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %n.param: @F.%T.loc11_6.2 (%T) = param n, runtime_param0 +// CHECK:STDOUT: %n: @F.%T.loc11_6.2 (%T) = bind_name n, %n.param +// CHECK:STDOUT: %T.ref.loc11_25: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @F.%T.loc11_6.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc11_6.1: type) { +// CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc11: type, %n: @F.%T.1 (%T)) -> @F.%T.1 (%T) { +// CHECK:STDOUT: fn(%T.loc11_6.1: type, %n: @F.%T.loc11_6.2 (%T)) -> @F.%T.loc11_6.2 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref.loc12: type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %n.ref: @F.%T.1 (%T) = name_ref n, %n -// CHECK:STDOUT: %m: @F.%T.1 (%T) = bind_name m, %n.ref -// CHECK:STDOUT: %m.ref: @F.%T.1 (%T) = name_ref m, %m +// CHECK:STDOUT: %T.ref.loc12: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %n.ref: @F.%T.loc11_6.2 (%T) = name_ref n, %n +// CHECK:STDOUT: %m: @F.%T.loc11_6.2 (%T) = bind_name m, %n.ref +// CHECK:STDOUT: %m.ref: @F.%T.loc11_6.2 (%T) = name_ref m, %m // CHECK:STDOUT: return %m.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/redeclare.carbon b/toolchain/check/testdata/function/generic/redeclare.carbon index c9264f0b56c7..67a1f9a5309c 100644 --- a/toolchain/check/testdata/function/generic/redeclare.carbon +++ b/toolchain/check/testdata/function/generic/redeclare.carbon @@ -122,10 +122,10 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param.loc4: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc4: type = ptr_type %T [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %return.var.loc4: ref @F.%.1 (%.1) = var +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param.loc4 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_20.1: type = ptr_type %T [symbolic = %.loc4_20.2 (constants.%.1)] +// CHECK:STDOUT: %return.var.loc4: ref @F.%.loc4_20.2 (%.1) = var // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc6: %F.type = fn_decl @F [template = constants.%F] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 @@ -138,26 +138,26 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.1)] +// CHECK:STDOUT: generic fn @F(%T.loc4_6.1: type) { +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_20.2: type = ptr_type @F.%T.loc4_6.2 (%T) [symbolic = %.loc4_20.2 (constants.%.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.loc6: type) -> %.1 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl.loc4 [template = constants.%F] -// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %F.call: init @F.%.1 (%.1) = call %F.ref() -// CHECK:STDOUT: %.loc7_14.1: @F.%.1 (%.1) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc7_14.2: @F.%.1 (%.1) = converted %F.call, %.loc7_14.1 +// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %F.call: init @F.%.loc4_20.2 (%.1) = call %F.ref() +// CHECK:STDOUT: %.loc7_14.1: @F.%.loc4_20.2 (%.1) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc7_14.2: @F.%.loc4_20.2 (%.1) = converted %F.call, %.loc7_14.1 // CHECK:STDOUT: return %.loc7_14.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.1 +// CHECK:STDOUT: %T.loc4_6.2 => constants.%T +// CHECK:STDOUT: %.loc4_20.2 => constants.%.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_different_return_type.carbon @@ -198,60 +198,60 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc4: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc4: type = ptr_type %T [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %return: ref @F.%.1 (%.1) = var +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc4_30.1: type = ptr_type %T [symbolic = %.loc4_30.2 (constants.%.1)] +// CHECK:STDOUT: %return: ref @F.%.loc4_30.2 (%.1) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc13: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc13: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %.loc13: type = ptr_type %U [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %return: ref @.1.%.1 (%.3) = var +// CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc13_16.2 (constants.%U)] +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)] +// CHECK:STDOUT: %.loc13_30.1: type = ptr_type %U [symbolic = %.loc13_30.2 (constants.%.3)] +// CHECK:STDOUT: %return: ref @.1.%.loc13_30.2 (%.3) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4: type, %U.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T) [symbolic = %.1 (constants.%.1)] +// CHECK:STDOUT: generic fn @F(%T.loc4_6.1: type, %U.loc4_16.1: type) { +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U)] +// CHECK:STDOUT: %.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T) [symbolic = %.loc4_30.2 (constants.%.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc4: type, %U.loc4: type) -> @F.%.1 (%.1); +// CHECK:STDOUT: fn(%T.loc4_6.1: type, %U.loc4_16.1: type) -> @F.%.loc4_30.2 (%.1); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc13: type, %U.loc13: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %.1: type = ptr_type @.1.%U.1 (%U) [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: generic fn @.1(%T.loc13_6.1: type, %U.loc13_16.1: type) { +// CHECK:STDOUT: %T.loc13_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %U.loc13_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.2 (constants.%U)] +// CHECK:STDOUT: %.loc13_30.2: type = ptr_type @.1.%U.loc13_16.2 (%U) [symbolic = %.loc13_30.2 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc13: type, %U.loc13: type) -> @.1.%.1 (%.3) { +// CHECK:STDOUT: fn(%T.loc13_6.1: type, %U.loc13_16.1: type) -> @.1.%.loc13_30.2 (%.3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U -// CHECK:STDOUT: %.1 => constants.%.1 +// CHECK:STDOUT: %T.loc4_6.2 => constants.%T +// CHECK:STDOUT: %U.loc4_16.2 => constants.%U +// CHECK:STDOUT: %.loc4_30.2 => constants.%.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %T.loc13_6.2 => constants.%T +// CHECK:STDOUT: %U.loc13_16.2 => constants.%U +// CHECK:STDOUT: %.loc13_30.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_reorder.carbon @@ -294,60 +294,60 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T.1)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc4: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U.1)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %.loc4: type = ptr_type %T.1 [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %return: ref @F.%.1 (%.1) = var +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U.1)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.1)] +// CHECK:STDOUT: %.loc4_30.1: type = ptr_type %T.1 [symbolic = %.loc4_30.2 (constants.%.1)] +// CHECK:STDOUT: %return: ref @F.%.loc4_30.2 (%.1) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc13: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U.2)] +// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc13_6.2 (constants.%U.2)] // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc13: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %.loc13: type = ptr_type %T.2 [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %return: ref @.1.%.1 (%.3) = var +// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc13_16.2 (constants.%T.2)] +// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.2)] +// CHECK:STDOUT: %.loc13_30.1: type = ptr_type %T.2 [symbolic = %.loc13_30.2 (constants.%.3)] +// CHECK:STDOUT: %return: ref @.1.%.loc13_30.2 (%.3) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4: type, %U.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U.1)] -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T.1) [symbolic = %.1 (constants.%.1)] +// CHECK:STDOUT: generic fn @F(%T.loc4_6.1: type, %U.loc4_16.1: type) { +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.1)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.1)] +// CHECK:STDOUT: %.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T.1) [symbolic = %.loc4_30.2 (constants.%.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc4: type, %U.loc4: type) -> @F.%.1 (%.1); +// CHECK:STDOUT: fn(%T.loc4_6.1: type, %U.loc4_16.1: type) -> @F.%.loc4_30.2 (%.1); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%U.loc13: type, %T.loc13: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U.2)] -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 1 [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %.1: type = ptr_type @.1.%T.1 (%T.2) [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: generic fn @.1(%U.loc13_6.1: type, %T.loc13_16.1: type) { +// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.2)] +// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.2)] +// CHECK:STDOUT: %.loc13_30.2: type = ptr_type @.1.%T.loc13_16.2 (%T.2) [symbolic = %.loc13_30.2 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc13: type, %T.loc13: type) -> @.1.%.1 (%.3) { +// CHECK:STDOUT: fn(%U.loc13_6.1: type, %T.loc13_16.1: type) -> @.1.%.loc13_30.2 (%.3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.2)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.1, constants.%U.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 -// CHECK:STDOUT: %U.1 => constants.%U.1 -// CHECK:STDOUT: %.1 => constants.%.1 +// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.1 +// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.1 +// CHECK:STDOUT: %.loc4_30.2 => constants.%.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%U.2, constants.%T.2) { -// CHECK:STDOUT: %U.1 => constants.%U.2 -// CHECK:STDOUT: %T.1 => constants.%T.2 -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.2 +// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.2 +// CHECK:STDOUT: %.loc13_30.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_rename.carbon @@ -390,59 +390,59 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_6.2 (constants.%T.1)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc4: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U.1)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %.loc4: type = ptr_type %T.1 [symbolic = %.1 (constants.%.1)] -// CHECK:STDOUT: %return: ref @F.%.1 (%.1) = var +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc4_16.2 (constants.%U.1)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.1)] +// CHECK:STDOUT: %.loc4_30.1: type = ptr_type %T.1 [symbolic = %.loc4_30.2 (constants.%.1)] +// CHECK:STDOUT: %return: ref @F.%.loc4_30.2 (%.1) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc13: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U.2)] +// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc13_6.2 (constants.%U.2)] // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc13: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13 [symbolic = %U.1 (constants.%U.2)] -// CHECK:STDOUT: %.loc13: type = ptr_type %U.2 [symbolic = %.1 (constants.%.3)] -// CHECK:STDOUT: %return: ref @.1.%.1 (%.3) = var +// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc13_16.2 (constants.%T.2)] +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_6.1 [symbolic = %U.loc13_6.2 (constants.%U.2)] +// CHECK:STDOUT: %.loc13_30.1: type = ptr_type %U.2 [symbolic = %.loc13_30.2 (constants.%.3)] +// CHECK:STDOUT: %return: ref @.1.%.loc13_30.2 (%.3) = var // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4: type, %U.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U.1)] -// CHECK:STDOUT: %.1: type = ptr_type @F.%T.1 (%T.1) [symbolic = %.1 (constants.%.1)] +// CHECK:STDOUT: generic fn @F(%T.loc4_6.1: type, %U.loc4_16.1: type) { +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.1)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.1)] +// CHECK:STDOUT: %.loc4_30.2: type = ptr_type @F.%T.loc4_6.2 (%T.1) [symbolic = %.loc4_30.2 (constants.%.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc4: type, %U.loc4: type) -> @F.%.1 (%.1); +// CHECK:STDOUT: fn(%T.loc4_6.1: type, %U.loc4_16.1: type) -> @F.%.loc4_30.2 (%.1); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%U.loc13: type, %T.loc13: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U.2)] -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 1 [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %.1: type = ptr_type @.1.%U.1 (%U.2) [symbolic = %.1 (constants.%.3)] +// CHECK:STDOUT: generic fn @.1(%U.loc13_6.1: type, %T.loc13_16.1: type) { +// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.2)] +// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.2)] +// CHECK:STDOUT: %.loc13_30.2: type = ptr_type @.1.%U.loc13_6.2 (%U.2) [symbolic = %.loc13_30.2 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc13: type, %T.loc13: type) -> @.1.%.1 (%.3) { +// CHECK:STDOUT: fn(%U.loc13_6.1: type, %T.loc13_16.1: type) -> @.1.%.loc13_30.2 (%.3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.2)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.1, constants.%U.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 -// CHECK:STDOUT: %U.1 => constants.%U.1 -// CHECK:STDOUT: %.1 => constants.%.1 +// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.1 +// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.1 +// CHECK:STDOUT: %.loc4_30.2 => constants.%.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%U.2, constants.%T.2) { -// CHECK:STDOUT: %U.1 => constants.%U.2 -// CHECK:STDOUT: %T.1 => constants.%T.2 -// CHECK:STDOUT: %.1 => constants.%.3 +// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.2 +// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.2 +// CHECK:STDOUT: %.loc13_30.2 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index cb2386195fcd..a708c41f6fdb 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -84,22 +84,22 @@ fn G() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_12.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_12.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Wrap(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @Wrap(%T.loc11_12.1: type) { +// CHECK:STDOUT: %T.loc11_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_12.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T.1) [symbolic = %Make.type (constants.%Make.type.1)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T.loc11_12.2) [symbolic = %Make.type (constants.%Make.type.1)] // CHECK:STDOUT: %Make: @Wrap.%Make.type (%Make.type.1) = struct_value () [symbolic = %Make (constants.%Make.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Make.decl: @Wrap.%Make.type (%Make.type.1) = fn_decl @Make [symbolic = @Wrap.%Make (constants.%Make.1)] {} { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Wrap.%T.loc11 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Wrap.%T.loc11_12.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return: ref @Make.%T (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.loc13: = complete_type_witness %.2 [template = constants.%.3] @@ -124,7 +124,7 @@ fn G() { // CHECK:STDOUT: .arr = %.loc15_18 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(@Wrap.%T.loc11: type) { +// CHECK:STDOUT: generic fn @Make(@Wrap.%T.loc11_12.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.%T (%T); @@ -175,19 +175,19 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_12.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Wrap(@Wrap.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Wrap(@Wrap.%T.loc11_12.2) { +// CHECK:STDOUT: %T.loc11_12.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(i32) { -// CHECK:STDOUT: %T.1 => i32 +// CHECK:STDOUT: %T.loc11_12.2 => i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.2 @@ -199,7 +199,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%.1) { -// CHECK:STDOUT: %T.1 => constants.%.1 +// CHECK:STDOUT: %T.loc11_12.2 => constants.%.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.3 @@ -211,7 +211,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C +// CHECK:STDOUT: %T.loc11_12.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.4 diff --git a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon index 6babb9363dc8..f1a1c7986d0b 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon @@ -66,62 +66,62 @@ class C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_28.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_28.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericInterface(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @GenericInterface(%T.loc11_28.1: type) { +// CHECK:STDOUT: %T.loc11_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_28.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = interface_type @GenericInterface, @GenericInterface(%T.1) [symbolic = %GenericInterface.type (constants.%GenericInterface.type.2)] +// CHECK:STDOUT: %GenericInterface.type: type = interface_type @GenericInterface, @GenericInterface(%T.loc11_28.2) [symbolic = %GenericInterface.type (constants.%GenericInterface.type.2)] // CHECK:STDOUT: %Self.2: %GenericInterface.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @GenericInterface(%T.1) [symbolic = %F.type (constants.%F.type.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @GenericInterface(%T.loc11_28.2) [symbolic = %F.type (constants.%F.type.1)] // CHECK:STDOUT: %F: @GenericInterface.%F.type (%F.type.1) = struct_value () [symbolic = %F (constants.%F.1)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @GenericInterface.%GenericInterface.type (%GenericInterface.type.2), @GenericInterface.%F.type (%F.type.1) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @GenericInterface.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc12_13.2: type = assoc_entity_type @GenericInterface.%GenericInterface.type (%GenericInterface.type.2), @GenericInterface.%F.type (%F.type.1) [symbolic = %.loc12_13.2 (constants.%.2)] +// CHECK:STDOUT: %.loc12_13.3: @GenericInterface.%.loc12_13.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc12_13.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.decl: @GenericInterface.%F.type (%F.type.1) = fn_decl @F.1 [symbolic = @GenericInterface.%F (constants.%F.1)] { // CHECK:STDOUT: %x.patt: @F.1.%T (%T) = binding_pattern x // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @GenericInterface.%T.loc11 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @GenericInterface.%T.loc11_28.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %x.param: @F.1.%T (%T) = param x, runtime_param0 // CHECK:STDOUT: %x: @F.1.%T (%T) = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc12: @GenericInterface.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc12_13.1: @GenericInterface.%.loc12_13.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc12_13.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc12 +// CHECK:STDOUT: .F = %.loc12_13.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc19: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %GenericInterface.type.1: type = interface_type @GenericInterface, @GenericInterface(%T.1) [symbolic = %GenericInterface.type.1 (constants.%GenericInterface.type.2)] +// CHECK:STDOUT: generic impl @impl(%T.loc19_23.1: type) { +// CHECK:STDOUT: %T.loc19_23.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_23.2 (constants.%T)] +// CHECK:STDOUT: %GenericInterface.type.loc19_52.2: type = interface_type @GenericInterface, @GenericInterface(%T.loc19_23.2) [symbolic = %GenericInterface.type.loc19_52.2 (constants.%GenericInterface.type.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc19_23.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc19_56.2: = interface_witness (%F) [symbolic = %.loc19_56.2 (constants.%.4)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: %Self.ref as %GenericInterface.type.loc19 { +// CHECK:STDOUT: impl: %Self.ref as %GenericInterface.type.loc19_52.1 { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] { // CHECK:STDOUT: %x.patt: @F.2.%T (%T) = binding_pattern x // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @impl.%T.loc19 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @impl.%T.loc19_23.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %x.param: @F.2.%T (%T) = param x, runtime_param0 // CHECK:STDOUT: %x: @F.2.%T (%T) = bind_name x, %x.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc19: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc19_56.1: = interface_witness (%F.decl) [symbolic = %.loc19_56.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc19 +// CHECK:STDOUT: witness = %.loc19_56.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -130,11 +130,11 @@ class C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc19: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc19_23.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_23.2 (constants.%T)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [template = constants.%C] // CHECK:STDOUT: %GenericInterface.ref: %GenericInterface.type.1 = name_ref GenericInterface, file.%GenericInterface.decl [template = constants.%GenericInterface] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc19 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %GenericInterface.type.loc19: type = interface_type @GenericInterface, @GenericInterface(constants.%T) [symbolic = %GenericInterface.type.1 (constants.%GenericInterface.type.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc19_23.1 [symbolic = %T.loc19_23.2 (constants.%T)] +// CHECK:STDOUT: %GenericInterface.type.loc19_52.1: type = interface_type @GenericInterface, @GenericInterface(constants.%T) [symbolic = %GenericInterface.type.loc19_52.2 (constants.%GenericInterface.type.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc22: = complete_type_witness %.5 [template = constants.%.6] // CHECK:STDOUT: @@ -143,13 +143,13 @@ class C { // CHECK:STDOUT: has_error // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@GenericInterface.%T.loc11: type, @GenericInterface.%Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.2)) { +// CHECK:STDOUT: generic fn @F.1(@GenericInterface.%T.loc11_28.1: type, @GenericInterface.%Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.2)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x: @F.1.%T (%T)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc19: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc19_23.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -161,37 +161,37 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericInterface(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_28.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericInterface.type => constants.%GenericInterface.type.2 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.1 // CHECK:STDOUT: %F => constants.%F.1 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 +// CHECK:STDOUT: %.loc12_13.2 => constants.%.2 +// CHECK:STDOUT: %.loc12_13.3 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericInterface(@GenericInterface.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @GenericInterface(@GenericInterface.%T.loc11_28.2) { +// CHECK:STDOUT: %T.loc11_28.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericInterface(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @GenericInterface(@impl.%T.loc19_23.2) { +// CHECK:STDOUT: %T.loc11_28.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %GenericInterface.type.1 => constants.%GenericInterface.type.2 +// CHECK:STDOUT: %T.loc19_23.2 => constants.%T +// CHECK:STDOUT: %GenericInterface.type.loc19_52.2 => constants.%GenericInterface.type.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %.loc19_56.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) { @@ -202,8 +202,8 @@ class C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %GenericInterface.type.1 => constants.%GenericInterface.type.2 +// CHECK:STDOUT: specific @impl(@impl.%T.loc19_23.2) { +// CHECK:STDOUT: %T.loc19_23.2 => constants.%T +// CHECK:STDOUT: %GenericInterface.type.loc19_52.2 => constants.%GenericInterface.type.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon index 181436413f97..fdd784eb0177 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -406,29 +406,29 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: interface @SelfNested { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.3] // CHECK:STDOUT: %F.decl: %F.type.13 = fn_decl @F.13 [template = constants.%F.14] { -// CHECK:STDOUT: %x.patt: @F.13.%.3 (%.11) = binding_pattern x +// CHECK:STDOUT: %x.patt: @F.13.%.loc188_38.1 (%.11) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc188_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3)] -// CHECK:STDOUT: %.loc188_16.1: type = facet_type_access %Self.ref.loc188_12 [symbolic = %Self (constants.%Self.3)] -// CHECK:STDOUT: %.loc188_16.2: type = converted %Self.ref.loc188_12, %.loc188_16.1 [symbolic = %Self (constants.%Self.3)] -// CHECK:STDOUT: %.loc188_16.3: type = ptr_type %Self.3 [symbolic = %.1 (constants.%.8)] +// CHECK:STDOUT: %.loc188_16.2: type = facet_type_access %Self.ref.loc188_12 [symbolic = %Self (constants.%Self.3)] +// CHECK:STDOUT: %.loc188_16.3: type = converted %Self.ref.loc188_12, %.loc188_16.2 [symbolic = %Self (constants.%Self.3)] +// CHECK:STDOUT: %.loc188_16.4: type = ptr_type %Self.3 [symbolic = %.loc188_16.1 (constants.%.8)] // CHECK:STDOUT: %Self.ref.loc188_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3)] // CHECK:STDOUT: %.loc188_24.1: type = facet_type_access %Self.ref.loc188_24 [symbolic = %Self (constants.%Self.3)] // CHECK:STDOUT: %.loc188_24.2: type = converted %Self.ref.loc188_24, %.loc188_24.1 [symbolic = %Self (constants.%Self.3)] // CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32] // CHECK:STDOUT: %.loc188_34.1: type = value_of_initializer %int.make_type_32 [template = i32] // CHECK:STDOUT: %.loc188_34.2: type = converted %int.make_type_32, %.loc188_34.1 [template = i32] -// CHECK:STDOUT: %.loc188_37: type = struct_type {.x: %Self.3, .y: i32} [symbolic = %.2 (constants.%.9)] -// CHECK:STDOUT: %.loc188_38.1: %.10 = tuple_literal (%.loc188_16.3, %.loc188_37) -// CHECK:STDOUT: %.loc188_38.2: type = converted %.loc188_38.1, constants.%.11 [symbolic = %.3 (constants.%.11)] -// CHECK:STDOUT: %x.param: @F.13.%.3 (%.11) = param x, runtime_param0 -// CHECK:STDOUT: %x: @F.13.%.3 (%.11) = bind_name x, %x.param +// CHECK:STDOUT: %.loc188_37.2: type = struct_type {.x: %Self.3, .y: i32} [symbolic = %.loc188_37.1 (constants.%.9)] +// CHECK:STDOUT: %.loc188_38.2: %.10 = tuple_literal (%.loc188_16.4, %.loc188_37.2) +// CHECK:STDOUT: %.loc188_38.3: type = converted %.loc188_38.2, constants.%.11 [symbolic = %.loc188_38.1 (constants.%.11)] +// CHECK:STDOUT: %x.param: @F.13.%.loc188_38.1 (%.11) = param x, runtime_param0 +// CHECK:STDOUT: %x: @F.13.%.loc188_38.1 (%.11) = bind_name x, %x.param // CHECK:STDOUT: %Self.ref.loc188_45: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3)] // CHECK:STDOUT: %.loc188_51: i32 = int_literal 4 [template = constants.%.12] // CHECK:STDOUT: %.loc188_45.1: type = facet_type_access %Self.ref.loc188_45 [symbolic = %Self (constants.%Self.3)] // CHECK:STDOUT: %.loc188_45.2: type = converted %Self.ref.loc188_45, %.loc188_45.1 [symbolic = %Self (constants.%Self.3)] -// CHECK:STDOUT: %.loc188_52: type = array_type %.loc188_51, %Self.3 [symbolic = %.4 (constants.%.13)] -// CHECK:STDOUT: %return: ref @F.13.%.4 (%.13) = var +// CHECK:STDOUT: %.loc188_52.2: type = array_type %.loc188_51, %Self.3 [symbolic = %.loc188_52.1 (constants.%.13)] +// CHECK:STDOUT: %return: ref @F.13.%.loc188_52.1 (%.13) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.loc188: %.14 = assoc_entity element0, %F.decl [template = constants.%.15] // CHECK:STDOUT: @@ -938,12 +938,12 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.13(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.3)] -// CHECK:STDOUT: %.1: type = ptr_type @F.13.%Self (%Self.3) [symbolic = %.1 (constants.%.8)] -// CHECK:STDOUT: %.2: type = struct_type {.x: @F.13.%Self (%Self.3), .y: i32} [symbolic = %.2 (constants.%.9)] -// CHECK:STDOUT: %.3: type = tuple_type (@F.13.%.1 (%.8), @F.13.%.2 (%.9)) [symbolic = %.3 (constants.%.11)] -// CHECK:STDOUT: %.4: type = array_type constants.%.12, @F.13.%Self (%Self.3) [symbolic = %.4 (constants.%.13)] +// CHECK:STDOUT: %.loc188_16.1: type = ptr_type @F.13.%Self (%Self.3) [symbolic = %.loc188_16.1 (constants.%.8)] +// CHECK:STDOUT: %.loc188_37.1: type = struct_type {.x: @F.13.%Self (%Self.3), .y: i32} [symbolic = %.loc188_37.1 (constants.%.9)] +// CHECK:STDOUT: %.loc188_38.1: type = tuple_type (@F.13.%.loc188_16.1 (%.8), @F.13.%.loc188_37.1 (%.9)) [symbolic = %.loc188_38.1 (constants.%.11)] +// CHECK:STDOUT: %.loc188_52.1: type = array_type constants.%.12, @F.13.%Self (%Self.3) [symbolic = %.loc188_52.1 (constants.%.13)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x: @F.13.%.3 (%.11)) -> @F.13.%.4 (%.13); +// CHECK:STDOUT: fn(%x: @F.13.%.loc188_38.1 (%.11)) -> @F.13.%.loc188_52.1 (%.13); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.14(%x: %.18) -> %.19; @@ -976,25 +976,25 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.13(constants.%Self.3) { // CHECK:STDOUT: %Self => constants.%Self.3 -// CHECK:STDOUT: %.1 => constants.%.8 -// CHECK:STDOUT: %.2 => constants.%.9 -// CHECK:STDOUT: %.3 => constants.%.11 -// CHECK:STDOUT: %.4 => constants.%.13 +// CHECK:STDOUT: %.loc188_16.1 => constants.%.8 +// CHECK:STDOUT: %.loc188_37.1 => constants.%.9 +// CHECK:STDOUT: %.loc188_38.1 => constants.%.11 +// CHECK:STDOUT: %.loc188_52.1 => constants.%.13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.13(constants.%SelfNestedBadParam) { // CHECK:STDOUT: %Self => constants.%SelfNestedBadParam -// CHECK:STDOUT: %.1 => constants.%.16 -// CHECK:STDOUT: %.2 => constants.%.20 -// CHECK:STDOUT: %.3 => constants.%.21 -// CHECK:STDOUT: %.4 => constants.%.19 +// CHECK:STDOUT: %.loc188_16.1 => constants.%.16 +// CHECK:STDOUT: %.loc188_37.1 => constants.%.20 +// CHECK:STDOUT: %.loc188_38.1 => constants.%.21 +// CHECK:STDOUT: %.loc188_52.1 => constants.%.19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.13(constants.%SelfNestedBadReturnType) { // CHECK:STDOUT: %Self => constants.%SelfNestedBadReturnType -// CHECK:STDOUT: %.1 => constants.%.22 -// CHECK:STDOUT: %.2 => constants.%.23 -// CHECK:STDOUT: %.3 => constants.%.24 -// CHECK:STDOUT: %.4 => constants.%.25 +// CHECK:STDOUT: %.loc188_16.1 => constants.%.22 +// CHECK:STDOUT: %.loc188_37.1 => constants.%.23 +// CHECK:STDOUT: %.loc188_38.1 => constants.%.24 +// CHECK:STDOUT: %.loc188_52.1 => constants.%.25 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_forall.carbon b/toolchain/check/testdata/impl/impl_forall.carbon index 308941b7662b..08abbb5d52a7 100644 --- a/toolchain/check/testdata/impl/impl_forall.carbon +++ b/toolchain/check/testdata/impl/impl_forall.carbon @@ -56,8 +56,8 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc15: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc15_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc15_14.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_14.1 [symbolic = %T.loc15_14.2 (constants.%T)] // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [template = constants.%Simple.type] // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -73,21 +73,21 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc15: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic impl @impl(%T.loc15_14.1: type) { +// CHECK:STDOUT: %T.loc15_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_14.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc15_14.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc15_36.2: = interface_witness (%F) [symbolic = %.loc15_36.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %Simple.ref { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] {} {} -// CHECK:STDOUT: %.loc15: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc15_36.1: = interface_witness (%F.decl) [symbolic = %.loc15_36.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc15 +// CHECK:STDOUT: witness = %.loc15_36.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -96,7 +96,7 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc15: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc15_14.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -108,19 +108,19 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc15_14.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %.loc15_36.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @impl(@impl.%T.loc15_14.2) { +// CHECK:STDOUT: %T.loc15_14.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index 36e55cecee2d..d1aa8cb04fc9 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -168,8 +168,8 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { @@ -193,21 +193,21 @@ fn G(x: A) { // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { +// CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc8_34.2: = interface_witness (%F) [symbolic = %.loc8_34.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] {} {} -// CHECK:STDOUT: %.loc8: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc8_34.1: = interface_witness (%F.decl) [symbolic = %.loc8_34.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc8 +// CHECK:STDOUT: witness = %.loc8_34.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -216,7 +216,7 @@ fn G(x: A) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8_14.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -238,29 +238,29 @@ fn G(x: A) { // CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %.loc8_34.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @impl(@impl.%T.loc8_14.2) { +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%.5) { -// CHECK:STDOUT: %T.1 => constants.%.5 +// CHECK:STDOUT: %T.loc8_14.2 => constants.%.5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.3 // CHECK:STDOUT: %F => constants.%F.3 -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %.loc8_34.2 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%.5) {} @@ -313,8 +313,8 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { @@ -353,13 +353,13 @@ fn G(x: A) { // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { +// CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc8_34.2: = interface_witness (%F) [symbolic = %.loc8_34.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] { @@ -368,14 +368,14 @@ fn G(x: A) { // CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.%T.ref [symbolic = %T (constants.%T)] // CHECK:STDOUT: %self.param: @F.2.%T (%T) = param self, runtime_param0 // CHECK:STDOUT: %self: @F.2.%T (%T) = bind_name self, %self.param -// CHECK:STDOUT: %T.ref: type = name_ref T, @impl.%T.loc8 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @impl.%T.loc8_14.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return: ref @F.2.%T (%T) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc8_34.1: = interface_witness (%F.decl) [symbolic = %.loc8_34.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc8 +// CHECK:STDOUT: witness = %.loc8_34.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -385,7 +385,7 @@ fn G(x: A) { // CHECK:STDOUT: fn[%self: @F.1.%Self (%Self)]() -> @F.1.%Self (%Self); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8_14.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -417,12 +417,12 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %.loc8_34.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) { @@ -433,17 +433,17 @@ fn G(x: A) { // CHECK:STDOUT: %Self => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @impl(@impl.%T.loc8_14.2) { +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%.5) { -// CHECK:STDOUT: %T.1 => constants.%.5 +// CHECK:STDOUT: %T.loc8_14.2 => constants.%.5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.3 // CHECK:STDOUT: %F => constants.%F.3 -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %.loc8_34.2 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%.5) { @@ -504,16 +504,16 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl [template] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc10_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_14.2 (constants.%T)] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc10 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %C.loc10: type = class_type @C, @C(constants.%T) [symbolic = %C.1 (constants.%C.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc10_14.1 [symbolic = %T.loc10_14.2 (constants.%T)] +// CHECK:STDOUT: %C.loc10_25.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc10_25.2 (constants.%C.2)] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { @@ -539,27 +539,27 @@ fn G(x: A) { // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc10: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %C.1: type = class_type @C, @C(%T.1) [symbolic = %C.1 (constants.%C.2)] +// CHECK:STDOUT: generic impl @impl(%T.loc10_14.1: type) { +// CHECK:STDOUT: %T.loc10_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_14.2 (constants.%T)] +// CHECK:STDOUT: %C.loc10_25.2: type = class_type @C, @C(%T.loc10_14.2) [symbolic = %C.loc10_25.2 (constants.%C.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc10_14.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.6)] +// CHECK:STDOUT: %.loc10_37.2: = interface_witness (%F) [symbolic = %.loc10_37.2 (constants.%.6)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: %C.loc10 as %HasF.ref { +// CHECK:STDOUT: impl: %C.loc10_25.1 as %HasF.ref { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] {} {} -// CHECK:STDOUT: %.loc10: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.6)] +// CHECK:STDOUT: %.loc10_37.1: = interface_witness (%F.decl) [symbolic = %.loc10_37.2 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc10 +// CHECK:STDOUT: witness = %.loc10_37.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc8_9.1: type) { +// CHECK:STDOUT: %T.loc8_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -576,7 +576,7 @@ fn G(x: A) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc10: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc10_14.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -598,46 +598,46 @@ fn G(x: A) { // CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @C(@impl.%T.loc10_14.2) { +// CHECK:STDOUT: %T.loc8_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %C.1 => constants.%C.2 +// CHECK:STDOUT: %T.loc10_14.2 => constants.%T +// CHECK:STDOUT: %C.loc10_25.2 => constants.%C.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.6 +// CHECK:STDOUT: %.loc10_37.2 => constants.%.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%C.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %C.1 => constants.%C.2 +// CHECK:STDOUT: specific @impl(@impl.%T.loc10_14.2) { +// CHECK:STDOUT: %T.loc10_14.2 => constants.%T +// CHECK:STDOUT: %C.loc10_25.2 => constants.%C.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%.4) { -// CHECK:STDOUT: %T.1 => constants.%.4 +// CHECK:STDOUT: %T.loc8_9.2 => constants.%.4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%.4) { -// CHECK:STDOUT: %T.1 => constants.%.4 -// CHECK:STDOUT: %C.1 => constants.%C.3 +// CHECK:STDOUT: %T.loc10_14.2 => constants.%.4 +// CHECK:STDOUT: %C.loc10_25.2 => constants.%C.3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.3 // CHECK:STDOUT: %F => constants.%F.3 -// CHECK:STDOUT: %.1 => constants.%.8 +// CHECK:STDOUT: %.loc10_37.2 => constants.%.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%.4) {} @@ -695,18 +695,18 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_16.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl [template] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %.loc8_25.1: %.4 = struct_literal () // CHECK:STDOUT: %.loc8_25.2: type = converted %.loc8_25.1, constants.%.4 [template = constants.%.4] // CHECK:STDOUT: %HasF.ref: %HasF.type.1 = name_ref HasF, file.%HasF.decl [template = constants.%HasF] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8: type = interface_type @HasF, @HasF(constants.%T) [symbolic = %HasF.type.1 (constants.%HasF.type.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %HasF.type.loc8_34.1: type = interface_type @HasF, @HasF(constants.%T) [symbolic = %HasF.type.loc8_34.2 (constants.%HasF.type.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %x.patt: %.4 = binding_pattern x @@ -718,54 +718,54 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @HasF(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @HasF(%T.loc4_16.1: type) { +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = interface_type @HasF, @HasF(%T.1) [symbolic = %HasF.type (constants.%HasF.type.2)] +// CHECK:STDOUT: %HasF.type: type = interface_type @HasF, @HasF(%T.loc4_16.2) [symbolic = %HasF.type (constants.%HasF.type.2)] // CHECK:STDOUT: %Self.2: %HasF.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.1) [symbolic = %F.type (constants.%F.type.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.1)] // CHECK:STDOUT: %F: @HasF.%F.type (%F.type.1) = struct_value () [symbolic = %F (constants.%F.1)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.2), @HasF.%F.type (%F.type.1) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @HasF.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_9.2: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.2), @HasF.%F.type (%F.type.1) [symbolic = %.loc5_9.2 (constants.%.2)] +// CHECK:STDOUT: %.loc5_9.3: @HasF.%.loc5_9.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc5_9.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.1) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.1)] {} {} -// CHECK:STDOUT: %.loc5: @HasF.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_9.1: @HasF.%.loc5_9.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc5_9.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc5 +// CHECK:STDOUT: .F = %.loc5_9.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.1: type = interface_type @HasF, @HasF(%T.1) [symbolic = %HasF.type.1 (constants.%HasF.type.2)] +// CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { +// CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %HasF.type.loc8_34.2: type = interface_type @HasF, @HasF(%T.loc8_14.2) [symbolic = %HasF.type.loc8_34.2 (constants.%HasF.type.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.5)] +// CHECK:STDOUT: %.loc8_38.2: = interface_witness (%F) [symbolic = %.loc8_38.2 (constants.%.5)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: %.loc8_25.2 as %HasF.type.loc8 { +// CHECK:STDOUT: impl: %.loc8_25.2 as %HasF.type.loc8_34.1 { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] {} {} -// CHECK:STDOUT: %.loc8_38: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.5)] +// CHECK:STDOUT: %.loc8_38.1: = interface_witness (%F.decl) [symbolic = %.loc8_38.2 (constants.%.5)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc8_38 +// CHECK:STDOUT: witness = %.loc8_38.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.2)) { +// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.2)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8_14.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -781,7 +781,7 @@ fn G(x: A) { // CHECK:STDOUT: %.loc13_12: %.4 = struct_literal () // CHECK:STDOUT: %.loc13_10: type = converted %.loc13_12, constants.%.4 [template = constants.%.4] // CHECK:STDOUT: %HasF.type: type = interface_type @HasF, @HasF(constants.%.4) [template = constants.%HasF.type.3] -// CHECK:STDOUT: %.loc13_14: %.6 = specific_constant @HasF.%.loc5, @HasF(constants.%.4) [template = constants.%.7] +// CHECK:STDOUT: %.loc13_14: %.6 = specific_constant @HasF.%.loc5_9.1, @HasF(constants.%.4) [template = constants.%.7] // CHECK:STDOUT: %F.ref: %.6 = name_ref F, %.loc13_14 [template = constants.%.7] // CHECK:STDOUT: %.loc13_4: %F.type.3 = interface_witness_access constants.%.8, element0 [template = constants.%F.4] // CHECK:STDOUT: %F.call: init %.1 = call %.loc13_4() @@ -789,66 +789,66 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_16.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.2 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.1 // CHECK:STDOUT: %F => constants.%F.1 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 +// CHECK:STDOUT: %.loc5_9.2 => constants.%.2 +// CHECK:STDOUT: %.loc5_9.3 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF(@HasF.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @HasF(@HasF.%T.loc4_16.2) { +// CHECK:STDOUT: %T.loc4_16.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @HasF(@impl.%T.loc8_14.2) { +// CHECK:STDOUT: %T.loc4_16.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %HasF.type.1 => constants.%HasF.type.2 +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T +// CHECK:STDOUT: %HasF.type.loc8_34.2 => constants.%HasF.type.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.5 +// CHECK:STDOUT: %.loc8_38.2 => constants.%.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%.4) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %HasF.type.1 => constants.%HasF.type.2 +// CHECK:STDOUT: specific @impl(@impl.%T.loc8_14.2) { +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T +// CHECK:STDOUT: %HasF.type.loc8_34.2 => constants.%HasF.type.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%.4) { -// CHECK:STDOUT: %T.1 => constants.%.4 +// CHECK:STDOUT: %T.loc4_16.2 => constants.%.4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.3 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.3 // CHECK:STDOUT: %F => constants.%F.3 -// CHECK:STDOUT: %.1 => constants.%.6 -// CHECK:STDOUT: %.2 => constants.%.7 +// CHECK:STDOUT: %.loc5_9.2 => constants.%.6 +// CHECK:STDOUT: %.loc5_9.3 => constants.%.7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%.4) { -// CHECK:STDOUT: %T.1 => constants.%.4 -// CHECK:STDOUT: %HasF.type.1 => constants.%HasF.type.3 +// CHECK:STDOUT: %T.loc8_14.2 => constants.%.4 +// CHECK:STDOUT: %HasF.type.loc8_34.2 => constants.%HasF.type.3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.4 // CHECK:STDOUT: %F => constants.%F.4 -// CHECK:STDOUT: %.1 => constants.%.8 +// CHECK:STDOUT: %.loc8_38.2 => constants.%.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%.4) {} @@ -899,10 +899,10 @@ fn G(x: A) { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc9: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc9_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc9_14.2 (constants.%T)] // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc9: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc9 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %U.loc9_24.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc9_24.2 (constants.%U)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc9_14.1 [symbolic = %T.loc9_14.2 (constants.%T)] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { @@ -926,22 +926,22 @@ fn G(x: A) { // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc9: type, %U.loc9: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic impl @impl(%T.loc9_14.1: type, %U.loc9_24.1: type) { +// CHECK:STDOUT: %T.loc9_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_14.2 (constants.%T)] +// CHECK:STDOUT: %U.loc9_24.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc9_24.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1, %U.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc9_14.2, %U.loc9_24.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc9_44.2: = interface_witness (%F) [symbolic = %.loc9_44.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %T.ref as %HasF.ref { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] {} {} -// CHECK:STDOUT: %.loc9: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc9_44.1: = interface_witness (%F.decl) [symbolic = %.loc9_44.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc9 +// CHECK:STDOUT: witness = %.loc9_44.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -950,7 +950,7 @@ fn G(x: A) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc9: type, @impl.%U.loc9: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc9_14.1: type, @impl.%U.loc9_24.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -970,22 +970,22 @@ fn G(x: A) { // CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %T.loc9_14.2 => constants.%T +// CHECK:STDOUT: %U.loc9_24.2 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %.loc9_44.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T, constants.%U) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1, @impl.%U.1) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: specific @impl(@impl.%T.loc9_14.2, @impl.%U.loc9_24.2) { +// CHECK:STDOUT: %T.loc9_14.2 => constants.%T +// CHECK:STDOUT: %U.loc9_24.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_inconsistent_deduction.carbon @@ -1044,17 +1044,17 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_16.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl [template] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc8_24: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc8_24: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %HasF.ref: %HasF.type.1 = name_ref HasF, file.%HasF.decl [template = constants.%HasF] -// CHECK:STDOUT: %T.ref.loc8_34: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.loc8: type = interface_type @HasF, @HasF(constants.%T) [symbolic = %HasF.type.1 (constants.%HasF.type.2)] +// CHECK:STDOUT: %T.ref.loc8_34: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %HasF.type.loc8_33.1: type = interface_type @HasF, @HasF(constants.%T) [symbolic = %HasF.type.loc8_33.2 (constants.%HasF.type.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [template = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} @@ -1067,45 +1067,45 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @HasF(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @HasF(%T.loc4_16.1: type) { +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = interface_type @HasF, @HasF(%T.1) [symbolic = %HasF.type (constants.%HasF.type.2)] +// CHECK:STDOUT: %HasF.type: type = interface_type @HasF, @HasF(%T.loc4_16.2) [symbolic = %HasF.type (constants.%HasF.type.2)] // CHECK:STDOUT: %Self.2: %HasF.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.1) [symbolic = %F.type (constants.%F.type.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.1)] // CHECK:STDOUT: %F: @HasF.%F.type (%F.type.1) = struct_value () [symbolic = %F (constants.%F.1)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.2), @HasF.%F.type (%F.type.1) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @HasF.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_9.2: type = assoc_entity_type @HasF.%HasF.type (%HasF.type.2), @HasF.%F.type (%F.type.1) [symbolic = %.loc5_9.2 (constants.%.2)] +// CHECK:STDOUT: %.loc5_9.3: @HasF.%.loc5_9.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc5_9.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.decl: @HasF.%F.type (%F.type.1) = fn_decl @F.1 [symbolic = @HasF.%F (constants.%F.1)] {} {} -// CHECK:STDOUT: %.loc5: @HasF.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_9.1: @HasF.%.loc5_9.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc5_9.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc5 +// CHECK:STDOUT: .F = %.loc5_9.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %HasF.type.1: type = interface_type @HasF, @HasF(%T.1) [symbolic = %HasF.type.1 (constants.%HasF.type.2)] +// CHECK:STDOUT: generic impl @impl(%T.loc8_14.1: type) { +// CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %HasF.type.loc8_33.2: type = interface_type @HasF, @HasF(%T.loc8_14.2) [symbolic = %HasF.type.loc8_33.2 (constants.%HasF.type.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc8_14.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc8_37.2: = interface_witness (%F) [symbolic = %.loc8_37.2 (constants.%.4)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: %T.ref.loc8_24 as %HasF.type.loc8 { +// CHECK:STDOUT: impl: %T.ref.loc8_24 as %HasF.type.loc8_33.1 { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] {} {} -// CHECK:STDOUT: %.loc8: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.4)] +// CHECK:STDOUT: %.loc8_37.1: = interface_witness (%F.decl) [symbolic = %.loc8_37.2 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc8 +// CHECK:STDOUT: witness = %.loc8_37.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1123,12 +1123,12 @@ fn G(x: A) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.2)) { +// CHECK:STDOUT: generic fn @F.1(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.2)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%T.loc8_14.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -1143,61 +1143,61 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.ref: %HasF.type.1 = name_ref HasF, file.%HasF.decl [template = constants.%HasF] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %HasF.type: type = interface_type @HasF, @HasF(constants.%B) [template = constants.%HasF.type.3] -// CHECK:STDOUT: %.loc21: %.8 = specific_constant @HasF.%.loc5, @HasF(constants.%B) [template = constants.%.9] +// CHECK:STDOUT: %.loc21: %.8 = specific_constant @HasF.%.loc5_9.1, @HasF(constants.%B) [template = constants.%.9] // CHECK:STDOUT: %F.ref: %.8 = name_ref F, %.loc21 [template = constants.%.9] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_16.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.2 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.1 // CHECK:STDOUT: %F => constants.%F.1 -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 +// CHECK:STDOUT: %.loc5_9.2 => constants.%.2 +// CHECK:STDOUT: %.loc5_9.3 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF(@HasF.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @HasF(@HasF.%T.loc4_16.2) { +// CHECK:STDOUT: %T.loc4_16.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HasF(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @HasF(@impl.%T.loc8_14.2) { +// CHECK:STDOUT: %T.loc4_16.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %HasF.type.1 => constants.%HasF.type.2 +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T +// CHECK:STDOUT: %HasF.type.loc8_33.2 => constants.%HasF.type.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.4 +// CHECK:STDOUT: %.loc8_37.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T, constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %HasF.type.1 => constants.%HasF.type.2 +// CHECK:STDOUT: specific @impl(@impl.%T.loc8_14.2) { +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T +// CHECK:STDOUT: %HasF.type.loc8_33.2 => constants.%HasF.type.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%B) { -// CHECK:STDOUT: %T.1 => constants.%B +// CHECK:STDOUT: %T.loc4_16.2 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.3 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.3 // CHECK:STDOUT: %F => constants.%F.3 -// CHECK:STDOUT: %.1 => constants.%.8 -// CHECK:STDOUT: %.2 => constants.%.9 +// CHECK:STDOUT: %.loc5_9.2 => constants.%.8 +// CHECK:STDOUT: %.loc5_9.3 => constants.%.9 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon index 76aa904e0f72..e909a1ae9836 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon @@ -113,39 +113,39 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc2: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc2_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc2_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl: %I.type.1 = interface_decl @I [template = constants.%I] { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc6: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc6_13.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc6_13.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl [template] { // CHECK:STDOUT: %V.patt: type = symbolic_binding_pattern V, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %V.param: type = param V, runtime_param -// CHECK:STDOUT: %V.loc10: type = bind_symbolic_name V, 0, %V.param [symbolic = %V.1 (constants.%V)] +// CHECK:STDOUT: %V.loc10_14.1: type = bind_symbolic_name V, 0, %V.param [symbolic = %V.loc10_14.2 (constants.%V)] // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.1] -// CHECK:STDOUT: %V.ref.loc10_26: type = name_ref V, %V.loc10 [symbolic = %V.1 (constants.%V)] -// CHECK:STDOUT: %A.loc10: type = class_type @A, @A(constants.%V) [symbolic = %A.1 (constants.%A.3)] +// CHECK:STDOUT: %V.ref.loc10_26: type = name_ref V, %V.loc10_14.1 [symbolic = %V.loc10_14.2 (constants.%V)] +// CHECK:STDOUT: %A.loc10_25.1: type = class_type @A, @A(constants.%V) [symbolic = %A.loc10_25.2 (constants.%A.3)] // CHECK:STDOUT: %I.ref: %I.type.1 = name_ref I, file.%I.decl [template = constants.%I] -// CHECK:STDOUT: %V.ref.loc10_34: type = name_ref V, %V.loc10 [symbolic = %V.1 (constants.%V)] -// CHECK:STDOUT: %I.type.loc10: type = interface_type @I, @I(constants.%V) [symbolic = %I.type.1 (constants.%I.type.3)] +// CHECK:STDOUT: %V.ref.loc10_34: type = name_ref V, %V.loc10_14.1 [symbolic = %V.loc10_14.2 (constants.%V)] +// CHECK:STDOUT: %I.type.loc10_33.1: type = interface_type @I, @I(constants.%V) [symbolic = %I.type.loc10_33.2 (constants.%I.type.3)] // CHECK:STDOUT: } // CHECK:STDOUT: %TestGeneric.decl: %TestGeneric.type = fn_decl @TestGeneric [template = constants.%TestGeneric] { // CHECK:STDOUT: %W.patt: type = symbolic_binding_pattern W, 0 -// CHECK:STDOUT: %a.patt: @TestGeneric.%A.1 (%A.4) = binding_pattern a +// CHECK:STDOUT: %a.patt: @TestGeneric.%A.loc16_30.2 (%A.4) = binding_pattern a // CHECK:STDOUT: } { // CHECK:STDOUT: %W.param: type = param W, runtime_param -// CHECK:STDOUT: %W.loc16: type = bind_symbolic_name W, 0, %W.param [symbolic = %W.1 (constants.%W)] +// CHECK:STDOUT: %W.loc16_16.1: type = bind_symbolic_name W, 0, %W.param [symbolic = %W.loc16_16.2 (constants.%W)] // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [template = constants.%A.1] -// CHECK:STDOUT: %W.ref.loc16_31: type = name_ref W, %W.loc16 [symbolic = %W.1 (constants.%W)] -// CHECK:STDOUT: %A.loc16: type = class_type @A, @A(constants.%W) [symbolic = %A.1 (constants.%A.4)] -// CHECK:STDOUT: %a.param: @TestGeneric.%A.1 (%A.4) = param a, runtime_param0 -// CHECK:STDOUT: %a: @TestGeneric.%A.1 (%A.4) = bind_name a, %a.param -// CHECK:STDOUT: %W.ref.loc16_38: type = name_ref W, %W.loc16 [symbolic = %W.1 (constants.%W)] -// CHECK:STDOUT: %return: ref @TestGeneric.%W.1 (%W) = var +// CHECK:STDOUT: %W.ref.loc16_31: type = name_ref W, %W.loc16_16.1 [symbolic = %W.loc16_16.2 (constants.%W)] +// CHECK:STDOUT: %A.loc16_30.1: type = class_type @A, @A(constants.%W) [symbolic = %A.loc16_30.2 (constants.%A.4)] +// CHECK:STDOUT: %a.param: @TestGeneric.%A.loc16_30.2 (%A.4) = param a, runtime_param0 +// CHECK:STDOUT: %a: @TestGeneric.%A.loc16_30.2 (%A.4) = bind_name a, %a.param +// CHECK:STDOUT: %W.ref.loc16_38: type = name_ref W, %W.loc16_16.1 [symbolic = %W.loc16_16.2 (constants.%W)] +// CHECK:STDOUT: %return: ref @TestGeneric.%W.loc16_16.2 (%W) = var // CHECK:STDOUT: } // CHECK:STDOUT: %TestSpecific.decl: %TestSpecific.type = fn_decl @TestSpecific [template = constants.%TestSpecific] { // CHECK:STDOUT: %a.patt: %A.5 = binding_pattern a @@ -162,16 +162,16 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%U.loc6: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic interface @I(%U.loc6_13.1: type) { +// CHECK:STDOUT: %U.loc6_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_13.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%U.1) [symbolic = %I.type (constants.%I.type.2)] +// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%U.loc6_13.2) [symbolic = %I.type (constants.%I.type.2)] // CHECK:STDOUT: %Self.2: %I.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%U.1) [symbolic = %F.type (constants.%F.type.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%U.loc6_13.2) [symbolic = %F.type (constants.%F.type.1)] // CHECK:STDOUT: %F: @I.%F.type (%F.type.1) = struct_value () [symbolic = %F (constants.%F.1)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @I.%I.type (%I.type.2), @I.%F.type (%F.type.1) [symbolic = %.1 (constants.%.5)] -// CHECK:STDOUT: %.2: @I.%.1 (%.5) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.6)] +// CHECK:STDOUT: %.loc7_26.2: type = assoc_entity_type @I.%I.type (%I.type.2), @I.%F.type (%F.type.1) [symbolic = %.loc7_26.2 (constants.%.5)] +// CHECK:STDOUT: %.loc7_26.3: @I.%.loc7_26.2 (%.5) = assoc_entity element0, %F.decl [symbolic = %.loc7_26.3 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] @@ -184,67 +184,67 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %.loc7_14.3: type = converted %Self.ref, %.loc7_14.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %self.param: @F.1.%Self (%Self) = param self, runtime_param0 // CHECK:STDOUT: %self: @F.1.%Self (%Self) = bind_name self, %self.param -// CHECK:STDOUT: %U.ref: type = name_ref U, @I.%U.loc6 [symbolic = %U (constants.%U)] +// CHECK:STDOUT: %U.ref: type = name_ref U, @I.%U.loc6_13.1 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %return: ref @F.1.%U (%U) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc7: @I.%.1 (%.5) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.6)] +// CHECK:STDOUT: %.loc7_26.1: @I.%.loc7_26.2 (%.5) = assoc_entity element0, %F.decl [symbolic = %.loc7_26.3 (constants.%.6)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc7 +// CHECK:STDOUT: .F = %.loc7_26.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%V.loc10: type) { -// CHECK:STDOUT: %V.1: type = bind_symbolic_name V, 0 [symbolic = %V.1 (constants.%V)] -// CHECK:STDOUT: %A.1: type = class_type @A, @A(%V.1) [symbolic = %A.1 (constants.%A.3)] -// CHECK:STDOUT: %I.type.1: type = interface_type @I, @I(%V.1) [symbolic = %I.type.1 (constants.%I.type.3)] +// CHECK:STDOUT: generic impl @impl(%V.loc10_14.1: type) { +// CHECK:STDOUT: %V.loc10_14.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc10_14.2 (constants.%V)] +// CHECK:STDOUT: %A.loc10_25.2: type = class_type @A, @A(%V.loc10_14.2) [symbolic = %A.loc10_25.2 (constants.%A.3)] +// CHECK:STDOUT: %I.type.loc10_33.2: type = interface_type @I, @I(%V.loc10_14.2) [symbolic = %I.type.loc10_33.2 (constants.%I.type.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%V.1) [symbolic = %F.type (constants.%F.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%V.loc10_14.2) [symbolic = %F.type (constants.%F.type.2)] // CHECK:STDOUT: %F: @impl.%F.type (%F.type.2) = struct_value () [symbolic = %F (constants.%F.2)] -// CHECK:STDOUT: %.1: = interface_witness (%F) [symbolic = %.1 (constants.%.9)] +// CHECK:STDOUT: %.loc10_37.2: = interface_witness (%F) [symbolic = %.loc10_37.2 (constants.%.9)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: %A.loc10 as %I.type.loc10 { +// CHECK:STDOUT: impl: %A.loc10_25.1 as %I.type.loc10_33.1 { // CHECK:STDOUT: %F.decl: @impl.%F.type (%F.type.2) = fn_decl @F.2 [symbolic = @impl.%F (constants.%F.2)] { // CHECK:STDOUT: %self.patt: @F.2.%A (%A.3) = binding_pattern self // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.%A.loc10 [symbolic = %A (constants.%A.3)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.%A.loc10_25.1 [symbolic = %A (constants.%A.3)] // CHECK:STDOUT: %self.param: @F.2.%A (%A.3) = param self, runtime_param0 // CHECK:STDOUT: %self: @F.2.%A (%A.3) = bind_name self, %self.param -// CHECK:STDOUT: %V.ref: type = name_ref V, @impl.%V.loc10 [symbolic = %V (constants.%V)] +// CHECK:STDOUT: %V.ref: type = name_ref V, @impl.%V.loc10_14.1 [symbolic = %V (constants.%V)] // CHECK:STDOUT: %return: ref @F.2.%V (%V) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10: = interface_witness (%F.decl) [symbolic = %.1 (constants.%.9)] +// CHECK:STDOUT: %.loc10_37.1: = interface_witness (%F.decl) [symbolic = %.loc10_37.2 (constants.%.9)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: witness = %.loc10 +// CHECK:STDOUT: witness = %.loc10_37.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @A(%T.loc2: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @A(%T.loc2_9.1: type) { +// CHECK:STDOUT: %T.loc2_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A: type = class_type @A, @A(%T.1) [symbolic = %A (constants.%A.2)] -// CHECK:STDOUT: %.1: type = unbound_element_type @A.%A (%A.2), @A.%T.1 (%T) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: type = struct_type {.n: @A.%T.1 (%T)} [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %.3: = complete_type_witness @A.%.2 (%.3) [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc2_9.2) [symbolic = %A (constants.%A.2)] +// CHECK:STDOUT: %.loc3_8.2: type = unbound_element_type @A.%A (%A.2), @A.%T.loc2_9.2 (%T) [symbolic = %.loc3_8.2 (constants.%.2)] +// CHECK:STDOUT: %.loc4_1.2: type = struct_type {.n: @A.%T.loc2_9.2 (%T)} [symbolic = %.loc4_1.2 (constants.%.3)] +// CHECK:STDOUT: %.loc4_1.3: = complete_type_witness @A.%.loc4_1.2 (%.3) [symbolic = %.loc4_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc2 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc3: @A.%.1 (%.2) = field_decl n, element0 [template] -// CHECK:STDOUT: %.loc4: = complete_type_witness %.3 [symbolic = %.3 (constants.%.4)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc2_9.1 [symbolic = %T.loc2_9.2 (constants.%T)] +// CHECK:STDOUT: %.loc3_8.1: @A.%.loc3_8.2 (%.2) = field_decl n, element0 [template] +// CHECK:STDOUT: %.loc4_1.1: = complete_type_witness %.3 [symbolic = %.loc4_1.3 (constants.%.4)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%A.2 -// CHECK:STDOUT: .n = %.loc3 +// CHECK:STDOUT: .n = %.loc3_8.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@I.%U.loc6: type, @I.%Self.1: @I.%I.type (%I.type.2)) { +// CHECK:STDOUT: generic fn @F.1(@I.%U.loc6_13.1: type, @I.%Self.1: @I.%I.type (%I.type.2)) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %I.type: type = interface_type @I, @I(%U) [symbolic = %I.type (constants.%I.type.2)] // CHECK:STDOUT: %Self: %I.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] @@ -252,48 +252,48 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: fn[%self: @F.1.%Self (%Self)]() -> @F.1.%U (%U); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(@impl.%V.loc10: type) { +// CHECK:STDOUT: generic fn @F.2(@impl.%V.loc10_14.1: type) { // CHECK:STDOUT: %V: type = bind_symbolic_name V, 0 [symbolic = %V (constants.%V)] // CHECK:STDOUT: %A: type = class_type @A, @A(%V) [symbolic = %A (constants.%A.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.1: type = unbound_element_type @F.2.%A (%A.3), @F.2.%V (%V) [symbolic = %.1 (constants.%.10)] +// CHECK:STDOUT: %.loc12_16.3: type = unbound_element_type @F.2.%A (%A.3), @F.2.%V (%V) [symbolic = %.loc12_16.3 (constants.%.10)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%self: @F.2.%A (%A.3)]() -> @F.2.%V (%V) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @F.2.%A (%A.3) = name_ref self, %self -// CHECK:STDOUT: %n.ref: @F.2.%.1 (%.10) = name_ref n, @A.%.loc3 [template = @A.%.loc3] +// CHECK:STDOUT: %n.ref: @F.2.%.loc12_16.3 (%.10) = name_ref n, @A.%.loc3_8.1 [template = @A.%.loc3_8.1] // CHECK:STDOUT: %.loc12_16.1: ref @F.2.%V (%V) = class_element_access %self.ref, element0 // CHECK:STDOUT: %.loc12_16.2: @F.2.%V (%V) = bind_value %.loc12_16.1 // CHECK:STDOUT: return %.loc12_16.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TestGeneric(%W.loc16: type) { -// CHECK:STDOUT: %W.1: type = bind_symbolic_name W, 0 [symbolic = %W.1 (constants.%W)] -// CHECK:STDOUT: %A.1: type = class_type @A, @A(%W.1) [symbolic = %A.1 (constants.%A.4)] +// CHECK:STDOUT: generic fn @TestGeneric(%W.loc16_16.1: type) { +// CHECK:STDOUT: %W.loc16_16.2: type = bind_symbolic_name W, 0 [symbolic = %W.loc16_16.2 (constants.%W)] +// CHECK:STDOUT: %A.loc16_30.2: type = class_type @A, @A(%W.loc16_16.2) [symbolic = %A.loc16_30.2 (constants.%A.4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type.1: type = interface_type @I, @I(%W.1) [symbolic = %I.type.1 (constants.%I.type.4)] -// CHECK:STDOUT: %F.type.1: type = fn_type @F.1, @I(%W.1) [symbolic = %F.type.1 (constants.%F.type.4)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @TestGeneric.%I.type.1 (%I.type.4), @TestGeneric.%F.type.1 (%F.type.4) [symbolic = %.1 (constants.%.18)] -// CHECK:STDOUT: %.2: @TestGeneric.%.1 (%.18) = assoc_entity element0, @I.%F.decl [symbolic = %.2 (constants.%.19)] -// CHECK:STDOUT: %F.type.2: type = fn_type @F.2, @impl(%W.1) [symbolic = %F.type.2 (constants.%F.type.5)] -// CHECK:STDOUT: %F: @TestGeneric.%F.type.2 (%F.type.5) = struct_value () [symbolic = %F (constants.%F.5)] +// CHECK:STDOUT: %I.type.loc17_14.2: type = interface_type @I, @I(%W.loc16_16.2) [symbolic = %I.type.loc17_14.2 (constants.%I.type.4)] +// CHECK:STDOUT: %F.type.loc17_17: type = fn_type @F.1, @I(%W.loc16_16.2) [symbolic = %F.type.loc17_17 (constants.%F.type.4)] +// CHECK:STDOUT: %.loc17_17.2: type = assoc_entity_type @TestGeneric.%I.type.loc17_14.2 (%I.type.4), @TestGeneric.%F.type.loc17_17 (%F.type.4) [symbolic = %.loc17_17.2 (constants.%.18)] +// CHECK:STDOUT: %.loc17_17.3: @TestGeneric.%.loc17_17.2 (%.18) = assoc_entity element0, @I.%F.decl [symbolic = %.loc17_17.3 (constants.%.19)] +// CHECK:STDOUT: %F.type.loc17_11: type = fn_type @F.2, @impl(%W.loc16_16.2) [symbolic = %F.type.loc17_11 (constants.%F.type.5)] +// CHECK:STDOUT: %F: @TestGeneric.%F.type.loc17_11 (%F.type.5) = struct_value () [symbolic = %F (constants.%F.5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn[%W.loc16: type](%a: @TestGeneric.%A.1 (%A.4)) -> @TestGeneric.%W.1 (%W) { +// CHECK:STDOUT: fn[%W.loc16_16.1: type](%a: @TestGeneric.%A.loc16_30.2 (%A.4)) -> @TestGeneric.%W.loc16_16.2 (%W) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @TestGeneric.%A.1 (%A.4) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @TestGeneric.%A.loc16_30.2 (%A.4) = name_ref a, %a // CHECK:STDOUT: %I.ref: %I.type.1 = name_ref I, file.%I.decl [template = constants.%I] -// CHECK:STDOUT: %W.ref.loc17: type = name_ref W, %W.loc16 [symbolic = %W.1 (constants.%W)] -// CHECK:STDOUT: %I.type.loc17: type = interface_type @I, @I(constants.%W) [symbolic = %I.type.1 (constants.%I.type.4)] -// CHECK:STDOUT: %.loc17_17: @TestGeneric.%.1 (%.18) = specific_constant @I.%.loc7, @I(constants.%W) [symbolic = %.2 (constants.%.19)] -// CHECK:STDOUT: %F.ref: @TestGeneric.%.1 (%.18) = name_ref F, %.loc17_17 [symbolic = %.2 (constants.%.19)] -// CHECK:STDOUT: %.loc17_11.1: @TestGeneric.%F.type.1 (%F.type.4) = interface_witness_access constants.%.20, element0 [symbolic = %F (constants.%F.5)] +// CHECK:STDOUT: %W.ref.loc17: type = name_ref W, %W.loc16_16.1 [symbolic = %W.loc16_16.2 (constants.%W)] +// CHECK:STDOUT: %I.type.loc17_14.1: type = interface_type @I, @I(constants.%W) [symbolic = %I.type.loc17_14.2 (constants.%I.type.4)] +// CHECK:STDOUT: %.loc17_17.1: @TestGeneric.%.loc17_17.2 (%.18) = specific_constant @I.%.loc7_26.1, @I(constants.%W) [symbolic = %.loc17_17.3 (constants.%.19)] +// CHECK:STDOUT: %F.ref: @TestGeneric.%.loc17_17.2 (%.18) = name_ref F, %.loc17_17.1 [symbolic = %.loc17_17.3 (constants.%.19)] +// CHECK:STDOUT: %.loc17_11.1: @TestGeneric.%F.type.loc17_17 (%F.type.4) = interface_witness_access constants.%.20, element0 [symbolic = %F (constants.%F.5)] // CHECK:STDOUT: %.loc17_11.2: = bound_method %a.ref, %.loc17_11.1 -// CHECK:STDOUT: %F.call: init @TestGeneric.%W.1 (%W) = call %.loc17_11.2(%a.ref) -// CHECK:STDOUT: %.loc17_22.1: @TestGeneric.%W.1 (%W) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc17_22.2: @TestGeneric.%W.1 (%W) = converted %F.call, %.loc17_22.1 +// CHECK:STDOUT: %F.call: init @TestGeneric.%W.loc16_16.2 (%W) = call %.loc17_11.2(%a.ref) +// CHECK:STDOUT: %.loc17_22.1: @TestGeneric.%W.loc16_16.2 (%W) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc17_22.2: @TestGeneric.%W.loc16_16.2 (%W) = converted %F.call, %.loc17_22.1 // CHECK:STDOUT: return %.loc17_22.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -305,7 +305,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %.loc21_16: %.21 = struct_literal () // CHECK:STDOUT: %.loc21_14: type = converted %.loc21_16, constants.%.21 [template = constants.%.21] // CHECK:STDOUT: %I.type: type = interface_type @I, @I(constants.%.21) [template = constants.%I.type.5] -// CHECK:STDOUT: %.loc21_18: %.27 = specific_constant @I.%.loc7, @I(constants.%.21) [template = constants.%.28] +// CHECK:STDOUT: %.loc21_18: %.27 = specific_constant @I.%.loc7_26.1, @I(constants.%.21) [template = constants.%.28] // CHECK:STDOUT: %F.ref: %.27 = name_ref F, %.loc21_18 [template = constants.%.28] // CHECK:STDOUT: %.loc21_11.1: %F.type.6 = interface_witness_access constants.%.29, element0 [template = constants.%F.7] // CHECK:STDOUT: %.loc21_11.2: = bound_method %a.ref, %.loc21_11.1 @@ -318,19 +318,19 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc2_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(@A.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @A(@A.%T.loc2_9.2) { +// CHECK:STDOUT: %T.loc2_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc6_13.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@F.1.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc6_13.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%U, constants.%Self) { @@ -339,53 +339,53 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@I.%U.1) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: specific @I(@I.%U.loc6_13.2) { +// CHECK:STDOUT: %U.loc6_13.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%V) { -// CHECK:STDOUT: %T.1 => constants.%V +// CHECK:STDOUT: %T.loc2_9.2 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A => constants.%A.3 -// CHECK:STDOUT: %.1 => constants.%.10 -// CHECK:STDOUT: %.2 => constants.%.11 -// CHECK:STDOUT: %.3 => constants.%.12 +// CHECK:STDOUT: %.loc3_8.2 => constants.%.10 +// CHECK:STDOUT: %.loc4_1.2 => constants.%.11 +// CHECK:STDOUT: %.loc4_1.3 => constants.%.12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%V) { -// CHECK:STDOUT: %U.1 => constants.%V +// CHECK:STDOUT: %U.loc6_13.2 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.3 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.3 // CHECK:STDOUT: %F => constants.%F.3 -// CHECK:STDOUT: %.1 => constants.%.7 -// CHECK:STDOUT: %.2 => constants.%.8 +// CHECK:STDOUT: %.loc7_26.2 => constants.%.7 +// CHECK:STDOUT: %.loc7_26.3 => constants.%.8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(@impl.%V.1) { -// CHECK:STDOUT: %T.1 => constants.%V +// CHECK:STDOUT: specific @A(@impl.%V.loc10_14.2) { +// CHECK:STDOUT: %T.loc2_9.2 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@impl.%V.1) { -// CHECK:STDOUT: %U.1 => constants.%V +// CHECK:STDOUT: specific @I(@impl.%V.loc10_14.2) { +// CHECK:STDOUT: %U.loc6_13.2 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%V) { -// CHECK:STDOUT: %V.1 => constants.%V -// CHECK:STDOUT: %A.1 => constants.%A.3 -// CHECK:STDOUT: %I.type.1 => constants.%I.type.3 +// CHECK:STDOUT: %V.loc10_14.2 => constants.%V +// CHECK:STDOUT: %A.loc10_25.2 => constants.%A.3 +// CHECK:STDOUT: %I.type.loc10_33.2 => constants.%I.type.3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.2 // CHECK:STDOUT: %F => constants.%F.2 -// CHECK:STDOUT: %.1 => constants.%.9 +// CHECK:STDOUT: %.loc10_37.2 => constants.%.9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(@F.2.%V) { -// CHECK:STDOUT: %T.1 => constants.%V +// CHECK:STDOUT: %T.loc2_9.2 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%V) { @@ -399,52 +399,52 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %Self => constants.%A.3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@impl.%V.1) { -// CHECK:STDOUT: %V.1 => constants.%V -// CHECK:STDOUT: %A.1 => constants.%A.3 -// CHECK:STDOUT: %I.type.1 => constants.%I.type.3 +// CHECK:STDOUT: specific @impl(@impl.%V.loc10_14.2) { +// CHECK:STDOUT: %V.loc10_14.2 => constants.%V +// CHECK:STDOUT: %A.loc10_25.2 => constants.%A.3 +// CHECK:STDOUT: %I.type.loc10_33.2 => constants.%I.type.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { -// CHECK:STDOUT: %T.1 => constants.%W +// CHECK:STDOUT: %T.loc2_9.2 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A => constants.%A.4 -// CHECK:STDOUT: %.1 => constants.%.14 -// CHECK:STDOUT: %.2 => constants.%.15 -// CHECK:STDOUT: %.3 => constants.%.16 +// CHECK:STDOUT: %.loc3_8.2 => constants.%.14 +// CHECK:STDOUT: %.loc4_1.2 => constants.%.15 +// CHECK:STDOUT: %.loc4_1.3 => constants.%.16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(@TestGeneric.%W.1) { -// CHECK:STDOUT: %T.1 => constants.%W +// CHECK:STDOUT: specific @A(@TestGeneric.%W.loc16_16.2) { +// CHECK:STDOUT: %T.loc2_9.2 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TestGeneric(constants.%W) { -// CHECK:STDOUT: %W.1 => constants.%W -// CHECK:STDOUT: %A.1 => constants.%A.4 +// CHECK:STDOUT: %W.loc16_16.2 => constants.%W +// CHECK:STDOUT: %A.loc16_30.2 => constants.%A.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%W) { -// CHECK:STDOUT: %U.1 => constants.%W +// CHECK:STDOUT: %U.loc6_13.2 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.4 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.4 // CHECK:STDOUT: %F => constants.%F.4 -// CHECK:STDOUT: %.1 => constants.%.18 -// CHECK:STDOUT: %.2 => constants.%.19 +// CHECK:STDOUT: %.loc7_26.2 => constants.%.18 +// CHECK:STDOUT: %.loc7_26.3 => constants.%.19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%W) { -// CHECK:STDOUT: %V.1 => constants.%W -// CHECK:STDOUT: %A.1 => constants.%A.4 -// CHECK:STDOUT: %I.type.1 => constants.%I.type.4 +// CHECK:STDOUT: %V.loc10_14.2 => constants.%W +// CHECK:STDOUT: %A.loc10_25.2 => constants.%A.4 +// CHECK:STDOUT: %I.type.loc10_33.2 => constants.%I.type.4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.5 // CHECK:STDOUT: %F => constants.%F.5 -// CHECK:STDOUT: %.1 => constants.%.20 +// CHECK:STDOUT: %.loc10_37.2 => constants.%.20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%W) { @@ -452,47 +452,47 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %A => constants.%A.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@TestGeneric.%W.1) { -// CHECK:STDOUT: %U.1 => constants.%W +// CHECK:STDOUT: specific @I(@TestGeneric.%W.loc16_16.2) { +// CHECK:STDOUT: %U.loc6_13.2 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @impl(@TestGeneric.%W.1) { -// CHECK:STDOUT: %V.1 => constants.%W -// CHECK:STDOUT: %A.1 => constants.%A.4 -// CHECK:STDOUT: %I.type.1 => constants.%I.type.4 +// CHECK:STDOUT: specific @impl(@TestGeneric.%W.loc16_16.2) { +// CHECK:STDOUT: %V.loc10_14.2 => constants.%W +// CHECK:STDOUT: %A.loc10_25.2 => constants.%A.4 +// CHECK:STDOUT: %I.type.loc10_33.2 => constants.%I.type.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%.21) { -// CHECK:STDOUT: %T.1 => constants.%.21 +// CHECK:STDOUT: %T.loc2_9.2 => constants.%.21 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A => constants.%A.5 -// CHECK:STDOUT: %.1 => constants.%.22 -// CHECK:STDOUT: %.2 => constants.%.23 -// CHECK:STDOUT: %.3 => constants.%.24 +// CHECK:STDOUT: %.loc3_8.2 => constants.%.22 +// CHECK:STDOUT: %.loc4_1.2 => constants.%.23 +// CHECK:STDOUT: %.loc4_1.3 => constants.%.24 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%.21) { -// CHECK:STDOUT: %U.1 => constants.%.21 +// CHECK:STDOUT: %U.loc6_13.2 => constants.%.21 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.5 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type.6 // CHECK:STDOUT: %F => constants.%F.6 -// CHECK:STDOUT: %.1 => constants.%.27 -// CHECK:STDOUT: %.2 => constants.%.28 +// CHECK:STDOUT: %.loc7_26.2 => constants.%.27 +// CHECK:STDOUT: %.loc7_26.3 => constants.%.28 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%.21) { -// CHECK:STDOUT: %V.1 => constants.%.21 -// CHECK:STDOUT: %A.1 => constants.%A.5 -// CHECK:STDOUT: %I.type.1 => constants.%I.type.5 +// CHECK:STDOUT: %V.loc10_14.2 => constants.%.21 +// CHECK:STDOUT: %A.loc10_25.2 => constants.%A.5 +// CHECK:STDOUT: %I.type.loc10_33.2 => constants.%I.type.5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.7 // CHECK:STDOUT: %F => constants.%F.7 -// CHECK:STDOUT: %.1 => constants.%.29 +// CHECK:STDOUT: %.loc10_37.2 => constants.%.29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%.21) { diff --git a/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon b/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon index a26dbb0104c1..06cb6dc9c119 100644 --- a/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon +++ b/toolchain/check/testdata/impl/no_prelude/generic_redeclaration.carbon @@ -102,10 +102,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [template = constants.%I.type] // CHECK:STDOUT: %T.param: %I.type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: %I.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc11 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %.loc11_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %.loc11_21.2: type = converted %T.ref, %.loc11_21.1 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc11_14.1: %I.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_14.2 (constants.%T.1)] +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc11_14.1 [symbolic = %T.loc11_14.2 (constants.%T.1)] +// CHECK:STDOUT: %.loc11_21.1: type = facet_type_access %T.ref [symbolic = %T.loc11_14.2 (constants.%T.1)] +// CHECK:STDOUT: %.loc11_21.2: type = converted %T.ref, %.loc11_21.1 [symbolic = %T.loc11_14.2 (constants.%T.1)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.2 [template] { @@ -113,10 +113,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [template = constants.%J.type] // CHECK:STDOUT: %T.param: %J.type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: %J.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc12 [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %.loc12_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %.loc12_21.2: type = converted %T.ref, %.loc12_21.1 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc12_14.1: %J.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc12_14.2 (constants.%T.2)] +// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc12_14.1 [symbolic = %T.loc12_14.2 (constants.%T.2)] +// CHECK:STDOUT: %.loc12_21.1: type = facet_type_access %T.ref [symbolic = %T.loc12_14.2 (constants.%T.2)] +// CHECK:STDOUT: %.loc12_21.2: type = converted %T.ref, %.loc12_21.1 [symbolic = %T.loc12_14.2 (constants.%T.2)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.3 [template] { @@ -124,10 +124,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %K.ref: type = name_ref K, file.%K.decl [template = constants.%K.type] // CHECK:STDOUT: %T.param: %K.type = param T, runtime_param -// CHECK:STDOUT: %T.loc13: %K.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.3)] -// CHECK:STDOUT: %T.ref: %K.type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T.3)] -// CHECK:STDOUT: %.loc13_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.3)] -// CHECK:STDOUT: %.loc13_21.2: type = converted %T.ref, %.loc13_21.1 [symbolic = %T.1 (constants.%T.3)] +// CHECK:STDOUT: %T.loc13_14.1: %K.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_14.2 (constants.%T.3)] +// CHECK:STDOUT: %T.ref: %K.type = name_ref T, %T.loc13_14.1 [symbolic = %T.loc13_14.2 (constants.%T.3)] +// CHECK:STDOUT: %.loc13_21.1: type = facet_type_access %T.ref [symbolic = %T.loc13_14.2 (constants.%T.3)] +// CHECK:STDOUT: %.loc13_21.2: type = converted %T.ref, %.loc13_21.1 [symbolic = %T.loc13_14.2 (constants.%T.3)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.4 [template] { @@ -135,10 +135,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %L.ref: type = name_ref L, file.%L.decl [template = constants.%L.type] // CHECK:STDOUT: %T.param: %L.type = param T, runtime_param -// CHECK:STDOUT: %T.loc14: %L.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.4)] -// CHECK:STDOUT: %T.ref: %L.type = name_ref T, %T.loc14 [symbolic = %T.1 (constants.%T.4)] -// CHECK:STDOUT: %.loc14_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.4)] -// CHECK:STDOUT: %.loc14_21.2: type = converted %T.ref, %.loc14_21.1 [symbolic = %T.1 (constants.%T.4)] +// CHECK:STDOUT: %T.loc14_14.1: %L.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc14_14.2 (constants.%T.4)] +// CHECK:STDOUT: %T.ref: %L.type = name_ref T, %T.loc14_14.1 [symbolic = %T.loc14_14.2 (constants.%T.4)] +// CHECK:STDOUT: %.loc14_21.1: type = facet_type_access %T.ref [symbolic = %T.loc14_14.2 (constants.%T.4)] +// CHECK:STDOUT: %.loc14_21.2: type = converted %T.ref, %.loc14_21.1 [symbolic = %T.loc14_14.2 (constants.%T.4)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.5 [template] { @@ -146,10 +146,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [template = constants.%I.type] // CHECK:STDOUT: %T.param: %I.type = param T, runtime_param -// CHECK:STDOUT: %T.loc18: %I.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc18 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %.loc18_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %.loc18_21.2: type = converted %T.ref, %.loc18_21.1 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc18_14.1: %I.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc18_14.2 (constants.%T.1)] +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc18_14.1 [symbolic = %T.loc18_14.2 (constants.%T.1)] +// CHECK:STDOUT: %.loc18_21.1: type = facet_type_access %T.ref [symbolic = %T.loc18_14.2 (constants.%T.1)] +// CHECK:STDOUT: %.loc18_21.2: type = converted %T.ref, %.loc18_21.1 [symbolic = %T.loc18_14.2 (constants.%T.1)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.6 [template] { @@ -157,10 +157,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [template = constants.%J.type] // CHECK:STDOUT: %T.param: %J.type = param T, runtime_param -// CHECK:STDOUT: %T.loc19: %J.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc19 [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %.loc19_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.2)] -// CHECK:STDOUT: %.loc19_21.2: type = converted %T.ref, %.loc19_21.1 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc19_14.1: %J.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_14.2 (constants.%T.2)] +// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc19_14.1 [symbolic = %T.loc19_14.2 (constants.%T.2)] +// CHECK:STDOUT: %.loc19_21.1: type = facet_type_access %T.ref [symbolic = %T.loc19_14.2 (constants.%T.2)] +// CHECK:STDOUT: %.loc19_21.2: type = converted %T.ref, %.loc19_21.1 [symbolic = %T.loc19_14.2 (constants.%T.2)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.7 [template] { @@ -168,10 +168,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %K.ref: type = name_ref K, file.%K.decl [template = constants.%K.type] // CHECK:STDOUT: %T.param: %K.type = param T, runtime_param -// CHECK:STDOUT: %T.loc20: %K.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.3)] -// CHECK:STDOUT: %T.ref: %K.type = name_ref T, %T.loc20 [symbolic = %T.1 (constants.%T.3)] -// CHECK:STDOUT: %.loc20_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.3)] -// CHECK:STDOUT: %.loc20_21.2: type = converted %T.ref, %.loc20_21.1 [symbolic = %T.1 (constants.%T.3)] +// CHECK:STDOUT: %T.loc20_14.1: %K.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc20_14.2 (constants.%T.3)] +// CHECK:STDOUT: %T.ref: %K.type = name_ref T, %T.loc20_14.1 [symbolic = %T.loc20_14.2 (constants.%T.3)] +// CHECK:STDOUT: %.loc20_21.1: type = facet_type_access %T.ref [symbolic = %T.loc20_14.2 (constants.%T.3)] +// CHECK:STDOUT: %.loc20_21.2: type = converted %T.ref, %.loc20_21.1 [symbolic = %T.loc20_14.2 (constants.%T.3)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.8 [template] { @@ -179,10 +179,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %L.ref: type = name_ref L, file.%L.decl [template = constants.%L.type] // CHECK:STDOUT: %T.param: %L.type = param T, runtime_param -// CHECK:STDOUT: %T.loc21: %L.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.4)] -// CHECK:STDOUT: %T.ref: %L.type = name_ref T, %T.loc21 [symbolic = %T.1 (constants.%T.4)] -// CHECK:STDOUT: %.loc21_21.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T.4)] -// CHECK:STDOUT: %.loc21_21.2: type = converted %T.ref, %.loc21_21.1 [symbolic = %T.1 (constants.%T.4)] +// CHECK:STDOUT: %T.loc21_14.1: %L.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_14.2 (constants.%T.4)] +// CHECK:STDOUT: %T.ref: %L.type = name_ref T, %T.loc21_14.1 [symbolic = %T.loc21_14.2 (constants.%T.4)] +// CHECK:STDOUT: %.loc21_21.1: type = facet_type_access %T.ref [symbolic = %T.loc21_14.2 (constants.%T.4)] +// CHECK:STDOUT: %.loc21_21.2: type = converted %T.ref, %.loc21_21.1 [symbolic = %T.loc21_14.2 (constants.%T.4)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -227,32 +227,32 @@ impl (C, C).0 as I {} // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.1(%T.loc11: %I.type) { -// CHECK:STDOUT: %T.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic impl @impl.1(%T.loc11_14.1: %I.type) { +// CHECK:STDOUT: %T.loc11_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc11_21.2 as %Interface.ref; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.2(%T.loc12: %J.type) { -// CHECK:STDOUT: %T.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic impl @impl.2(%T.loc12_14.1: %J.type) { +// CHECK:STDOUT: %T.loc12_14.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T.2)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc12_21.2 as %Interface.ref; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.3(%T.loc13: %K.type) { -// CHECK:STDOUT: %T.1: %K.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.3)] +// CHECK:STDOUT: generic impl @impl.3(%T.loc13_14.1: %K.type) { +// CHECK:STDOUT: %T.loc13_14.2: %K.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_14.2 (constants.%T.3)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc13_21.2 as %Interface.ref; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.4(%T.loc14: %L.type) { -// CHECK:STDOUT: %T.1: %L.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.4)] +// CHECK:STDOUT: generic impl @impl.4(%T.loc14_14.1: %L.type) { +// CHECK:STDOUT: %T.loc14_14.2: %L.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T.4)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc14_21.2 as %Interface.ref; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.5(%T.loc18: %I.type) { -// CHECK:STDOUT: %T.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic impl @impl.5(%T.loc18_14.1: %I.type) { +// CHECK:STDOUT: %T.loc18_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_14.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -264,8 +264,8 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.6(%T.loc19: %J.type) { -// CHECK:STDOUT: %T.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic impl @impl.6(%T.loc19_14.1: %J.type) { +// CHECK:STDOUT: %T.loc19_14.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_14.2 (constants.%T.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -277,8 +277,8 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.7(%T.loc20: %K.type) { -// CHECK:STDOUT: %T.1: %K.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.3)] +// CHECK:STDOUT: generic impl @impl.7(%T.loc20_14.1: %K.type) { +// CHECK:STDOUT: %T.loc20_14.2: %K.type = bind_symbolic_name T, 0 [symbolic = %T.loc20_14.2 (constants.%T.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -290,8 +290,8 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.8(%T.loc21: %L.type) { -// CHECK:STDOUT: %T.1: %L.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.4)] +// CHECK:STDOUT: generic impl @impl.8(%T.loc21_14.1: %L.type) { +// CHECK:STDOUT: %T.loc21_14.2: %L.type = bind_symbolic_name T, 0 [symbolic = %T.loc21_14.2 (constants.%T.4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -304,35 +304,35 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.1(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc11_14.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.2(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc12_14.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.3(constants.%T.3) { -// CHECK:STDOUT: %T.1 => constants.%T.3 +// CHECK:STDOUT: %T.loc13_14.2 => constants.%T.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.4(constants.%T.4) { -// CHECK:STDOUT: %T.1 => constants.%T.4 +// CHECK:STDOUT: %T.loc14_14.2 => constants.%T.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.5(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc18_14.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.6(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc19_14.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.7(constants.%T.3) { -// CHECK:STDOUT: %T.1 => constants.%T.3 +// CHECK:STDOUT: %T.loc20_14.2 => constants.%T.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.8(constants.%T.4) { -// CHECK:STDOUT: %T.1 => constants.%T.4 +// CHECK:STDOUT: %T.loc21_14.2 => constants.%T.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_same_self_and_interface_redefined.carbon @@ -359,10 +359,10 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } { // CHECK:STDOUT: %I.ref.loc7: type = name_ref I, file.%I.decl [template = constants.%I.type] // CHECK:STDOUT: %T.param.loc7: %I.type = param T, runtime_param -// CHECK:STDOUT: %T.loc7: %I.type = bind_symbolic_name T, 0, %T.param.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref.loc7: %I.type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc7_21.1: type = facet_type_access %T.ref.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc7_21.2: type = converted %T.ref.loc7, %.loc7_21.1 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_14.1: %I.type = bind_symbolic_name T, 0, %T.param.loc7 [symbolic = %T.loc7_14.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc7: %I.type = name_ref T, %T.loc7_14.1 [symbolic = %T.loc7_14.2 (constants.%T)] +// CHECK:STDOUT: %.loc7_21.1: type = facet_type_access %T.ref.loc7 [symbolic = %T.loc7_14.2 (constants.%T)] +// CHECK:STDOUT: %.loc7_21.2: type = converted %T.ref.loc7, %.loc7_21.1 [symbolic = %T.loc7_14.2 (constants.%T)] // CHECK:STDOUT: %J.ref.loc7: type = name_ref J, file.%J.decl [template = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl [template] { @@ -394,8 +394,8 @@ impl (C, C).0 as I {} // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl(%T.loc7: %I.type) { -// CHECK:STDOUT: %T.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic impl @impl(%T.loc7_14.1: %I.type) { +// CHECK:STDOUT: %T.loc7_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_14.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -406,7 +406,7 @@ impl (C, C).0 as I {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc7_14.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- same_type_different_spelling.carbon diff --git a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon index 8e46d4c4a928..1b29cf865279 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon @@ -64,36 +64,36 @@ impl forall [T:! type] C as I(T*) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc5: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc5_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.1 [template] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc7: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_14.2 (constants.%T)] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %I.ref: %I.type.1 = name_ref I, file.%I.decl [template = constants.%I] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %I.type.loc7: type = interface_type @I, @I(constants.%T) [symbolic = %I.type.1 (constants.%I.type.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_14.1 [symbolic = %T.loc7_14.2 (constants.%T)] +// CHECK:STDOUT: %I.type.loc7_30.1: type = interface_type @I, @I(constants.%T) [symbolic = %I.type.loc7_30.2 (constants.%I.type.2)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl.2 [template] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_14.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_14.2 (constants.%T)] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %I.ref: %I.type.1 = name_ref I, file.%I.decl [template = constants.%I] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc8_32: type = ptr_type %T [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %I.type.loc8: type = interface_type @I, @I(constants.%.4) [symbolic = %I.type.1 (constants.%I.type.3)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_14.1 [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %.loc8_32.1: type = ptr_type %T [symbolic = %.loc8_32.2 (constants.%.4)] +// CHECK:STDOUT: %I.type.loc8_30.1: type = interface_type @I, @I(constants.%.4) [symbolic = %I.type.loc8_30.2 (constants.%I.type.3)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%T.loc5: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @I(%T.loc5_13.1: type) { +// CHECK:STDOUT: %T.loc5_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.1) [symbolic = %I.type (constants.%I.type.2)] +// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.loc5_13.2) [symbolic = %I.type (constants.%I.type.2)] // CHECK:STDOUT: %Self.2: %I.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -105,21 +105,21 @@ impl forall [T:! type] C as I(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.1(%T.loc7: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %I.type.1: type = interface_type @I, @I(%T.1) [symbolic = %I.type.1 (constants.%I.type.2)] +// CHECK:STDOUT: generic impl @impl.1(%T.loc7_14.1: type) { +// CHECK:STDOUT: %T.loc7_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_14.2 (constants.%T)] +// CHECK:STDOUT: %I.type.loc7_30.2: type = interface_type @I, @I(%T.loc7_14.2) [symbolic = %I.type.loc7_30.2 (constants.%I.type.2)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: %C.ref as %I.type.loc7; +// CHECK:STDOUT: impl: %C.ref as %I.type.loc7_30.1; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @impl.2(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.1: type = ptr_type @impl.2.%T.1 (%T) [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %I.type.1: type = interface_type @I, @I(%.1) [symbolic = %I.type.1 (constants.%I.type.3)] +// CHECK:STDOUT: generic impl @impl.2(%T.loc8_14.1: type) { +// CHECK:STDOUT: %T.loc8_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_14.2 (constants.%T)] +// CHECK:STDOUT: %.loc8_32.2: type = ptr_type @impl.2.%T.loc8_14.2 (%T) [symbolic = %.loc8_32.2 (constants.%.4)] +// CHECK:STDOUT: %I.type.loc8_30.2: type = interface_type @I, @I(%.loc8_32.2) [symbolic = %I.type.loc8_30.2 (constants.%I.type.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: impl: %C.ref as %I.type.loc8 { +// CHECK:STDOUT: impl: %C.ref as %I.type.loc8_30.1 { // CHECK:STDOUT: %.loc8_35: = interface_witness () [template = constants.%.5] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -135,38 +135,38 @@ impl forall [T:! type] C as I(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc5_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@I.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @I(@I.%T.loc5_13.2) { +// CHECK:STDOUT: %T.loc5_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@impl.1.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @I(@impl.1.%T.loc7_14.2) { +// CHECK:STDOUT: %T.loc5_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.1(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %I.type.1 => constants.%I.type.2 +// CHECK:STDOUT: %T.loc7_14.2 => constants.%T +// CHECK:STDOUT: %I.type.loc7_30.2 => constants.%I.type.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%.4) { -// CHECK:STDOUT: %T.1 => constants.%.4 +// CHECK:STDOUT: %T.loc5_13.2 => constants.%.4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.3 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@impl.2.%.1) { -// CHECK:STDOUT: %T.1 => constants.%.4 +// CHECK:STDOUT: specific @I(@impl.2.%.loc8_32.2) { +// CHECK:STDOUT: %T.loc5_13.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @impl.2(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T -// CHECK:STDOUT: %.1 => constants.%.4 -// CHECK:STDOUT: %I.type.1 => constants.%I.type.3 +// CHECK:STDOUT: %T.loc8_14.2 => constants.%T +// CHECK:STDOUT: %.loc8_32.2 => constants.%.4 +// CHECK:STDOUT: %I.type.loc8_30.2 => constants.%I.type.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_generic.impl.carbon diff --git a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon index 628dd104c038..7aedda26a511 100644 --- a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon +++ b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon @@ -121,7 +121,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_18.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [template = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} @@ -141,25 +141,25 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Action(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @Action(%T.loc4_18.1: type) { +// CHECK:STDOUT: %T.loc4_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = interface_type @Action, @Action(%T.1) [symbolic = %Action.type (constants.%Action.type.2)] +// CHECK:STDOUT: %Action.type: type = interface_type @Action, @Action(%T.loc4_18.2) [symbolic = %Action.type (constants.%Action.type.2)] // CHECK:STDOUT: %Self.2: %Action.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op.1, @Action(%T.1) [symbolic = %Op.type (constants.%Op.type.1)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.1, @Action(%T.loc4_18.2) [symbolic = %Op.type (constants.%Op.type.1)] // CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.1) = struct_value () [symbolic = %Op (constants.%Op.1)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @Action.%Action.type (%Action.type.2), @Action.%Op.type (%Op.type.1) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @Action.%.1 (%.2) = assoc_entity element0, %Op.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_10.2: type = assoc_entity_type @Action.%Action.type (%Action.type.2), @Action.%Op.type (%Op.type.1) [symbolic = %.loc5_10.2 (constants.%.2)] +// CHECK:STDOUT: %.loc5_10.3: @Action.%.loc5_10.2 (%.2) = assoc_entity element0, %Op.decl [symbolic = %.loc5_10.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @Action.%Action.type (%Action.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %Op.decl: @Action.%Op.type (%Op.type.1) = fn_decl @Op.1 [symbolic = @Action.%Op (constants.%Op.1)] {} {} -// CHECK:STDOUT: %.loc5: @Action.%.1 (%.2) = assoc_entity element0, %Op.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_10.1: @Action.%.loc5_10.2 (%.2) = assoc_entity element0, %Op.decl [symbolic = %.loc5_10.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .Op = %.loc5 +// CHECK:STDOUT: .Op = %.loc5_10.1 // CHECK:STDOUT: witness = (%Op.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -194,7 +194,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.1(@Action.%T.loc4: type, @Action.%Self.1: @Action.%Action.type (%Action.type.2)) { +// CHECK:STDOUT: generic fn @Op.1(@Action.%T.loc4_18.1: type, @Action.%Self.1: @Action.%Action.type (%Action.type.2)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -210,7 +210,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %Action.ref: %Action.type.1 = name_ref Action, file.%Action.decl [template = constants.%Action] // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %Action.type: type = interface_type @Action, @Action(constants.%B) [template = constants.%Action.type.3] -// CHECK:STDOUT: %.loc16_26: %.6 = specific_constant @Action.%.loc5, @Action(constants.%B) [template = constants.%.7] +// CHECK:STDOUT: %.loc16_26: %.6 = specific_constant @Action.%.loc5_10.1, @Action(constants.%B) [template = constants.%.7] // CHECK:STDOUT: %Op.ref: %.6 = name_ref Op, %.loc16_26 [template = constants.%.7] // CHECK:STDOUT: %.loc16_15: %Op.type.3 = interface_witness_access constants.%.8, element0 [template = constants.%Op.2] // CHECK:STDOUT: %Op.call: init %.1 = call %.loc16_15() @@ -218,25 +218,25 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_18.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.1(constants.%T, constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Action(@Action.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Action(@Action.%T.loc4_18.2) { +// CHECK:STDOUT: %T.loc4_18.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { -// CHECK:STDOUT: %T.1 => constants.%B +// CHECK:STDOUT: %T.loc4_18.2 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Action.type => constants.%Action.type.3 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %Op.type => constants.%Op.type.3 // CHECK:STDOUT: %Op => constants.%Op.3 -// CHECK:STDOUT: %.1 => constants.%.6 -// CHECK:STDOUT: %.2 => constants.%.7 +// CHECK:STDOUT: %.loc5_10.2 => constants.%.6 +// CHECK:STDOUT: %.loc5_10.3 => constants.%.7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.1(constants.%B, constants.%A) {} @@ -593,7 +593,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_19.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [template = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} @@ -605,28 +605,28 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Factory(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @Factory(%T.loc4_19.1: type) { +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = interface_type @Factory, @Factory(%T.1) [symbolic = %Factory.type (constants.%Factory.type.2)] +// CHECK:STDOUT: %Factory.type: type = interface_type @Factory, @Factory(%T.loc4_19.2) [symbolic = %Factory.type (constants.%Factory.type.2)] // CHECK:STDOUT: %Self.2: %Factory.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Make.type: type = fn_type @Make.1, @Factory(%T.1) [symbolic = %Make.type (constants.%Make.type.1)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make.1, @Factory(%T.loc4_19.2) [symbolic = %Make.type (constants.%Make.type.1)] // CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.1) = struct_value () [symbolic = %Make (constants.%Make.1)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.2), @Factory.%Make.type (%Make.type.1) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @Factory.%.1 (%.2) = assoc_entity element0, %Make.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_17.2: type = assoc_entity_type @Factory.%Factory.type (%Factory.type.2), @Factory.%Make.type (%Make.type.1) [symbolic = %.loc5_17.2 (constants.%.2)] +// CHECK:STDOUT: %.loc5_17.3: @Factory.%.loc5_17.2 (%.2) = assoc_entity element0, %Make.decl [symbolic = %.loc5_17.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @Factory.%Factory.type (%Factory.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %Make.decl: @Factory.%Make.type (%Make.type.1) = fn_decl @Make.1 [symbolic = @Factory.%Make (constants.%Make.1)] {} { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.1 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return: ref @Make.1.%T (%T) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc5: @Factory.%.1 (%.2) = assoc_entity element0, %Make.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_17.1: @Factory.%.loc5_17.2 (%.2) = assoc_entity element0, %Make.decl [symbolic = %.loc5_17.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .Make = %.loc5 +// CHECK:STDOUT: .Make = %.loc5_17.1 // CHECK:STDOUT: witness = (%Make.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -657,7 +657,7 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make.1(@Factory.%T.loc4: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.2)) { +// CHECK:STDOUT: generic fn @Make.1(@Factory.%T.loc4_19.1: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.2)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.1.%T (%T); @@ -666,27 +666,27 @@ fn MakeC(a: A) -> C { // CHECK:STDOUT: fn @Make.2() -> %B; // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_19.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make.1(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Factory(@Factory.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @Factory(@Factory.%T.loc4_19.2) { +// CHECK:STDOUT: %T.loc4_19.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(constants.%B) { -// CHECK:STDOUT: %T.1 => constants.%B +// CHECK:STDOUT: %T.loc4_19.2 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Factory.type => constants.%Factory.type.3 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %Make.type => constants.%Make.type.3 // CHECK:STDOUT: %Make => constants.%Make.3 -// CHECK:STDOUT: %.1 => constants.%.6 -// CHECK:STDOUT: %.2 => constants.%.7 +// CHECK:STDOUT: %.loc5_17.2 => constants.%.6 +// CHECK:STDOUT: %.loc5_17.3 => constants.%.7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make.1(constants.%B, constants.%A) { diff --git a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon index 0b821e931ad4..c0d37dd357af 100644 --- a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon @@ -144,22 +144,22 @@ impl D as SelfNested { // CHECK:STDOUT: interface @SelfNested { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.2] // CHECK:STDOUT: %F.decl: %F.type.4 = fn_decl @F.4 [template = constants.%F.4] { -// CHECK:STDOUT: %x.patt: @F.4.%.3 (%.12) = binding_pattern x +// CHECK:STDOUT: %x.patt: @F.4.%.loc28_37.1 (%.12) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc28_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2)] -// CHECK:STDOUT: %.loc28_16.1: type = facet_type_access %Self.ref.loc28_12 [symbolic = %Self (constants.%Self.2)] -// CHECK:STDOUT: %.loc28_16.2: type = converted %Self.ref.loc28_12, %.loc28_16.1 [symbolic = %Self (constants.%Self.2)] -// CHECK:STDOUT: %.loc28_16.3: type = ptr_type %Self.2 [symbolic = %.1 (constants.%.9)] +// CHECK:STDOUT: %.loc28_16.2: type = facet_type_access %Self.ref.loc28_12 [symbolic = %Self (constants.%Self.2)] +// CHECK:STDOUT: %.loc28_16.3: type = converted %Self.ref.loc28_12, %.loc28_16.2 [symbolic = %Self (constants.%Self.2)] +// CHECK:STDOUT: %.loc28_16.4: type = ptr_type %Self.2 [symbolic = %.loc28_16.1 (constants.%.9)] // CHECK:STDOUT: %Self.ref.loc28_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2)] // CHECK:STDOUT: %.loc28_24.1: type = facet_type_access %Self.ref.loc28_24 [symbolic = %Self (constants.%Self.2)] // CHECK:STDOUT: %.loc28_24.2: type = converted %Self.ref.loc28_24, %.loc28_24.1 [symbolic = %Self (constants.%Self.2)] // CHECK:STDOUT: %.loc28_35.1: %.1 = tuple_literal () // CHECK:STDOUT: %.loc28_35.2: type = converted %.loc28_35.1, constants.%.1 [template = constants.%.1] -// CHECK:STDOUT: %.loc28_36: type = struct_type {.x: %Self.2, .y: %.1} [symbolic = %.2 (constants.%.10)] -// CHECK:STDOUT: %.loc28_37.1: %.11 = tuple_literal (%.loc28_16.3, %.loc28_36) -// CHECK:STDOUT: %.loc28_37.2: type = converted %.loc28_37.1, constants.%.12 [symbolic = %.3 (constants.%.12)] -// CHECK:STDOUT: %x.param: @F.4.%.3 (%.12) = param x, runtime_param0 -// CHECK:STDOUT: %x: @F.4.%.3 (%.12) = bind_name x, %x.param +// CHECK:STDOUT: %.loc28_36.2: type = struct_type {.x: %Self.2, .y: %.1} [symbolic = %.loc28_36.1 (constants.%.10)] +// CHECK:STDOUT: %.loc28_37.2: %.11 = tuple_literal (%.loc28_16.4, %.loc28_36.2) +// CHECK:STDOUT: %.loc28_37.3: type = converted %.loc28_37.2, constants.%.12 [symbolic = %.loc28_37.1 (constants.%.12)] +// CHECK:STDOUT: %x.param: @F.4.%.loc28_37.1 (%.12) = param x, runtime_param0 +// CHECK:STDOUT: %x: @F.4.%.loc28_37.1 (%.12) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %.loc28: %.13 = assoc_entity element0, %F.decl [template = constants.%.14] // CHECK:STDOUT: @@ -293,11 +293,11 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.4(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2)] -// CHECK:STDOUT: %.1: type = ptr_type @F.4.%Self (%Self.2) [symbolic = %.1 (constants.%.9)] -// CHECK:STDOUT: %.2: type = struct_type {.x: @F.4.%Self (%Self.2), .y: %.1} [symbolic = %.2 (constants.%.10)] -// CHECK:STDOUT: %.3: type = tuple_type (@F.4.%.1 (%.9), @F.4.%.2 (%.10)) [symbolic = %.3 (constants.%.12)] +// CHECK:STDOUT: %.loc28_16.1: type = ptr_type @F.4.%Self (%Self.2) [symbolic = %.loc28_16.1 (constants.%.9)] +// CHECK:STDOUT: %.loc28_36.1: type = struct_type {.x: @F.4.%Self (%Self.2), .y: %.1} [symbolic = %.loc28_36.1 (constants.%.10)] +// CHECK:STDOUT: %.loc28_37.1: type = tuple_type (@F.4.%.loc28_16.1 (%.9), @F.4.%.loc28_36.1 (%.10)) [symbolic = %.loc28_37.1 (constants.%.12)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x: @F.4.%.3 (%.12)); +// CHECK:STDOUT: fn(%x: @F.4.%.loc28_37.1 (%.12)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.5(%x: %.17); @@ -318,22 +318,22 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.4(constants.%Self.2) { // CHECK:STDOUT: %Self => constants.%Self.2 -// CHECK:STDOUT: %.1 => constants.%.9 -// CHECK:STDOUT: %.2 => constants.%.10 -// CHECK:STDOUT: %.3 => constants.%.12 +// CHECK:STDOUT: %.loc28_16.1 => constants.%.9 +// CHECK:STDOUT: %.loc28_36.1 => constants.%.10 +// CHECK:STDOUT: %.loc28_37.1 => constants.%.12 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.4(constants.%C) { // CHECK:STDOUT: %Self => constants.%C -// CHECK:STDOUT: %.1 => constants.%.15 -// CHECK:STDOUT: %.2 => constants.%.16 -// CHECK:STDOUT: %.3 => constants.%.17 +// CHECK:STDOUT: %.loc28_16.1 => constants.%.15 +// CHECK:STDOUT: %.loc28_36.1 => constants.%.16 +// CHECK:STDOUT: %.loc28_37.1 => constants.%.17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.4(constants.%D) { // CHECK:STDOUT: %Self => constants.%D -// CHECK:STDOUT: %.1 => constants.%.19 -// CHECK:STDOUT: %.2 => constants.%.20 -// CHECK:STDOUT: %.3 => constants.%.21 +// CHECK:STDOUT: %.loc28_16.1 => constants.%.19 +// CHECK:STDOUT: %.loc28_36.1 => constants.%.20 +// CHECK:STDOUT: %.loc28_37.1 => constants.%.21 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon index 6b4e66fd0d09..7b60adde0b84 100644 --- a/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon +++ b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon @@ -277,12 +277,12 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %self.param.loc14: @F.%C (%C.2) = param self, runtime_param0 // CHECK:STDOUT: %self.loc14: @F.%C (%C.2) = bind_name self, %self.param.loc14 // CHECK:STDOUT: %U.param.loc14: type = param U, runtime_param -// CHECK:STDOUT: %U.loc14: type = bind_symbolic_name U, 1, %U.param.loc14 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %U.ref.loc14_35: type = name_ref U, %U.loc14 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %u.param.loc14: @F.%U.1 (%U) = param u, runtime_param1 -// CHECK:STDOUT: %u.loc14: @F.%U.1 (%U) = bind_name u, %u.param.loc14 -// CHECK:STDOUT: %U.ref.loc14_41: type = name_ref U, %U.loc14 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %return.var.loc14: ref @F.%U.1 (%U) = var +// CHECK:STDOUT: %U.loc14_22.2: type = bind_symbolic_name U, 1, %U.param.loc14 [symbolic = %U.loc14_22.1 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc14_35: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)] +// CHECK:STDOUT: %u.param.loc14: @F.%U.loc14_22.1 (%U) = param u, runtime_param1 +// CHECK:STDOUT: %u.loc14: @F.%U.loc14_22.1 (%U) = bind_name u, %u.param.loc14 +// CHECK:STDOUT: %U.ref.loc14_41: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)] +// CHECK:STDOUT: %return.var.loc14: ref @F.%U.loc14_22.1 (%U) = var // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -292,16 +292,16 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Interface.%Self: %Interface.type, %U.loc14: type) { +// CHECK:STDOUT: generic fn @F(@Interface.%Self: %Interface.type, %U.loc14_22.2: type) { // CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %C: type = class_type @C, @C(%Self) [symbolic = %C (constants.%C.2)] -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc14_22.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn[%self.loc20: %C.2](%U.loc20: type, %u.loc20: %U) -> %U { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %u.ref: @F.%U.1 (%U) = name_ref u, %u.loc20 +// CHECK:STDOUT: %u.ref: @F.%U.loc14_22.1 (%U) = name_ref u, %u.loc20 // CHECK:STDOUT: return %u.ref // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -318,7 +318,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: specific @F(constants.%Self, constants.%U) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %C => constants.%C.2 -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc14_22.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@C.%Self) {} diff --git a/toolchain/check/testdata/interface/no_prelude/as_type_of_type.carbon b/toolchain/check/testdata/interface/no_prelude/as_type_of_type.carbon index a07f56a28b32..2de913cf642d 100644 --- a/toolchain/check/testdata/interface/no_prelude/as_type_of_type.carbon +++ b/toolchain/check/testdata/interface/no_prelude/as_type_of_type.carbon @@ -36,7 +36,7 @@ fn F(T:! Empty) { // CHECK:STDOUT: } { // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [template = constants.%Empty.type] // CHECK:STDOUT: %T.param: %Empty.type = param T, runtime_param -// CHECK:STDOUT: %T.loc13: %Empty.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc13_6.1: %Empty.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -48,23 +48,23 @@ fn F(T:! Empty) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc13: %Empty.type) { -// CHECK:STDOUT: %T.1: %Empty.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc13_6.1: %Empty.type) { +// CHECK:STDOUT: %T.loc13_6.2: %Empty.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc13: %Empty.type) { +// CHECK:STDOUT: fn(%T.loc13_6.1: %Empty.type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc14_10.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc14_10.2: type = converted %T.ref, %.loc14_10.1 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.var: ref @F.%T.1 (%T) = var x -// CHECK:STDOUT: %x: ref @F.%T.1 (%T) = bind_name x, %x.var +// CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc14_10.1: type = facet_type_access %T.ref [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %.loc14_10.2: type = converted %T.ref, %.loc14_10.1 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %x.var: ref @F.%T.loc13_6.2 (%T) = var x +// CHECK:STDOUT: %x: ref @F.%T.loc13_6.2 (%T) = bind_name x, %x.var // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc13_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon b/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon index e4f1159707b3..c87380911dc7 100644 --- a/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon +++ b/toolchain/check/testdata/interface/no_prelude/assoc_const_in_generic.carbon @@ -54,27 +54,27 @@ fn H() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc15: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc15_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @I(%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc11_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.1) [symbolic = %I.type (constants.%I.type.2)] +// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.loc11_13.2) [symbolic = %I.type (constants.%I.type.2)] // CHECK:STDOUT: %Self.2: %I.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @I.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @I.%I.type (%I.type.2), @I.%F.type (%F.type) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @I.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc12_22.2: type = assoc_entity_type @I.%I.type (%I.type.2), @I.%F.type (%F.type) [symbolic = %.loc12_22.2 (constants.%.2)] +// CHECK:STDOUT: %.loc12_22.3: @I.%.loc12_22.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc12_22.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] @@ -82,41 +82,41 @@ fn H() { // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 2 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc12: type = bind_symbolic_name U, 2, %U.param [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc12 [symbolic = %U.1 (constants.%U)] -// CHECK:STDOUT: %return: ref @F.%U.1 (%U) = var +// CHECK:STDOUT: %U.loc12_8.1: type = bind_symbolic_name U, 2, %U.param [symbolic = %U.loc12_8.2 (constants.%U)] +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc12_8.1 [symbolic = %U.loc12_8.2 (constants.%U)] +// CHECK:STDOUT: %return: ref @F.%U.loc12_8.2 (%U) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc12: @I.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc12_22.1: @I.%.loc12_22.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc12_22.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc12 +// CHECK:STDOUT: .F = %.loc12_22.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%T.loc11: type, @I.%Self.1: @I.%I.type (%I.type.2), %U.loc12: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 2 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @F(@I.%T.loc11_13.1: type, @I.%Self.1: @I.%I.type (%I.type.2), %U.loc12_8.1: type) { +// CHECK:STDOUT: %U.loc12_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc12_8.2 (constants.%U)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc12: type) -> @F.%U.1 (%U); +// CHECK:STDOUT: fn(%U.loc12_8.1: type) -> @F.%U.loc12_8.2 (%U); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc15: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @G(%T.loc15_6.1: type) { +// CHECK:STDOUT: %T.loc15_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type.1: type = interface_type @I, @I(%T.1) [symbolic = %I.type.1 (constants.%I.type.2)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.1) [symbolic = %F.type (constants.%F.type)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @G.%I.type.1 (%I.type.2), @G.%F.type (%F.type) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @G.%.1 (%.2) = assoc_entity element0, @I.%F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %I.type.loc19_4.2: type = interface_type @I, @I(%T.loc15_6.2) [symbolic = %I.type.loc19_4.2 (constants.%I.type.2)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc15_6.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %.loc19_7.2: type = assoc_entity_type @G.%I.type.loc19_4.2 (%I.type.2), @G.%F.type (%F.type) [symbolic = %.loc19_7.2 (constants.%.2)] +// CHECK:STDOUT: %.loc19_7.3: @G.%.loc19_7.2 (%.2) = assoc_entity element0, @I.%F.decl [symbolic = %.loc19_7.3 (constants.%.3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc15: type) { +// CHECK:STDOUT: fn(%T.loc15_6.1: type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %I.ref: %I.type.1 = name_ref I, file.%I.decl [template = constants.%I] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %I.type.loc19: type = interface_type @I, @I(constants.%T) [symbolic = %I.type.1 (constants.%I.type.2)] -// CHECK:STDOUT: %.loc19: @G.%.1 (%.2) = specific_constant @I.%.loc12, @I(constants.%T) [symbolic = %.2 (constants.%.3)] -// CHECK:STDOUT: %F.ref: @G.%.1 (%.2) = name_ref F, %.loc19 [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] +// CHECK:STDOUT: %I.type.loc19_4.1: type = interface_type @I, @I(constants.%T) [symbolic = %I.type.loc19_4.2 (constants.%I.type.2)] +// CHECK:STDOUT: %.loc19_7.1: @G.%.loc19_7.2 (%.2) = specific_constant @I.%.loc12_22.1, @I(constants.%T) [symbolic = %.loc19_7.3 (constants.%.3)] +// CHECK:STDOUT: %F.ref: @G.%.loc19_7.2 (%.2) = name_ref F, %.loc19_7.1 [symbolic = %.loc19_7.3 (constants.%.3)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -131,34 +131,34 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.2 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type // CHECK:STDOUT: %F => constants.%F -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 +// CHECK:STDOUT: %.loc12_22.2 => constants.%.2 +// CHECK:STDOUT: %.loc12_22.3 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self, constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc12_8.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@I.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @I(@I.%T.loc11_13.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc15_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@G.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @I(@G.%T.loc15_6.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%.4) { -// CHECK:STDOUT: %T.1 => constants.%.4 +// CHECK:STDOUT: %T.loc15_6.2 => constants.%.4 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon b/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon index 86c862b9c935..9362fc583b56 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_add_member_outside_definition.carbon @@ -86,11 +86,11 @@ interface Outer { // CHECK:STDOUT: %Inner.type: type = interface_type @Inner, @Inner(%Self.2) [symbolic = %Inner.type (constants.%Inner.type.2)] // CHECK:STDOUT: %Self.3: %Inner.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.3)] // CHECK:STDOUT: %.type: type = fn_type @.1, @Inner(%Self.2) [symbolic = %.type (constants.%.type)] -// CHECK:STDOUT: %.1: @Inner.%.type (%.type) = struct_value () [symbolic = %.1 (constants.%.2)] +// CHECK:STDOUT: %.loc26: @Inner.%.type (%.type) = struct_value () [symbolic = %.loc26 (constants.%.2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @Inner.%Inner.type (%Inner.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.3)] -// CHECK:STDOUT: %.decl: @Inner.%.type (%.type) = fn_decl @.1 [symbolic = @Inner.%.1 (constants.%.2)] {} {} +// CHECK:STDOUT: %.decl: @Inner.%.type (%.type) = fn_decl @.1 [symbolic = @Inner.%.loc26 (constants.%.2)] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 @@ -126,7 +126,7 @@ interface Outer { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.2 // CHECK:STDOUT: %Self.3 => constants.%Self.3 // CHECK:STDOUT: %.type => constants.%.type -// CHECK:STDOUT: %.1 => constants.%.2 +// CHECK:STDOUT: %.loc26 => constants.%.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%Self.2, constants.%Self.3) {} diff --git a/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon b/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon index 3601f265e0f4..200b4a5c8e21 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_generic_redeclaration.carbon @@ -71,20 +71,20 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc19: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc19_22.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_22.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %Generic.decl: %Generic.type = interface_decl @Generic [template = constants.%Generic] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc21: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc21_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_19.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl.loc29: type = interface_decl @.2 [template = constants.%.type.3] {} {} // CHECK:STDOUT: %DifferentParams.decl: %DifferentParams.type = interface_decl @DifferentParams [template = constants.%DifferentParams] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc31: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc31_27.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc31_27.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl.loc38: %.type.4 = interface_decl @.3 [template = constants.%.3] { // CHECK:STDOUT: %T.patt: %.1 = symbolic_binding_pattern T, 0 @@ -92,17 +92,17 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %.loc38_32.1: %.1 = tuple_literal () // CHECK:STDOUT: %.loc38_32.2: type = converted %.loc38_32.1, constants.%.1 [template = constants.%.1] // CHECK:STDOUT: %T.param: %.1 = param T, runtime_param -// CHECK:STDOUT: %T.loc38: %.1 = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc38_27.1: %.1 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc38_27.2 (constants.%T.2)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NotGeneric; // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%T.loc19: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic interface @.1(%T.loc19_22.1: type) { +// CHECK:STDOUT: %T.loc19_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_22.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%T.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%T.loc19_22.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -114,8 +114,8 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%T.loc21: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic interface @Generic(%T.loc21_19.1: type) { +// CHECK:STDOUT: %T.loc21_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_19.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -128,17 +128,17 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @DifferentParams(%T.loc31: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic interface @DifferentParams(%T.loc31_27.1: type) { +// CHECK:STDOUT: %T.loc31_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_27.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.3(%T.loc38: %.1) { -// CHECK:STDOUT: %T.1: %.1 = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic interface @.3(%T.loc38_27.1: %.1) { +// CHECK:STDOUT: %T.loc38_27.2: %.1 = bind_symbolic_name T, 0 [symbolic = %T.loc38_27.2 (constants.%T.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.3, @.3(%T.1) [symbolic = %.type (constants.%.type.5)] +// CHECK:STDOUT: %.type: type = interface_type @.3, @.3(%T.loc38_27.2) [symbolic = %.type (constants.%.type.5)] // CHECK:STDOUT: %Self.2: %.type.5 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -151,26 +151,26 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc19_22.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: specific @.1(@.1.%T.loc19_22.2) { +// CHECK:STDOUT: %T.loc19_22.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc21_19.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DifferentParams(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc31_27.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.3(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc38_27.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.3(@.3.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: specific @.3(@.3.%T.loc38_27.2) { +// CHECK:STDOUT: %T.loc38_27.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_todo_facet_lookup.carbon b/toolchain/check/testdata/interface/no_prelude/fail_todo_facet_lookup.carbon index 55e4b38eba29..6e9098b7ab97 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_todo_facet_lookup.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_todo_facet_lookup.carbon @@ -54,20 +54,20 @@ fn CallFacet(T:! Interface, x: T) { // CHECK:STDOUT: } { // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param: %Interface.type = param T, runtime_param -// CHECK:STDOUT: %T.loc13: %Interface.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc13_15.1: %Interface.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallFacet.decl: %CallFacet.type = fn_decl @CallFacet [template = constants.%CallFacet] { // CHECK:STDOUT: %T.patt: %Interface.type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %x.patt: @CallFacet.%T.1 (%T) = binding_pattern x +// CHECK:STDOUT: %x.patt: @CallFacet.%T.loc21_14.2 (%T) = binding_pattern x // CHECK:STDOUT: } { // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type] // CHECK:STDOUT: %T.param: %Interface.type = param T, runtime_param -// CHECK:STDOUT: %T.loc21: %Interface.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: %Interface.type = name_ref T, %T.loc21 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc21_32.1: type = facet_type_access %T.ref [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %.loc21_32.2: type = converted %T.ref, %.loc21_32.1 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallFacet.%T.1 (%T) = param x, runtime_param0 -// CHECK:STDOUT: %x: @CallFacet.%T.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc21_14.1: %Interface.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_14.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: %Interface.type = name_ref T, %T.loc21_14.1 [symbolic = %T.loc21_14.2 (constants.%T)] +// CHECK:STDOUT: %.loc21_32.1: type = facet_type_access %T.ref [symbolic = %T.loc21_14.2 (constants.%T)] +// CHECK:STDOUT: %.loc21_32.2: type = converted %T.ref, %.loc21_32.1 [symbolic = %T.loc21_14.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @CallFacet.%T.loc21_14.2 (%T) = param x, runtime_param0 +// CHECK:STDOUT: %x: @CallFacet.%T.loc21_14.2 (%T) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -87,27 +87,27 @@ fn CallFacet(T:! Interface, x: T) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallStatic(%T.loc13: %Interface.type) { -// CHECK:STDOUT: %T.1: %Interface.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @CallStatic(%T.loc13_15.1: %Interface.type) { +// CHECK:STDOUT: %T.loc13_15.2: %Interface.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_15.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc13: %Interface.type) { +// CHECK:STDOUT: fn(%T.loc13_15.1: %Interface.type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %Interface.type = name_ref T, %T.loc13 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: %Interface.type = name_ref T, %T.loc13_15.1 [symbolic = %T.loc13_15.2 (constants.%T)] // CHECK:STDOUT: %F.ref: %.2 = name_ref F, @Interface.%.loc11 [template = constants.%.3] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallFacet(%T.loc21: %Interface.type) { -// CHECK:STDOUT: %T.1: %Interface.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @CallFacet(%T.loc21_14.1: %Interface.type) { +// CHECK:STDOUT: %T.loc21_14.2: %Interface.type = bind_symbolic_name T, 0 [symbolic = %T.loc21_14.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc21: %Interface.type, %x: @CallFacet.%T.1 (%T)) { +// CHECK:STDOUT: fn(%T.loc21_14.1: %Interface.type, %x: @CallFacet.%T.loc21_14.2 (%T)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @CallFacet.%T.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @CallFacet.%T.loc21_14.2 (%T) = name_ref x, %x // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -115,10 +115,10 @@ fn CallFacet(T:! Interface, x: T) { // CHECK:STDOUT: specific @F(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CallStatic(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc13_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallFacet(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc21_14.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon b/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon index fe1d827d8d6c..4264016a6ff7 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_todo_generic_default_fn.carbon @@ -46,13 +46,13 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc11: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [symbolic = constants.%.4] { // CHECK:STDOUT: %self.patt: @.1.%Self (%Self) = binding_pattern self // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc22: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc22_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc22_6.2 (constants.%T)] // CHECK:STDOUT: %.loc22_24.1: @.1.%I.type (%I.type.2) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref.loc22_24: @.1.%I.type (%I.type.2) = name_ref Self, %.loc22_24.1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %.loc22_24.2: type = facet_type_access %Self.ref.loc22_24 [symbolic = %Self (constants.%Self)] @@ -67,16 +67,16 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%T.loc11: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @I(%T.loc11_13.1: type) { +// CHECK:STDOUT: %T.loc11_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.1) [symbolic = %I.type (constants.%I.type.2)] +// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.loc11_13.2) [symbolic = %I.type (constants.%I.type.2)] // CHECK:STDOUT: %Self.2: %I.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc11_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @I.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @I.%I.type (%I.type.2), @I.%F.type (%F.type) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @I.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc13_29.2: type = assoc_entity_type @I.%I.type (%I.type.2), @I.%F.type (%F.type) [symbolic = %.loc13_29.2 (constants.%.2)] +// CHECK:STDOUT: %.loc13_29.3: @I.%.loc13_29.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc13_29.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] @@ -95,16 +95,16 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %.loc13_25.3: type = converted %Self.ref.loc13_25, %.loc13_25.2 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %return: ref @F.%Self (%Self) = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc13: @I.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc13_29.1: @I.%.loc13_29.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc13_29.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc13 +// CHECK:STDOUT: .F = %.loc13_29.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%T.loc11: type, @I.%Self.1: @I.%I.type (%I.type.2)) { +// CHECK:STDOUT: generic fn @F(@I.%T.loc11_13.1: type, @I.%Self.1: @I.%I.type (%I.type.2)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T) [symbolic = %I.type (constants.%I.type.2)] // CHECK:STDOUT: %Self: %I.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] @@ -112,9 +112,9 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: fn[%self: @F.%Self (%Self)]() -> @F.%Self (%Self); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc22: type, @I.%Self.1: @I.%I.type (%I.type.2)) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.1) [symbolic = %I.type (constants.%I.type.2)] +// CHECK:STDOUT: generic fn @.1(%T.loc22_6.1: type, @I.%Self.1: @I.%I.type (%I.type.2)) { +// CHECK:STDOUT: %T.loc22_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.2 (constants.%T)] +// CHECK:STDOUT: %I.type: type = interface_type @I, @I(%T.loc22_6.2) [symbolic = %I.type (constants.%I.type.2)] // CHECK:STDOUT: %Self: %I.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -127,19 +127,19 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.2 // CHECK:STDOUT: %Self.2 => constants.%Self // CHECK:STDOUT: %F.type => constants.%F.type // CHECK:STDOUT: %F => constants.%F -// CHECK:STDOUT: %.1 => constants.%.2 -// CHECK:STDOUT: %.2 => constants.%.3 +// CHECK:STDOUT: %.loc13_29.2 => constants.%.2 +// CHECK:STDOUT: %.loc13_29.3 => constants.%.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(@F.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self) { @@ -148,16 +148,16 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@I.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @I(@I.%T.loc11_13.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(@.1.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @I(@.1.%T.loc22_6.2) { +// CHECK:STDOUT: %T.loc11_13.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T, constants.%Self) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc22_6.2 => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.2 // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/no_prelude/generic.carbon b/toolchain/check/testdata/interface/no_prelude/generic.carbon index 682f779e53e8..db9666aa6e57 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic.carbon @@ -115,25 +115,25 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_18.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [template = constants.%X] {} {} // CHECK:STDOUT: %WithAssocFn.decl: %WithAssocFn.type.1 = interface_decl @WithAssocFn [template = constants.%WithAssocFn] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc8_23.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_23.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {} // CHECK:STDOUT: %WithImplicitArgs.decl: %WithImplicitArgs.type = interface_decl @WithImplicitArgs [template = constants.%WithImplicitArgs] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 -// CHECK:STDOUT: %N.patt: @WithImplicitArgs.%T.1 (%T.1) = symbolic_binding_pattern N, 1 +// CHECK:STDOUT: %N.patt: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = symbolic_binding_pattern N, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc22: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc22 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %N.param: @WithImplicitArgs.%T.1 (%T.1) = param N, runtime_param -// CHECK:STDOUT: %N.loc22: @WithImplicitArgs.%T.1 (%T.1) = bind_symbolic_name N, 1, %N.param [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: %T.loc22_28.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc22_28.2 (constants.%T.1)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc22_28.1 [symbolic = %T.loc22_28.2 (constants.%T.1)] +// CHECK:STDOUT: %N.param: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = param N, runtime_param +// CHECK:STDOUT: %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc22_38.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Receive.decl: %Receive.type = fn_decl @Receive [template = constants.%Receive] { // CHECK:STDOUT: %T.patt: %Simple.type.3 = symbolic_binding_pattern T, 0 @@ -142,7 +142,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Simple.type: type = interface_type @Simple, @Simple(constants.%C) [template = constants.%Simple.type.3] // CHECK:STDOUT: %T.param: %Simple.type.3 = param T, runtime_param -// CHECK:STDOUT: %T.loc24: %Simple.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc24_12.1: %Simple.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc24_12.2 (constants.%T.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %Pass.decl: %Pass.type = fn_decl @Pass [template = constants.%Pass] { // CHECK:STDOUT: %T.patt: %Simple.type.3 = symbolic_binding_pattern T, 0 @@ -151,15 +151,15 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %Simple.type: type = interface_type @Simple, @Simple(constants.%C) [template = constants.%Simple.type.3] // CHECK:STDOUT: %T.param: %Simple.type.3 = param T, runtime_param -// CHECK:STDOUT: %T.loc25: %Simple.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc25_9.1: %Simple.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc25_9.2 (constants.%T.2)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Simple(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic interface @Simple(%T.loc4_18.1: type) { +// CHECK:STDOUT: %T.loc4_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Simple.type: type = interface_type @Simple, @Simple(%T.1) [symbolic = %Simple.type (constants.%Simple.type.2)] +// CHECK:STDOUT: %Simple.type: type = interface_type @Simple, @Simple(%T.loc4_18.2) [symbolic = %Simple.type (constants.%Simple.type.2)] // CHECK:STDOUT: %Self.2: %Simple.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -171,16 +171,16 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @WithAssocFn(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic interface @WithAssocFn(%T.loc8_23.1: type) { +// CHECK:STDOUT: %T.loc8_23.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_23.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WithAssocFn.type: type = interface_type @WithAssocFn, @WithAssocFn(%T.1) [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.2)] +// CHECK:STDOUT: %WithAssocFn.type: type = interface_type @WithAssocFn, @WithAssocFn(%T.loc8_23.2) [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.2)] // CHECK:STDOUT: %Self.2: %WithAssocFn.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @WithAssocFn(%T.1) [symbolic = %F.type (constants.%F.type.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @WithAssocFn(%T.loc8_23.2) [symbolic = %F.type (constants.%F.type.1)] // CHECK:STDOUT: %F: @WithAssocFn.%F.type (%F.type.1) = struct_value () [symbolic = %F (constants.%F.1)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.2), @WithAssocFn.%F.type (%F.type.1) [symbolic = %.1 (constants.%.4)] -// CHECK:STDOUT: %.2: @WithAssocFn.%.1 (%.4) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.5)] +// CHECK:STDOUT: %.loc10_14.2: type = assoc_entity_type @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.2), @WithAssocFn.%F.type (%F.type.1) [symbolic = %.loc10_14.2 (constants.%.4)] +// CHECK:STDOUT: %.loc10_14.3: @WithAssocFn.%.loc10_14.2 (%.4) = assoc_entity element0, %F.decl [symbolic = %.loc10_14.3 (constants.%.5)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2)] @@ -188,18 +188,18 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X] // CHECK:STDOUT: %return: ref %X = var // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10: @WithAssocFn.%.1 (%.4) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.5)] +// CHECK:STDOUT: %.loc10_14.1: @WithAssocFn.%.loc10_14.2 (%.4) = assoc_entity element0, %F.decl [symbolic = %.loc10_14.3 (constants.%.5)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc10 +// CHECK:STDOUT: .F = %.loc10_14.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @WithImplicitArgs(%T.loc22: type, %N.loc22: @WithImplicitArgs.%T.1 (%T.1)) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] -// CHECK:STDOUT: %N.1: %T.1 = bind_symbolic_name N, 1 [symbolic = %N.1 (constants.%N)] +// CHECK:STDOUT: generic interface @WithImplicitArgs(%T.loc22_28.1: type, %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.1)) { +// CHECK:STDOUT: %T.loc22_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_28.2 (constants.%T.1)] +// CHECK:STDOUT: %N.loc22_38.2: %T.1 = bind_symbolic_name N, 1 [symbolic = %N.loc22_38.2 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -249,7 +249,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(@WithAssocFn.%T.loc8: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.2)) { +// CHECK:STDOUT: generic fn @F.1(@WithAssocFn.%T.loc8_23.1: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.2)) { // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %X; // CHECK:STDOUT: } @@ -262,46 +262,46 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: return %.loc17_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Receive(%T.loc24: %Simple.type.3) { -// CHECK:STDOUT: %T.1: %Simple.type.3 = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic fn @Receive(%T.loc24_12.1: %Simple.type.3) { +// CHECK:STDOUT: %T.loc24_12.2: %Simple.type.3 = bind_symbolic_name T, 0 [symbolic = %T.loc24_12.2 (constants.%T.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc24: %Simple.type.3); +// CHECK:STDOUT: fn(%T.loc24_12.1: %Simple.type.3); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Pass(%T.loc25: %Simple.type.3) { -// CHECK:STDOUT: %T.1: %Simple.type.3 = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic fn @Pass(%T.loc25_9.1: %Simple.type.3) { +// CHECK:STDOUT: %T.loc25_9.2: %Simple.type.3 = bind_symbolic_name T, 0 [symbolic = %T.loc25_9.2 (constants.%T.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc25: %Simple.type.3) { +// CHECK:STDOUT: fn(%T.loc25_9.1: %Simple.type.3) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Receive.ref: %Receive.type = name_ref Receive, file.%Receive.decl [template = constants.%Receive] -// CHECK:STDOUT: %T.ref: %Simple.type.3 = name_ref T, %T.loc25 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.ref: %Simple.type.3 = name_ref T, %T.loc25_9.1 [symbolic = %T.loc25_9.2 (constants.%T.2)] // CHECK:STDOUT: %Receive.call: init %.1 = call %Receive.ref() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc4_18.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Simple(@Simple.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: specific @Simple(@Simple.%T.loc4_18.2) { +// CHECK:STDOUT: %T.loc4_18.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc8_23.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%T.1, constants.%Self.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @WithAssocFn(@WithAssocFn.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: specific @WithAssocFn(@WithAssocFn.%T.loc8_23.2) { +// CHECK:STDOUT: %T.loc8_23.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C +// CHECK:STDOUT: %T.loc4_18.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Simple.type => constants.%Simple.type.3 @@ -309,30 +309,30 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn(constants.%C) { -// CHECK:STDOUT: %T.1 => constants.%C +// CHECK:STDOUT: %T.loc8_23.2 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.3 // CHECK:STDOUT: %Self.2 => constants.%Self.2 // CHECK:STDOUT: %F.type => constants.%F.type.3 // CHECK:STDOUT: %F => constants.%F.3 -// CHECK:STDOUT: %.1 => constants.%.7 -// CHECK:STDOUT: %.2 => constants.%.8 +// CHECK:STDOUT: %.loc10_14.2 => constants.%.7 +// CHECK:STDOUT: %.loc10_14.3 => constants.%.8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%C, constants.%C) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @WithImplicitArgs(constants.%T.1, constants.%N) { -// CHECK:STDOUT: %T.1 => constants.%T.1 -// CHECK:STDOUT: %N.1 => constants.%N +// CHECK:STDOUT: %T.loc22_28.2 => constants.%T.1 +// CHECK:STDOUT: %N.loc22_38.2 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Receive(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc24_12.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Pass(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc25_9.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_args.carbon @@ -370,7 +370,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_19.2 (constants.%T.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [template = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {} @@ -381,7 +381,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A] // CHECK:STDOUT: %Generic.type: type = interface_type @Generic, @Generic(constants.%A) [template = constants.%Generic.type.3] // CHECK:STDOUT: %T.param: %Generic.type.3 = param T, runtime_param -// CHECK:STDOUT: %T.loc9: %Generic.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: %T.loc9_6.1: %Generic.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc9_6.2 (constants.%T.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] { // CHECK:STDOUT: %T.patt: %Generic.type.4 = symbolic_binding_pattern T, 0 @@ -390,15 +390,15 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B] // CHECK:STDOUT: %Generic.type: type = interface_type @Generic, @Generic(constants.%B) [template = constants.%Generic.type.4] // CHECK:STDOUT: %T.param: %Generic.type.4 = param T, runtime_param -// CHECK:STDOUT: %T.loc10: %Generic.type.4 = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T.3)] +// CHECK:STDOUT: %T.loc10_6.1: %Generic.type.4 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_6.2 (constants.%T.3)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.1)] +// CHECK:STDOUT: generic interface @Generic(%T.loc4_19.1: type) { +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = interface_type @Generic, @Generic(%T.1) [symbolic = %Generic.type (constants.%Generic.type.2)] +// CHECK:STDOUT: %Generic.type: type = interface_type @Generic, @Generic(%T.loc4_19.2) [symbolic = %Generic.type (constants.%Generic.type.2)] // CHECK:STDOUT: %Self.2: %Generic.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -424,47 +424,47 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc9: %Generic.type.3) { -// CHECK:STDOUT: %T.1: %Generic.type.3 = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.2)] +// CHECK:STDOUT: generic fn @F(%T.loc9_6.1: %Generic.type.3) { +// CHECK:STDOUT: %T.loc9_6.2: %Generic.type.3 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc9: %Generic.type.3); +// CHECK:STDOUT: fn(%T.loc9_6.1: %Generic.type.3); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc10: %Generic.type.4) { -// CHECK:STDOUT: %T.1: %Generic.type.4 = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T.3)] +// CHECK:STDOUT: generic fn @G(%T.loc10_6.1: %Generic.type.4) { +// CHECK:STDOUT: %T.loc10_6.2: %Generic.type.4 = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.2 (constants.%T.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc10: %Generic.type.4) { +// CHECK:STDOUT: fn(%T.loc10_6.1: %Generic.type.4) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F] -// CHECK:STDOUT: %T.ref: %Generic.type.4 = name_ref T, %T.loc10 [symbolic = %T.1 (constants.%T.3)] +// CHECK:STDOUT: %T.ref: %Generic.type.4 = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T.3)] // CHECK:STDOUT: %.loc18: %Generic.type.3 = converted %T.ref, [template = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: %T.loc4_19.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Generic(@Generic.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T.1 +// CHECK:STDOUT: specific @Generic(@Generic.%T.loc4_19.2) { +// CHECK:STDOUT: %T.loc4_19.2 => constants.%T.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%A) { -// CHECK:STDOUT: %T.1 => constants.%A +// CHECK:STDOUT: %T.loc4_19.2 => constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.2) { -// CHECK:STDOUT: %T.1 => constants.%T.2 +// CHECK:STDOUT: %T.loc9_6.2 => constants.%T.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%B) { -// CHECK:STDOUT: %T.1 => constants.%B +// CHECK:STDOUT: %T.loc4_19.2 => constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T.3) { -// CHECK:STDOUT: %T.1 => constants.%T.3 +// CHECK:STDOUT: %T.loc10_6.2 => constants.%T.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/generic_binding_after_assoc_const.carbon b/toolchain/check/testdata/interface/no_prelude/generic_binding_after_assoc_const.carbon index c50d05a4bf82..077dd6de871f 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_binding_after_assoc_const.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_binding_after_assoc_const.carbon @@ -48,7 +48,7 @@ interface I { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc12: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc12_8.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc12_8.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc12: %.2 = assoc_entity element0, %F.decl [template = constants.%.3] // CHECK:STDOUT: %U: type = assoc_const_decl U [template] @@ -57,7 +57,7 @@ interface I { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc16: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc16_8.1: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc16_8.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc16: %.6 = assoc_entity element2, %G.decl [template = constants.%.7] // CHECK:STDOUT: @@ -69,23 +69,23 @@ interface I { // CHECK:STDOUT: witness = (%F.decl, %U, %G.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%Self: %I.type, %T.loc12: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 1 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(@I.%Self: %I.type, %T.loc12_8.1: type) { +// CHECK:STDOUT: %T.loc12_8.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc12_8.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc12: type); +// CHECK:STDOUT: fn(%T.loc12_8.1: type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@I.%Self: %I.type, %T.loc16: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 1 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @G(@I.%Self: %I.type, %T.loc16_8.1: type) { +// CHECK:STDOUT: %T.loc16_8.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc16_8.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc16: type); +// CHECK:STDOUT: fn(%T.loc16_8.1: type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self, constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc12_8.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%Self, constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc16_8.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon index 5b98ae6b59cf..1a6d4b928341 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon @@ -50,46 +50,46 @@ impl C as AddWith(C) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_19.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @AddWith(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @AddWith(%T.loc4_19.1: type) { +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = interface_type @AddWith, @AddWith(%T.1) [symbolic = %AddWith.type (constants.%AddWith.type.2)] +// CHECK:STDOUT: %AddWith.type: type = interface_type @AddWith, @AddWith(%T.loc4_19.2) [symbolic = %AddWith.type (constants.%AddWith.type.2)] // CHECK:STDOUT: %Self.2: %AddWith.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @AddWith(%T.1) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @AddWith(%T.loc4_19.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @AddWith.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %.1: type = assoc_entity_type @AddWith.%AddWith.type (%AddWith.type.2), @AddWith.%F.type (%F.type) [symbolic = %.1 (constants.%.2)] -// CHECK:STDOUT: %.2: @AddWith.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_9.2: type = assoc_entity_type @AddWith.%AddWith.type (%AddWith.type.2), @AddWith.%F.type (%F.type) [symbolic = %.loc5_9.2 (constants.%.2)] +// CHECK:STDOUT: %.loc5_9.3: @AddWith.%.loc5_9.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc5_9.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @AddWith.%AddWith.type (%AddWith.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %F.decl: @AddWith.%F.type (%F.type) = fn_decl @F [symbolic = @AddWith.%F (constants.%F)] {} {} -// CHECK:STDOUT: %.loc5: @AddWith.%.1 (%.2) = assoc_entity element0, %F.decl [symbolic = %.2 (constants.%.3)] +// CHECK:STDOUT: %.loc5_9.1: @AddWith.%.loc5_9.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc5_9.3 (constants.%.3)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.1 -// CHECK:STDOUT: .F = %.loc5 +// CHECK:STDOUT: .F = %.loc5_9.1 // CHECK:STDOUT: witness = (%F.decl) // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@AddWith.%T.loc4: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.2)) { +// CHECK:STDOUT: generic fn @F(@AddWith.%T.loc4_19.1: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.2)) { // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_19.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith(@AddWith.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @AddWith(@AddWith.%T.loc4_19.2) { +// CHECK:STDOUT: %T.loc4_19.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon diff --git a/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon b/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon index 6280ecac4d64..7857054e9f23 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_vs_params.carbon @@ -99,13 +99,13 @@ interface A(T: type) {} // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_28.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_28.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [template = constants.%C.1] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [template = constants.%X] {} {} // CHECK:STDOUT: impl_decl @impl.1 [template] {} { @@ -158,11 +158,11 @@ interface A(T: type) {} // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericAndParams.1(%T.loc6: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic interface @GenericAndParams.1(%T.loc6_28.1: type) { +// CHECK:STDOUT: %T.loc6_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_28.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = interface_type @GenericAndParams.1, @GenericAndParams.1(%T.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.2)] +// CHECK:STDOUT: %GenericAndParams.type: type = interface_type @GenericAndParams.1, @GenericAndParams.1(%T.loc6_28.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.2)] // CHECK:STDOUT: %Self.2: %GenericAndParams.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -174,7 +174,7 @@ interface A(T: type) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericNoParams(@C.%T.loc8: type) { +// CHECK:STDOUT: generic interface @GenericNoParams(@C.%T.loc8_9.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %GenericNoParams.type: type = interface_type @GenericNoParams, @GenericNoParams(%T) [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.2)] @@ -189,12 +189,12 @@ interface A(T: type) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericAndParams.2(@C.%T.loc8: type, %U.loc10: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 1 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic interface @GenericAndParams.2(@C.%T.loc8_9.1: type, %U.loc10_30.1: type) { +// CHECK:STDOUT: %U.loc10_30.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc10_30.2 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %GenericAndParams.type: type = interface_type @GenericAndParams.2, @GenericAndParams.2(%T, %U.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.4)] +// CHECK:STDOUT: %GenericAndParams.type: type = interface_type @GenericAndParams.2, @GenericAndParams.2(%T, %U.loc10_30.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.4)] // CHECK:STDOUT: %Self.2: %GenericAndParams.type.4 = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.5)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -241,11 +241,11 @@ interface A(T: type) {} // CHECK:STDOUT: witness = %.loc18_36 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc8: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc8_9.1: type) { +// CHECK:STDOUT: %T.loc8_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.2, @C(%T.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.3)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.2, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.3)] // CHECK:STDOUT: %GenericAndParams: @C.%GenericAndParams.type (%GenericAndParams.type.3) = struct_value () [symbolic = %GenericAndParams (constants.%GenericAndParams.2)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -254,7 +254,7 @@ interface A(T: type) {} // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 // CHECK:STDOUT: } { // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc10: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc10_30.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc10_30.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc11: = complete_type_witness %.2 [template = constants.%.3] // CHECK:STDOUT: @@ -273,15 +273,15 @@ interface A(T: type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.1(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc6_28.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.1(@GenericAndParams.1.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @GenericAndParams.1(@GenericAndParams.1.%T.loc6_28.2) { +// CHECK:STDOUT: %T.loc6_28.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericNoParams(constants.%T) {} @@ -289,19 +289,19 @@ interface A(T: type) {} // CHECK:STDOUT: specific @GenericNoParams(@GenericNoParams.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.2(constants.%T, constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc10_30.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @GenericAndParams.2(@GenericAndParams.2.%T, @GenericAndParams.2.%U.1) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: specific @GenericAndParams.2(@GenericAndParams.2.%T, @GenericAndParams.2.%U.loc10_30.2) { +// CHECK:STDOUT: %U.loc10_30.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(@C.%T.1) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: specific @C(@C.%T.loc8_9.2) { +// CHECK:STDOUT: %T.loc8_9.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.1(constants.%X) { -// CHECK:STDOUT: %T.1 => constants.%X +// CHECK:STDOUT: %T.loc6_28.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.5 @@ -309,7 +309,7 @@ interface A(T: type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { -// CHECK:STDOUT: %T.1 => constants.%X +// CHECK:STDOUT: %T.loc8_9.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.6 @@ -317,7 +317,7 @@ interface A(T: type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.2(constants.%X, constants.%X) { -// CHECK:STDOUT: %U.1 => constants.%X +// CHECK:STDOUT: %U.loc10_30.2 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X diff --git a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon index 3b7438b3ac59..4f0f3334154d 100644 --- a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon @@ -218,7 +218,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param.loc7: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param.loc7 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param.loc7 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc8: %Foo.type.1 = interface_decl @Foo [template = constants.%Foo] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -232,7 +232,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param.loc10: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc10: %C = bind_symbolic_name a, 0, %a.param.loc10 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc10_15.1: %C = bind_symbolic_name a, 0, %a.param.loc10 [symbolic = %a.loc10_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc11: %Bar.type.1 = interface_decl @Bar [template = constants.%Bar] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -243,11 +243,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = interface_type @Foo, @Foo(%a.1) [symbolic = %Foo.type (constants.%Foo.type.2)] +// CHECK:STDOUT: %Foo.type: type = interface_type @Foo, @Foo(%a.loc7_15.2) [symbolic = %Foo.type (constants.%Foo.type.2)] // CHECK:STDOUT: %Self.2: %Foo.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -259,11 +259,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Bar(%a.loc10: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Bar(%a.loc10_15.1: %C) { +// CHECK:STDOUT: %a.loc10_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = interface_type @Bar, @Bar(%a.1) [symbolic = %Bar.type (constants.%Bar.type.2)] +// CHECK:STDOUT: %Bar.type: type = interface_type @Bar, @Bar(%a.loc10_15.2) [symbolic = %Bar.type (constants.%Bar.type.2)] // CHECK:STDOUT: %Self.2: %Bar.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -283,19 +283,19 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(@Foo.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @Foo(@Foo.%a.loc7_15.2) { +// CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc10_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Bar(@Bar.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @Bar(@Bar.%a.loc10_15.2) { +// CHECK:STDOUT: %a.loc10_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- spacing.carbon @@ -323,7 +323,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param.loc6: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_21.1: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.loc6_21.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.1 = interface_decl @Foo [template = constants.%Foo] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -334,11 +334,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc6_21.1: %C) { +// CHECK:STDOUT: %a.loc6_21.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_21.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = interface_type @Foo, @Foo(%a.1) [symbolic = %Foo.type (constants.%Foo.type.2)] +// CHECK:STDOUT: %Foo.type: type = interface_type @Foo, @Foo(%a.loc6_21.2) [symbolic = %Foo.type (constants.%Foo.type.2)] // CHECK:STDOUT: %Self.2: %Foo.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -358,11 +358,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_21.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(@Foo.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @Foo(@Foo.%a.loc6_21.2) { +// CHECK:STDOUT: %a.loc6_21.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_parens.carbon @@ -392,28 +392,28 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc14: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc14_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc14_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc6_15.1: %C) { +// CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc14: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @.1(%a.loc14_15.1: %C) { +// CHECK:STDOUT: %a.loc14_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.loc14_15.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -433,15 +433,15 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc14_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @.1(@.1.%a.loc14_15.2) { +// CHECK:STDOUT: %a.loc14_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_raw_identifier.carbon @@ -469,7 +469,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param.loc6: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.1 = interface_decl @Foo [template = constants.%Foo] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 @@ -480,11 +480,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc6_15.1: %C) { +// CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = interface_type @Foo, @Foo(%a.1) [symbolic = %Foo.type (constants.%Foo.type.2)] +// CHECK:STDOUT: %Foo.type: type = interface_type @Foo, @Foo(%a.loc6_15.2) [symbolic = %Foo.type (constants.%Foo.type.2)] // CHECK:STDOUT: %Self.2: %Foo.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -504,11 +504,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Foo(@Foo.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @Foo(@Foo.%a.loc6_15.2) { +// CHECK:STDOUT: %a.loc6_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- two_file.carbon @@ -540,25 +540,25 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = interface_decl @Bar [template = constants.%Bar] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc8_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc8_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Bar(%a.loc8: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Bar(%a.loc8_15.1: %C) { +// CHECK:STDOUT: %a.loc8_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -571,11 +571,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc8_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_two_file.impl.carbon @@ -622,14 +622,14 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.1 [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc12: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc12_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl.loc21: %.type.3 = interface_decl @.2 [template = constants.%.5] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.2 [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc21: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc21_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc21_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -639,11 +639,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc12: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @.1(%a.loc12_15.1: %C) { +// CHECK:STDOUT: %a.loc12_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.loc12_15.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -661,11 +661,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.2(%a.loc21: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @.2(%a.loc21_15.1: %C) { +// CHECK:STDOUT: %a.loc21_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc21_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.2, @.2(%a.1) [symbolic = %.type (constants.%.type.4)] +// CHECK:STDOUT: %.type: type = interface_type @.2, @.2(%a.loc21_15.2) [symbolic = %.type (constants.%.type.4)] // CHECK:STDOUT: %Self.2: %.type.4 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -687,11 +687,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc12_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @.1(@.1.%a.loc12_15.2) { +// CHECK:STDOUT: %a.loc12_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { @@ -699,11 +699,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.2(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc21_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.2(@.2.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @.2(@.2.%a.loc21_15.2) { +// CHECK:STDOUT: %a.loc21_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_name_mismatch.carbon @@ -737,28 +737,28 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %b.patt: %C = symbolic_binding_pattern b, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %b.param: %C = param b, runtime_param -// CHECK:STDOUT: %b.loc15: %C = bind_symbolic_name b, 0, %b.param [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: %b.loc15_15.1: %C = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc15_15.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%b.loc15: %C) { -// CHECK:STDOUT: %b.1: %C = bind_symbolic_name b, 0 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: generic interface @.1(%b.loc15_15.1: %C) { +// CHECK:STDOUT: %b.loc15_15.2: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_15.2 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%b.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%b.loc15_15.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -778,15 +778,15 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%b) { -// CHECK:STDOUT: %b.1 => constants.%b +// CHECK:STDOUT: %b.loc15_15.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%b.1) { -// CHECK:STDOUT: %b.1 => constants.%b +// CHECK:STDOUT: specific @.1(@.1.%b.loc15_15.2) { +// CHECK:STDOUT: %b.loc15_15.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias.carbon @@ -819,28 +819,28 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc15: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc15: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @.1(%a.loc15_15.1: %C) { +// CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.loc15_15.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -860,15 +860,15 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc15_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @.1(@.1.%a.loc15_15.2) { +// CHECK:STDOUT: %a.loc15_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduced_alias.carbon @@ -901,28 +901,28 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] { // CHECK:STDOUT: %a.patt: %C = symbolic_binding_pattern a, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc15: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc7: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc7_15.1: %C) { +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc15: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @.1(%a.loc15_15.1: %C) { +// CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.loc15_15.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -942,15 +942,15 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc7_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc15_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @.1(@.1.%a.loc15_15.2) { +// CHECK:STDOUT: %a.loc15_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- alias_two_file.carbon @@ -976,12 +976,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc6: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc6_15.1: %C) { +// CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -994,7 +994,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias_two_file.impl.carbon @@ -1034,7 +1034,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C] // CHECK:STDOUT: %a.param: %C = param a, runtime_param -// CHECK:STDOUT: %a.loc17: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc17_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc17_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1044,11 +1044,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc17: %C) { -// CHECK:STDOUT: %a.1: %C = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @.1(%a.loc17_15.1: %C) { +// CHECK:STDOUT: %a.loc17_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc17_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.loc17_15.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -1070,11 +1070,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc17_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @.1(@.1.%a.loc17_15.2) { +// CHECK:STDOUT: %a.loc17_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_repeat_const.carbon @@ -1106,7 +1106,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C] // CHECK:STDOUT: %.loc6: type = const_type %C [template = constants.%.3] // CHECK:STDOUT: %a.param: %.3 = param a, runtime_param -// CHECK:STDOUT: %a.loc6: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.1: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.5] { // CHECK:STDOUT: %a.patt: %.3 = symbolic_binding_pattern a, 0 @@ -1115,21 +1115,21 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %.loc17_26: type = const_type %C [template = constants.%.3] // CHECK:STDOUT: %.loc17_19: type = const_type %.3 [template = constants.%.3] // CHECK:STDOUT: %a.param: %.3 = param a, runtime_param -// CHECK:STDOUT: %a.loc17: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: %a.loc17_15.1: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc17_15.2 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo(%a.loc6: %.3) { -// CHECK:STDOUT: %a.1: %.3 = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo(%a.loc6_15.1: %.3) { +// CHECK:STDOUT: %a.loc6_15.2: %.3 = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @.1(%a.loc17: %.3) { -// CHECK:STDOUT: %a.1: %.3 = bind_symbolic_name a, 0 [symbolic = %a.1 (constants.%a)] +// CHECK:STDOUT: generic interface @.1(%a.loc17_15.1: %.3) { +// CHECK:STDOUT: %a.loc17_15.2: %.3 = bind_symbolic_name a, 0 [symbolic = %a.loc17_15.2 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.1) [symbolic = %.type (constants.%.type.2)] +// CHECK:STDOUT: %.type: type = interface_type @.1, @.1(%a.loc17_15.2) [symbolic = %.type (constants.%.type.2)] // CHECK:STDOUT: %Self.2: %.type.2 = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -1149,14 +1149,14 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc6_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%a) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: %a.loc17_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @.1(@.1.%a.1) { -// CHECK:STDOUT: %a.1 => constants.%a +// CHECK:STDOUT: specific @.1(@.1.%a.loc17_15.2) { +// CHECK:STDOUT: %a.loc17_15.2 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 5e5ca98a3065..a7d6d5bed224 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -341,7 +341,7 @@ impl i32 as Empty { // CHECK:STDOUT: %.loc10_16.2: type = converted %.loc10_14, constants.%.1 [template = constants.%.1] // CHECK:STDOUT: %.loc10_16.3: type = converted %.loc10_16.1, constants.%.2 [template = constants.%.2] // CHECK:STDOUT: %b.param: %.2 = param b, runtime_param -// CHECK:STDOUT: %b.loc10: %.2 = bind_symbolic_name b, 0, %b.param [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: %b.loc10_8.1: %.2 = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc10_8.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc22_13: %.1 = tuple_literal () // CHECK:STDOUT: %.loc22_17: %.1 = tuple_literal () @@ -373,13 +373,13 @@ impl i32 as Empty { // CHECK:STDOUT: .d = %d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%b.loc10: %.2) { -// CHECK:STDOUT: %b.1: %.2 = bind_symbolic_name b, 0 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: generic fn @F(%b.loc10_8.1: %.2) { +// CHECK:STDOUT: %b.loc10_8.2: %.2 = bind_symbolic_name b, 0 [symbolic = %b.loc10_8.2 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %c.1: %.7 = bind_symbolic_name c, 1 [symbolic = %c.1 (constants.%c)] +// CHECK:STDOUT: %c.loc11_9.2: %.7 = bind_symbolic_name c, 1 [symbolic = %c.loc11_9.2 (constants.%c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%b.loc10: %.2) { +// CHECK:STDOUT: fn(%b.loc10_8.1: %.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc11_15: %.1 = tuple_literal () // CHECK:STDOUT: %.loc11_19: %.1 = tuple_literal () @@ -396,7 +396,7 @@ impl i32 as Empty { // CHECK:STDOUT: %.loc11_31.3: %.1 = converted %.loc11_30, %tuple.loc11_30 [template = constants.%tuple.1] // CHECK:STDOUT: %tuple.loc11_31: %.7 = tuple_value (%.loc11_31.2, %.loc11_31.3) [template = constants.%tuple.3] // CHECK:STDOUT: %.loc11_32: %.7 = converted %.loc11_31.1, %tuple.loc11_31 [template = constants.%tuple.3] -// CHECK:STDOUT: %c.loc11: %.7 = bind_symbolic_name c, 1, %.loc11_32 [symbolic = %c.1 (constants.%c)] +// CHECK:STDOUT: %c.loc11_9.1: %.7 = bind_symbolic_name c, 1, %.loc11_32 [symbolic = %c.loc11_9.2 (constants.%c)] // CHECK:STDOUT: %.loc13_14.1: %.1 = tuple_literal () // CHECK:STDOUT: %.loc13_14.2: type = converted %.loc13_14.1, constants.%.1 [template = constants.%.1] // CHECK:STDOUT: %a1.var: ref %.1 = var a1 @@ -411,7 +411,7 @@ impl i32 as Empty { // CHECK:STDOUT: %.loc14_17.3: type = converted %.loc14_17.1, constants.%.2 [template = constants.%.2] // CHECK:STDOUT: %b1.var: ref %.2 = var b1 // CHECK:STDOUT: %b1: ref %.2 = bind_name b1, %b1.var -// CHECK:STDOUT: %b.ref: %.2 = name_ref b, %b.loc10 [symbolic = %b.1 (constants.%b)] +// CHECK:STDOUT: %b.ref: %.2 = name_ref b, %b.loc10_8.1 [symbolic = %b.loc10_8.2 (constants.%b)] // CHECK:STDOUT: %.loc14_21.1: %.1 = tuple_access %b.ref, element0 // CHECK:STDOUT: %.loc14_21.2: ref %.1 = tuple_access %b1.var, element0 // CHECK:STDOUT: %.loc14_21.3: init %.1 = tuple_init () to %.loc14_21.2 [template = constants.%tuple.1] @@ -427,7 +427,7 @@ impl i32 as Empty { // CHECK:STDOUT: %.loc15_20.4: type = converted %.loc15_20.1, constants.%.7 [template = constants.%.7] // CHECK:STDOUT: %c1.var: ref %.7 = var c1 // CHECK:STDOUT: %c1: ref %.7 = bind_name c1, %c1.var -// CHECK:STDOUT: %c.ref: %.7 = name_ref c, %c.loc11 [symbolic = %c.1 (constants.%c)] +// CHECK:STDOUT: %c.ref: %.7 = name_ref c, %c.loc11_9.1 [symbolic = %c.loc11_9.2 (constants.%c)] // CHECK:STDOUT: %.loc15_24.1: %.1 = tuple_access %c.ref, element0 // CHECK:STDOUT: %.loc15_24.2: ref %.1 = tuple_access %c1.var, element0 // CHECK:STDOUT: %.loc15_24.3: init %.1 = tuple_init () to %.loc15_24.2 [template = constants.%tuple.1] @@ -470,7 +470,7 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%b) { -// CHECK:STDOUT: %b.1 => constants.%b +// CHECK:STDOUT: %b.loc10_8.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_invalid_let_after.carbon diff --git a/toolchain/check/testdata/namespace/fail_params.carbon b/toolchain/check/testdata/namespace/fail_params.carbon index 595383c4cf5f..de30fc56327e 100644 --- a/toolchain/check/testdata/namespace/fail_params.carbon +++ b/toolchain/check/testdata/namespace/fail_params.carbon @@ -94,7 +94,7 @@ fn D(T:! type).F() {} // CHECK:STDOUT: %D: = namespace [template] {} // CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.2] {} { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc39: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc39_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc39_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -105,8 +105,8 @@ fn D(T:! type).F() {} // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @.1(%T.loc39: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @.1(%T.loc39_6.1: type) { +// CHECK:STDOUT: %T.loc39_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc39_6.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -117,6 +117,6 @@ fn D(T:! type).F() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.1(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc39_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index 634b2785aa0f..e2d3430c0347 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -151,9 +151,9 @@ fn Test() { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc27: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc27 [symbolic = %T.1 (constants.%T)] -// CHECK:STDOUT: %return: ref @Source.%T.1 (%T) = var +// CHECK:STDOUT: %T.loc27_11.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc27_11.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc27_11.1 [symbolic = %T.loc27_11.2 (constants.%T)] +// CHECK:STDOUT: %return: ref @Source.%T.loc27_11.2 (%T) = var // CHECK:STDOUT: } // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [template = constants.%Test] {} {} // CHECK:STDOUT: } @@ -261,10 +261,10 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Sink_X(%x: %X); // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Source(%T.loc27: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @Source(%T.loc27_11.1: type) { +// CHECK:STDOUT: %T.loc27_11.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc27_11.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc27: type) -> @Source.%T.1 (%T); +// CHECK:STDOUT: fn(%T.loc27_11.1: type) -> @Source.%T.loc27_11.2 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Test() { @@ -365,14 +365,14 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc27_11.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%X) { -// CHECK:STDOUT: %T.1 => constants.%X +// CHECK:STDOUT: %T.loc27_11.2 => constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(i32) { -// CHECK:STDOUT: %T.1 => i32 +// CHECK:STDOUT: %T.loc27_11.2 => i32 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon b/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon index c8951d12d9b5..e51b037138a4 100644 --- a/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon +++ b/toolchain/check/testdata/packages/no_prelude/fail_export_name_params.carbon @@ -50,34 +50,34 @@ export C2(T:! type); // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc4: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_10.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_10.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C2.decl: %C2.type = class_decl @C2 [template = constants.%C2.1] { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 // CHECK:STDOUT: } { // CHECK:STDOUT: %T.param: type = param T, runtime_param -// CHECK:STDOUT: %T.loc5: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc5_10.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc5_10.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C1(%T.loc4: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C1(%T.loc4_10.1: type) { +// CHECK:STDOUT: %T.loc4_10.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_10.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C2(%T.loc5: type) { -// CHECK:STDOUT: %T.1: type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic class @C2(%T.loc5_10.1: type) { +// CHECK:STDOUT: %T.loc5_10.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_10.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C1(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc4_10.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C2(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc5_10.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_b.carbon diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index 829a70002e18..fbbe32457e6a 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -142,7 +142,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %.loc8_27.2: type = converted %int.make_type_32.loc8_27, %.loc8_27.1 [template = i32] // CHECK:STDOUT: %.loc8_30: type = struct_type {.a: i32, .b: i32} [template = constants.%.11] // CHECK:STDOUT: %S.param: %.11 = param S, runtime_param -// CHECK:STDOUT: %S.loc8: %.11 = bind_symbolic_name S, 0, %S.param [symbolic = %S.1 (constants.%S)] +// CHECK:STDOUT: %S.loc8_9.1: %.11 = bind_symbolic_name S, 0, %S.param [symbolic = %S.loc8_9.2 (constants.%S)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.1] @@ -156,8 +156,8 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%S.loc8: %.11) { -// CHECK:STDOUT: %S.1: %.11 = bind_symbolic_name S, 0 [symbolic = %S.1 (constants.%S)] +// CHECK:STDOUT: generic class @C(%S.loc8_9.1: %.11) { +// CHECK:STDOUT: %S.loc8_9.2: %.11 = bind_symbolic_name S, 0 [symbolic = %S.loc8_9.2 (constants.%S)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -204,11 +204,11 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%S) { -// CHECK:STDOUT: %S.1 => constants.%S +// CHECK:STDOUT: %S.loc8_9.2 => constants.%S // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%struct.4) { -// CHECK:STDOUT: %S.1 => constants.%struct.4 +// CHECK:STDOUT: %S.loc8_9.2 => constants.%struct.4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- implicit.impl.carbon diff --git a/toolchain/check/testdata/tuple/import.carbon b/toolchain/check/testdata/tuple/import.carbon index ccaa30163b10..4425f16752bc 100644 --- a/toolchain/check/testdata/tuple/import.carbon +++ b/toolchain/check/testdata/tuple/import.carbon @@ -156,7 +156,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %.loc7_22.5: type = converted %int.make_type_32.loc7_19, %.loc7_22.4 [template = i32] // CHECK:STDOUT: %.loc7_22.6: type = converted %.loc7_22.1, constants.%.9 [template = constants.%.9] // CHECK:STDOUT: %X.param: %.9 = param X, runtime_param -// CHECK:STDOUT: %X.loc7: %.9 = bind_symbolic_name X, 0, %X.param [symbolic = %X.1 (constants.%X)] +// CHECK:STDOUT: %X.loc7_9.1: %.9 = bind_symbolic_name X, 0, %X.param [symbolic = %X.loc7_9.2 (constants.%X)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C.1] @@ -170,8 +170,8 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%X.loc7: %.9) { -// CHECK:STDOUT: %X.1: %.9 = bind_symbolic_name X, 0 [symbolic = %X.1 (constants.%X)] +// CHECK:STDOUT: generic class @C(%X.loc7_9.1: %.9) { +// CHECK:STDOUT: %X.loc7_9.2: %.9 = bind_symbolic_name X, 0 [symbolic = %X.loc7_9.2 (constants.%X)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -225,11 +225,11 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { -// CHECK:STDOUT: %X.1 => constants.%X +// CHECK:STDOUT: %X.loc7_9.2 => constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.5) { -// CHECK:STDOUT: %X.1 => constants.%tuple.5 +// CHECK:STDOUT: %X.loc7_9.2 => constants.%tuple.5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- implicit.impl.carbon diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index 0e26b67a260d..dea941a0518b 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -219,7 +219,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_equivalent %.Self.ref, %.loc11_37 // CHECK:STDOUT: } // CHECK:STDOUT: %U.param: %I.type = param U, runtime_param -// CHECK:STDOUT: %U.loc11: %I.type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc11_15.1: %I.type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc11_15.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %Impls.decl: %Impls.type = fn_decl @Impls [template = constants.%Impls] { // CHECK:STDOUT: %V.patt: %J.type = symbolic_binding_pattern V, 0 @@ -234,7 +234,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_impls %.loc13_22.2, %I.ref // CHECK:STDOUT: } // CHECK:STDOUT: %V.param: %J.type = param V, runtime_param -// CHECK:STDOUT: %V.loc13: %J.type = bind_symbolic_name V, 0, %V.param [symbolic = %V.1 (constants.%V)] +// CHECK:STDOUT: %V.loc13_10.1: %J.type = bind_symbolic_name V, 0, %V.param [symbolic = %V.loc13_10.2 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: %And.decl: %And.type = fn_decl @And [template = constants.%And] { // CHECK:STDOUT: %W.patt: %I.type = symbolic_binding_pattern W, 0 @@ -253,7 +253,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_equivalent %Member.ref, %.loc15_50 // CHECK:STDOUT: } // CHECK:STDOUT: %W.param: %I.type = param W, runtime_param -// CHECK:STDOUT: %W.loc15: %I.type = bind_symbolic_name W, 0, %W.param [symbolic = %W.1 (constants.%W)] +// CHECK:STDOUT: %W.loc15_8.1: %I.type = bind_symbolic_name W, 0, %W.param [symbolic = %W.loc15_8.2 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -280,34 +280,34 @@ fn NotEmptyStruct() { // CHECK:STDOUT: witness = (%Member, %Second) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EqualEqual(%U.loc11: %I.type) { -// CHECK:STDOUT: %U.1: %I.type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @EqualEqual(%U.loc11_15.1: %I.type) { +// CHECK:STDOUT: %U.loc11_15.2: %I.type = bind_symbolic_name U, 0 [symbolic = %U.loc11_15.2 (constants.%U)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc11: %I.type); +// CHECK:STDOUT: fn(%U.loc11_15.1: %I.type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Impls(%V.loc13: %J.type) { -// CHECK:STDOUT: %V.1: %J.type = bind_symbolic_name V, 0 [symbolic = %V.1 (constants.%V)] +// CHECK:STDOUT: generic fn @Impls(%V.loc13_10.1: %J.type) { +// CHECK:STDOUT: %V.loc13_10.2: %J.type = bind_symbolic_name V, 0 [symbolic = %V.loc13_10.2 (constants.%V)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%V.loc13: %J.type); +// CHECK:STDOUT: fn(%V.loc13_10.1: %J.type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @And(%W.loc15: %I.type) { -// CHECK:STDOUT: %W.1: %I.type = bind_symbolic_name W, 0 [symbolic = %W.1 (constants.%W)] +// CHECK:STDOUT: generic fn @And(%W.loc15_8.1: %I.type) { +// CHECK:STDOUT: %W.loc15_8.2: %I.type = bind_symbolic_name W, 0 [symbolic = %W.loc15_8.2 (constants.%W)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%W.loc15: %I.type); +// CHECK:STDOUT: fn(%W.loc15_8.1: %I.type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @EqualEqual(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc11_15.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Impls(constants.%V) { -// CHECK:STDOUT: %V.1 => constants.%V +// CHECK:STDOUT: %V.loc13_10.2 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @And(constants.%W) { -// CHECK:STDOUT: %W.1 => constants.%W +// CHECK:STDOUT: %W.loc15_8.2 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_equal_constraint.carbon @@ -388,7 +388,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_rewrite %P.ref, // CHECK:STDOUT: } // CHECK:STDOUT: %T.param: %N.type = param T, runtime_param -// CHECK:STDOUT: %T.loc15: %N.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc15_10.1: %N.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc15_10.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -430,10 +430,10 @@ fn NotEmptyStruct() { // CHECK:STDOUT: fn[%self: @Convert.%Self (%Self.3)]() -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Equal(%T.loc15: %N.type) { -// CHECK:STDOUT: %T.1: %N.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @Equal(%T.loc15_10.1: %N.type) { +// CHECK:STDOUT: %T.loc15_10.2: %N.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_10.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc15: %N.type); +// CHECK:STDOUT: fn(%T.loc15_10.1: %N.type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -467,7 +467,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Equal(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc15_10.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_associated_type_impls.carbon @@ -552,7 +552,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_impls , %M.ref // CHECK:STDOUT: } // CHECK:STDOUT: %W.param: %K.type = param W, runtime_param -// CHECK:STDOUT: %W.loc18: %K.type = bind_symbolic_name W, 0, %W.param [symbolic = %W.1 (constants.%W)] +// CHECK:STDOUT: %W.loc18_24.1: %K.type = bind_symbolic_name W, 0, %W.param [symbolic = %W.loc18_24.2 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -611,10 +611,10 @@ fn NotEmptyStruct() { // CHECK:STDOUT: fn[%self: @Convert.%Self (%Self.5)]() -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AssociatedTypeImpls(%W.loc18: %K.type) { -// CHECK:STDOUT: %W.1: %K.type = bind_symbolic_name W, 0 [symbolic = %W.1 (constants.%W)] +// CHECK:STDOUT: generic fn @AssociatedTypeImpls(%W.loc18_24.1: %K.type) { +// CHECK:STDOUT: %W.loc18_24.2: %K.type = bind_symbolic_name W, 0 [symbolic = %W.loc18_24.2 (constants.%W)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%W.loc18: %K.type); +// CHECK:STDOUT: fn(%W.loc18_24.1: %K.type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -648,7 +648,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AssociatedTypeImpls(constants.%W) { -// CHECK:STDOUT: %W.1 => constants.%W +// CHECK:STDOUT: %W.loc18_24.2 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_check_rewrite_constraints.carbon @@ -741,7 +741,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_rewrite %Member.ref, // CHECK:STDOUT: } // CHECK:STDOUT: %X.param: %I.type = param X, runtime_param -// CHECK:STDOUT: %X.loc16: %I.type = bind_symbolic_name X, 0, %X.param [symbolic = %X.1 (constants.%X)] +// CHECK:STDOUT: %X.loc16_24.1: %I.type = bind_symbolic_name X, 0, %X.param [symbolic = %X.loc16_24.2 (constants.%X)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -780,10 +780,10 @@ fn NotEmptyStruct() { // CHECK:STDOUT: fn[%self: @Convert.%Self (%Self.3)]() -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @RewriteTypeMismatch(%X.loc16: %I.type) { -// CHECK:STDOUT: %X.1: %I.type = bind_symbolic_name X, 0 [symbolic = %X.1 (constants.%X)] +// CHECK:STDOUT: generic fn @RewriteTypeMismatch(%X.loc16_24.1: %I.type) { +// CHECK:STDOUT: %X.loc16_24.2: %I.type = bind_symbolic_name X, 0 [symbolic = %X.loc16_24.2 (constants.%X)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%X.loc16: %I.type); +// CHECK:STDOUT: fn(%X.loc16_24.1: %I.type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -817,7 +817,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @RewriteTypeMismatch(constants.%X) { -// CHECK:STDOUT: %X.1 => constants.%X +// CHECK:STDOUT: %X.loc16_24.2 => constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_left_of_impls_non_type.carbon @@ -886,7 +886,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_impls , type // CHECK:STDOUT: } // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc11: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc11_17.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc11_17.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -917,10 +917,10 @@ fn NotEmptyStruct() { // CHECK:STDOUT: fn[%self: @Convert.%Self (%Self.2)]() -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NonTypeImpls(%U.loc11: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @NonTypeImpls(%U.loc11_17.1: type) { +// CHECK:STDOUT: %U.loc11_17.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc11_17.2 (constants.%U)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc11: type); +// CHECK:STDOUT: fn(%U.loc11_17.1: type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -954,7 +954,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NonTypeImpls(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc11_17.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_right_of_impls_non_type.carbon @@ -1024,7 +1024,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_impls %.Self.ref, // CHECK:STDOUT: } // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc11: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc11_17.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc11_17.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1055,10 +1055,10 @@ fn NotEmptyStruct() { // CHECK:STDOUT: fn[%self: @Convert.%Self (%Self.2)]() -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplsNonType(%U.loc11: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @ImplsNonType(%U.loc11_17.1: type) { +// CHECK:STDOUT: %U.loc11_17.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc11_17.2 (constants.%U)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc11: type); +// CHECK:STDOUT: fn(%U.loc11_17.1: type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -1092,7 +1092,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplsNonType(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc11_17.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_right_of_impls_non_facet_type.carbon @@ -1140,20 +1140,20 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_impls %.Self.ref, // CHECK:STDOUT: } // CHECK:STDOUT: %U.param: type = param U, runtime_param -// CHECK:STDOUT: %U.loc8: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc8_24.1: type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc8_24.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Int32() -> type = "int.make_type_32"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ImplsOfNonFacetType(%U.loc8: type) { -// CHECK:STDOUT: %U.1: type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @ImplsOfNonFacetType(%U.loc8_24.1: type) { +// CHECK:STDOUT: %U.loc8_24.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_24.2 (constants.%U)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc8: type); +// CHECK:STDOUT: fn(%U.loc8_24.1: type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplsOfNonFacetType(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc8_24.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_enforce_constraint.carbon @@ -1253,7 +1253,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: requirement_equivalent %.Self.ref, %.loc26_38 // CHECK:STDOUT: } // CHECK:STDOUT: %Y.param: %J.type = param Y, runtime_param -// CHECK:STDOUT: %Y.loc26: %J.type = bind_symbolic_name Y, 0, %Y.param [symbolic = %Y.1 (constants.%Y)] +// CHECK:STDOUT: %Y.loc26_16.1: %J.type = bind_symbolic_name Y, 0, %Y.param [symbolic = %Y.loc26_16.2 (constants.%Y)] // CHECK:STDOUT: } // CHECK:STDOUT: %NotEmptyStruct.decl: %NotEmptyStruct.type = fn_decl @NotEmptyStruct [template = constants.%NotEmptyStruct] {} {} // CHECK:STDOUT: } @@ -1322,10 +1322,10 @@ fn NotEmptyStruct() { // CHECK:STDOUT: fn[%self: @Convert.%Self (%Self.3)]() -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EmptyStruct(%Y.loc26: %J.type) { -// CHECK:STDOUT: %Y.1: %J.type = bind_symbolic_name Y, 0 [symbolic = %Y.1 (constants.%Y)] +// CHECK:STDOUT: generic fn @EmptyStruct(%Y.loc26_16.1: %J.type) { +// CHECK:STDOUT: %Y.loc26_16.2: %J.type = bind_symbolic_name Y, 0 [symbolic = %Y.loc26_16.2 (constants.%Y)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%Y.loc26: %J.type); +// CHECK:STDOUT: fn(%Y.loc26_16.1: %J.type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @NotEmptyStruct() { @@ -1374,6 +1374,6 @@ fn NotEmptyStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @EmptyStruct(constants.%Y) { -// CHECK:STDOUT: %Y.1 => constants.%Y +// CHECK:STDOUT: %Y.loc26_16.2 => constants.%Y // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/where_expr/designator.carbon b/toolchain/check/testdata/where_expr/designator.carbon index 51dfd474272f..31a60588aac4 100644 --- a/toolchain/check/testdata/where_expr/designator.carbon +++ b/toolchain/check/testdata/where_expr/designator.carbon @@ -141,7 +141,7 @@ class D { // CHECK:STDOUT: requirement_equivalent %.Self.ref, %.loc8_37 // CHECK:STDOUT: } // CHECK:STDOUT: %T.param: %I.type = param T, runtime_param -// CHECK:STDOUT: %T.loc8: %I.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_15.1: %I.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_15.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %PeriodMember.decl: %PeriodMember.type = fn_decl @PeriodMember [template = constants.%PeriodMember] { // CHECK:STDOUT: %U.patt: %I.type = symbolic_binding_pattern U, 0 @@ -155,7 +155,7 @@ class D { // CHECK:STDOUT: requirement_equivalent %Member.ref, %.loc10_41 // CHECK:STDOUT: } // CHECK:STDOUT: %U.param: %I.type = param U, runtime_param -// CHECK:STDOUT: %U.loc10: %I.type = bind_symbolic_name U, 0, %U.param [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: %U.loc10_17.1: %I.type = bind_symbolic_name U, 0, %U.param [symbolic = %U.loc10_17.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %TypeSelfImpls.decl: %TypeSelfImpls.type = fn_decl @TypeSelfImpls [template = constants.%TypeSelfImpls] { // CHECK:STDOUT: %V.patt: type = symbolic_binding_pattern V, 0 @@ -167,7 +167,7 @@ class D { // CHECK:STDOUT: requirement_impls %.Self.ref, %I.ref // CHECK:STDOUT: } // CHECK:STDOUT: %V.param: type = param V, runtime_param -// CHECK:STDOUT: %V.loc12: type = bind_symbolic_name V, 0, %V.param [symbolic = %V.1 (constants.%V)] +// CHECK:STDOUT: %V.loc12_18.1: type = bind_symbolic_name V, 0, %V.param [symbolic = %V.loc12_18.2 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -182,34 +182,34 @@ class D { // CHECK:STDOUT: witness = (%Member) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @PeriodSelf(%T.loc8: %I.type) { -// CHECK:STDOUT: %T.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @PeriodSelf(%T.loc8_15.1: %I.type) { +// CHECK:STDOUT: %T.loc8_15.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc8: %I.type); +// CHECK:STDOUT: fn(%T.loc8_15.1: %I.type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @PeriodMember(%U.loc10: %I.type) { -// CHECK:STDOUT: %U.1: %I.type = bind_symbolic_name U, 0 [symbolic = %U.1 (constants.%U)] +// CHECK:STDOUT: generic fn @PeriodMember(%U.loc10_17.1: %I.type) { +// CHECK:STDOUT: %U.loc10_17.2: %I.type = bind_symbolic_name U, 0 [symbolic = %U.loc10_17.2 (constants.%U)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%U.loc10: %I.type); +// CHECK:STDOUT: fn(%U.loc10_17.1: %I.type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TypeSelfImpls(%V.loc12: type) { -// CHECK:STDOUT: %V.1: type = bind_symbolic_name V, 0 [symbolic = %V.1 (constants.%V)] +// CHECK:STDOUT: generic fn @TypeSelfImpls(%V.loc12_18.1: type) { +// CHECK:STDOUT: %V.loc12_18.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc12_18.2 (constants.%V)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%V.loc12: type); +// CHECK:STDOUT: fn(%V.loc12_18.1: type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PeriodSelf(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc8_15.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PeriodMember(constants.%U) { -// CHECK:STDOUT: %U.1 => constants.%U +// CHECK:STDOUT: %U.loc10_17.2 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TypeSelfImpls(constants.%V) { -// CHECK:STDOUT: %V.1 => constants.%V +// CHECK:STDOUT: %V.loc12_18.2 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_wrong_member.carbon @@ -260,7 +260,7 @@ class D { // CHECK:STDOUT: requirement_rewrite %Mismatch.ref, // CHECK:STDOUT: } // CHECK:STDOUT: %W.param: %J.type = param W, runtime_param -// CHECK:STDOUT: %W.loc12: %J.type = bind_symbolic_name W, 0, %W.param [symbolic = %W.1 (constants.%W)] +// CHECK:STDOUT: %W.loc12_19.1: %J.type = bind_symbolic_name W, 0, %W.param [symbolic = %W.loc12_19.2 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -275,14 +275,14 @@ class D { // CHECK:STDOUT: witness = (%Member) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @PeriodMismatch(%W.loc12: %J.type) { -// CHECK:STDOUT: %W.1: %J.type = bind_symbolic_name W, 0 [symbolic = %W.1 (constants.%W)] +// CHECK:STDOUT: generic fn @PeriodMismatch(%W.loc12_19.1: %J.type) { +// CHECK:STDOUT: %W.loc12_19.2: %J.type = bind_symbolic_name W, 0 [symbolic = %W.loc12_19.2 (constants.%W)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%W.loc12: %J.type); +// CHECK:STDOUT: fn(%W.loc12_19.1: %J.type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PeriodMismatch(constants.%W) { -// CHECK:STDOUT: %W.1 => constants.%W +// CHECK:STDOUT: %W.loc12_19.2 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_designator_matches_var.carbon diff --git a/toolchain/check/testdata/where_expr/fail_not_facet.carbon b/toolchain/check/testdata/where_expr/fail_not_facet.carbon index 31df1480c59a..4f745552d91d 100644 --- a/toolchain/check/testdata/where_expr/fail_not_facet.carbon +++ b/toolchain/check/testdata/where_expr/fail_not_facet.carbon @@ -67,7 +67,7 @@ fn F(T:! i32 where .Self == bool); // CHECK:STDOUT: requirement_equivalent %.Self.ref, %bool.make_type // CHECK:STDOUT: } // CHECK:STDOUT: %T.param: = param T, runtime_param -// CHECK:STDOUT: %T.loc7: = bind_symbolic_name T, 0, %T.param [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.1: = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -75,13 +75,13 @@ fn F(T:! i32 where .Self == bool); // CHECK:STDOUT: // CHECK:STDOUT: fn @Bool() -> type = "bool.make_type"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc7: ) { -// CHECK:STDOUT: %T.1: = bind_symbolic_name T, 0 [symbolic = %T.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.1: ) { +// CHECK:STDOUT: %T.loc7_6.2: = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.loc7: ); +// CHECK:STDOUT: fn(%T.loc7_6.1: ); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.1 => constants.%T +// CHECK:STDOUT: %T.loc7_6.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: