diff --git a/toolchain/check/testdata/array/basics.carbon b/toolchain/check/testdata/array/basics.carbon index cb123917ba55..bbd040b3de78 100644 --- a/toolchain/check/testdata/array/basics.carbon +++ b/toolchain/check/testdata/array/basics.carbon @@ -181,10 +181,10 @@ var a: array(1, 1); // CHECK:STDOUT: %tuple.type.14a: type = tuple_type (%tuple.type.734, %tuple.type.734) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %Op.type.fe9: type = fn_type @Op.2, @Destroy.impl(%tuple.type.734) [concrete] +// CHECK:STDOUT: %Op.type.fe9: type = fn_type @Op.1, @Destroy.impl(%tuple.type.734) [concrete] // CHECK:STDOUT: %Op.ae1: %Op.type.fe9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.dbe: type = ptr_type %tuple.type.734 [concrete] -// CHECK:STDOUT: %Op.type.280: type = fn_type @Op.2, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.280: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.d4f: %Op.type.280 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -253,9 +253,9 @@ var a: array(1, 1); // CHECK:STDOUT: %tuple.type: type = tuple_type (%empty_tuple.type, %empty_tuple.type, %empty_tuple.type) [concrete] // CHECK:STDOUT: %ptr.7fe: type = ptr_type %tuple.type [concrete] // CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %tuple.type [concrete] -// CHECK:STDOUT: %Op.type.073: type = fn_type @Op.2, @Destroy.impl(%tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.073: type = fn_type @Op.1, @Destroy.impl(%tuple.type) [concrete] // CHECK:STDOUT: %Op.dce: %Op.type.073 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.c60: type = fn_type @Op.2, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.c60: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.f81: %Op.type.c60 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -319,10 +319,10 @@ var a: array(1, 1); // CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%empty_tuple) [concrete] -// CHECK:STDOUT: %Op.type.23e: type = fn_type @Op.2, @Destroy.impl(%tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.23e: type = fn_type @Op.1, @Destroy.impl(%tuple.type) [concrete] // CHECK:STDOUT: %Op.f19: %Op.type.23e = struct_value () [concrete] // CHECK:STDOUT: %ptr.652: type = ptr_type %tuple.type [concrete] -// CHECK:STDOUT: %Op.type.471: type = fn_type @Op.2, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.471: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.688: %Op.type.471 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/array/import.carbon b/toolchain/check/testdata/array/import.carbon index afa9ce78c0c1..6ded94ca36ec 100644 --- a/toolchain/check/testdata/array/import.carbon +++ b/toolchain/check/testdata/array/import.carbon @@ -37,7 +37,7 @@ fn G(n: i32) -> i32 { // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_42, %i32 [concrete] // CHECK:STDOUT: %ptr.830: type = ptr_type %array_type [concrete] -// CHECK:STDOUT: %Op.type.b8c: type = fn_type @Op.3, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.b8c: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.552: %Op.type.b8c = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/array/index_not_literal.carbon b/toolchain/check/testdata/array/index_not_literal.carbon index 59195cb25da6..031f24186568 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -62,17 +62,17 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -82,7 +82,7 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [concrete] -// CHECK:STDOUT: %Op.type.1e4: type = fn_type @Op.3, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.1e4: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.f0b: %Op.type.1e4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -113,7 +113,7 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %int_1.loc10_23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc10_20.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_20.1: = bound_method %int_1.loc10_13, %impl.elem0.loc10_20.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc10_20.1: = specific_function %impl.elem0.loc10_20.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_20.1: = specific_function %impl.elem0.loc10_20.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_20.2: = bound_method %int_1.loc10_13, %specific_fn.loc10_20.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc10_20.1: init %i32 = call %bound_method.loc10_20.2(%int_1.loc10_13) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc10_20.2: init %i32 = converted %int_1.loc10_13, %int.convert_checked.loc10_20.1 [concrete = constants.%int_1.5d2] @@ -123,7 +123,7 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %.loc10_20.5: init %i32 = initialize_from %.loc10_20.2 to %.loc10_20.4 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc10_20.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_20.3: = bound_method %int_2.loc10_16, %impl.elem0.loc10_20.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc10_20.2: = specific_function %impl.elem0.loc10_20.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_20.2: = specific_function %impl.elem0.loc10_20.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_20.4: = bound_method %int_2.loc10_16, %specific_fn.loc10_20.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc10_20.2: init %i32 = call %bound_method.loc10_20.4(%int_2.loc10_16) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc10_20.6: init %i32 = converted %int_2.loc10_16, %int.convert_checked.loc10_20.2 [concrete = constants.%int_2.ef8] @@ -132,7 +132,7 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %.loc10_20.8: init %i32 = initialize_from %.loc10_20.6 to %.loc10_20.7 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %impl.elem0.loc10_20.3: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_20.5: = bound_method %int_3, %impl.elem0.loc10_20.3 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc10_20.3: = specific_function %impl.elem0.loc10_20.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_20.3: = specific_function %impl.elem0.loc10_20.3, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_20.6: = bound_method %int_3, %specific_fn.loc10_20.3 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc10_20.3: init %i32 = call %bound_method.loc10_20.6(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc10_20.9: init %i32 = converted %int_3, %int.convert_checked.loc10_20.3 [concrete = constants.%int_3.822] @@ -145,7 +145,7 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %.loc10_20.15: %array_type = bind_value %.loc10_20.14 // CHECK:STDOUT: %impl.elem0.loc10_23: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_23.1: = bound_method %int_1.loc10_23, %impl.elem0.loc10_23 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc10_23: = specific_function %impl.elem0.loc10_23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_23: = specific_function %impl.elem0.loc10_23, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_23.2: = bound_method %int_1.loc10_23, %specific_fn.loc10_23 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc10_23: init %i32 = call %bound_method.loc10_23.2(%int_1.loc10_23) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc10_23.1: %i32 = value_of_initializer %int.convert_checked.loc10_23 [concrete = constants.%int_1.5d2] @@ -173,17 +173,17 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -206,7 +206,7 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_24.1: = bound_method %.loc6_24.1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_24.2: = bound_method %.loc6_24.1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc6_24.2(%.loc6_24.1) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc6_24.2: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index d2f578795675..3342c2ae02f5 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -97,11 +97,11 @@ fn H() { G(3); } // CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.0b9), @Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc4_6.1: type) { +// CHECK:STDOUT: generic fn @G(%T.loc4_6.2: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %array_type.loc7_22.2: type = array_type constants.%int_0, %T.loc4_6.2 [symbolic = %array_type.loc7_22.2 (constants.%array_type.281)] +// CHECK:STDOUT: %array_type.loc7_22.2: type = array_type constants.%int_0, %T.loc4_6.1 [symbolic = %array_type.loc7_22.2 (constants.%array_type.281)] // CHECK:STDOUT: %require_complete.loc7_22: = require_complete_type %array_type.loc7_22.2 [symbolic = %require_complete.loc7_22 (constants.%require_complete.b7f)] // CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_22.2 [symbolic = %pattern_type (constants.%pattern_type.d48)] // CHECK:STDOUT: %array: @G.%array_type.loc7_22.2 (%array_type.281) = tuple_value () [symbolic = %array (constants.%array.2ed)] @@ -125,7 +125,7 @@ fn H() { G(3); } // CHECK:STDOUT: %.loc7_3.1: init @G.%array_type.loc7_22.2 (%array_type.281) = converted %.loc7_27.1, %.loc7_27.2 [symbolic = %array (constants.%array.2ed)] // CHECK:STDOUT: assign %arr.var, %.loc7_3.1 // CHECK:STDOUT: %.loc7_22: type = splice_block %array_type.loc7_22.1 [symbolic = %array_type.loc7_22.2 (constants.%array_type.281)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %array_type.loc7_22.1: type = array_type %int_0, %T.ref [symbolic = %array_type.loc7_22.2 (constants.%array_type.281)] // CHECK:STDOUT: } @@ -141,11 +141,11 @@ fn H() { G(3); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%C) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%C +// CHECK:STDOUT: %T.loc4_6.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %array_type.loc7_22.2 => constants.%array_type.6f1 @@ -175,7 +175,7 @@ fn H() { G(3); } // CHECK:STDOUT: %From: Core.IntLiteral = bind_symbolic_name From, 0 [symbolic] // CHECK:STDOUT: %Convert.type.708: type = fn_type @Convert.3, @ImplicitAs.impl.971(%From) [symbolic] // CHECK:STDOUT: %Convert.c68: %Convert.type.708 = struct_value () [symbolic] -// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [concrete] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.a11: = impl_witness imports.%ImplicitAs.impl_witness_table.1d9, @ImplicitAs.impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @ImplicitAs.impl.971(%int_32) [concrete] @@ -203,7 +203,7 @@ fn H() { G(3); } // CHECK:STDOUT: %ImplicitAs.impl_witness_table.1d9 = impl_witness_table (%Core.import_ref.85c), @ImplicitAs.impl.971 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%N.loc5_15.1: %i32) { +// CHECK:STDOUT: generic fn @G(%N.loc5_15.2: %i32) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -228,11 +228,11 @@ fn H() { G(3); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%N.51e) { -// CHECK:STDOUT: %N.loc5_15.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc5_15.1 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%int_3.822) { -// CHECK:STDOUT: %N.loc5_15.2 => constants.%int_3.822 +// CHECK:STDOUT: %N.loc5_15.1 => constants.%int_3.822 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %.loc11_23.2 => constants.%inst.splice_block diff --git a/toolchain/check/testdata/as/basics.carbon b/toolchain/check/testdata/as/basics.carbon index ca70a36b69b1..9bef609370db 100644 --- a/toolchain/check/testdata/as/basics.carbon +++ b/toolchain/check/testdata/as/basics.carbon @@ -209,10 +209,10 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple.type.b67: type = tuple_type (%X, %X) [concrete] // CHECK:STDOUT: %pattern_type.bb7: type = pattern_type %tuple.type.b67 [concrete] -// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.2, @Destroy.impl(%X) [concrete] +// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.1, @Destroy.impl(%X) [concrete] // CHECK:STDOUT: %Op.33a: %Op.type.9e1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] -// CHECK:STDOUT: %Op.type.df3: type = fn_type @Op.2, @Destroy.impl(%tuple.type.b67) [concrete] +// CHECK:STDOUT: %Op.type.df3: type = fn_type @Op.1, @Destroy.impl(%tuple.type.b67) [concrete] // CHECK:STDOUT: %Op.279: %Op.type.df3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.120: type = ptr_type %tuple.type.b67 [concrete] // CHECK:STDOUT: } @@ -318,7 +318,7 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %pattern_type.1c6: type = pattern_type %ptr.d17 [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.2, @Destroy.impl(%X) [concrete] +// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.1, @Destroy.impl(%X) [concrete] // CHECK:STDOUT: %Op.33a: %Op.type.9e1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon index d290d236062a..2a6f5dda08df 100644 --- a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon +++ b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon @@ -98,7 +98,7 @@ fn F(); // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] @@ -214,7 +214,7 @@ fn F(); // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/duplicate_name_same_line.carbon b/toolchain/check/testdata/basics/duplicate_name_same_line.carbon index c8fe209ad2b7..36db5030aa78 100644 --- a/toolchain/check/testdata/basics/duplicate_name_same_line.carbon +++ b/toolchain/check/testdata/basics/duplicate_name_same_line.carbon @@ -25,7 +25,7 @@ fn A() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtins/print/char.carbon b/toolchain/check/testdata/builtins/print/char.carbon index adc504044582..b526b0b7c4be 100644 --- a/toolchain/check/testdata/builtins/print/char.carbon +++ b/toolchain/check/testdata/builtins/print/char.carbon @@ -34,17 +34,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To.c80: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%To.c80) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To.c80) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.921: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.921 [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.3(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %PrintChar.type.089: type = fn_type @PrintChar.1 [concrete] @@ -77,7 +77,7 @@ fn Main() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc19: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_13.1: = bound_method %int_1, %impl.elem0.loc19 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_13.2: = bound_method %int_1, %specific_fn.loc19 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %bound_method.loc19_13.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_13.1: %i32 = value_of_initializer %int.convert_checked.loc19 [concrete = constants.%int_1.5d2] @@ -88,7 +88,7 @@ fn Main() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc20: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_18.1: = bound_method %int_2, %impl.elem0.loc20 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_18.2: = bound_method %int_2, %specific_fn.loc20 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %bound_method.loc20_18.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc20_18.1: %i32 = value_of_initializer %int.convert_checked.loc20 [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/builtins/print/int.carbon b/toolchain/check/testdata/builtins/print/int.carbon index d4e73426d4a7..1d6d49d5d566 100644 --- a/toolchain/check/testdata/builtins/print/int.carbon +++ b/toolchain/check/testdata/builtins/print/int.carbon @@ -35,17 +35,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To.c80: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%To.c80) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To.c80) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.921: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.921 [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.3(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Print.type.6ed: type = fn_type @Print.1 [concrete] @@ -78,7 +78,7 @@ fn Main() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc19: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_9.1: = bound_method %int_1, %impl.elem0.loc19 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_9.2: = bound_method %int_1, %specific_fn.loc19 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %bound_method.loc19_9.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_9.1: %i32 = value_of_initializer %int.convert_checked.loc19 [concrete = constants.%int_1.5d2] @@ -89,7 +89,7 @@ fn Main() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc20: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_2, %impl.elem0.loc20 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_2, %specific_fn.loc20 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %bound_method.loc20_14.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc20_14.1: %i32 = value_of_initializer %int.convert_checked.loc20 [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/choice/basic.carbon b/toolchain/check/testdata/choice/basic.carbon index 4f054e9a2cb9..7033c3efe388 100644 --- a/toolchain/check/testdata/choice/basic.carbon +++ b/toolchain/check/testdata/choice/basic.carbon @@ -144,17 +144,17 @@ let never: Never = {}; // CHECK:STDOUT: %complete_type.de2: = complete_type_witness %struct_type.discriminant [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.54b: type = facet_type <@ImplicitAs, @ImplicitAs(%u2)> [concrete] -// CHECK:STDOUT: %Convert.type.f0e: type = fn_type @Convert.1, @ImplicitAs(%u2) [concrete] +// CHECK:STDOUT: %Convert.type.f0e: type = fn_type @Convert.2, @ImplicitAs(%u2) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.30e: type = fn_type @Convert.2, @ImplicitAs.impl.86e(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.30e: type = fn_type @Convert.1, @ImplicitAs.impl.86e(%To) [symbolic] // CHECK:STDOUT: %Convert.d1a: %Convert.type.30e = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.801: = impl_witness imports.%ImplicitAs.impl_witness_table.bb8, @ImplicitAs.impl.86e(%int_2.ecc) [concrete] -// CHECK:STDOUT: %Convert.type.70b: type = fn_type @Convert.2, @ImplicitAs.impl.86e(%int_2.ecc) [concrete] +// CHECK:STDOUT: %Convert.type.70b: type = fn_type @Convert.1, @ImplicitAs.impl.86e(%int_2.ecc) [concrete] // CHECK:STDOUT: %Convert.474: %Convert.type.70b = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.54b = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.801) [concrete] // CHECK:STDOUT: %.3e0: type = fn_type_with_self_type %Convert.type.f0e, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.5bb: = bound_method %int_0.5c6, %Convert.474 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.474, @Convert.2(%int_2.ecc) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.474, @Convert.1(%int_2.ecc) [concrete] // CHECK:STDOUT: %bound_method.d36: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.9fd: %u2 = int_value 0 [concrete] // CHECK:STDOUT: %Ordering.val.a29: %Ordering = struct_value (%int_0.9fd) [concrete] @@ -211,7 +211,7 @@ let never: Never = {}; // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc5: %.3e0 = impl_witness_access constants.%ImplicitAs.impl_witness.801, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc5_7.1: = bound_method %int_0, %impl.elem0.loc5 [concrete = constants.%Convert.bound.5bb] -// CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.1(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_7.2: = bound_method %int_0, %specific_fn.loc5 [concrete = constants.%bound_method.d36] // CHECK:STDOUT: %int.convert_checked.loc5: init %u2 = call %bound_method.loc5_7.2(%int_0) [concrete = constants.%int_0.9fd] // CHECK:STDOUT: %.loc5_7.1: %u2 = value_of_initializer %int.convert_checked.loc5 [concrete = constants.%int_0.9fd] @@ -228,7 +228,7 @@ let never: Never = {}; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc6: %.3e0 = impl_witness_access constants.%ImplicitAs.impl_witness.801, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc6_13.1: = bound_method %int_1, %impl.elem0.loc6 [concrete = constants.%Convert.bound.0dd] -// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.1(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_13.2: = bound_method %int_1, %specific_fn.loc6 [concrete = constants.%bound_method.6bf] // CHECK:STDOUT: %int.convert_checked.loc6: init %u2 = call %bound_method.loc6_13.2(%int_1) [concrete = constants.%int_1.b2c] // CHECK:STDOUT: %.loc6_13.1: %u2 = value_of_initializer %int.convert_checked.loc6 [concrete = constants.%int_1.b2c] @@ -245,7 +245,7 @@ let never: Never = {}; // CHECK:STDOUT: %int_2.loc7: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc7: %.3e0 = impl_witness_access constants.%ImplicitAs.impl_witness.801, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc7_10.1: = bound_method %int_2.loc7, %impl.elem0.loc7 [concrete = constants.%Convert.bound.122] -// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Convert.1(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_10.2: = bound_method %int_2.loc7, %specific_fn.loc7 [concrete = constants.%bound_method.f7d] // CHECK:STDOUT: %int.convert_checked.loc7: init %u2 = call %bound_method.loc7_10.2(%int_2.loc7) [concrete = constants.%int_2.788] // CHECK:STDOUT: %.loc7_10.1: %u2 = value_of_initializer %int.convert_checked.loc7 [concrete = constants.%int_2.788] @@ -262,7 +262,7 @@ let never: Never = {}; // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0.loc9: %.3e0 = impl_witness_access constants.%ImplicitAs.impl_witness.801, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc9_1.1: = bound_method %int_3, %impl.elem0.loc9 [concrete = constants.%Convert.bound.a5c] -// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.1(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_1.2: = bound_method %int_3, %specific_fn.loc9 [concrete = constants.%bound_method.c7e] // CHECK:STDOUT: %int.convert_checked.loc9: init %u2 = call %bound_method.loc9_1.2(%int_3) [concrete = constants.%int_3.975] // CHECK:STDOUT: %.loc9_1.1: %u2 = value_of_initializer %int.convert_checked.loc9 [concrete = constants.%int_3.975] diff --git a/toolchain/check/testdata/choice/generic.carbon b/toolchain/check/testdata/choice/generic.carbon index df30450addd2..70f5a131b5eb 100644 --- a/toolchain/check/testdata/choice/generic.carbon +++ b/toolchain/check/testdata/choice/generic.carbon @@ -39,15 +39,15 @@ choice Always(T:! type) { // CHECK:STDOUT: %Always.decl: %Always.type = class_decl @Always [concrete = constants.%Always.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc14_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc14_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Always(%T.loc14_15.1: type) { -// CHECK:STDOUT: %T.loc14_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_15.2 (constants.%T)] +// CHECK:STDOUT: generic class @Always(%T.loc14_15.2: type) { +// CHECK:STDOUT: %T.loc14_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Always: type = class_type @Always, @Always(%T.loc14_15.2) [symbolic = %Always (constants.%Always)] +// CHECK:STDOUT: %Always: type = class_type @Always, @Always(%T.loc14_15.1) [symbolic = %Always (constants.%Always)] // CHECK:STDOUT: %require_complete: = require_complete_type %Always [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %Always.val: @Always.%Always (%Always) = struct_value (constants.%empty_tuple) [symbolic = %Always.val (constants.%Always.val)] // CHECK:STDOUT: @@ -75,6 +75,6 @@ choice Always(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Always(constants.%T) { -// CHECK:STDOUT: %T.loc14_15.2 => constants.%T +// CHECK:STDOUT: %T.loc14_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/access_modifers.carbon b/toolchain/check/testdata/class/access_modifers.carbon index 4a87a26f4857..300701ed91f2 100644 --- a/toolchain/check/testdata/class/access_modifers.carbon +++ b/toolchain/check/testdata/class/access_modifers.carbon @@ -165,17 +165,17 @@ class A { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.a25: = bound_method %int_5.64b, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %SomeInternalFunction.type: type = fn_type @SomeInternalFunction [concrete] @@ -194,10 +194,10 @@ class A { // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.6cf: type = fn_type @Op.3, @Destroy.impl(%Circle) [concrete] +// CHECK:STDOUT: %Op.type.6cf: type = fn_type @Op.2, @Destroy.impl(%Circle) [concrete] // CHECK:STDOUT: %Op.e38: %Op.type.6cf = struct_value () [concrete] // CHECK:STDOUT: %ptr.54d: type = ptr_type %Circle [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e38, @Op.3(%Circle) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e38, @Op.2(%Circle) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -240,7 +240,7 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_45.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound.4e6] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_45.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.a25] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc6_45.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc6_45.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_5.0f6] @@ -280,7 +280,7 @@ class A { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_13.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_13.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc9_13.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc9_13.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -294,7 +294,7 @@ class A { // CHECK:STDOUT: %.loc13_24.1: %struct_type.radius.f47 = struct_literal (%int_5) // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound.4e6] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.a25] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc13_24.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc13_24.2: init %i32 = converted %int_5, %int.convert_checked [concrete = constants.%int_5.0f6] @@ -337,7 +337,7 @@ class A { // CHECK:STDOUT: %circle.ref.loc51: %Circle = name_ref circle, %circle // CHECK:STDOUT: %SomeInternalFunction.ref: = name_ref SomeInternalFunction, [concrete = ] // CHECK:STDOUT: %Op.bound: = bound_method %.loc18_36.1, constants.%Op.e38 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e38, @Op.3(constants.%Circle) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e38, @Op.2(constants.%Circle) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.54d = addr_of %.loc18_36.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -431,17 +431,17 @@ class A { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -535,7 +535,7 @@ class A { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_13.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_13.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc12_13.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc12_13.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -566,17 +566,17 @@ class A { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -625,7 +625,7 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_16.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_16.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc5_16.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc5_16.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_5.0f6] @@ -660,17 +660,17 @@ class A { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -728,7 +728,7 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0.loc5: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_26.1: = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_26.2: = bound_method %int_5.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %bound_method.loc5_26.2(%int_5.loc5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc5_26.1: %i32 = value_of_initializer %int.convert_checked.loc5 [concrete = constants.%int_5.0f6] @@ -744,7 +744,7 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0.loc6: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_24.1: = bound_method %int_5.loc6, %impl.elem0.loc6 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_24.2: = bound_method %int_5.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %bound_method.loc6_24.2(%int_5.loc6) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc6_24.1: %i32 = value_of_initializer %int.convert_checked.loc6 [concrete = constants.%int_5.0f6] diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index ec8ec000debd..9243e4e9614b 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -139,10 +139,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.b65: type = fn_type @Op.2, @Destroy.impl(%AdaptCopyable) [concrete] +// CHECK:STDOUT: %Op.type.b65: type = fn_type @Op.1, @Destroy.impl(%AdaptCopyable) [concrete] // CHECK:STDOUT: %Op.f60: %Op.type.b65 = struct_value () [concrete] // CHECK:STDOUT: %ptr.4c1: type = ptr_type %AdaptCopyable [concrete] -// CHECK:STDOUT: %Op.specific_fn.e4c: = specific_function %Op.f60, @Op.2(%AdaptCopyable) [concrete] +// CHECK:STDOUT: %Op.specific_fn.e4c: = specific_function %Op.f60, @Op.1(%AdaptCopyable) [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -152,9 +152,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [concrete] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.c30: type = ptr_type %tuple.type.2a3 [concrete] -// CHECK:STDOUT: %Op.type.f33: type = fn_type @Op.2, @Destroy.impl(%tuple.type.2a3) [concrete] +// CHECK:STDOUT: %Op.type.f33: type = fn_type @Op.1, @Destroy.impl(%tuple.type.2a3) [concrete] // CHECK:STDOUT: %Op.f7d: %Op.type.f33 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.2af: = specific_function %Op.f7d, @Op.2(%tuple.type.2a3) [concrete] +// CHECK:STDOUT: %Op.specific_fn.2af: = specific_function %Op.f7d, @Op.1(%tuple.type.2a3) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -242,7 +242,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %d.ref: ref %AdaptCopyable = name_ref d, %d // CHECK:STDOUT: %.loc12: %AdaptCopyable = bind_value %d.ref // CHECK:STDOUT: %Op.bound: = bound_method %d.var, constants.%Op.f60 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.f60, @Op.2(constants.%AdaptCopyable) [concrete = constants.%Op.specific_fn.e4c] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.f60, @Op.1(constants.%AdaptCopyable) [concrete = constants.%Op.specific_fn.e4c] // CHECK:STDOUT: %bound_method: = bound_method %d.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.4c1 = addr_of %d.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -286,7 +286,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc17_10.5: init %tuple.type.2a3 = tuple_init (%.loc17_10.2, %.loc17_10.4) to %return // CHECK:STDOUT: %.loc17_11: init %tuple.type.2a3 = converted %d.ref, %.loc17_10.5 // CHECK:STDOUT: %Op.bound: = bound_method %d.var, constants.%Op.f7d -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.f7d, @Op.2(constants.%tuple.type.2a3) [concrete = constants.%Op.specific_fn.2af] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.f7d, @Op.1(constants.%tuple.type.2a3) [concrete = constants.%Op.specific_fn.2af] // CHECK:STDOUT: %bound_method: = bound_method %d.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c30 = addr_of %d.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -309,10 +309,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.0f1: type = fn_type @Op.2, @Destroy.impl(%AdaptTuple) [concrete] +// CHECK:STDOUT: %Op.type.0f1: type = fn_type @Op.1, @Destroy.impl(%AdaptTuple) [concrete] // CHECK:STDOUT: %Op.621: %Op.type.0f1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ca3: type = ptr_type %AdaptTuple [concrete] -// CHECK:STDOUT: %Op.specific_fn.283: = specific_function %Op.621, @Op.2(%AdaptTuple) [concrete] +// CHECK:STDOUT: %Op.specific_fn.283: = specific_function %Op.621, @Op.1(%AdaptTuple) [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -320,10 +320,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %pattern_type.c9e: type = pattern_type %tuple.type.f69 [concrete] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [concrete] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.390: type = fn_type @Op.2, @Destroy.impl(%tuple.type.f69) [concrete] +// CHECK:STDOUT: %Op.type.390: type = fn_type @Op.1, @Destroy.impl(%tuple.type.f69) [concrete] // CHECK:STDOUT: %Op.d9f: %Op.type.390 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ed5: type = ptr_type %tuple.type.f69 [concrete] -// CHECK:STDOUT: %Op.specific_fn.20d: = specific_function %Op.d9f, @Op.2(%tuple.type.f69) [concrete] +// CHECK:STDOUT: %Op.specific_fn.20d: = specific_function %Op.d9f, @Op.1(%tuple.type.f69) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -438,7 +438,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.8: init %AdaptTuple = as_compatible %.loc10_11.7 // CHECK:STDOUT: %.loc10_11.9: init %AdaptTuple = converted %d.ref, %.loc10_11.8 // CHECK:STDOUT: %Op.bound: = bound_method %d.var, constants.%Op.621 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.621, @Op.2(constants.%AdaptTuple) [concrete = constants.%Op.specific_fn.283] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.621, @Op.1(constants.%AdaptTuple) [concrete = constants.%Op.specific_fn.283] // CHECK:STDOUT: %bound_method: = bound_method %d.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ca3 = addr_of %d.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -503,7 +503,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_10.12: init %tuple.type.f69 = tuple_init (%.loc15_10.9, %.loc15_10.11) to %return // CHECK:STDOUT: %.loc15_11: init %tuple.type.f69 = converted %d.ref, %.loc15_10.12 // CHECK:STDOUT: %Op.bound: = bound_method %d.var, constants.%Op.d9f -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d9f, @Op.2(constants.%tuple.type.f69) [concrete = constants.%Op.specific_fn.20d] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d9f, @Op.1(constants.%tuple.type.f69) [concrete = constants.%Op.specific_fn.20d] // CHECK:STDOUT: %bound_method: = bound_method %d.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ed5 = addr_of %d.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -522,10 +522,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.b79: type = fn_type @Op.2, @Destroy.impl(%AdaptNoncopyable) [concrete] +// CHECK:STDOUT: %Op.type.b79: type = fn_type @Op.1, @Destroy.impl(%AdaptNoncopyable) [concrete] // CHECK:STDOUT: %Op.77f: %Op.type.b79 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ed9: type = ptr_type %AdaptNoncopyable [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.77f, @Op.2(%AdaptNoncopyable) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.77f, @Op.1(%AdaptNoncopyable) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -596,7 +596,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %b.ref: ref %AdaptNoncopyable = name_ref b, %b // CHECK:STDOUT: %.loc22: %AdaptNoncopyable = bind_value %b.ref // CHECK:STDOUT: %Op.bound: = bound_method %b.var, constants.%Op.77f -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.77f, @Op.2(constants.%AdaptNoncopyable) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.77f, @Op.1(constants.%AdaptNoncopyable) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %b.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ed9 = addr_of %b.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -622,10 +622,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.b45: type = fn_type @Op.2, @Destroy.impl(%AdaptNoncopyableIndirect) [concrete] +// CHECK:STDOUT: %Op.type.b45: type = fn_type @Op.1, @Destroy.impl(%AdaptNoncopyableIndirect) [concrete] // CHECK:STDOUT: %Op.003: %Op.type.b45 = struct_value () [concrete] // CHECK:STDOUT: %ptr.921: type = ptr_type %AdaptNoncopyableIndirect [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.003, @Op.2(%AdaptNoncopyableIndirect) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.003, @Op.1(%AdaptNoncopyableIndirect) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -717,7 +717,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %tuple.elem1.loc28: ref %Noncopyable = tuple_access %.loc28_11.1, element1 // CHECK:STDOUT: %.loc28_11.5: %Noncopyable = bind_value %tuple.elem1.loc28 // CHECK:STDOUT: %Op.bound: = bound_method %b.var, constants.%Op.003 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.003, @Op.2(constants.%AdaptNoncopyableIndirect) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.003, @Op.1(constants.%AdaptNoncopyableIndirect) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %b.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.921 = addr_of %b.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -739,10 +739,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %I.type: type = fn_type @I [concrete] // CHECK:STDOUT: %I: %I.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.38c: type = fn_type @Op.2, @Destroy.impl(%AdaptStruct) [concrete] +// CHECK:STDOUT: %Op.type.38c: type = fn_type @Op.1, @Destroy.impl(%AdaptStruct) [concrete] // CHECK:STDOUT: %Op.d16: %Op.type.38c = struct_value () [concrete] // CHECK:STDOUT: %ptr.e10: type = ptr_type %AdaptStruct [concrete] -// CHECK:STDOUT: %Op.specific_fn.ad6: = specific_function %Op.d16, @Op.2(%AdaptStruct) [concrete] +// CHECK:STDOUT: %Op.specific_fn.ad6: = specific_function %Op.d16, @Op.1(%AdaptStruct) [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -751,10 +751,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %pattern_type.31d: type = pattern_type %tuple.type.80b [concrete] // CHECK:STDOUT: %InTuple.type: type = fn_type @InTuple [concrete] // CHECK:STDOUT: %InTuple: %InTuple.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.628: type = fn_type @Op.2, @Destroy.impl(%tuple.type.80b) [concrete] +// CHECK:STDOUT: %Op.type.628: type = fn_type @Op.1, @Destroy.impl(%tuple.type.80b) [concrete] // CHECK:STDOUT: %Op.8ff: %Op.type.628 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b09: type = ptr_type %tuple.type.80b [concrete] -// CHECK:STDOUT: %Op.specific_fn.301: = specific_function %Op.8ff, @Op.2(%tuple.type.80b) [concrete] +// CHECK:STDOUT: %Op.specific_fn.301: = specific_function %Op.8ff, @Op.1(%tuple.type.80b) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -868,7 +868,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.12: init %AdaptStruct = as_compatible %.loc10_11.11 // CHECK:STDOUT: %.loc10_11.13: init %AdaptStruct = converted %h.ref, %.loc10_11.12 // CHECK:STDOUT: %Op.bound: = bound_method %h.var, constants.%Op.d16 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d16, @Op.2(constants.%AdaptStruct) [concrete = constants.%Op.specific_fn.ad6] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d16, @Op.1(constants.%AdaptStruct) [concrete = constants.%Op.specific_fn.ad6] // CHECK:STDOUT: %bound_method: = bound_method %h.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e10 = addr_of %h.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -933,7 +933,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_10.16: init %tuple.type.80b = tuple_init (%.loc15_10.13, %.loc15_10.15) to %return // CHECK:STDOUT: %.loc15_11: init %tuple.type.80b = converted %d.ref, %.loc15_10.16 // CHECK:STDOUT: %Op.bound: = bound_method %d.var, constants.%Op.8ff -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.8ff, @Op.2(constants.%tuple.type.80b) [concrete = constants.%Op.specific_fn.301] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.8ff, @Op.1(constants.%tuple.type.80b) [concrete = constants.%Op.specific_fn.301] // CHECK:STDOUT: %bound_method: = bound_method %d.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.b09 = addr_of %d.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/class/base.carbon b/toolchain/check/testdata/class/base.carbon index 60d093e5f2a5..ab7abf27d60b 100644 --- a/toolchain/check/testdata/class/base.carbon +++ b/toolchain/check/testdata/class/base.carbon @@ -75,17 +75,17 @@ class Derived { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.1da: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Base.val: %Base = struct_value (%int_4.940) [concrete] @@ -191,7 +191,7 @@ class Derived { // CHECK:STDOUT: %.loc14_35.1: %struct_type.base.d.a20 = struct_literal (%.loc14_26.1, %int_7) // CHECK:STDOUT: %impl.elem0.loc14_26: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_26.1: = bound_method %int_4, %impl.elem0.loc14_26 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc14_26: = specific_function %impl.elem0.loc14_26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc14_26: = specific_function %impl.elem0.loc14_26, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_26.2: = bound_method %int_4, %specific_fn.loc14_26 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc14_26: init %i32 = call %bound_method.loc14_26.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc14_26.2: init %i32 = converted %int_4, %int.convert_checked.loc14_26 [concrete = constants.%int_4.940] @@ -202,7 +202,7 @@ class Derived { // CHECK:STDOUT: %.loc14_35.3: init %Base = converted %.loc14_26.1, %.loc14_26.5 [concrete = constants.%Base.val] // CHECK:STDOUT: %impl.elem0.loc14_35: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_35.1: = bound_method %int_7, %impl.elem0.loc14_35 [concrete = constants.%Convert.bound.208] -// CHECK:STDOUT: %specific_fn.loc14_35: = specific_function %impl.elem0.loc14_35, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc14_35: = specific_function %impl.elem0.loc14_35, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_35.2: = bound_method %int_7, %specific_fn.loc14_35 [concrete = constants.%bound_method.3bd] // CHECK:STDOUT: %int.convert_checked.loc14_35: init %i32 = call %bound_method.loc14_35.2(%int_7) [concrete = constants.%int_7.0b1] // CHECK:STDOUT: %.loc14_35.4: init %i32 = converted %int_7, %int.convert_checked.loc14_35 [concrete = constants.%int_7.0b1] diff --git a/toolchain/check/testdata/class/base_method.carbon b/toolchain/check/testdata/class/base_method.carbon index bf9e636f542f..d10d4e8f9c32 100644 --- a/toolchain/check/testdata/class/base_method.carbon +++ b/toolchain/check/testdata/class/base_method.carbon @@ -51,17 +51,17 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] @@ -172,7 +172,7 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc22_13.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc22_13: init %i32 = converted %int_1, %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/class/basic.carbon b/toolchain/check/testdata/class/basic.carbon index 5f3ab405254d..4b572eb66c2a 100644 --- a/toolchain/check/testdata/class/basic.carbon +++ b/toolchain/check/testdata/class/basic.carbon @@ -52,17 +52,17 @@ fn Run() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [concrete] // CHECK:STDOUT: } @@ -186,7 +186,7 @@ fn Run() -> i32 { // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc30_18.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc30_18.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc30_18.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc30_18.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_4.940] diff --git a/toolchain/check/testdata/class/derived_to_base.carbon b/toolchain/check/testdata/class/derived_to_base.carbon index 95944e4bc1ad..414682561f8d 100644 --- a/toolchain/check/testdata/class/derived_to_base.carbon +++ b/toolchain/check/testdata/class/derived_to_base.carbon @@ -93,17 +93,17 @@ fn ConvertInit() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %A.val: %A = struct_value (%int_1.5d2) [concrete] @@ -116,9 +116,9 @@ fn ConvertInit() { // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%B.val, %int_3.822) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.3, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.3(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -353,7 +353,7 @@ fn ConvertInit() { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %impl.elem0.loc42_39: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc42_39.1: = bound_method %int_1, %impl.elem0.loc42_39 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc42_39: = specific_function %impl.elem0.loc42_39, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc42_39: = specific_function %impl.elem0.loc42_39, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc42_39.2: = bound_method %int_1, %specific_fn.loc42_39 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc42_39: init %i32 = call %bound_method.loc42_39.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc42_39.2: init %i32 = converted %int_1, %int.convert_checked.loc42_39 [concrete = constants.%int_1.5d2] @@ -366,7 +366,7 @@ fn ConvertInit() { // CHECK:STDOUT: %.loc42_48.3: init %A = converted %.loc42_39.1, %.loc42_39.5 [concrete = constants.%A.val] // CHECK:STDOUT: %impl.elem0.loc42_48: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc42_48.1: = bound_method %int_2, %impl.elem0.loc42_48 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc42_48: = specific_function %impl.elem0.loc42_48, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc42_48: = specific_function %impl.elem0.loc42_48, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc42_48.2: = bound_method %int_2, %specific_fn.loc42_48 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc42_48: init %i32 = call %bound_method.loc42_48.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc42_48.4: init %i32 = converted %int_2, %int.convert_checked.loc42_48 [concrete = constants.%int_2.ef8] @@ -376,7 +376,7 @@ fn ConvertInit() { // CHECK:STDOUT: %.loc42_57.4: init %B = converted %.loc42_48.1, %.loc42_48.7 [concrete = constants.%B.val] // CHECK:STDOUT: %impl.elem0.loc42_57: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc42_57.1: = bound_method %int_3, %impl.elem0.loc42_57 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc42_57: = specific_function %impl.elem0.loc42_57, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc42_57: = specific_function %impl.elem0.loc42_57, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc42_57.2: = bound_method %int_3, %specific_fn.loc42_57 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc42_57: init %i32 = call %bound_method.loc42_57.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc42_57.5: init %i32 = converted %int_3, %int.convert_checked.loc42_57 [concrete = constants.%int_3.822] @@ -392,7 +392,7 @@ fn ConvertInit() { // CHECK:STDOUT: %.loc42_59.5: %A = bind_value %.loc42_59.4 // CHECK:STDOUT: %a: %A = bind_name a, %.loc42_59.5 // CHECK:STDOUT: %Op.bound: = bound_method %.loc42_57.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc42_57.3: = bound_method %.loc42_57.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc42_57.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc42_57.3(%addr) diff --git a/toolchain/check/testdata/class/destroy_calls.carbon b/toolchain/check/testdata/class/destroy_calls.carbon index f31c078bbaf6..03caab4b91c5 100644 --- a/toolchain/check/testdata/class/destroy_calls.carbon +++ b/toolchain/check/testdata/class/destroy_calls.carbon @@ -276,18 +276,18 @@ fn G() { F({}); } // CHECK:STDOUT: %WithAddr: type = class_type @WithAddr [concrete] // CHECK:STDOUT: %pattern_type.f93: type = pattern_type %WithAddr [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.8f4: type = fn_type @Op.2, @Destroy.impl(%WithAddr) [concrete] +// CHECK:STDOUT: %Op.type.8f4: type = fn_type @Op.1, @Destroy.impl(%WithAddr) [concrete] // CHECK:STDOUT: %Op.bec: %Op.type.8f4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b4e: type = ptr_type %WithAddr [concrete] -// CHECK:STDOUT: %Op.specific_fn.b42: = specific_function %Op.bec, @Op.2(%WithAddr) [concrete] -// CHECK:STDOUT: %Op.type.641: type = fn_type @Op.2, @Destroy.impl(%ExplicitReturn) [concrete] +// CHECK:STDOUT: %Op.specific_fn.b42: = specific_function %Op.bec, @Op.1(%WithAddr) [concrete] +// CHECK:STDOUT: %Op.type.641: type = fn_type @Op.1, @Destroy.impl(%ExplicitReturn) [concrete] // CHECK:STDOUT: %Op.8e6: %Op.type.641 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b0a: type = ptr_type %ExplicitReturn [concrete] -// CHECK:STDOUT: %Op.specific_fn.523: = specific_function %Op.8e6, @Op.2(%ExplicitReturn) [concrete] -// CHECK:STDOUT: %Op.type.73f: type = fn_type @Op.2, @Destroy.impl(%NoAddr) [concrete] +// CHECK:STDOUT: %Op.specific_fn.523: = specific_function %Op.8e6, @Op.1(%ExplicitReturn) [concrete] +// CHECK:STDOUT: %Op.type.73f: type = fn_type @Op.1, @Destroy.impl(%NoAddr) [concrete] // CHECK:STDOUT: %Op.d78: %Op.type.73f = struct_value () [concrete] // CHECK:STDOUT: %ptr.4b8: type = ptr_type %NoAddr [concrete] -// CHECK:STDOUT: %Op.specific_fn.8fe: = specific_function %Op.d78, @Op.2(%NoAddr) [concrete] +// CHECK:STDOUT: %Op.specific_fn.8fe: = specific_function %Op.d78, @Op.1(%NoAddr) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -378,17 +378,17 @@ fn G() { F({}); } // CHECK:STDOUT: %WithAddr.ref: type = name_ref WithAddr, imports.%Main.WithAddr [concrete = constants.%WithAddr] // CHECK:STDOUT: %with_addr: ref %WithAddr = bind_name with_addr, %with_addr.var // CHECK:STDOUT: %Op.bound.loc8: = bound_method %with_addr.var, constants.%Op.bec -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.bec, @Op.2(constants.%WithAddr) [concrete = constants.%Op.specific_fn.b42] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.bec, @Op.1(constants.%WithAddr) [concrete = constants.%Op.specific_fn.b42] // CHECK:STDOUT: %bound_method.loc8: = bound_method %with_addr.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8: %ptr.b4e = addr_of %with_addr.var // CHECK:STDOUT: %no_op.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %Op.bound.loc7: = bound_method %explicit_return.var, constants.%Op.8e6 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8e6, @Op.2(constants.%ExplicitReturn) [concrete = constants.%Op.specific_fn.523] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8e6, @Op.1(constants.%ExplicitReturn) [concrete = constants.%Op.specific_fn.523] // CHECK:STDOUT: %bound_method.loc7: = bound_method %explicit_return.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.b0a = addr_of %explicit_return.var // CHECK:STDOUT: %no_op.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: %Op.bound.loc6: = bound_method %no_addr.var, constants.%Op.d78 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d78, @Op.2(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d78, @Op.1(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] // CHECK:STDOUT: %bound_method.loc6: = bound_method %no_addr.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc6: %ptr.4b8 = addr_of %no_addr.var // CHECK:STDOUT: %no_op.loc6: init %empty_tuple.type = call %bound_method.loc6(%addr.loc6) @@ -411,18 +411,18 @@ fn G() { F({}); } // CHECK:STDOUT: %pattern_type.f93: type = pattern_type %WithAddr [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.73f: type = fn_type @Op.2, @Destroy.impl(%NoAddr) [concrete] +// CHECK:STDOUT: %Op.type.73f: type = fn_type @Op.1, @Destroy.impl(%NoAddr) [concrete] // CHECK:STDOUT: %Op.d78: %Op.type.73f = struct_value () [concrete] // CHECK:STDOUT: %ptr.4b8: type = ptr_type %NoAddr [concrete] -// CHECK:STDOUT: %Op.specific_fn.8fe: = specific_function %Op.d78, @Op.2(%NoAddr) [concrete] -// CHECK:STDOUT: %Op.type.8f4: type = fn_type @Op.2, @Destroy.impl(%WithAddr) [concrete] +// CHECK:STDOUT: %Op.specific_fn.8fe: = specific_function %Op.d78, @Op.1(%NoAddr) [concrete] +// CHECK:STDOUT: %Op.type.8f4: type = fn_type @Op.1, @Destroy.impl(%WithAddr) [concrete] // CHECK:STDOUT: %Op.bec: %Op.type.8f4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b4e: type = ptr_type %WithAddr [concrete] -// CHECK:STDOUT: %Op.specific_fn.b42: = specific_function %Op.bec, @Op.2(%WithAddr) [concrete] -// CHECK:STDOUT: %Op.type.641: type = fn_type @Op.2, @Destroy.impl(%ExplicitReturn) [concrete] +// CHECK:STDOUT: %Op.specific_fn.b42: = specific_function %Op.bec, @Op.1(%WithAddr) [concrete] +// CHECK:STDOUT: %Op.type.641: type = fn_type @Op.1, @Destroy.impl(%ExplicitReturn) [concrete] // CHECK:STDOUT: %Op.8e6: %Op.type.641 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b0a: type = ptr_type %ExplicitReturn [concrete] -// CHECK:STDOUT: %Op.specific_fn.523: = specific_function %Op.8e6, @Op.2(%ExplicitReturn) [concrete] +// CHECK:STDOUT: %Op.specific_fn.523: = specific_function %Op.8e6, @Op.1(%ExplicitReturn) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -527,22 +527,22 @@ fn G() { F({}); } // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %Op.bound.loc10: = bound_method %in_scope.var, constants.%Op.d78 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d78, @Op.2(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d78, @Op.1(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] // CHECK:STDOUT: %bound_method.loc10: = bound_method %in_scope.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.4b8 = addr_of %in_scope.var // CHECK:STDOUT: %no_op.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %Op.bound.loc8: = bound_method %with_addr.var, constants.%Op.bec -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.bec, @Op.2(constants.%WithAddr) [concrete = constants.%Op.specific_fn.b42] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.bec, @Op.1(constants.%WithAddr) [concrete = constants.%Op.specific_fn.b42] // CHECK:STDOUT: %bound_method.loc8: = bound_method %with_addr.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.b4e = addr_of %with_addr.var // CHECK:STDOUT: %no_op.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %Op.bound.loc7: = bound_method %explicit_return.var, constants.%Op.8e6 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.8e6, @Op.2(constants.%ExplicitReturn) [concrete = constants.%Op.specific_fn.523] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.8e6, @Op.1(constants.%ExplicitReturn) [concrete = constants.%Op.specific_fn.523] // CHECK:STDOUT: %bound_method.loc7: = bound_method %explicit_return.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc7: %ptr.b0a = addr_of %explicit_return.var // CHECK:STDOUT: %no_op.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: %Op.bound.loc6: = bound_method %no_addr.var, constants.%Op.d78 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.d78, @Op.2(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.d78, @Op.1(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] // CHECK:STDOUT: %bound_method.loc6: = bound_method %no_addr.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc6: %ptr.4b8 = addr_of %no_addr.var // CHECK:STDOUT: %no_op.loc6: init %empty_tuple.type = call %bound_method.loc6(%addr.loc6) @@ -567,18 +567,18 @@ fn G() { F({}); } // CHECK:STDOUT: %Make.type.e14: type = fn_type @Make.3 [concrete] // CHECK:STDOUT: %Make.b0a: %Make.type.e14 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.8f4: type = fn_type @Op.2, @Destroy.impl(%WithAddr) [concrete] +// CHECK:STDOUT: %Op.type.8f4: type = fn_type @Op.1, @Destroy.impl(%WithAddr) [concrete] // CHECK:STDOUT: %Op.bec: %Op.type.8f4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b4e: type = ptr_type %WithAddr [concrete] -// CHECK:STDOUT: %Op.specific_fn.b42: = specific_function %Op.bec, @Op.2(%WithAddr) [concrete] -// CHECK:STDOUT: %Op.type.641: type = fn_type @Op.2, @Destroy.impl(%ExplicitReturn) [concrete] +// CHECK:STDOUT: %Op.specific_fn.b42: = specific_function %Op.bec, @Op.1(%WithAddr) [concrete] +// CHECK:STDOUT: %Op.type.641: type = fn_type @Op.1, @Destroy.impl(%ExplicitReturn) [concrete] // CHECK:STDOUT: %Op.8e6: %Op.type.641 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b0a: type = ptr_type %ExplicitReturn [concrete] -// CHECK:STDOUT: %Op.specific_fn.523: = specific_function %Op.8e6, @Op.2(%ExplicitReturn) [concrete] -// CHECK:STDOUT: %Op.type.73f: type = fn_type @Op.2, @Destroy.impl(%NoAddr) [concrete] +// CHECK:STDOUT: %Op.specific_fn.523: = specific_function %Op.8e6, @Op.1(%ExplicitReturn) [concrete] +// CHECK:STDOUT: %Op.type.73f: type = fn_type @Op.1, @Destroy.impl(%NoAddr) [concrete] // CHECK:STDOUT: %Op.d78: %Op.type.73f = struct_value () [concrete] // CHECK:STDOUT: %ptr.4b8: type = ptr_type %NoAddr [concrete] -// CHECK:STDOUT: %Op.specific_fn.8fe: = specific_function %Op.d78, @Op.2(%NoAddr) [concrete] +// CHECK:STDOUT: %Op.specific_fn.8fe: = specific_function %Op.d78, @Op.1(%NoAddr) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -663,17 +663,17 @@ fn G() { F({}); } // CHECK:STDOUT: %Make.call.loc10: init %WithAddr = call %Make.ref.loc10() to %.loc10_17.1 // CHECK:STDOUT: %.loc10_17.2: ref %WithAddr = temporary %.loc10_17.1, %Make.call.loc10 // CHECK:STDOUT: %Op.bound.loc10: = bound_method %.loc10_17.1, constants.%Op.bec -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.bec, @Op.2(constants.%WithAddr) [concrete = constants.%Op.specific_fn.b42] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.bec, @Op.1(constants.%WithAddr) [concrete = constants.%Op.specific_fn.b42] // CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_17.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.b4e = addr_of %.loc10_17.1 // CHECK:STDOUT: %no_op.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %Op.bound.loc9: = bound_method %.loc9_23.1, constants.%Op.8e6 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8e6, @Op.2(constants.%ExplicitReturn) [concrete = constants.%Op.specific_fn.523] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8e6, @Op.1(constants.%ExplicitReturn) [concrete = constants.%Op.specific_fn.523] // CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_23.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9: %ptr.b0a = addr_of %.loc9_23.1 // CHECK:STDOUT: %no_op.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %Op.bound.loc8: = bound_method %.loc8_15.1, constants.%Op.d78 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d78, @Op.2(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d78, @Op.1(constants.%NoAddr) [concrete = constants.%Op.specific_fn.8fe] // CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_15.1, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8: %ptr.4b8 = addr_of %.loc8_15.1 // CHECK:STDOUT: %no_op.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) @@ -704,14 +704,14 @@ fn G() { F({}); } // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.9f4: type = pattern_type %NoSelf [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.59d: type = fn_type @Op.2, @Destroy.impl(%Args) [concrete] +// CHECK:STDOUT: %Op.type.59d: type = fn_type @Op.1, @Destroy.impl(%Args) [concrete] // CHECK:STDOUT: %Op.a71: %Op.type.59d = struct_value () [concrete] // CHECK:STDOUT: %ptr.7b2: type = ptr_type %Args [concrete] -// CHECK:STDOUT: %Op.specific_fn.242: = specific_function %Op.a71, @Op.2(%Args) [concrete] -// CHECK:STDOUT: %Op.type.f20: type = fn_type @Op.2, @Destroy.impl(%NoSelf) [concrete] +// CHECK:STDOUT: %Op.specific_fn.242: = specific_function %Op.a71, @Op.1(%Args) [concrete] +// CHECK:STDOUT: %Op.type.f20: type = fn_type @Op.1, @Destroy.impl(%NoSelf) [concrete] // CHECK:STDOUT: %Op.2e0: %Op.type.f20 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5ab: type = ptr_type %NoSelf [concrete] -// CHECK:STDOUT: %Op.specific_fn.a58: = specific_function %Op.2e0, @Op.2(%NoSelf) [concrete] +// CHECK:STDOUT: %Op.specific_fn.a58: = specific_function %Op.2e0, @Op.1(%NoSelf) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -794,12 +794,12 @@ fn G() { F({}); } // CHECK:STDOUT: %Args.ref: type = name_ref Args, file.%Args.decl [concrete = constants.%Args] // CHECK:STDOUT: %b: ref %Args = bind_name b, %b.var // CHECK:STDOUT: %Op.bound.loc22: = bound_method %b.var, constants.%Op.a71 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.a71, @Op.2(constants.%Args) [concrete = constants.%Op.specific_fn.242] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.a71, @Op.1(constants.%Args) [concrete = constants.%Op.specific_fn.242] // CHECK:STDOUT: %bound_method.loc22: = bound_method %b.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc22: %ptr.7b2 = addr_of %b.var // CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: %Op.bound.loc21: = bound_method %a.var, constants.%Op.2e0 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.2e0, @Op.2(constants.%NoSelf) [concrete = constants.%Op.specific_fn.a58] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.2e0, @Op.1(constants.%NoSelf) [concrete = constants.%Op.specific_fn.a58] // CHECK:STDOUT: %bound_method.loc21: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc21: %ptr.5ab = addr_of %a.var // CHECK:STDOUT: %no_op.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) @@ -870,18 +870,18 @@ fn G() { F({}); } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc3_18.1: type = bind_symbolic_name T, 0, template [template = %T.loc3_18.2 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %T.loc3_18.2: type = bind_symbolic_name T, 0, template [template = %T.loc3_18.1 (constants.%T.8b3d5d.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc5_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc5_15.2 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %T.loc5_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc5_15.1 (constants.%T.8b3d5d.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc3_18.1: type) { -// CHECK:STDOUT: %T.loc3_18.2: type = bind_symbolic_name T, 0, template [template = %T.loc3_18.2 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: generic class @C(%T.loc3_18.2: type) { +// CHECK:STDOUT: %T.loc3_18.1: type = bind_symbolic_name T, 0, template [template = %T.loc3_18.1 (constants.%T.8b3d5d.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -895,11 +895,11 @@ fn G() { F({}); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc5_15.1: type) { -// CHECK:STDOUT: %T.loc5_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc5_15.2 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: generic fn @F(%T.loc5_15.2: type) { +// CHECK:STDOUT: %T.loc5_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc5_15.1 (constants.%T.8b3d5d.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.loc6_13.2: type = class_type @C, @C(%T.loc5_15.2) [template = %C.loc6_13.2 (constants.%C.f2e)] +// CHECK:STDOUT: %C.loc6_13.2: type = class_type @C, @C(%T.loc5_15.1) [template = %C.loc6_13.2 (constants.%C.f2e)] // CHECK:STDOUT: %require_complete.loc6_13: = require_complete_type %C.loc6_13.2 [template = %require_complete.loc6_13 (constants.%require_complete.389)] // CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc6_13.2 [template = %pattern_type (constants.%pattern_type.e5e)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.loc6_13.2, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] @@ -919,7 +919,7 @@ fn G() { F({}); } // CHECK:STDOUT: %v.var: ref @F.%C.loc6_13.2 (%C.f2e) = var %v.var_patt // CHECK:STDOUT: %.loc6_13: type = splice_block %C.loc6_13.1 [template = %C.loc6_13.2 (constants.%C.f2e)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc5_15.1 [template = %T.loc5_15.2 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc5_15.2 [template = %T.loc5_15.1 (constants.%T.8b3d5d.1)] // CHECK:STDOUT: %C.loc6_13.1: type = class_type @C, @C(constants.%T.8b3d5d.1) [template = %C.loc6_13.2 (constants.%C.f2e)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @F.%C.loc6_13.2 (%C.f2e) = bind_name v, %v.var @@ -944,17 +944,17 @@ fn G() { F({}); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T.8b3d5d.1) { -// CHECK:STDOUT: %T.loc3_18.2 => constants.%T.8b3d5d.1 +// CHECK:STDOUT: %T.loc3_18.1 => constants.%T.8b3d5d.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.8b3d5d.1) { -// CHECK:STDOUT: %T.loc5_15.2 => constants.%T.8b3d5d.1 +// CHECK:STDOUT: %T.loc5_15.1 => constants.%T.8b3d5d.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc5_15.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc5_15.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %C.loc6_13.2 => constants.%C.7a7 @@ -970,7 +970,7 @@ fn G() { F({}); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc3_18.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc3_18.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/fail_addr_self.carbon b/toolchain/check/testdata/class/fail_addr_self.carbon index 207ae76e41af..ee38f32923de 100644 --- a/toolchain/check/testdata/class/fail_addr_self.carbon +++ b/toolchain/check/testdata/class/fail_addr_self.carbon @@ -57,9 +57,9 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %F.type.b25: type = fn_type @F.loc24 [concrete] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.2, @Destroy.impl(%Class) [concrete] +// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.1, @Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %Op.d64: %Op.type.7de = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.2(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.1(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -158,7 +158,7 @@ fn F(c: Class, p: Class*) { // CHECK:STDOUT: %.loc39_4.2: %Class = bind_value %.loc39_4.1 // CHECK:STDOUT: %G.call.loc39: init %empty_tuple.type = call %G.bound.loc39(%.loc39_4.2) // CHECK:STDOUT: %Op.bound: = bound_method %.loc32, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.2(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc32, %Op.specific_fn // CHECK:STDOUT: %addr.loc32_3.2: %ptr.e71 = addr_of %.loc32 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr.loc32_3.2) diff --git a/toolchain/check/testdata/class/field_access.carbon b/toolchain/check/testdata/class/field_access.carbon index 93905e027617..933394a6140b 100644 --- a/toolchain/check/testdata/class/field_access.carbon +++ b/toolchain/check/testdata/class/field_access.carbon @@ -44,18 +44,18 @@ fn Run() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -63,14 +63,14 @@ fn Run() { // CHECK:STDOUT: %bound_method.b92: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.3(%i32) [concrete] -// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.3, @Destroy.impl(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] +// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.1, @Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %Op.d64: %Op.type.7de = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %Op.specific_fn.618: = specific_function %Op.d64, @Op.3(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn.618: = specific_function %Op.d64, @Op.1(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -131,7 +131,7 @@ fn Run() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc22: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_7.1: = bound_method %int_1, %impl.elem0.loc22 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_7.2: = bound_method %int_1, %specific_fn.loc22 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc22: init %i32 = call %bound_method.loc22_7.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc22_7: init %i32 = converted %int_1, %int.convert_checked.loc22 [concrete = constants.%int_1.5d2] @@ -142,7 +142,7 @@ fn Run() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc23: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_7.1: = bound_method %int_2, %impl.elem0.loc23 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_7.2: = bound_method %int_2, %specific_fn.loc23 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %bound_method.loc23_7.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc23_7: init %i32 = converted %int_2, %int.convert_checked.loc23 [concrete = constants.%int_2.ef8] @@ -178,17 +178,17 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %ck: ref %i32 = bind_name ck, %ck.var // CHECK:STDOUT: %Op.bound.loc25: = bound_method %ck.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc25: = bound_method %ck.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %ck.var // CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) // CHECK:STDOUT: %Op.bound.loc24: = bound_method %cj.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc24: = bound_method %cj.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc24: %ptr.235 = addr_of %cj.var // CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) // CHECK:STDOUT: %Op.bound.loc21: = bound_method %c.var, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d64, @Op.3(constants.%Class) [concrete = constants.%Op.specific_fn.618] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn.618] // CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.e71 = addr_of %c.var // CHECK:STDOUT: %no_op.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) diff --git a/toolchain/check/testdata/class/field_access_in_value.carbon b/toolchain/check/testdata/class/field_access_in_value.carbon index dccc46d17807..6b1defaa6279 100644 --- a/toolchain/check/testdata/class/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field_access_in_value.carbon @@ -45,18 +45,18 @@ fn Test() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -64,14 +64,14 @@ fn Test() { // CHECK:STDOUT: %bound_method.b92: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.3(%i32) [concrete] -// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.3, @Destroy.impl(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] +// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.1, @Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %Op.d64: %Op.type.7de = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %Op.specific_fn.618: = specific_function %Op.d64, @Op.3(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn.618: = specific_function %Op.d64, @Op.1(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -132,7 +132,7 @@ fn Test() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc22: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_8.1: = bound_method %int_1, %impl.elem0.loc22 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_8.2: = bound_method %int_1, %specific_fn.loc22 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc22: init %i32 = call %bound_method.loc22_8.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc22_8: init %i32 = converted %int_1, %int.convert_checked.loc22 [concrete = constants.%int_1.5d2] @@ -143,7 +143,7 @@ fn Test() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc23: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_8.1: = bound_method %int_2, %impl.elem0.loc23 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_8.2: = bound_method %int_2, %specific_fn.loc23 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %bound_method.loc23_8.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc23_8: init %i32 = converted %int_2, %int.convert_checked.loc23 [concrete = constants.%int_2.ef8] @@ -186,17 +186,17 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: %ck: ref %i32 = bind_name ck, %ck.var // CHECK:STDOUT: %Op.bound.loc26: = bound_method %ck.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc26: = bound_method %ck.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.235 = addr_of %ck.var // CHECK:STDOUT: %no_op.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %Op.bound.loc25: = bound_method %cj.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc25: = bound_method %cj.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %cj.var // CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) // CHECK:STDOUT: %Op.bound.loc21: = bound_method %cv.var, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d64, @Op.3(constants.%Class) [concrete = constants.%Op.specific_fn.618] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn.618] // CHECK:STDOUT: %bound_method.loc21: = bound_method %cv.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.e71 = addr_of %cv.var // CHECK:STDOUT: %no_op.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index bf8a169753e0..80a6c64d7b11 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -174,7 +174,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { @@ -193,18 +193,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_9.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.2) [symbolic = %C (constants.%C.f2e)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_9.2 [symbolic = %C.elem (constants.%C.elem.66c)] -// CHECK:STDOUT: %struct_type.x.loc6_1.2: type = struct_type {.x: @C.%T.loc4_9.2 (%T)} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_9.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.1) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_9.1 [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x.loc6_1.2: type = struct_type {.x: @C.%T.loc4_9.1 (%T)} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.x.loc6_1.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_9.1 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_9.2 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.66c) = field_decl x, element0 [concrete] // CHECK:STDOUT: %struct_type.x.loc6_1.1: type = struct_type {.x: %T} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.loc6_1.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] @@ -247,11 +247,11 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%i32) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_9.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a @@ -443,7 +443,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {} // CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] { @@ -462,18 +462,18 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_9.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.2) [symbolic = %C (constants.%C.f2e)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_9.2 [symbolic = %C.elem (constants.%C.elem.66c)] -// CHECK:STDOUT: %struct_type.x.loc6_1.2: type = struct_type {.x: @C.%T.loc4_9.2 (%T)} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_9.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.1) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc4_9.1 [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x.loc6_1.2: type = struct_type {.x: @C.%T.loc4_9.1 (%T)} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.x.loc6_1.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_9.1 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_9.2 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: %.loc5: @C.%C.elem (%C.elem.66c) = field_decl x, element0 [concrete] // CHECK:STDOUT: %struct_type.x.loc6_1.1: type = struct_type {.x: %T} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.loc6_1.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] @@ -512,11 +512,11 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%i32) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_9.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a @@ -570,23 +570,23 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc7_9.1: type) { -// CHECK:STDOUT: %T.loc7_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc7_9.2: type) { +// CHECK:STDOUT: %T.loc7_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc7_9.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc7_9.2) [symbolic = %C (constants.%C.f2e)] -// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc7_9.2 [symbolic = %C.elem (constants.%C.elem.66c)] -// CHECK:STDOUT: %struct_type.x.loc9_1.2: type = struct_type {.x: @C.%T.loc7_9.2 (%T)} [symbolic = %struct_type.x.loc9_1.2 (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc7_9.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc7_9.1) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %T.loc7_9.1 [symbolic = %C.elem (constants.%C.elem.66c)] +// CHECK:STDOUT: %struct_type.x.loc9_1.2: type = struct_type {.x: @C.%T.loc7_9.1 (%T)} [symbolic = %struct_type.x.loc9_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc9_1.2: = complete_type_witness %struct_type.x.loc9_1.2 [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_9.1 [symbolic = %T.loc7_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_9.2 [symbolic = %T.loc7_9.1 (constants.%T)] // CHECK:STDOUT: %.loc8: @C.%C.elem (%C.elem.66c) = field_decl x, element0 [concrete] // CHECK:STDOUT: %struct_type.x.loc9_1.1: type = struct_type {.x: %T} [symbolic = %struct_type.x.loc9_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc9_1.1: = complete_type_witness %struct_type.x.loc9_1.1 [symbolic = %complete_type.loc9_1.2 (constants.%complete_type.433)] @@ -615,11 +615,11 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc7_9.2 => constants.%T +// CHECK:STDOUT: %T.loc7_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%i32) { -// CHECK:STDOUT: %T.loc7_9.2 => constants.%i32 +// CHECK:STDOUT: %T.loc7_9.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a @@ -798,7 +798,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Adapter.decl: %Adapter.type = class_decl @Adapter [concrete = constants.%Adapter.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Convert.decl: %Convert.type = fn_decl @Convert [concrete = constants.%Convert] { // CHECK:STDOUT: %a.patt: %pattern_type.5a0 = binding_pattern a [concrete] @@ -821,15 +821,15 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Adapter(%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: generic class @Adapter(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %T.loc4_15.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %T.loc4_15.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: adapt_decl %T.ref [concrete] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness constants.%T [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 @@ -851,11 +851,11 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapter(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapter(constants.%i32) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_15.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a diff --git a/toolchain/check/testdata/class/generic/base_is_generic.carbon b/toolchain/check/testdata/class/generic/base_is_generic.carbon index bfbf1abbbb5d..33ac727aa026 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -144,7 +144,7 @@ fn H() { // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Param.decl: type = class_decl @Param [concrete = constants.%Param] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} @@ -164,18 +164,18 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_17.1: type) { -// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_17.2: type) { +// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_17.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.370)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_17.2 [symbolic = %Base.elem (constants.%Base.elem.9af)] -// CHECK:STDOUT: %struct_type.x.loc6_1.2: type = struct_type {.x: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_17.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.1) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_17.1 [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %struct_type.x.loc6_1.2: type = struct_type {.x: @Base.%T.loc4_17.1 (%T)} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.x.loc6_1.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_17.1 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_17.2 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.9af) = field_decl x, element0 [concrete] // CHECK:STDOUT: %struct_type.x.loc6_1.1: type = struct_type {.x: %T} [symbolic = %struct_type.x.loc6_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.x.loc6_1.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.433)] @@ -233,11 +233,11 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%Param) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%Param +// CHECK:STDOUT: %T.loc4_17.1 => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.0f9 @@ -432,20 +432,20 @@ fn H() { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_9.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_9.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_9.1 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_9.2 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: %.loc9: = base_decl , element0 [concrete] // CHECK:STDOUT: %struct_type.base: type = struct_type {.base: } [concrete = ] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.base [concrete = ] @@ -486,11 +486,11 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%X +// CHECK:STDOUT: %T.loc4_9.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type @@ -561,21 +561,21 @@ fn H() { // CHECK:STDOUT: %X.decl: %X.type = class_decl @X [concrete = constants.%X.generic] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc4_14.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_14.2 (constants.%U)] +// CHECK:STDOUT: %U.loc4_14.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_14.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @X(%U.loc4_14.1: type) { -// CHECK:STDOUT: %U.loc4_14.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_14.2 (constants.%U)] +// CHECK:STDOUT: generic class @X(%U.loc4_14.2: type) { +// CHECK:STDOUT: %U.loc4_14.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_14.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U.loc4_14.2) [symbolic = %G.type (constants.%G.type.56f312.1)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @X(%U.loc4_14.1) [symbolic = %G.type (constants.%G.type.56f312.1)] // CHECK:STDOUT: %G: @X.%G.type (%G.type.56f312.1) = struct_value () [symbolic = %G (constants.%G.b504c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -583,7 +583,7 @@ fn H() { // CHECK:STDOUT: %return.patt: @G.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc4_14.1 [symbolic = %U (constants.%U)] +// CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc4_14.2 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %return.param: ref @G.%U (%U) = out_param call_param0 // CHECK:STDOUT: %return: ref @G.%U (%U) = return_slot %return.param // CHECK:STDOUT: } @@ -598,20 +598,20 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc8_9.2: type) { +// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %X.loc9_19.2: type = class_type @X, @X(%T.loc8_9.2) [symbolic = %X.loc9_19.2 (constants.%X.75b6d8.2)] +// CHECK:STDOUT: %X.loc9_19.2: type = class_type @X, @X(%T.loc8_9.1) [symbolic = %X.loc9_19.2 (constants.%X.75b6d8.2)] // CHECK:STDOUT: %require_complete: = require_complete_type %X.loc9_19.2 [symbolic = %require_complete (constants.%require_complete.441)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc8_9.2) [symbolic = %C (constants.%C.f2e)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc8_9.1) [symbolic = %C (constants.%C.f2e)] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %X.loc9_19.2 [symbolic = %C.elem (constants.%C.elem.3f4)] // CHECK:STDOUT: %struct_type.base.loc10_1.2: type = struct_type {.base: @C.%X.loc9_19.2 (%X.75b6d8.2)} [symbolic = %struct_type.base.loc10_1.2 (constants.%struct_type.base.f5f)] // CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness %struct_type.base.loc10_1.2 [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.768)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %X.ref: %X.type = name_ref X, file.%X.decl [concrete = constants.%X.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_9.1 [symbolic = %T.loc8_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_9.2 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: %X.loc9_19.1: type = class_type @X, @X(constants.%T) [symbolic = %X.loc9_19.2 (constants.%X.75b6d8.2)] // CHECK:STDOUT: %.loc9: @C.%C.elem (%C.elem.3f4) = base_decl %X.loc9_19.1, element0 [concrete] // CHECK:STDOUT: %struct_type.base.loc10_1.1: type = struct_type {.base: %X.75b6d8.2} [symbolic = %struct_type.base.loc10_1.2 (constants.%struct_type.base.f5f)] @@ -628,7 +628,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@X.%U.loc4_14.1: type) { +// CHECK:STDOUT: generic fn @G(@X.%U.loc4_14.2: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %pattern_type: type = pattern_type %U [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: @@ -674,7 +674,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%U) { -// CHECK:STDOUT: %U.loc4_14.2 => constants.%U +// CHECK:STDOUT: %U.loc4_14.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %G.type => constants.%G.type.56f312.1 @@ -693,11 +693,11 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%T +// CHECK:STDOUT: %T.loc8_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%T) { -// CHECK:STDOUT: %U.loc4_14.2 => constants.%T +// CHECK:STDOUT: %U.loc4_14.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %G.type => constants.%G.type.56f312.2 @@ -705,7 +705,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%i32) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%i32 +// CHECK:STDOUT: %T.loc8_9.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %X.loc9_19.2 => constants.%X.448 @@ -717,7 +717,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%i32) { -// CHECK:STDOUT: %U.loc4_14.2 => constants.%i32 +// CHECK:STDOUT: %U.loc4_14.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %G.type => constants.%G.type.862 diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index d667609a5423..2134d3e645e1 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -74,27 +74,27 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Declaration.decl: %Declaration.type = class_decl @Declaration [concrete = constants.%Declaration.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc28_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc28_19.2 (constants.%T)] +// CHECK:STDOUT: %T.loc28_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc28_19.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc15_13.1: type) { -// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc15_13.2: type) { +// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc15_13.2) [symbolic = %GetAddr.type (constants.%GetAddr.type)] +// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc15_13.1) [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.loc15_13.2) [symbolic = %GetValue.type (constants.%GetValue.type)] +// CHECK:STDOUT: %GetValue.type: type = fn_type @GetValue, @Class(%T.loc15_13.1) [symbolic = %GetValue.type (constants.%GetValue.type)] // CHECK:STDOUT: %GetValue: @Class.%GetValue.type (%GetValue.type) = struct_value () [symbolic = %GetValue (constants.%GetValue)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc15_13.2) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc15_13.2 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %struct_type.k.loc26_1.2: type = struct_type {.k: @Class.%T.loc15_13.2 (%T)} [symbolic = %struct_type.k.loc26_1.2 (constants.%struct_type.k)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc15_13.1) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc15_13.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %struct_type.k.loc26_1.2: type = struct_type {.k: @Class.%T.loc15_13.1 (%T)} [symbolic = %struct_type.k.loc26_1.2 (constants.%struct_type.k)] // CHECK:STDOUT: %complete_type.loc26_1.2: = complete_type_witness %struct_type.k.loc26_1.2 [symbolic = %complete_type.loc26_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -105,17 +105,17 @@ class Declaration(T:! type); // CHECK:STDOUT: %return.patt: @GetAddr.%pattern_type.loc16_34 (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @GetAddr.%pattern_type.loc16_34 (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ptr.loc16_38.2: type = ptr_type %T.ref [symbolic = %ptr.loc16_38.1 (constants.%ptr.79f)] -// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc16_29.1 (%ptr.955) = value_param call_param0 -// CHECK:STDOUT: %.loc16_29: type = splice_block %ptr.loc16_29.2 [symbolic = %ptr.loc16_29.1 (constants.%ptr.955)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %ptr.loc16_38.1: type = ptr_type %T.ref [symbolic = %ptr.loc16_38.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc16_29.2 (%ptr.955) = value_param call_param0 +// CHECK:STDOUT: %.loc16_29: type = splice_block %ptr.loc16_29.1 [symbolic = %ptr.loc16_29.2 (constants.%ptr.955)] { // CHECK:STDOUT: %.loc16_25: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc16_25 [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %ptr.loc16_29.2: type = ptr_type %Self.ref [symbolic = %ptr.loc16_29.1 (constants.%ptr.955)] +// CHECK:STDOUT: %ptr.loc16_29.1: type = ptr_type %Self.ref [symbolic = %ptr.loc16_29.2 (constants.%ptr.955)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @GetAddr.%ptr.loc16_29.1 (%ptr.955) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc16_38.1 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc16_38.1 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %self: @GetAddr.%ptr.loc16_29.2 (%ptr.955) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc16_38.2 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc16_38.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %GetValue.decl: @Class.%GetValue.type (%GetValue.type) = fn_decl @GetValue [symbolic = @Class.%GetValue (constants.%GetValue)] { // CHECK:STDOUT: %self.patt: @GetValue.%pattern_type.loc21_15 (%pattern_type.3c1) = binding_pattern self [concrete] @@ -123,7 +123,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %return.patt: @GetValue.%pattern_type.loc21_29 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @GetValue.%pattern_type.loc21_29 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %self.param: @GetValue.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc21_21.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc21_21.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] @@ -133,7 +133,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %return.param: ref @GetValue.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @GetValue.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_13.1 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_13.2 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: %.loc25: @Class.%Class.elem (%Class.elem) = field_decl k, element0 [concrete] // CHECK:STDOUT: %struct_type.k.loc26_1.1: type = struct_type {.k: %T} [symbolic = %struct_type.k.loc26_1.2 (constants.%struct_type.k)] // CHECK:STDOUT: %complete_type.loc26_1.1: = complete_type_witness %struct_type.k.loc26_1.1 [symbolic = %complete_type.loc26_1.2 (constants.%complete_type)] @@ -148,38 +148,38 @@ class Declaration(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Declaration(%T.loc28_19.1: type) { -// CHECK:STDOUT: %T.loc28_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc28_19.2 (constants.%T)] +// CHECK:STDOUT: generic class @Declaration(%T.loc28_19.2: type) { +// CHECK:STDOUT: %T.loc28_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc28_19.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc15_13.1: type) { +// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc15_13.2: 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)] -// CHECK:STDOUT: %ptr.loc16_29.1: type = ptr_type %Class [symbolic = %ptr.loc16_29.1 (constants.%ptr.955)] -// CHECK:STDOUT: %pattern_type.loc16_19: type = pattern_type %ptr.loc16_29.1 [symbolic = %pattern_type.loc16_19 (constants.%pattern_type.9e0)] -// CHECK:STDOUT: %ptr.loc16_38.1: type = ptr_type %T [symbolic = %ptr.loc16_38.1 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type.loc16_34: type = pattern_type %ptr.loc16_38.1 [symbolic = %pattern_type.loc16_34 (constants.%pattern_type.afe)] +// CHECK:STDOUT: %ptr.loc16_29.2: type = ptr_type %Class [symbolic = %ptr.loc16_29.2 (constants.%ptr.955)] +// CHECK:STDOUT: %pattern_type.loc16_19: type = pattern_type %ptr.loc16_29.2 [symbolic = %pattern_type.loc16_19 (constants.%pattern_type.9e0)] +// CHECK:STDOUT: %ptr.loc16_38.2: type = ptr_type %T [symbolic = %ptr.loc16_38.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type.loc16_34: type = pattern_type %ptr.loc16_38.2 [symbolic = %pattern_type.loc16_34 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_34: = require_complete_type %ptr.loc16_38.1 [symbolic = %require_complete.loc16_34 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %require_complete.loc16_23: = require_complete_type %ptr.loc16_29.1 [symbolic = %require_complete.loc16_23 (constants.%require_complete.2ae)] +// CHECK:STDOUT: %require_complete.loc16_34: = require_complete_type %ptr.loc16_38.2 [symbolic = %require_complete.loc16_34 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc16_23: = require_complete_type %ptr.loc16_29.2 [symbolic = %require_complete.loc16_23 (constants.%require_complete.2ae)] // CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Class [symbolic = %require_complete.loc17 (constants.%require_complete.4f8)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @GetAddr.%ptr.loc16_29.1 (%ptr.955)) -> @GetAddr.%ptr.loc16_38.1 (%ptr.79f) { +// CHECK:STDOUT: fn(%self.param: @GetAddr.%ptr.loc16_29.2 (%ptr.955)) -> @GetAddr.%ptr.loc16_38.2 (%ptr.79f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc16_29.1 (%ptr.955) = name_ref self, %self +// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc16_29.2 (%ptr.955) = name_ref self, %self // CHECK:STDOUT: %.loc17_17.1: ref @GetAddr.%Class (%Class) = deref %self.ref // CHECK:STDOUT: %k.ref: @GetAddr.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc25 [concrete = @Class.%.loc25] // CHECK:STDOUT: %.loc17_17.2: ref @GetAddr.%T (%T) = class_element_access %.loc17_17.1, element0 -// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc16_38.1 (%ptr.79f) = addr_of %.loc17_17.2 +// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc16_38.2 (%ptr.79f) = addr_of %.loc17_17.2 // CHECK:STDOUT: return %addr // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetValue(@Class.%T.loc15_13.1: type) { +// CHECK:STDOUT: generic fn @GetValue(@Class.%T.loc15_13.2: 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)] // CHECK:STDOUT: %pattern_type.loc21_15: type = pattern_type %Class [symbolic = %pattern_type.loc21_15 (constants.%pattern_type.3c1)] @@ -201,7 +201,7 @@ class Declaration(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%T +// CHECK:STDOUT: %T.loc15_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GetAddr.type => constants.%GetAddr.type @@ -218,9 +218,9 @@ class Declaration(T:! type); // CHECK:STDOUT: specific @GetAddr(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class => constants.%Class -// CHECK:STDOUT: %ptr.loc16_29.1 => constants.%ptr.955 +// CHECK:STDOUT: %ptr.loc16_29.2 => constants.%ptr.955 // CHECK:STDOUT: %pattern_type.loc16_19 => constants.%pattern_type.9e0 -// CHECK:STDOUT: %ptr.loc16_38.1 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc16_38.2 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc16_34 => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: @@ -232,6 +232,6 @@ class Declaration(T:! type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Declaration(constants.%T) { -// CHECK:STDOUT: %T.loc28_19.2 => constants.%T +// CHECK:STDOUT: %T.loc28_19.1 => 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 885dd96b874f..56f7375d0cba 100644 --- a/toolchain/check/testdata/class/generic/call.carbon +++ b/toolchain/check/testdata/class/generic/call.carbon @@ -160,12 +160,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.d51 = binding_pattern a [concrete] @@ -210,9 +210,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %b: ref %Class.dd4 = bind_name b, %b.var [concrete = %b.var] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.356)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.2: type, %N.loc4_23.2: %i32) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -227,20 +227,20 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T +// CHECK:STDOUT: %N.loc4_23.1 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%ptr.235, constants.%int_5.0f6) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.235 -// CHECK:STDOUT: %N.loc4_23.2 => constants.%int_5.0f6 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%ptr.235 +// CHECK:STDOUT: %N.loc4_23.1 => constants.%int_5.0f6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%empty_tuple.type, constants.%int_0.6a9) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%empty_tuple.type -// CHECK:STDOUT: %N.loc4_23.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %N.loc4_23.1 => constants.%int_0.6a9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -284,12 +284,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: = binding_pattern a [concrete] @@ -305,9 +305,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %a: = bind_name a, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.356)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.2: type, %N.loc4_23.2: %i32) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -322,8 +322,8 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T +// CHECK:STDOUT: %N.loc4_23.1 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_too_many.carbon @@ -367,12 +367,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: = binding_pattern a [concrete] @@ -390,9 +390,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %a: = bind_name a, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.356)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.2: type, %N.loc4_23.2: %i32) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -407,8 +407,8 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T +// CHECK:STDOUT: %N.loc4_23.1 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_no_conversion.carbon @@ -455,12 +455,12 @@ class Outer(T:! type) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %.loc4: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.2 (constants.%N.356)] +// CHECK:STDOUT: %N.loc4_23.2: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: = binding_pattern a [concrete] @@ -478,9 +478,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %a: = bind_name a, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.356)] +// CHECK:STDOUT: generic class @Class(%T.loc4_13.2: type, %N.loc4_23.2: %i32) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %N.loc4_23.1: %i32 = bind_symbolic_name N, 1 [symbolic = %N.loc4_23.1 (constants.%N.356)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -495,8 +495,8 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T, constants.%N.356) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T -// CHECK:STDOUT: %N.loc4_23.2 => constants.%N.356 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T +// CHECK:STDOUT: %N.loc4_23.1 => constants.%N.356 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- call_in_nested_return_type.carbon @@ -563,15 +563,15 @@ class Outer(T:! type) { // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc2_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc2_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Outer(%T.loc2_13.2: type) { +// CHECK:STDOUT: %T.loc2_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc2_13.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc2_13.1) [symbolic = %Inner.type (constants.%Inner.type.eae)] // CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -592,7 +592,7 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc2_13.1: type, %U.loc3_15.1: type) { +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc2_13.2: 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: @@ -612,10 +612,10 @@ class Outer(T:! type) { // CHECK:STDOUT: %return.param_patt: @A.%pattern_type (%pattern_type.e86) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Outer.loc4_22.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.9d6)] -// CHECK:STDOUT: %return.param: ref @A.%Outer.loc4_22.1 (%Outer.9d6) = out_param call_param0 -// CHECK:STDOUT: %return: ref @A.%Outer.loc4_22.1 (%Outer.9d6) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Outer.loc4_22.1: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc4_22.2 (constants.%Outer.9d6)] +// CHECK:STDOUT: %return.param: ref @A.%Outer.loc4_22.2 (%Outer.9d6) = out_param call_param0 +// CHECK:STDOUT: %return: ref @A.%Outer.loc4_22.2 (%Outer.9d6) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: @Inner.%B.type (%B.type.880) = fn_decl @B [symbolic = @Inner.%B (constants.%B.c7b)] { // CHECK:STDOUT: %return.patt: @B.%pattern_type (%pattern_type.089) = return_slot_pattern [concrete] @@ -623,9 +623,9 @@ class Outer(T:! type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] // CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Outer.loc7_22.2: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.99f)] -// CHECK:STDOUT: %return.param: ref @B.%Outer.loc7_22.1 (%Outer.99f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @B.%Outer.loc7_22.1 (%Outer.99f) = return_slot %return.param +// CHECK:STDOUT: %Outer.loc7_22.1: type = class_type @Outer, @Outer(constants.%U) [symbolic = %Outer.loc7_22.2 (constants.%Outer.99f)] +// CHECK:STDOUT: %return.param: ref @B.%Outer.loc7_22.2 (%Outer.99f) = out_param call_param0 +// CHECK:STDOUT: %return: ref @B.%Outer.loc7_22.2 (%Outer.99f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: @Inner.%C.type (%C.type.714) = fn_decl @C [symbolic = @Inner.%C (constants.%C.e62)] { // CHECK:STDOUT: %return.patt: @C.%pattern_type (%pattern_type.a60) = return_slot_pattern [concrete] @@ -633,10 +633,10 @@ class Outer(T:! type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10: @C.%Inner.type (%Inner.type.eae) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %Inner.ref: @C.%Inner.type (%Inner.type.eae) = name_ref Inner, %.loc10 [symbolic = %Inner.generic (constants.%Inner.generic.137)] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Inner.loc10_22.2: type = class_type @Inner, @Inner(constants.%T, constants.%T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.13a)] -// CHECK:STDOUT: %return.param: ref @C.%Inner.loc10_22.1 (%Inner.13a) = out_param call_param0 -// CHECK:STDOUT: %return: ref @C.%Inner.loc10_22.1 (%Inner.13a) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc2_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Inner.loc10_22.1: type = class_type @Inner, @Inner(constants.%T, constants.%T) [symbolic = %Inner.loc10_22.2 (constants.%Inner.13a)] +// CHECK:STDOUT: %return.param: ref @C.%Inner.loc10_22.2 (%Inner.13a) = out_param call_param0 +// CHECK:STDOUT: %return: ref @C.%Inner.loc10_22.2 (%Inner.13a) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: @Inner.%D.type (%D.type.102) = fn_decl @D [symbolic = @Inner.%D (constants.%D.d85)] { // CHECK:STDOUT: %return.patt: @D.%pattern_type (%pattern_type.372) = return_slot_pattern [concrete] @@ -645,9 +645,9 @@ class Outer(T:! type) { // CHECK:STDOUT: %.loc13: @D.%Inner.type (%Inner.type.eae) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %Inner.ref: @D.%Inner.type (%Inner.type.eae) = name_ref Inner, %.loc13 [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %U.ref: type = name_ref U, @Inner.%U.loc3_15.1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Inner.loc13_22.2: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_22.1 (constants.%Inner.c71)] -// CHECK:STDOUT: %return.param: ref @D.%Inner.loc13_22.1 (%Inner.c71) = out_param call_param0 -// CHECK:STDOUT: %return: ref @D.%Inner.loc13_22.1 (%Inner.c71) = return_slot %return.param +// CHECK:STDOUT: %Inner.loc13_22.1: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_22.2 (constants.%Inner.c71)] +// CHECK:STDOUT: %return.param: ref @D.%Inner.loc13_22.2 (%Inner.c71) = out_param call_param0 +// CHECK:STDOUT: %return: ref @D.%Inner.loc13_22.2 (%Inner.c71) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] @@ -666,85 +666,85 @@ class Outer(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { +// CHECK:STDOUT: generic fn @A(@Outer.%T.loc2_13.2: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Outer.loc4_22.1: type = class_type @Outer, @Outer(%T) [symbolic = %Outer.loc4_22.1 (constants.%Outer.9d6)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc4_22.1 [symbolic = %pattern_type (constants.%pattern_type.e86)] +// CHECK:STDOUT: %Outer.loc4_22.2: type = class_type @Outer, @Outer(%T) [symbolic = %Outer.loc4_22.2 (constants.%Outer.9d6)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc4_22.2 [symbolic = %pattern_type (constants.%pattern_type.e86)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc4_22.1 [symbolic = %require_complete (constants.%require_complete.127)] -// CHECK:STDOUT: %Outer.val: @A.%Outer.loc4_22.1 (%Outer.9d6) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.234)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc4_22.2 [symbolic = %require_complete (constants.%require_complete.127)] +// CHECK:STDOUT: %Outer.val: @A.%Outer.loc4_22.2 (%Outer.9d6) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.234)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @A.%Outer.loc4_22.1 (%Outer.9d6) { +// CHECK:STDOUT: fn() -> %return.param: @A.%Outer.loc4_22.2 (%Outer.9d6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc5_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc5_15.2: init @A.%Outer.loc4_22.1 (%Outer.9d6) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.234)] -// CHECK:STDOUT: %.loc5_16: init @A.%Outer.loc4_22.1 (%Outer.9d6) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %Outer.val (constants.%Outer.val.234)] +// CHECK:STDOUT: %.loc5_15.2: init @A.%Outer.loc4_22.2 (%Outer.9d6) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.234)] +// CHECK:STDOUT: %.loc5_16: init @A.%Outer.loc4_22.2 (%Outer.9d6) = converted %.loc5_15.1, %.loc5_15.2 [symbolic = %Outer.val (constants.%Outer.val.234)] // CHECK:STDOUT: return %.loc5_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @B(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { +// CHECK:STDOUT: generic fn @B(@Outer.%T.loc2_13.2: type, @Inner.%U.loc3_15.1: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Outer.loc7_22.1: type = class_type @Outer, @Outer(%U) [symbolic = %Outer.loc7_22.1 (constants.%Outer.99f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc7_22.1 [symbolic = %pattern_type (constants.%pattern_type.089)] +// CHECK:STDOUT: %Outer.loc7_22.2: type = class_type @Outer, @Outer(%U) [symbolic = %Outer.loc7_22.2 (constants.%Outer.99f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Outer.loc7_22.2 [symbolic = %pattern_type (constants.%pattern_type.089)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc7_22.1 [symbolic = %require_complete (constants.%require_complete.964)] -// CHECK:STDOUT: %Outer.val: @B.%Outer.loc7_22.1 (%Outer.99f) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.a2f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Outer.loc7_22.2 [symbolic = %require_complete (constants.%require_complete.964)] +// CHECK:STDOUT: %Outer.val: @B.%Outer.loc7_22.2 (%Outer.99f) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.a2f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @B.%Outer.loc7_22.1 (%Outer.99f) { +// CHECK:STDOUT: fn() -> %return.param: @B.%Outer.loc7_22.2 (%Outer.99f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc8_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc8_15.2: init @B.%Outer.loc7_22.1 (%Outer.99f) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.a2f)] -// CHECK:STDOUT: %.loc8_16: init @B.%Outer.loc7_22.1 (%Outer.99f) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %Outer.val (constants.%Outer.val.a2f)] +// CHECK:STDOUT: %.loc8_15.2: init @B.%Outer.loc7_22.2 (%Outer.99f) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.a2f)] +// CHECK:STDOUT: %.loc8_16: init @B.%Outer.loc7_22.2 (%Outer.99f) = converted %.loc8_15.1, %.loc8_15.2 [symbolic = %Outer.val (constants.%Outer.val.a2f)] // CHECK:STDOUT: return %.loc8_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @C(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { +// CHECK:STDOUT: generic fn @C(@Outer.%T.loc2_13.2: 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.eae)] // CHECK:STDOUT: %Inner.generic: @C.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] -// CHECK:STDOUT: %Inner.loc10_22.1: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.loc10_22.1 (constants.%Inner.13a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc10_22.1 [symbolic = %pattern_type (constants.%pattern_type.a60)] +// CHECK:STDOUT: %Inner.loc10_22.2: type = class_type @Inner, @Inner(%T, %T) [symbolic = %Inner.loc10_22.2 (constants.%Inner.13a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc10_22.2 [symbolic = %pattern_type (constants.%pattern_type.a60)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc10_22.1 [symbolic = %require_complete (constants.%require_complete.7b1)] -// CHECK:STDOUT: %Inner.val: @C.%Inner.loc10_22.1 (%Inner.13a) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.69d)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc10_22.2 [symbolic = %require_complete (constants.%require_complete.7b1)] +// CHECK:STDOUT: %Inner.val: @C.%Inner.loc10_22.2 (%Inner.13a) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.69d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @C.%Inner.loc10_22.1 (%Inner.13a) { +// CHECK:STDOUT: fn() -> %return.param: @C.%Inner.loc10_22.2 (%Inner.13a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc11_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc11_15.2: init @C.%Inner.loc10_22.1 (%Inner.13a) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.69d)] -// CHECK:STDOUT: %.loc11_16: init @C.%Inner.loc10_22.1 (%Inner.13a) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %Inner.val (constants.%Inner.val.69d)] +// CHECK:STDOUT: %.loc11_15.2: init @C.%Inner.loc10_22.2 (%Inner.13a) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.69d)] +// CHECK:STDOUT: %.loc11_16: init @C.%Inner.loc10_22.2 (%Inner.13a) = converted %.loc11_15.1, %.loc11_15.2 [symbolic = %Inner.val (constants.%Inner.val.69d)] // CHECK:STDOUT: return %.loc11_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @D(@Outer.%T.loc2_13.1: type, @Inner.%U.loc3_15.1: type) { +// CHECK:STDOUT: generic fn @D(@Outer.%T.loc2_13.2: 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.eae)] // CHECK:STDOUT: %Inner.generic: @D.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %Inner.loc13_22.1: type = class_type @Inner, @Inner(%T, %U) [symbolic = %Inner.loc13_22.1 (constants.%Inner.c71)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc13_22.1 [symbolic = %pattern_type (constants.%pattern_type.372)] +// CHECK:STDOUT: %Inner.loc13_22.2: type = class_type @Inner, @Inner(%T, %U) [symbolic = %Inner.loc13_22.2 (constants.%Inner.c71)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Inner.loc13_22.2 [symbolic = %pattern_type (constants.%pattern_type.372)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc13_22.1 [symbolic = %require_complete (constants.%require_complete.e7e)] -// CHECK:STDOUT: %Inner.val: @D.%Inner.loc13_22.1 (%Inner.c71) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.dfa)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Inner.loc13_22.2 [symbolic = %require_complete (constants.%require_complete.e7e)] +// CHECK:STDOUT: %Inner.val: @D.%Inner.loc13_22.2 (%Inner.c71) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.dfa)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @D.%Inner.loc13_22.1 (%Inner.c71) { +// CHECK:STDOUT: fn() -> %return.param: @D.%Inner.loc13_22.2 (%Inner.c71) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc14_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc14_15.2: init @D.%Inner.loc13_22.1 (%Inner.c71) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.dfa)] -// CHECK:STDOUT: %.loc14_16: init @D.%Inner.loc13_22.1 (%Inner.c71) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %Inner.val (constants.%Inner.val.dfa)] +// CHECK:STDOUT: %.loc14_15.2: init @D.%Inner.loc13_22.2 (%Inner.c71) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.dfa)] +// CHECK:STDOUT: %.loc14_16: init @D.%Inner.loc13_22.2 (%Inner.c71) = converted %.loc14_15.1, %.loc14_15.2 [symbolic = %Inner.val (constants.%Inner.val.dfa)] // CHECK:STDOUT: return %.loc14_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.loc2_13.2 => constants.%T +// CHECK:STDOUT: %T.loc2_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae @@ -768,12 +768,12 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Outer.loc4_22.1 => constants.%Outer.9d6 +// CHECK:STDOUT: %Outer.loc4_22.2 => constants.%Outer.9d6 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%U) { -// CHECK:STDOUT: %T.loc2_13.2 => constants.%U +// CHECK:STDOUT: %T.loc2_13.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.a71 @@ -782,7 +782,7 @@ class Outer(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @B(constants.%T, constants.%U) { // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Outer.loc7_22.1 => constants.%Outer.99f +// CHECK:STDOUT: %Outer.loc7_22.2 => constants.%Outer.99f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.089 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -805,7 +805,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 -// CHECK:STDOUT: %Inner.loc10_22.1 => constants.%Inner.13a +// CHECK:STDOUT: %Inner.loc10_22.2 => constants.%Inner.13a // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a60 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -814,7 +814,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 // CHECK:STDOUT: %U => constants.%U -// CHECK:STDOUT: %Inner.loc13_22.1 => constants.%Inner.c71 +// CHECK:STDOUT: %Inner.loc13_22.2 => constants.%Inner.c71 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.372 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon index bb51dcc355ae..5a08d3245ed3 100644 --- a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon +++ b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon @@ -60,20 +60,20 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.2fd: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [concrete] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %From: Core.IntLiteral = bind_symbolic_name From, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.708: type = fn_type @Convert.3, @ImplicitAs.impl.971(%From) [symbolic] +// CHECK:STDOUT: %Convert.type.708: type = fn_type @Convert.1, @ImplicitAs.impl.971(%From) [symbolic] // CHECK:STDOUT: %Convert.c68: %Convert.type.708 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.a11: = impl_witness imports.%ImplicitAs.impl_witness_table.1d9, @ImplicitAs.impl.971(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @ImplicitAs.impl.971(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.1, @ImplicitAs.impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.f49: %ImplicitAs.type.2fd = facet_value %i32, (%ImplicitAs.impl_witness.a11) [concrete] // CHECK:STDOUT: %.0ea: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.f49 [concrete] // CHECK:STDOUT: %Convert.bound.588: = bound_method %N.51e, %Convert.960 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.f9c: = bound_method %N.51e, %Convert.specific_fn.8a8 [symbolic] // CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %bound_method.f9c(%N.51e) [symbolic] // CHECK:STDOUT: %iN.builtin.8fe: type = int_type signed, %int.convert_checked [symbolic] @@ -83,14 +83,14 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %complete_type.beb: = complete_type_witness %struct_type.base.n [symbolic] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.921: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.921 [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn.b6f [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %A.6fc: type = class_type @A, @A(%int_0.6a9) [concrete] @@ -157,7 +157,7 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int.1, @Int.1(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_9.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.loc6_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.1 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %a.patt: %pattern_type.213 = binding_pattern a [concrete] @@ -169,7 +169,7 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc15_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc15_12.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc15_12.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -192,15 +192,15 @@ fn F(a: A(0)*) { // CHECK:STDOUT: .N = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @A(%N.loc6_9.1: %i32) { -// CHECK:STDOUT: %N.loc6_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.2 (constants.%N.51e)] +// CHECK:STDOUT: generic class @A(%N.loc6_9.2: %i32) { +// CHECK:STDOUT: %N.loc6_9.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.1 (constants.%N.51e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A: type = class_type @A, @A(%N.loc6_9.2) [symbolic = %A (constants.%A.dd3)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%N.loc6_9.1) [symbolic = %A (constants.%A.dd3)] // CHECK:STDOUT: %A.elem.loc7: type = unbound_element_type %A, constants.%B [symbolic = %A.elem.loc7 (constants.%A.elem.500)] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_9.2, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound.588)] -// CHECK:STDOUT: %bound_method.loc12_14.3: = bound_method %N.loc6_9.2, constants.%Convert.specific_fn.8a8 [symbolic = %bound_method.loc12_14.3 (constants.%bound_method.f9c)] -// CHECK:STDOUT: %int.convert_checked.loc12_14.2: init Core.IntLiteral = call %bound_method.loc12_14.3(%N.loc6_9.2) [symbolic = %int.convert_checked.loc12_14.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_9.1, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound.588)] +// CHECK:STDOUT: %bound_method.loc12_14.3: = bound_method %N.loc6_9.1, constants.%Convert.specific_fn.8a8 [symbolic = %bound_method.loc12_14.3 (constants.%bound_method.f9c)] +// CHECK:STDOUT: %int.convert_checked.loc12_14.2: init Core.IntLiteral = call %bound_method.loc12_14.3(%N.loc6_9.1) [symbolic = %int.convert_checked.loc12_14.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc12_14.2 [symbolic = %iN.builtin (constants.%iN.builtin.8fe)] // CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.e34)] // CHECK:STDOUT: %A.elem.loc12: type = unbound_element_type %A, %iN.builtin [symbolic = %A.elem.loc12 (constants.%A.elem.07f)] @@ -211,10 +211,10 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %.loc7: @A.%A.elem.loc7 (%A.elem.500) = base_decl %B.ref, element0 [concrete] // CHECK:STDOUT: %Int.ref: %Int.type.913 = name_ref Int, file.%Int.decl [concrete = constants.%Int.779] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc6_9.1 [symbolic = %N.loc6_9.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc6_9.2 [symbolic = %N.loc6_9.1 (constants.%N.51e)] // CHECK:STDOUT: %impl.elem0: %.0ea = impl_witness_access constants.%ImplicitAs.impl_witness.a11, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc12_14.1: = bound_method %N.ref, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound.588)] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc12_14.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc12_14.3 (constants.%bound_method.f9c)] // CHECK:STDOUT: %int.convert_checked.loc12_14.1: init Core.IntLiteral = call %bound_method.loc12_14.2(%N.ref) [symbolic = %int.convert_checked.loc12_14.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc12_14.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc12_14.1 [symbolic = %int.convert_checked.loc12_14.2 (constants.%int.convert_checked)] @@ -259,11 +259,11 @@ fn F(a: A(0)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%N.51e) { -// CHECK:STDOUT: %N.loc6_9.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc6_9.1 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%int_0.6a9) { -// CHECK:STDOUT: %N.loc6_9.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %N.loc6_9.1 => constants.%int_0.6a9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A => constants.%A.6fc diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index 8bcafc5e9e69..bfe44269b0e5 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -93,7 +93,7 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %c.patt: %pattern_type.0fa = binding_pattern c [concrete] @@ -121,17 +121,17 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %return.patt: @G.%pattern_type.loc23_29 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc23_29 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc23_32: type = name_ref T, %T.loc23_6.1 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc23_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %c.param: @G.%Class.loc23_26.2 (%Class.fe1b2d.1) = value_param call_param0 -// CHECK:STDOUT: %.loc23: type = splice_block %Class.loc23_26.1 [symbolic = %Class.loc23_26.2 (constants.%Class.fe1b2d.1)] { +// CHECK:STDOUT: %T.ref.loc23_32: type = name_ref T, %T.loc23_6.2 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc23_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %c.param: @G.%Class.loc23_26.1 (%Class.fe1b2d.1) = value_param call_param0 +// CHECK:STDOUT: %.loc23: type = splice_block %Class.loc23_26.2 [symbolic = %Class.loc23_26.1 (constants.%Class.fe1b2d.1)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref.loc23_25: type = name_ref T, %T.loc23_6.1 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %Class.loc23_26.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc23_26.2 (constants.%Class.fe1b2d.1)] +// CHECK:STDOUT: %T.ref.loc23_25: type = name_ref T, %T.loc23_6.2 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %Class.loc23_26.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc23_26.1 (constants.%Class.fe1b2d.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @G.%Class.loc23_26.2 (%Class.fe1b2d.1) = bind_name c, %c.param -// CHECK:STDOUT: %return.param: ref @G.%T.loc23_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @G.%T.loc23_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %c: @G.%Class.loc23_26.1 (%Class.fe1b2d.1) = bind_name c, %c.param +// CHECK:STDOUT: %return.param: ref @G.%T.loc23_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @G.%T.loc23_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] @@ -140,32 +140,32 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: %return.patt: @H.%pattern_type.loc27_29 (%pattern_type.7dcd0a.2) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc27_29 (%pattern_type.7dcd0a.2) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref.loc27_32: type = name_ref U, %U.loc27_6.1 [symbolic = %U.loc27_6.2 (constants.%U)] -// CHECK:STDOUT: %U.loc27_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc27_6.2 (constants.%U)] -// CHECK:STDOUT: %c.param: @H.%Class.loc27_26.2 (%Class.fe1b2d.2) = value_param call_param0 -// CHECK:STDOUT: %.loc27: type = splice_block %Class.loc27_26.1 [symbolic = %Class.loc27_26.2 (constants.%Class.fe1b2d.2)] { +// CHECK:STDOUT: %U.ref.loc27_32: type = name_ref U, %U.loc27_6.2 [symbolic = %U.loc27_6.1 (constants.%U)] +// CHECK:STDOUT: %U.loc27_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc27_6.1 (constants.%U)] +// CHECK:STDOUT: %c.param: @H.%Class.loc27_26.1 (%Class.fe1b2d.2) = value_param call_param0 +// CHECK:STDOUT: %.loc27: type = splice_block %Class.loc27_26.2 [symbolic = %Class.loc27_26.1 (constants.%Class.fe1b2d.2)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %U.ref.loc27_25: type = name_ref U, %U.loc27_6.1 [symbolic = %U.loc27_6.2 (constants.%U)] -// CHECK:STDOUT: %Class.loc27_26.1: type = class_type @Class, @Class(constants.%U) [symbolic = %Class.loc27_26.2 (constants.%Class.fe1b2d.2)] +// CHECK:STDOUT: %U.ref.loc27_25: type = name_ref U, %U.loc27_6.2 [symbolic = %U.loc27_6.1 (constants.%U)] +// CHECK:STDOUT: %Class.loc27_26.2: type = class_type @Class, @Class(constants.%U) [symbolic = %Class.loc27_26.1 (constants.%Class.fe1b2d.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @H.%Class.loc27_26.2 (%Class.fe1b2d.2) = bind_name c, %c.param -// CHECK:STDOUT: %return.param: ref @H.%U.loc27_6.2 (%U) = out_param call_param1 -// CHECK:STDOUT: %return: ref @H.%U.loc27_6.2 (%U) = return_slot %return.param +// CHECK:STDOUT: %c: @H.%Class.loc27_26.1 (%Class.fe1b2d.2) = bind_name c, %c.param +// CHECK:STDOUT: %return.param: ref @H.%U.loc27_6.1 (%U) = out_param call_param1 +// CHECK:STDOUT: %return: ref @H.%U.loc27_6.1 (%U) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc15_13.1: type) { -// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc15_13.2: type) { +// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_13.2 [symbolic = %require_complete (constants.%require_complete.4aeca8.1)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc15_13.2) [symbolic = %Class (constants.%Class.fe1b2d.1)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc15_13.2 [symbolic = %Class.elem (constants.%Class.elem.e262de.1)] -// CHECK:STDOUT: %struct_type.x.loc17_1.2: type = struct_type {.x: @Class.%T.loc15_13.2 (%T)} [symbolic = %struct_type.x.loc17_1.2 (constants.%struct_type.x.2ac3f0.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_13.1 [symbolic = %require_complete (constants.%require_complete.4aeca8.1)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc15_13.1) [symbolic = %Class (constants.%Class.fe1b2d.1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc15_13.1 [symbolic = %Class.elem (constants.%Class.elem.e262de.1)] +// CHECK:STDOUT: %struct_type.x.loc17_1.2: type = struct_type {.x: @Class.%T.loc15_13.1 (%T)} [symbolic = %struct_type.x.loc17_1.2 (constants.%struct_type.x.2ac3f0.1)] // CHECK:STDOUT: %complete_type.loc17_1.2: = complete_type_witness %struct_type.x.loc17_1.2 [symbolic = %complete_type.loc17_1.2 (constants.%complete_type.4339b3.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_13.1 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_13.2 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: %.loc16: @Class.%Class.elem (%Class.elem.e262de.1) = field_decl x, element0 [concrete] // CHECK:STDOUT: %struct_type.x.loc17_1.1: type = struct_type {.x: %T} [symbolic = %struct_type.x.loc17_1.2 (constants.%struct_type.x.2ac3f0.1)] // CHECK:STDOUT: %complete_type.loc17_1.1: = complete_type_witness %struct_type.x.loc17_1.1 [symbolic = %complete_type.loc17_1.2 (constants.%complete_type.4339b3.1)] @@ -187,50 +187,50 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: return %.loc20_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc23_6.1: type) { -// CHECK:STDOUT: %T.loc23_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %Class.loc23_26.2: type = class_type @Class, @Class(%T.loc23_6.2) [symbolic = %Class.loc23_26.2 (constants.%Class.fe1b2d.1)] -// CHECK:STDOUT: %pattern_type.loc23_16: type = pattern_type %Class.loc23_26.2 [symbolic = %pattern_type.loc23_16 (constants.%pattern_type.3c18fb.1)] -// CHECK:STDOUT: %pattern_type.loc23_29: type = pattern_type %T.loc23_6.2 [symbolic = %pattern_type.loc23_29 (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @G(%T.loc23_6.2: type) { +// CHECK:STDOUT: %T.loc23_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %Class.loc23_26.1: type = class_type @Class, @Class(%T.loc23_6.1) [symbolic = %Class.loc23_26.1 (constants.%Class.fe1b2d.1)] +// CHECK:STDOUT: %pattern_type.loc23_16: type = pattern_type %Class.loc23_26.1 [symbolic = %pattern_type.loc23_16 (constants.%pattern_type.3c18fb.1)] +// CHECK:STDOUT: %pattern_type.loc23_29: type = pattern_type %T.loc23_6.1 [symbolic = %pattern_type.loc23_29 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc23: = require_complete_type %Class.loc23_26.2 [symbolic = %require_complete.loc23 (constants.%require_complete.4f8a42.1)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc23_26.2, %T.loc23_6.2 [symbolic = %Class.elem (constants.%Class.elem.e262de.1)] -// CHECK:STDOUT: %require_complete.loc24: = require_complete_type %T.loc23_6.2 [symbolic = %require_complete.loc24 (constants.%require_complete.4aeca8.1)] +// CHECK:STDOUT: %require_complete.loc23: = require_complete_type %Class.loc23_26.1 [symbolic = %require_complete.loc23 (constants.%require_complete.4f8a42.1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc23_26.1, %T.loc23_6.1 [symbolic = %Class.elem (constants.%Class.elem.e262de.1)] +// CHECK:STDOUT: %require_complete.loc24: = require_complete_type %T.loc23_6.1 [symbolic = %require_complete.loc24 (constants.%require_complete.4aeca8.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @G.%Class.loc23_26.2 (%Class.fe1b2d.1)) -> @G.%T.loc23_6.2 (%T) { +// CHECK:STDOUT: fn(%c.param: @G.%Class.loc23_26.1 (%Class.fe1b2d.1)) -> @G.%T.loc23_6.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @G.%Class.loc23_26.2 (%Class.fe1b2d.1) = name_ref c, %c +// CHECK:STDOUT: %c.ref: @G.%Class.loc23_26.1 (%Class.fe1b2d.1) = name_ref c, %c // CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.e262de.1) = name_ref x, @Class.%.loc16 [concrete = @Class.%.loc16] -// CHECK:STDOUT: %.loc24_11.1: ref @G.%T.loc23_6.2 (%T) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc24_11.2: @G.%T.loc23_6.2 (%T) = bind_value %.loc24_11.1 +// CHECK:STDOUT: %.loc24_11.1: ref @G.%T.loc23_6.1 (%T) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc24_11.2: @G.%T.loc23_6.1 (%T) = bind_value %.loc24_11.1 // CHECK:STDOUT: return %.loc24_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @H(%U.loc27_6.1: type) { -// CHECK:STDOUT: %U.loc27_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc27_6.2 (constants.%U)] -// CHECK:STDOUT: %Class.loc27_26.2: type = class_type @Class, @Class(%U.loc27_6.2) [symbolic = %Class.loc27_26.2 (constants.%Class.fe1b2d.2)] -// CHECK:STDOUT: %pattern_type.loc27_16: type = pattern_type %Class.loc27_26.2 [symbolic = %pattern_type.loc27_16 (constants.%pattern_type.3c18fb.2)] -// CHECK:STDOUT: %pattern_type.loc27_29: type = pattern_type %U.loc27_6.2 [symbolic = %pattern_type.loc27_29 (constants.%pattern_type.7dcd0a.2)] +// CHECK:STDOUT: generic fn @H(%U.loc27_6.2: type) { +// CHECK:STDOUT: %U.loc27_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc27_6.1 (constants.%U)] +// CHECK:STDOUT: %Class.loc27_26.1: type = class_type @Class, @Class(%U.loc27_6.1) [symbolic = %Class.loc27_26.1 (constants.%Class.fe1b2d.2)] +// CHECK:STDOUT: %pattern_type.loc27_16: type = pattern_type %Class.loc27_26.1 [symbolic = %pattern_type.loc27_16 (constants.%pattern_type.3c18fb.2)] +// CHECK:STDOUT: %pattern_type.loc27_29: type = pattern_type %U.loc27_6.1 [symbolic = %pattern_type.loc27_29 (constants.%pattern_type.7dcd0a.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc27_29: = require_complete_type %U.loc27_6.2 [symbolic = %require_complete.loc27_29 (constants.%require_complete.4aeca8.2)] -// CHECK:STDOUT: %require_complete.loc27_17: = require_complete_type %Class.loc27_26.2 [symbolic = %require_complete.loc27_17 (constants.%require_complete.4f8a42.2)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc27_26.2, %U.loc27_6.2 [symbolic = %Class.elem (constants.%Class.elem.e262de.2)] +// CHECK:STDOUT: %require_complete.loc27_29: = require_complete_type %U.loc27_6.1 [symbolic = %require_complete.loc27_29 (constants.%require_complete.4aeca8.2)] +// CHECK:STDOUT: %require_complete.loc27_17: = require_complete_type %Class.loc27_26.1 [symbolic = %require_complete.loc27_17 (constants.%require_complete.4f8a42.2)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc27_26.1, %U.loc27_6.1 [symbolic = %Class.elem (constants.%Class.elem.e262de.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @H.%Class.loc27_26.2 (%Class.fe1b2d.2)) -> @H.%U.loc27_6.2 (%U) { +// CHECK:STDOUT: fn(%c.param: @H.%Class.loc27_26.1 (%Class.fe1b2d.2)) -> @H.%U.loc27_6.1 (%U) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @H.%Class.loc27_26.2 (%Class.fe1b2d.2) = name_ref c, %c +// CHECK:STDOUT: %c.ref: @H.%Class.loc27_26.1 (%Class.fe1b2d.2) = name_ref c, %c // CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.e262de.2) = name_ref x, @Class.%.loc16 [concrete = @Class.%.loc16] -// CHECK:STDOUT: %.loc28_11.1: ref @H.%U.loc27_6.2 (%U) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc28_11.2: @H.%U.loc27_6.2 (%U) = bind_value %.loc28_11.1 +// CHECK:STDOUT: %.loc28_11.1: ref @H.%U.loc27_6.1 (%U) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc28_11.2: @H.%U.loc27_6.1 (%U) = bind_value %.loc28_11.1 // CHECK:STDOUT: return %.loc28_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%T +// CHECK:STDOUT: %T.loc15_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.1 @@ -241,7 +241,7 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%i32) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%i32 +// CHECK:STDOUT: %T.loc15_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a @@ -252,14 +252,14 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.loc23_6.2 => constants.%T -// CHECK:STDOUT: %Class.loc23_26.2 => constants.%Class.fe1b2d.1 +// CHECK:STDOUT: %T.loc23_6.1 => constants.%T +// CHECK:STDOUT: %Class.loc23_26.1 => constants.%Class.fe1b2d.1 // CHECK:STDOUT: %pattern_type.loc23_16 => constants.%pattern_type.3c18fb.1 // CHECK:STDOUT: %pattern_type.loc23_29 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%U) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%U +// CHECK:STDOUT: %T.loc15_13.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.2 @@ -270,8 +270,8 @@ fn H(U:! type, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%U) { -// CHECK:STDOUT: %U.loc27_6.2 => constants.%U -// CHECK:STDOUT: %Class.loc27_26.2 => constants.%Class.fe1b2d.2 +// CHECK:STDOUT: %U.loc27_6.1 => constants.%U +// CHECK:STDOUT: %Class.loc27_26.1 => constants.%Class.fe1b2d.2 // CHECK:STDOUT: %pattern_type.loc27_16 => constants.%pattern_type.3c18fb.2 // CHECK:STDOUT: %pattern_type.loc27_29 => constants.%pattern_type.7dcd0a.2 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index e8c5b1c994b6..7bfd2b7846ad 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -113,17 +113,17 @@ class Class(U:! type) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %CompleteClass.e9e: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] @@ -156,12 +156,12 @@ class Class(U:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CompleteClass.decl: %CompleteClass.type = class_decl @CompleteClass [concrete = constants.%CompleteClass.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_21.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_21.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.loc11 [concrete = constants.%F.c41] { // CHECK:STDOUT: %return.patt: %pattern_type.0b0 = return_slot_pattern [concrete] @@ -176,19 +176,19 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Class(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @CompleteClass(%T.loc6_21.2: type) { +// CHECK:STDOUT: %T.loc6_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_21.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.loc6_21.2) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] +// CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T.loc6_21.1) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] // CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @CompleteClass(%T.loc6_21.2) [symbolic = %F.type (constants.%F.type.14f)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @CompleteClass(%T.loc6_21.1) [symbolic = %F.type (constants.%F.type.14f)] // CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.14f) = struct_value () [symbolic = %F (constants.%F.874)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -215,7 +215,7 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc8(@CompleteClass.%T.loc6_21.1: type) { +// CHECK:STDOUT: generic fn @F.loc8(@CompleteClass.%T.loc6_21.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %i32 { @@ -223,7 +223,7 @@ class Class(U:! type) { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_27.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_27.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_27.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc8_27.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -235,11 +235,11 @@ class Class(U:! type) { // CHECK:STDOUT: fn @F.loc11() -> %CompleteClass.e9e; // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%T) { -// CHECK:STDOUT: %T.loc6_21.2 => constants.%T +// CHECK:STDOUT: %T.loc6_21.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %CompleteClass => constants.%CompleteClass.f97 @@ -251,7 +251,7 @@ class Class(U:! type) { // CHECK:STDOUT: specific @F.loc8(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%i32) { -// CHECK:STDOUT: %T.loc6_21.2 => constants.%i32 +// CHECK:STDOUT: %T.loc6_21.1 => constants.%i32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- foo.impl.carbon @@ -465,21 +465,21 @@ class Class(U:! type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %CompleteClass.f97: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %CompleteClass.elem.28a: type = unbound_element_type %CompleteClass.f97, %i32 [symbolic] -// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.2, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %F.874: %F.type.14f = struct_value () [symbolic] // CHECK:STDOUT: %CompleteClass.e9e: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] // CHECK:STDOUT: %CompleteClass.elem.7fc: type = unbound_element_type %CompleteClass.e9e, %i32 [concrete] -// CHECK:STDOUT: %F.type.1bc: type = fn_type @F.1, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %F.type.1bc: type = fn_type @F.2, @CompleteClass(%i32) [concrete] // CHECK:STDOUT: %F.f7c: %F.type.1bc = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.0b0: type = pattern_type %CompleteClass.e9e [concrete] -// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.type.b25: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.f7c, @F.1(%i32) [concrete] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.f7c, @F.2(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.9c5: type = fn_type @Op.3, @Destroy.impl(%CompleteClass.e9e) [concrete] +// CHECK:STDOUT: %Op.type.9c5: type = fn_type @Op.1, @Destroy.impl(%CompleteClass.e9e) [concrete] // CHECK:STDOUT: %Op.d10: %Op.type.9c5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.a97: type = ptr_type %CompleteClass.e9e [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d10, @Op.3(%CompleteClass.e9e) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d10, @Op.1(%CompleteClass.e9e) [concrete] // CHECK:STDOUT: %UseField.type: type = fn_type @UseField [concrete] // CHECK:STDOUT: %UseField: %UseField.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -542,7 +542,7 @@ class Class(U:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] // CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.28a)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.14f)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.14f)] // CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.14f) = struct_value () [symbolic = %F (constants.%F.874)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -576,30 +576,30 @@ class Class(U:! type) { // CHECK:STDOUT: %v.ref: ref %CompleteClass.e9e = name_ref v, %v // CHECK:STDOUT: %.loc7_11: %F.type.1bc = specific_constant imports.%Main.import_ref.a52, @CompleteClass(constants.%i32) [concrete = constants.%F.f7c] // CHECK:STDOUT: %F.ref.loc7: %F.type.1bc = name_ref F, %.loc7_11 [concrete = constants.%F.f7c] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref.loc7, @F.1(constants.%i32) [concrete = constants.%F.specific_fn] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref.loc7, @F.2(constants.%i32) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call.loc7: init %i32 = call %F.specific_fn() // CHECK:STDOUT: %.loc7_15.1: %i32 = value_of_initializer %F.call.loc7 // CHECK:STDOUT: %.loc7_15.2: %i32 = converted %F.call.loc7, %.loc7_15.1 // CHECK:STDOUT: %Op.bound.loc6_3.1: = bound_method %.loc6_3, constants.%Op.d10 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d10, @Op.3(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d10, @Op.1(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_3.1: = bound_method %.loc6_3, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc6_3.1: %ptr.a97 = addr_of %.loc6_3 // CHECK:STDOUT: %no_op.loc6_3.1: init %empty_tuple.type = call %bound_method.loc6_3.1(%addr.loc6_3.1) // CHECK:STDOUT: %Op.bound.loc6_3.2: = bound_method %v.var, constants.%Op.d10 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.d10, @Op.3(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.d10, @Op.1(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc6_3.2: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc6_3.2: %ptr.a97 = addr_of %v.var // CHECK:STDOUT: %no_op.loc6_3.2: init %empty_tuple.type = call %bound_method.loc6_3.2(%addr.loc6_3.2) // CHECK:STDOUT: return %.loc7_15.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%Main.import_ref.5ab3ec.2: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%Main.import_ref.5ab3ec.2: type) [from "foo.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2 [from "foo.carbon"]; +// CHECK:STDOUT: fn @F.1 [from "foo.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @UseField() -> %i32 { // CHECK:STDOUT: !entry: @@ -624,12 +624,12 @@ class Class(U:! type) { // CHECK:STDOUT: %.loc12_11.1: ref %i32 = class_element_access %v.ref, element0 // CHECK:STDOUT: %.loc12_11.2: %i32 = bind_value %.loc12_11.1 // CHECK:STDOUT: %Op.bound.loc11_3.1: = bound_method %.loc11_3, constants.%Op.d10 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d10, @Op.3(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d10, @Op.1(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_3.1: = bound_method %.loc11_3, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc11_3.1: %ptr.a97 = addr_of %.loc11_3 // CHECK:STDOUT: %no_op.loc11_3.1: init %empty_tuple.type = call %bound_method.loc11_3.1(%addr.loc11_3.1) // CHECK:STDOUT: %Op.bound.loc11_3.2: = bound_method %v.var, constants.%Op.d10 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.d10, @Op.3(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.d10, @Op.1(constants.%CompleteClass.e9e) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_3.2: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11_3.2: %ptr.a97 = addr_of %v.var // CHECK:STDOUT: %no_op.loc11_3.2: init %empty_tuple.type = call %bound_method.loc11_3.2(%addr.loc11_3.2) @@ -646,7 +646,7 @@ class Class(U:! type) { // CHECK:STDOUT: %F => constants.%F.874 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%T) {} +// CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 @@ -658,7 +658,7 @@ class Class(U:! type) { // CHECK:STDOUT: %F => constants.%F.f7c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%i32) { +// CHECK:STDOUT: specific @F.2(constants.%i32) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -679,31 +679,31 @@ class Class(U:! type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %CompleteClass.f97: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %CompleteClass.elem.9ef: type = unbound_element_type %CompleteClass.f97, %i32 [symbolic] -// CHECK:STDOUT: %F.type.14f: type = fn_type @F.1, @CompleteClass(%T) [symbolic] +// CHECK:STDOUT: %F.type.14f: type = fn_type @F.2, @CompleteClass(%T) [symbolic] // CHECK:STDOUT: %F.874: %F.type.14f = struct_value () [symbolic] // CHECK:STDOUT: %ptr.9e1: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %CompleteClass.0fe: type = class_type @CompleteClass, @CompleteClass(%ptr.9e1) [concrete] // CHECK:STDOUT: %CompleteClass.elem.d29: type = unbound_element_type %CompleteClass.0fe, %i32 [concrete] -// CHECK:STDOUT: %F.type.8cf: type = fn_type @F.1, @CompleteClass(%ptr.9e1) [concrete] +// CHECK:STDOUT: %F.type.8cf: type = fn_type @F.2, @CompleteClass(%ptr.9e1) [concrete] // CHECK:STDOUT: %F.012: %F.type.8cf = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.062: type = pattern_type %CompleteClass.0fe [concrete] -// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.type.b25: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] // CHECK:STDOUT: %CompleteClass.a06: type = class_type @CompleteClass, @CompleteClass(%i32) [concrete] // CHECK:STDOUT: %CompleteClass.elem.426: type = unbound_element_type %CompleteClass.a06, %i32 [concrete] -// CHECK:STDOUT: %F.type.0aa: type = fn_type @F.1, @CompleteClass(%i32) [concrete] +// CHECK:STDOUT: %F.type.0aa: type = fn_type @F.2, @CompleteClass(%i32) [concrete] // CHECK:STDOUT: %F.971: %F.type.0aa = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.370: type = fn_type @Op.3, @Destroy.impl(%CompleteClass.a06) [concrete] +// CHECK:STDOUT: %Op.type.370: type = fn_type @Op.1, @Destroy.impl(%CompleteClass.a06) [concrete] // CHECK:STDOUT: %Op.867: %Op.type.370 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d29: type = ptr_type %CompleteClass.a06 [concrete] -// CHECK:STDOUT: %Op.specific_fn.0ab: = specific_function %Op.867, @Op.3(%CompleteClass.a06) [concrete] -// CHECK:STDOUT: %Op.type.310: type = fn_type @Op.3, @Destroy.impl(%CompleteClass.0fe) [concrete] +// CHECK:STDOUT: %Op.specific_fn.0ab: = specific_function %Op.867, @Op.1(%CompleteClass.a06) [concrete] +// CHECK:STDOUT: %Op.type.310: type = fn_type @Op.1, @Destroy.impl(%CompleteClass.0fe) [concrete] // CHECK:STDOUT: %Op.200: %Op.type.310 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c79: type = ptr_type %CompleteClass.0fe [concrete] -// CHECK:STDOUT: %Op.specific_fn.a4e: = specific_function %Op.200, @Op.3(%CompleteClass.0fe) [concrete] +// CHECK:STDOUT: %Op.specific_fn.a4e: = specific_function %Op.200, @Op.1(%CompleteClass.0fe) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -747,7 +747,7 @@ class Class(U:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %CompleteClass: type = class_type @CompleteClass, @CompleteClass(%T) [symbolic = %CompleteClass (constants.%CompleteClass.f97)] // CHECK:STDOUT: %CompleteClass.elem: type = unbound_element_type %CompleteClass, constants.%i32 [symbolic = %CompleteClass.elem (constants.%CompleteClass.elem.9ef)] -// CHECK:STDOUT: %F.type: type = fn_type @F.1, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.14f)] +// CHECK:STDOUT: %F.type: type = fn_type @F.2, @CompleteClass(%T) [symbolic = %F.type (constants.%F.type.14f)] // CHECK:STDOUT: %F: @CompleteClass.%F.type (%F.type.14f) = struct_value () [symbolic = %F (constants.%F.874)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -781,25 +781,25 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %CompleteClass.0fe = bind_name v, %v.var // CHECK:STDOUT: %Op.bound.loc14_34: = bound_method %.loc14_34, constants.%Op.867 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.867, @Op.3(constants.%CompleteClass.a06) [concrete = constants.%Op.specific_fn.0ab] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.867, @Op.1(constants.%CompleteClass.a06) [concrete = constants.%Op.specific_fn.0ab] // CHECK:STDOUT: %bound_method.loc14_34: = bound_method %.loc14_34, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14_34: %ptr.d29 = addr_of %.loc14_34 // CHECK:STDOUT: %no_op.loc14_34: init %empty_tuple.type = call %bound_method.loc14_34(%addr.loc14_34) // CHECK:STDOUT: %Op.bound.loc14_3: = bound_method %v.var, constants.%Op.200 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.200, @Op.3(constants.%CompleteClass.0fe) [concrete = constants.%Op.specific_fn.a4e] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.200, @Op.1(constants.%CompleteClass.0fe) [concrete = constants.%Op.specific_fn.a4e] // CHECK:STDOUT: %bound_method.loc14_3: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc14_3: %ptr.c79 = addr_of %v.var // CHECK:STDOUT: %no_op.loc14_3: init %empty_tuple.type = call %bound_method.loc14_3(%addr.loc14_3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%Main.import_ref.5ab3ec.2: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%Main.import_ref.5ab3ec.2: type) [from "foo.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2 [from "foo.carbon"]; +// CHECK:STDOUT: fn @F.1 [from "foo.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%T) { // CHECK:STDOUT: %T => constants.%T @@ -811,7 +811,7 @@ class Class(U:! type) { // CHECK:STDOUT: %F => constants.%F.874 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%T) {} +// CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CompleteClass(constants.%ptr.9e1) { // CHECK:STDOUT: %T => constants.%ptr.9e1 @@ -871,7 +871,7 @@ class Class(U:! type) { // CHECK:STDOUT: %Class.decl: %Class.type.cf06d9.2 = class_decl @Class.loc12 [concrete = constants.%Class.generic.9545f5.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc12_13.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_13.2 (constants.%U)] +// CHECK:STDOUT: %U.loc12_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_13.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -881,8 +881,8 @@ class Class(U:! type) { // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class.loc12(%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: generic class @Class.loc12(%U.loc12_13.2: type) { +// CHECK:STDOUT: %U.loc12_13.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_13.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -905,6 +905,6 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.loc12(constants.%U) { -// CHECK:STDOUT: %U.loc12_13.2 => constants.%U +// CHECK:STDOUT: %U.loc12_13.1 => 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 4ac0abbaa7d9..3072c76359e5 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -115,7 +115,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructGeneric.decl: %InitFromStructGeneric.type = fn_decl @InitFromStructGeneric [concrete = constants.%InitFromStructGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -124,13 +124,13 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc8 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc8 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc8_45: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)] -// CHECK:STDOUT: %T.loc8_26.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_26.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.loc8_26.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc8_39: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)] -// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.loc8_26.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc8_45: type = name_ref T, %T.loc8_26.2 [symbolic = %T.loc8_26.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_26.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_26.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.loc8_26.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc8_39: type = name_ref T, %T.loc8_26.2 [symbolic = %T.loc8_26.1 (constants.%T)] +// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.loc8_26.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.loc8_26.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.loc8_26.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [concrete = constants.%InitFromStructSpecific] { // CHECK:STDOUT: %x.patt: %pattern_type.7ce = binding_pattern x [concrete] @@ -151,18 +151,18 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Class(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class.fe1)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc4_13.2 [symbolic = %Class.elem (constants.%Class.elem.e26)] -// CHECK:STDOUT: %struct_type.k.loc6_1.2: type = struct_type {.k: @Class.%T.loc4_13.2 (%T)} [symbolic = %struct_type.k.loc6_1.2 (constants.%struct_type.k.b21)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.1) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc4_13.1 [symbolic = %Class.elem (constants.%Class.elem.e26)] +// CHECK:STDOUT: %struct_type.k.loc6_1.2: type = struct_type {.k: @Class.%T.loc4_13.1 (%T)} [symbolic = %struct_type.k.loc6_1.2 (constants.%struct_type.k.b21)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.k.loc6_1.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.b9e)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %.loc5: @Class.%Class.elem (%Class.elem.e26) = field_decl k, element0 [concrete] // CHECK:STDOUT: %struct_type.k.loc6_1.1: type = struct_type {.k: %T} [symbolic = %struct_type.k.loc6_1.2 (constants.%struct_type.k.b21)] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.k.loc6_1.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.b9e)] @@ -175,17 +175,17 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type.loc8: type = pattern_type %T.loc8_26.2 [symbolic = %pattern_type.loc8 (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @InitFromStructGeneric(%T.loc8_26.2: type) { +// CHECK:STDOUT: %T.loc8_26.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_26.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type.loc8: type = pattern_type %T.loc8_26.1 [symbolic = %pattern_type.loc8 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc8_26.2 [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Class.loc9_17.2: type = class_type @Class, @Class(%T.loc8_26.2) [symbolic = %Class.loc9_17.2 (constants.%Class.fe1)] +// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc8_26.1 [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class.loc9_17.2: type = class_type @Class, @Class(%T.loc8_26.1) [symbolic = %Class.loc9_17.2 (constants.%Class.fe1)] // CHECK:STDOUT: %require_complete.loc9_17: = require_complete_type %Class.loc9_17.2 [symbolic = %require_complete.loc9_17 (constants.%require_complete.4f8)] // CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %Class.loc9_17.2 [symbolic = %pattern_type.loc9 (constants.%pattern_type.3c1)] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.loc8_26.2 (%T)} [symbolic = %struct_type.k (constants.%struct_type.k.b21)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc9_17.2, %T.loc8_26.2 [symbolic = %Class.elem (constants.%Class.elem.e26)] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.loc8_26.1 (%T)} [symbolic = %struct_type.k (constants.%struct_type.k.b21)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc9_17.2, %T.loc8_26.1 [symbolic = %Class.elem (constants.%Class.elem.e26)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc9_17.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc9_17.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.2d8)] // CHECK:STDOUT: %.loc9_3.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc9_3.3 (constants.%.d76)] @@ -194,30 +194,30 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %ptr: type = ptr_type %Class.loc9_17.2 [symbolic = %ptr (constants.%ptr.955)] // CHECK:STDOUT: %require_complete.loc9_3: = require_complete_type %ptr [symbolic = %require_complete.loc9_3 (constants.%require_complete.2ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.loc8_26.2 (%T)) -> @InitFromStructGeneric.%T.loc8_26.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.loc8_26.1 (%T)) -> @InitFromStructGeneric.%T.loc8_26.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.3c1) = binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.3c1) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc9_17.2 (%Class.fe1) = var %v.var_patt -// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.loc8_26.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.loc8_26.1 (%T) = name_ref x, %x // CHECK:STDOUT: %.loc9_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.b21) = 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.2: ref @InitFromStructGeneric.%T.loc8_26.1 (%T) = class_element_access %v.var, element0 +// CHECK:STDOUT: %.loc9_28.3: init @InitFromStructGeneric.%T.loc8_26.1 (%T) = initialize_from %x.ref to %.loc9_28.2 // CHECK:STDOUT: %.loc9_28.4: init @InitFromStructGeneric.%Class.loc9_17.2 (%Class.fe1) = class_init (%.loc9_28.3), %v.var // CHECK:STDOUT: %.loc9_3.1: init @InitFromStructGeneric.%Class.loc9_17.2 (%Class.fe1) = converted %.loc9_28.1, %.loc9_28.4 // CHECK:STDOUT: assign %v.var, %.loc9_3.1 // CHECK:STDOUT: %.loc9_17: type = splice_block %Class.loc9_17.1 [symbolic = %Class.loc9_17.2 (constants.%Class.fe1)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_26.2 [symbolic = %T.loc8_26.1 (constants.%T)] // CHECK:STDOUT: %Class.loc9_17.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc9_17.2 (constants.%Class.fe1)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc9_17.2 (%Class.fe1) = bind_name v, %v.var // CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc9_17.2 (%Class.fe1) = name_ref v, %v // CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.e26) = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] -// 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: %.loc10_11.1: ref @InitFromStructGeneric.%T.loc8_26.1 (%T) = class_element_access %v.ref, element0 +// CHECK:STDOUT: %.loc10_11.2: @InitFromStructGeneric.%T.loc8_26.1 (%T) = bind_value %.loc10_11.1 // CHECK:STDOUT: %impl.elem0.loc9_3.1: @InitFromStructGeneric.%.loc9_3.3 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_3.2 (constants.%impl.elem0.5b7)] // CHECK:STDOUT: %bound_method.loc9_3.1: = bound_method %v.var, %impl.elem0.loc9_3.1 // CHECK:STDOUT: %specific_impl_fn.loc9_3.1: = specific_impl_function %impl.elem0.loc9_3.1, @Op.1(constants.%Destroy.facet.2d8) [symbolic = %specific_impl_fn.loc9_3.2 (constants.%specific_impl_fn)] @@ -262,7 +262,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4ae @@ -273,12 +273,12 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromStructGeneric(constants.%T) { -// CHECK:STDOUT: %T.loc8_26.2 => constants.%T +// CHECK:STDOUT: %T.loc8_26.1 => constants.%T // CHECK:STDOUT: %pattern_type.loc8 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%i32) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a @@ -335,7 +335,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Adapt.decl: %Adapt.type = class_decl @Adapt [concrete = constants.%Adapt.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromAdaptedGeneric.decl: %InitFromAdaptedGeneric.type = fn_decl @InitFromAdaptedGeneric [concrete = constants.%InitFromAdaptedGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -344,13 +344,13 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc8_46: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] -// CHECK:STDOUT: %T.loc8_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_27.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc8_40: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] -// CHECK:STDOUT: %x: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc8_46: type = name_ref T, %T.loc8_27.2 [symbolic = %T.loc8_27.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_27.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc8_40: type = name_ref T, %T.loc8_27.2 [symbolic = %T.loc8_27.1 (constants.%T)] +// CHECK:STDOUT: %x: @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [concrete = constants.%InitFromAdaptedSpecific] { // CHECK:STDOUT: %x.patt: %pattern_type.7ce = binding_pattern x [concrete] @@ -371,15 +371,15 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Adapt(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %T.loc4_13.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %T.loc4_13.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: adapt_decl %T.ref [concrete] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness constants.%T [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.f87)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc6_1.1 @@ -390,26 +390,26 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type: type = pattern_type %T.loc8_27.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @InitFromAdaptedGeneric(%T.loc8_27.2: type) { +// CHECK:STDOUT: %T.loc8_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_27.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc8_27.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc8_27.2 [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Adapt.loc9_23.2: type = class_type @Adapt, @Adapt(%T.loc8_27.2) [symbolic = %Adapt.loc9_23.2 (constants.%Adapt.2e4)] +// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc8_27.1 [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Adapt.loc9_23.2: type = class_type @Adapt, @Adapt(%T.loc8_27.1) [symbolic = %Adapt.loc9_23.2 (constants.%Adapt.2e4)] // CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Adapt.loc9_23.2 [symbolic = %require_complete.loc9 (constants.%require_complete.26c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T)) -> @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.loc8_27.1 (%T)) -> @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) = name_ref x, %x // CHECK:STDOUT: %Adapt.ref: %Adapt.type = name_ref Adapt, file.%Adapt.decl [concrete = constants.%Adapt.generic] -// CHECK:STDOUT: %T.ref.loc9_22: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc9_22: type = name_ref T, %T.loc8_27.2 [symbolic = %T.loc8_27.1 (constants.%T)] // CHECK:STDOUT: %Adapt.loc9_23.1: type = class_type @Adapt, @Adapt(constants.%T) [symbolic = %Adapt.loc9_23.2 (constants.%Adapt.2e4)] // CHECK:STDOUT: %.loc9_13.1: @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.2e4) = as_compatible %x.ref // CHECK:STDOUT: %.loc9_13.2: @InitFromAdaptedGeneric.%Adapt.loc9_23.2 (%Adapt.2e4) = 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: %T.ref.loc9_29: type = name_ref T, %T.loc8_27.2 [symbolic = %T.loc8_27.1 (constants.%T)] +// CHECK:STDOUT: %.loc9_26.1: @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) = as_compatible %.loc9_13.2 +// CHECK:STDOUT: %.loc9_26.2: @InitFromAdaptedGeneric.%T.loc8_27.1 (%T) = converted %.loc9_13.2, %.loc9_26.1 // CHECK:STDOUT: return %.loc9_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -431,7 +431,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapt(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4ae @@ -439,12 +439,12 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromAdaptedGeneric(constants.%T) { -// CHECK:STDOUT: %T.loc8_27.2 => constants.%T +// CHECK:STDOUT: %T.loc8_27.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Adapt(constants.%i32) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index 7a0f5595f124..717118b8da04 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -125,7 +125,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc2_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc2_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %DirectFieldAccess.decl: %DirectFieldAccess.type = fn_decl @DirectFieldAccess [concrete = constants.%DirectFieldAccess] { // CHECK:STDOUT: %x.patt: %pattern_type.0fa = binding_pattern x [concrete] @@ -187,22 +187,22 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Class(%T.loc2_13.2: type) { +// CHECK:STDOUT: %T.loc2_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc2_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc2_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc2_13.2) [symbolic = %Class (constants.%Class.fe1)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc2_13.2 [symbolic = %Class.elem (constants.%Class.elem.e26)] -// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc2_13.2) [symbolic = %Get.type (constants.%Get.type.fd9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc2_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc2_13.1) [symbolic = %Class (constants.%Class.fe1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc2_13.1 [symbolic = %Class.elem (constants.%Class.elem.e26)] +// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc2_13.1) [symbolic = %Get.type (constants.%Get.type.fd9)] // CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.fd9) = struct_value () [symbolic = %Get (constants.%Get.cf9)] -// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc2_13.2) [symbolic = %GetAddr.type (constants.%GetAddr.type.402)] +// CHECK:STDOUT: %GetAddr.type: type = fn_type @GetAddr, @Class(%T.loc2_13.1) [symbolic = %GetAddr.type (constants.%GetAddr.type.402)] // CHECK:STDOUT: %GetAddr: @Class.%GetAddr.type (%GetAddr.type.402) = struct_value () [symbolic = %GetAddr (constants.%GetAddr.102)] -// CHECK:STDOUT: %struct_type.x.loc8_1.2: type = struct_type {.x: @Class.%T.loc2_13.2 (%T)} [symbolic = %struct_type.x.loc8_1.2 (constants.%struct_type.x.2ac)] +// CHECK:STDOUT: %struct_type.x.loc8_1.2: type = struct_type {.x: @Class.%T.loc2_13.1 (%T)} [symbolic = %struct_type.x.loc8_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc8_1.2: = complete_type_witness %struct_type.x.loc8_1.2 [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.433)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc2_13.1 [symbolic = %T.loc2_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc2_13.2 [symbolic = %T.loc2_13.1 (constants.%T)] // CHECK:STDOUT: %.loc3: @Class.%Class.elem (%Class.elem.e26) = field_decl x, element0 [concrete] // CHECK:STDOUT: %Get.decl: @Class.%Get.type (%Get.type.fd9) = fn_decl @Get [symbolic = @Class.%Get (constants.%Get.cf9)] { // CHECK:STDOUT: %self.patt: @Get.%pattern_type.loc5_10 (%pattern_type.3c1) = binding_pattern self [concrete] @@ -210,7 +210,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %return.patt: @Get.%pattern_type.loc5_24 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Get.%pattern_type.loc5_24 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %self.param: @Get.%Class (%Class.fe1) = value_param call_param0 // CHECK:STDOUT: %.loc5_16.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class.fe1)] { // CHECK:STDOUT: %.loc5_16.2: type = specific_constant constants.%Class.fe1, @Class(constants.%T) [symbolic = %Class (constants.%Class.fe1)] @@ -227,17 +227,17 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %return.patt: @GetAddr.%pattern_type.loc7_34 (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @GetAddr.%pattern_type.loc7_34 (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ptr.loc7_38.2: type = ptr_type %T.ref [symbolic = %ptr.loc7_38.1 (constants.%ptr.79f)] -// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = value_param call_param0 -// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29.2 [symbolic = %ptr.loc7_29.1 (constants.%ptr.955)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc2_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %ptr.loc7_38.1: type = ptr_type %T.ref [symbolic = %ptr.loc7_38.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %self.param: @GetAddr.%ptr.loc7_29.2 (%ptr.955) = value_param call_param0 +// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29.1 [symbolic = %ptr.loc7_29.2 (constants.%ptr.955)] { // CHECK:STDOUT: %.loc7_25: type = specific_constant constants.%Class.fe1, @Class(constants.%T) [symbolic = %Class (constants.%Class.fe1)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc7_25 [symbolic = %Class (constants.%Class.fe1)] -// CHECK:STDOUT: %ptr.loc7_29.2: type = ptr_type %Self.ref [symbolic = %ptr.loc7_29.1 (constants.%ptr.955)] +// CHECK:STDOUT: %ptr.loc7_29.1: type = ptr_type %Self.ref [symbolic = %ptr.loc7_29.2 (constants.%ptr.955)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %self: @GetAddr.%ptr.loc7_29.2 (%ptr.955) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @GetAddr.%ptr.loc7_38.2 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @GetAddr.%ptr.loc7_38.2 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %struct_type.x.loc8_1.1: type = struct_type {.x: %T} [symbolic = %struct_type.x.loc8_1.2 (constants.%struct_type.x.2ac)] // CHECK:STDOUT: %complete_type.loc8_1.1: = complete_type_witness %struct_type.x.loc8_1.1 [symbolic = %complete_type.loc8_1.2 (constants.%complete_type.433)] @@ -252,7 +252,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Get(@Class.%T.loc2_13.1: type) { +// CHECK:STDOUT: generic fn @Get(@Class.%T.loc2_13.2: 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.fe1)] // CHECK:STDOUT: %pattern_type.loc5_10: type = pattern_type %Class [symbolic = %pattern_type.loc5_10 (constants.%pattern_type.3c1)] @@ -273,27 +273,27 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc2_13.1: type) { +// CHECK:STDOUT: generic fn @GetAddr(@Class.%T.loc2_13.2: 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.fe1)] -// CHECK:STDOUT: %ptr.loc7_29.1: type = ptr_type %Class [symbolic = %ptr.loc7_29.1 (constants.%ptr.955)] -// CHECK:STDOUT: %pattern_type.loc7_19: type = pattern_type %ptr.loc7_29.1 [symbolic = %pattern_type.loc7_19 (constants.%pattern_type.9e0)] -// CHECK:STDOUT: %ptr.loc7_38.1: type = ptr_type %T [symbolic = %ptr.loc7_38.1 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type.loc7_34: type = pattern_type %ptr.loc7_38.1 [symbolic = %pattern_type.loc7_34 (constants.%pattern_type.afe)] +// CHECK:STDOUT: %ptr.loc7_29.2: type = ptr_type %Class [symbolic = %ptr.loc7_29.2 (constants.%ptr.955)] +// CHECK:STDOUT: %pattern_type.loc7_19: type = pattern_type %ptr.loc7_29.2 [symbolic = %pattern_type.loc7_19 (constants.%pattern_type.9e0)] +// CHECK:STDOUT: %ptr.loc7_38.2: type = ptr_type %T [symbolic = %ptr.loc7_38.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type.loc7_34: type = pattern_type %ptr.loc7_38.2 [symbolic = %pattern_type.loc7_34 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_34: = require_complete_type %ptr.loc7_38.1 [symbolic = %require_complete.loc7_34 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %require_complete.loc7_23: = require_complete_type %ptr.loc7_29.1 [symbolic = %require_complete.loc7_23 (constants.%require_complete.2ae)] +// CHECK:STDOUT: %require_complete.loc7_34: = require_complete_type %ptr.loc7_38.2 [symbolic = %require_complete.loc7_34 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc7_23: = require_complete_type %ptr.loc7_29.2 [symbolic = %require_complete.loc7_23 (constants.%require_complete.2ae)] // CHECK:STDOUT: %require_complete.loc7_54: = require_complete_type %Class [symbolic = %require_complete.loc7_54 (constants.%require_complete.4f8)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic = %Class.elem (constants.%Class.elem.e26)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @GetAddr.%ptr.loc7_29.1 (%ptr.955)) -> @GetAddr.%ptr.loc7_38.1 (%ptr.79f) { +// CHECK:STDOUT: fn(%self.param: @GetAddr.%ptr.loc7_29.2 (%ptr.955)) -> @GetAddr.%ptr.loc7_38.2 (%ptr.79f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc7_29.1 (%ptr.955) = name_ref self, %self +// CHECK:STDOUT: %self.ref: @GetAddr.%ptr.loc7_29.2 (%ptr.955) = name_ref self, %self // CHECK:STDOUT: %.loc7_54.1: ref @GetAddr.%Class (%Class.fe1) = deref %self.ref // CHECK:STDOUT: %x.ref: @GetAddr.%Class.elem (%Class.elem.e26) = name_ref x, @Class.%.loc3 [concrete = @Class.%.loc3] // CHECK:STDOUT: %.loc7_54.2: ref @GetAddr.%T (%T) = class_element_access %.loc7_54.1, element0 -// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc7_38.1 (%ptr.79f) = addr_of %.loc7_54.2 +// CHECK:STDOUT: %addr: @GetAddr.%ptr.loc7_38.2 (%ptr.79f) = addr_of %.loc7_54.2 // CHECK:STDOUT: return %addr // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -340,7 +340,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc2_13.2 => constants.%T +// CHECK:STDOUT: %T.loc2_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4ae @@ -364,14 +364,14 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: specific @GetAddr(constants.%T) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Class => constants.%Class.fe1 -// CHECK:STDOUT: %ptr.loc7_29.1 => constants.%ptr.955 +// CHECK:STDOUT: %ptr.loc7_29.2 => constants.%ptr.955 // CHECK:STDOUT: %pattern_type.loc7_19 => constants.%pattern_type.9e0 -// CHECK:STDOUT: %ptr.loc7_38.1 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc7_38.2 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc7_34 => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%i32) { -// CHECK:STDOUT: %T.loc2_13.2 => constants.%i32 +// CHECK:STDOUT: %T.loc2_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a @@ -400,9 +400,9 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: specific @GetAddr(constants.%i32) { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %Class => constants.%Class.247 -// CHECK:STDOUT: %ptr.loc7_29.1 => constants.%ptr.f7c +// CHECK:STDOUT: %ptr.loc7_29.2 => constants.%ptr.f7c // CHECK:STDOUT: %pattern_type.loc7_19 => constants.%pattern_type.14a -// CHECK:STDOUT: %ptr.loc7_38.1 => constants.%ptr.235 +// CHECK:STDOUT: %ptr.loc7_38.2 => constants.%ptr.235 // CHECK:STDOUT: %pattern_type.loc7_34 => constants.%pattern_type.fe8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -461,7 +461,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %StaticMemberFunctionCall.decl: %StaticMemberFunctionCall.type = fn_decl @StaticMemberFunctionCall [concrete = constants.%StaticMemberFunctionCall] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -469,19 +469,19 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %return.param_patt: @StaticMemberFunctionCall.%pattern_type (%pattern_type.3c1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref.loc8: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc8_29.1 [symbolic = %T.loc8_29.2 (constants.%T)] -// CHECK:STDOUT: %Class.loc8_49.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc8_49.2 (constants.%Class)] -// CHECK:STDOUT: %T.loc8_29.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_29.2 (constants.%T)] -// CHECK:STDOUT: %return.param: ref @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) = out_param call_param0 -// CHECK:STDOUT: %return: ref @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc8_29.2 [symbolic = %T.loc8_29.1 (constants.%T)] +// CHECK:STDOUT: %Class.loc8_49.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc8_49.1 (constants.%Class)] +// CHECK:STDOUT: %T.loc8_29.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_29.1 (constants.%T)] +// CHECK:STDOUT: %return.param: ref @StaticMemberFunctionCall.%Class.loc8_49.1 (%Class) = out_param call_param0 +// CHECK:STDOUT: %return: ref @StaticMemberFunctionCall.%Class.loc8_49.1 (%Class) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Class(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.loc4_13.2) [symbolic = %Make.type (constants.%Make.type)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.loc4_13.1) [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 { @@ -490,10 +490,10 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %return.param_patt: @Make.%pattern_type (%pattern_type.3c1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc5_23.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc5_23.1 (constants.%Class)] -// CHECK:STDOUT: %return.param: ref @Make.%Class.loc5_23.1 (%Class) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Make.%Class.loc5_23.1 (%Class) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Class.loc5_23.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc5_23.2 (constants.%Class)] +// CHECK:STDOUT: %return.param: ref @Make.%Class.loc5_23.2 (%Class) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Make.%Class.loc5_23.2 (%Class) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] @@ -507,52 +507,52 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(@Class.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic fn @Make(@Class.%T.loc4_13.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc5_23.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc5_23.1 (constants.%Class)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc5_23.1 [symbolic = %pattern_type (constants.%pattern_type.3c1)] +// CHECK:STDOUT: %Class.loc5_23.2: type = class_type @Class, @Class(%T) [symbolic = %Class.loc5_23.2 (constants.%Class)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc5_23.2 [symbolic = %pattern_type (constants.%pattern_type.3c1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc5_23.1 [symbolic = %require_complete (constants.%require_complete.4f8)] -// CHECK:STDOUT: %Class.val: @Make.%Class.loc5_23.1 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc5_23.2 [symbolic = %require_complete (constants.%require_complete.4f8)] +// CHECK:STDOUT: %Class.val: @Make.%Class.loc5_23.2 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @Make.%Class.loc5_23.1 (%Class) { +// CHECK:STDOUT: fn() -> %return.param: @Make.%Class.loc5_23.2 (%Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc5_35.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc5_35.2: init @Make.%Class.loc5_23.1 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] -// CHECK:STDOUT: %.loc5_36: init @Make.%Class.loc5_23.1 (%Class) = converted %.loc5_35.1, %.loc5_35.2 [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %.loc5_35.2: init @Make.%Class.loc5_23.2 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %.loc5_36: init @Make.%Class.loc5_23.2 (%Class) = converted %.loc5_35.1, %.loc5_35.2 [symbolic = %Class.val (constants.%Class.val)] // CHECK:STDOUT: return %.loc5_36 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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_49.2: type = class_type @Class, @Class(%T.loc8_29.2) [symbolic = %Class.loc8_49.2 (constants.%Class)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc8_49.2 [symbolic = %pattern_type (constants.%pattern_type.3c1)] +// CHECK:STDOUT: generic fn @StaticMemberFunctionCall(%T.loc8_29.2: type) { +// CHECK:STDOUT: %T.loc8_29.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_29.1 (constants.%T)] +// CHECK:STDOUT: %Class.loc8_49.1: type = class_type @Class, @Class(%T.loc8_29.1) [symbolic = %Class.loc8_49.1 (constants.%Class)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc8_49.1 [symbolic = %pattern_type (constants.%pattern_type.3c1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Class.loc8_49.2 [symbolic = %require_complete.loc9 (constants.%require_complete.4f8)] -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.loc8_29.2) [symbolic = %Make.type (constants.%Make.type)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Class.loc8_49.1 [symbolic = %require_complete.loc9 (constants.%require_complete.4f8)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Class(%T.loc8_29.1) [symbolic = %Make.type (constants.%Make.type)] // CHECK:STDOUT: %Make: @StaticMemberFunctionCall.%Make.type (%Make.type) = struct_value () [symbolic = %Make (constants.%Make)] -// CHECK:STDOUT: %Make.specific_fn.loc9_18.2: = specific_function %Make, @Make(%T.loc8_29.2) [symbolic = %Make.specific_fn.loc9_18.2 (constants.%Make.specific_fn)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc8_49.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc8_49.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] +// CHECK:STDOUT: %Make.specific_fn.loc9_18.2: = specific_function %Make, @Make(%T.loc8_29.1) [symbolic = %Make.specific_fn.loc9_18.2 (constants.%Make.specific_fn)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc8_49.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc8_49.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] // CHECK:STDOUT: %.loc8_39.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc8_39.3 (constants.%.d76)] // CHECK:STDOUT: %impl.elem0.loc8_39.2: @StaticMemberFunctionCall.%.loc8_39.3 (%.d76) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_39.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc8_39.2: = specific_impl_function %impl.elem0.loc8_39.2, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc8_39.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.loc8_49.2 [symbolic = %ptr (constants.%ptr.955)] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.loc8_49.1 [symbolic = %ptr (constants.%ptr.955)] // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %ptr [symbolic = %require_complete.loc8 (constants.%require_complete.2ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) { +// CHECK:STDOUT: fn() -> %return.param: @StaticMemberFunctionCall.%Class.loc8_49.1 (%Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Class.ref.loc9: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_29.1 [symbolic = %T.loc8_29.2 (constants.%T)] -// CHECK:STDOUT: %Class.loc9: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc8_49.2 (constants.%Class)] +// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_29.2 [symbolic = %T.loc8_29.1 (constants.%T)] +// CHECK:STDOUT: %Class.loc9: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc8_49.1 (constants.%Class)] // CHECK:STDOUT: %.loc9: @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, %.loc9 [symbolic = %Make (constants.%Make)] // CHECK:STDOUT: %Make.specific_fn.loc9_18.1: = specific_function %Make.ref, @Make(constants.%T) [symbolic = %Make.specific_fn.loc9_18.2 (constants.%Make.specific_fn)] -// CHECK:STDOUT: %.loc8_39.1: ref @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) = splice_block %return {} -// CHECK:STDOUT: %Make.call: init @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) = call %Make.specific_fn.loc9_18.1() to %.loc8_39.1 +// CHECK:STDOUT: %.loc8_39.1: ref @StaticMemberFunctionCall.%Class.loc8_49.1 (%Class) = splice_block %return {} +// CHECK:STDOUT: %Make.call: init @StaticMemberFunctionCall.%Class.loc8_49.1 (%Class) = call %Make.specific_fn.loc9_18.1() to %.loc8_39.1 // CHECK:STDOUT: %impl.elem0.loc8_39.1: @StaticMemberFunctionCall.%.loc8_39.3 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_39.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc8_39.1: = bound_method %.loc8_39.1, %impl.elem0.loc8_39.1 // CHECK:STDOUT: %specific_impl_fn.loc8_39.1: = specific_impl_function %impl.elem0.loc8_39.1, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc8_39.2 (constants.%specific_impl_fn)] @@ -564,7 +564,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type @@ -573,7 +573,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Class.loc5_23.1 => constants.%Class +// CHECK:STDOUT: %Class.loc5_23.2 => constants.%Class // CHECK:STDOUT: %pattern_type => constants.%pattern_type.3c1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -582,8 +582,8 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StaticMemberFunctionCall(constants.%T) { -// CHECK:STDOUT: %T.loc8_29.2 => constants.%T -// CHECK:STDOUT: %Class.loc8_49.2 => constants.%Class +// CHECK:STDOUT: %T.loc8_29.1 => constants.%T +// CHECK:STDOUT: %Class.loc8_49.1 => constants.%Class // CHECK:STDOUT: %pattern_type => constants.%pattern_type.3c1 // 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 ce64b4ee1681..47904e61273f 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -80,22 +80,22 @@ class C(T:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Class(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc4_13.1) [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.loc4_13.2) [symbolic = %G.type (constants.%G.type)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.loc4_13.1) [symbolic = %G.type (constants.%G.type)] // CHECK:STDOUT: %G: @Class.%G.type (%G.type) = struct_value () [symbolic = %G (constants.%G)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc4_13.2 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %struct_type.n.loc14_1.2: type = struct_type {.n: @Class.%T.loc4_13.2 (%T)} [symbolic = %struct_type.n.loc14_1.2 (constants.%struct_type.n)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.1) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc4_13.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %struct_type.n.loc14_1.2: type = struct_type {.n: @Class.%T.loc4_13.1 (%T)} [symbolic = %struct_type.n.loc14_1.2 (constants.%struct_type.n)] // CHECK:STDOUT: %complete_type.loc14_1.2: = complete_type_witness %struct_type.n.loc14_1.2 [symbolic = %complete_type.loc14_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -105,9 +105,9 @@ class C(T:! type) { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %n.param: @F.%T (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %n: @F.%T (%T) = bind_name n, %n.param // CHECK:STDOUT: %return.param: ref @F.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%T (%T) = return_slot %return.param @@ -118,7 +118,7 @@ class C(T:! type) { // CHECK:STDOUT: %return.patt: @G.%pattern_type.loc9_22 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc9_22 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %self.param: @G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc9_14.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc9_14.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] @@ -128,7 +128,7 @@ class C(T:! type) { // CHECK:STDOUT: %return.param: ref @G.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @G.%T (%T) = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %.loc13: @Class.%Class.elem (%Class.elem) = field_decl n, element0 [concrete] // CHECK:STDOUT: %struct_type.n.loc14_1.1: type = struct_type {.n: %T} [symbolic = %struct_type.n.loc14_1.2 (constants.%struct_type.n)] // CHECK:STDOUT: %complete_type.loc14_1.1: = complete_type_witness %struct_type.n.loc14_1.1 [symbolic = %complete_type.loc14_1.2 (constants.%complete_type)] @@ -143,7 +143,7 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc4_13.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: @@ -157,7 +157,7 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Class.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic fn @G(@Class.%T.loc4_13.2: 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)] // CHECK:STDOUT: %pattern_type.loc9_8: type = pattern_type %Class [symbolic = %pattern_type.loc9_8 (constants.%pattern_type.3c1)] @@ -179,7 +179,7 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type @@ -237,17 +237,17 @@ class C(T:! type) { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @C(%T.loc4_9.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @C(%T.loc4_9.1) [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.loc4_9.2) [symbolic = %C (constants.%C)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_9.1) [symbolic = %C (constants.%C)] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, constants.%empty_struct_type [symbolic = %C.elem (constants.%C.elem)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -266,7 +266,7 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@C.%T.loc4_9.1: type) { +// CHECK:STDOUT: generic fn @F(@C.%T.loc4_9.2: 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)] @@ -280,7 +280,7 @@ class C(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type diff --git a/toolchain/check/testdata/class/generic/member_lookup.carbon b/toolchain/check/testdata/class/generic/member_lookup.carbon index 00220f149e15..69294a01d75d 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -144,12 +144,12 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: %Derived.type = class_decl @Derived [concrete = constants.%Derived.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %AccessDerived.decl: %AccessDerived.type = fn_decl @AccessDerived [concrete = constants.%AccessDerived] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -158,17 +158,17 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %return.patt: @AccessDerived.%pattern_type.loc13_43 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @AccessDerived.%pattern_type.loc13_43 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc13_46: type = name_ref T, %T.loc13_18.1 [symbolic = %T.loc13_18.2 (constants.%T)] -// CHECK:STDOUT: %T.loc13_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_18.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = value_param call_param0 -// CHECK:STDOUT: %.loc13: type = splice_block %Derived.loc13_40.1 [symbolic = %Derived.loc13_40.2 (constants.%Derived.85c)] { +// CHECK:STDOUT: %T.ref.loc13_46: type = name_ref T, %T.loc13_18.2 [symbolic = %T.loc13_18.1 (constants.%T)] +// CHECK:STDOUT: %T.loc13_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_18.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @AccessDerived.%Derived.loc13_40.1 (%Derived.85c) = value_param call_param0 +// CHECK:STDOUT: %.loc13: type = splice_block %Derived.loc13_40.2 [symbolic = %Derived.loc13_40.1 (constants.%Derived.85c)] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived.generic] -// CHECK:STDOUT: %T.ref.loc13_39: type = name_ref T, %T.loc13_18.1 [symbolic = %T.loc13_18.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc13_40.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc13_40.2 (constants.%Derived.85c)] +// CHECK:STDOUT: %T.ref.loc13_39: type = name_ref T, %T.loc13_18.2 [symbolic = %T.loc13_18.1 (constants.%T)] +// CHECK:STDOUT: %Derived.loc13_40.2: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc13_40.1 (constants.%Derived.85c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @AccessDerived.%T.loc13_18.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @AccessDerived.%T.loc13_18.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %x: @AccessDerived.%Derived.loc13_40.1 (%Derived.85c) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @AccessDerived.%T.loc13_18.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @AccessDerived.%T.loc13_18.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessBase.decl: %AccessBase.type = fn_decl @AccessBase [concrete = constants.%AccessBase] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -177,17 +177,17 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %return.patt: @AccessBase.%pattern_type.loc17_40 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @AccessBase.%pattern_type.loc17_40 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc17_43: type = name_ref T, %T.loc17_15.1 [symbolic = %T.loc17_15.2 (constants.%T)] -// CHECK:STDOUT: %T.loc17_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = value_param call_param0 -// CHECK:STDOUT: %.loc17: type = splice_block %Derived.loc17_37.1 [symbolic = %Derived.loc17_37.2 (constants.%Derived.85c)] { +// CHECK:STDOUT: %T.ref.loc17_43: type = name_ref T, %T.loc17_15.2 [symbolic = %T.loc17_15.1 (constants.%T)] +// CHECK:STDOUT: %T.loc17_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @AccessBase.%Derived.loc17_37.1 (%Derived.85c) = value_param call_param0 +// CHECK:STDOUT: %.loc17: type = splice_block %Derived.loc17_37.2 [symbolic = %Derived.loc17_37.1 (constants.%Derived.85c)] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived.generic] -// CHECK:STDOUT: %T.ref.loc17_36: type = name_ref T, %T.loc17_15.1 [symbolic = %T.loc17_15.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc17_37.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc17_37.2 (constants.%Derived.85c)] +// CHECK:STDOUT: %T.ref.loc17_36: type = name_ref T, %T.loc17_15.2 [symbolic = %T.loc17_15.1 (constants.%T)] +// CHECK:STDOUT: %Derived.loc17_37.2: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc17_37.1 (constants.%Derived.85c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @AccessBase.%T.loc17_15.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @AccessBase.%T.loc17_15.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %x: @AccessBase.%Derived.loc17_37.1 (%Derived.85c) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @AccessBase.%T.loc17_15.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @AccessBase.%T.loc17_15.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessConcrete.decl: %AccessConcrete.type = fn_decl @AccessConcrete [concrete = constants.%AccessConcrete] { // CHECK:STDOUT: %x.patt: %pattern_type.9c5 = binding_pattern x [concrete] @@ -210,18 +210,18 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_17.1: type) { -// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_17.2: type) { +// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_17.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.370)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_17.2 [symbolic = %Base.elem (constants.%Base.elem.9af)] -// CHECK:STDOUT: %struct_type.b.loc6_1.2: type = struct_type {.b: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.b.loc6_1.2 (constants.%struct_type.b.f69)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_17.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.1) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_17.1 [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %struct_type.b.loc6_1.2: type = struct_type {.b: @Base.%T.loc4_17.1 (%T)} [symbolic = %struct_type.b.loc6_1.2 (constants.%struct_type.b.f69)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.b.loc6_1.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_17.1 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_17.2 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.9af) = field_decl b, element0 [concrete] // CHECK:STDOUT: %struct_type.b.loc6_1.1: type = struct_type {.b: %T} [symbolic = %struct_type.b.loc6_1.2 (constants.%struct_type.b.f69)] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.b.loc6_1.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] @@ -234,25 +234,25 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Derived(%T.loc8_15.1: type) { -// CHECK:STDOUT: %T.loc8_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: generic class @Derived(%T.loc8_15.2: type) { +// CHECK:STDOUT: %T.loc8_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.2) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] +// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.1) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] // CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Base.loc9_22.2 [symbolic = %require_complete.loc9 (constants.%require_complete.97d)] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.2) [symbolic = %Derived (constants.%Derived.85c)] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.1) [symbolic = %Derived (constants.%Derived.85c)] // CHECK:STDOUT: %Derived.elem.loc9: type = unbound_element_type %Derived, %Base.loc9_22.2 [symbolic = %Derived.elem.loc9 (constants.%Derived.elem.8b3)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %T.loc8_15.2 [symbolic = %require_complete.loc10 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type %Derived, %T.loc8_15.2 [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.6d2)] -// CHECK:STDOUT: %struct_type.base.d.loc11_1.2: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.370), .d: @Derived.%T.loc8_15.2 (%T)} [symbolic = %struct_type.base.d.loc11_1.2 (constants.%struct_type.base.d.37c)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %T.loc8_15.1 [symbolic = %require_complete.loc10 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type %Derived, %T.loc8_15.1 [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.6d2)] +// CHECK:STDOUT: %struct_type.base.d.loc11_1.2: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.370), .d: @Derived.%T.loc8_15.1 (%T)} [symbolic = %struct_type.base.d.loc11_1.2 (constants.%struct_type.base.d.37c)] // CHECK:STDOUT: %complete_type.loc11_1.2: = complete_type_witness %struct_type.base.d.loc11_1.2 [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] -// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_15.2 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: %Base.loc9_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] // CHECK:STDOUT: %.loc9: @Derived.%Derived.elem.loc9 (%Derived.elem.8b3) = base_decl %Base.loc9_22.1, element0 [concrete] -// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc8_15.2 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: %.loc10: @Derived.%Derived.elem.loc10 (%Derived.elem.6d2) = field_decl d, element1 [concrete] // CHECK:STDOUT: %struct_type.base.d.loc11_1.1: type = struct_type {.base: %Base.370, .d: %T} [symbolic = %struct_type.base.d.loc11_1.2 (constants.%struct_type.base.d.37c)] // CHECK:STDOUT: %complete_type.loc11_1.1: = complete_type_witness %struct_type.base.d.loc11_1.1 [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] @@ -269,48 +269,48 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessDerived(%T.loc13_18.1: type) { -// CHECK:STDOUT: %T.loc13_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_18.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc13_40.2: type = class_type @Derived, @Derived(%T.loc13_18.2) [symbolic = %Derived.loc13_40.2 (constants.%Derived.85c)] -// CHECK:STDOUT: %pattern_type.loc13_28: type = pattern_type %Derived.loc13_40.2 [symbolic = %pattern_type.loc13_28 (constants.%pattern_type.423)] -// CHECK:STDOUT: %pattern_type.loc13_43: type = pattern_type %T.loc13_18.2 [symbolic = %pattern_type.loc13_43 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @AccessDerived(%T.loc13_18.2: type) { +// CHECK:STDOUT: %T.loc13_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_18.1 (constants.%T)] +// CHECK:STDOUT: %Derived.loc13_40.1: type = class_type @Derived, @Derived(%T.loc13_18.1) [symbolic = %Derived.loc13_40.1 (constants.%Derived.85c)] +// CHECK:STDOUT: %pattern_type.loc13_28: type = pattern_type %Derived.loc13_40.1 [symbolic = %pattern_type.loc13_28 (constants.%pattern_type.423)] +// CHECK:STDOUT: %pattern_type.loc13_43: type = pattern_type %T.loc13_18.1 [symbolic = %pattern_type.loc13_43 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Derived.loc13_40.2 [symbolic = %require_complete.loc13 (constants.%require_complete.5f4)] -// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_40.2, %T.loc13_18.2 [symbolic = %Derived.elem (constants.%Derived.elem.6d2)] -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.loc13_18.2 [symbolic = %require_complete.loc14 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Derived.loc13_40.1 [symbolic = %require_complete.loc13 (constants.%require_complete.5f4)] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_40.1, %T.loc13_18.1 [symbolic = %Derived.elem (constants.%Derived.elem.6d2)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.loc13_18.1 [symbolic = %require_complete.loc14 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c)) -> @AccessDerived.%T.loc13_18.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_40.1 (%Derived.85c)) -> @AccessDerived.%T.loc13_18.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_40.2 (%Derived.85c) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_40.1 (%Derived.85c) = name_ref x, %x // CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.6d2) = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] -// CHECK:STDOUT: %.loc14_11.1: ref @AccessDerived.%T.loc13_18.2 (%T) = class_element_access %x.ref, element1 -// CHECK:STDOUT: %.loc14_11.2: @AccessDerived.%T.loc13_18.2 (%T) = bind_value %.loc14_11.1 +// CHECK:STDOUT: %.loc14_11.1: ref @AccessDerived.%T.loc13_18.1 (%T) = class_element_access %x.ref, element1 +// CHECK:STDOUT: %.loc14_11.2: @AccessDerived.%T.loc13_18.1 (%T) = bind_value %.loc14_11.1 // CHECK:STDOUT: return %.loc14_11.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessBase(%T.loc17_15.1: type) { -// CHECK:STDOUT: %T.loc17_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc17_37.2: type = class_type @Derived, @Derived(%T.loc17_15.2) [symbolic = %Derived.loc17_37.2 (constants.%Derived.85c)] -// CHECK:STDOUT: %pattern_type.loc17_25: type = pattern_type %Derived.loc17_37.2 [symbolic = %pattern_type.loc17_25 (constants.%pattern_type.423)] -// CHECK:STDOUT: %pattern_type.loc17_40: type = pattern_type %T.loc17_15.2 [symbolic = %pattern_type.loc17_40 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @AccessBase(%T.loc17_15.2: type) { +// CHECK:STDOUT: %T.loc17_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] +// CHECK:STDOUT: %Derived.loc17_37.1: type = class_type @Derived, @Derived(%T.loc17_15.1) [symbolic = %Derived.loc17_37.1 (constants.%Derived.85c)] +// CHECK:STDOUT: %pattern_type.loc17_25: type = pattern_type %Derived.loc17_37.1 [symbolic = %pattern_type.loc17_25 (constants.%pattern_type.423)] +// CHECK:STDOUT: %pattern_type.loc17_40: type = pattern_type %T.loc17_15.1 [symbolic = %pattern_type.loc17_40 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Derived.loc17_37.2 [symbolic = %require_complete.loc17 (constants.%require_complete.5f4)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc17_15.2) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Derived.loc17_37.1 [symbolic = %require_complete.loc17 (constants.%require_complete.5f4)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc17_15.1) [symbolic = %Base (constants.%Base.370)] // CHECK:STDOUT: %require_complete.loc18_11: = require_complete_type %Base [symbolic = %require_complete.loc18_11 (constants.%require_complete.97d)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc17_15.2 [symbolic = %Base.elem (constants.%Base.elem.9af)] -// CHECK:STDOUT: %require_complete.loc18_13: = require_complete_type %T.loc17_15.2 [symbolic = %require_complete.loc18_13 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc17_15.1 [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %require_complete.loc18_13: = require_complete_type %T.loc17_15.1 [symbolic = %require_complete.loc18_13 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc17_37.2 (%Derived.85c)) -> @AccessBase.%T.loc17_15.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc17_37.1 (%Derived.85c)) -> @AccessBase.%T.loc17_15.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc17_37.2 (%Derived.85c) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc17_37.1 (%Derived.85c) = name_ref x, %x // CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.9af) = name_ref b, @Base.%.loc5 [concrete = @Base.%.loc5] // CHECK:STDOUT: %.loc18_11.1: ref @AccessBase.%Base (%Base.370) = class_element_access %x.ref, element0 // CHECK:STDOUT: %.loc18_11.2: ref @AccessBase.%Base (%Base.370) = converted %x.ref, %.loc18_11.1 -// CHECK:STDOUT: %.loc18_11.3: ref @AccessBase.%T.loc17_15.2 (%T) = class_element_access %.loc18_11.2, element0 -// CHECK:STDOUT: %.loc18_11.4: @AccessBase.%T.loc17_15.2 (%T) = bind_value %.loc18_11.3 +// CHECK:STDOUT: %.loc18_11.3: ref @AccessBase.%T.loc17_15.1 (%T) = class_element_access %.loc18_11.2, element0 +// CHECK:STDOUT: %.loc18_11.4: @AccessBase.%T.loc17_15.1 (%T) = bind_value %.loc18_11.3 // CHECK:STDOUT: return %.loc18_11.4 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -327,7 +327,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4ae @@ -338,7 +338,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(constants.%T) { -// CHECK:STDOUT: %T.loc8_15.2 => constants.%T +// CHECK:STDOUT: %T.loc8_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.370 @@ -352,21 +352,21 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessDerived(constants.%T) { -// CHECK:STDOUT: %T.loc13_18.2 => constants.%T -// CHECK:STDOUT: %Derived.loc13_40.2 => constants.%Derived.85c +// CHECK:STDOUT: %T.loc13_18.1 => constants.%T +// CHECK:STDOUT: %Derived.loc13_40.1 => constants.%Derived.85c // CHECK:STDOUT: %pattern_type.loc13_28 => constants.%pattern_type.423 // CHECK:STDOUT: %pattern_type.loc13_43 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessBase(constants.%T) { -// CHECK:STDOUT: %T.loc17_15.2 => constants.%T -// CHECK:STDOUT: %Derived.loc17_37.2 => constants.%Derived.85c +// CHECK:STDOUT: %T.loc17_15.1 => constants.%T +// CHECK:STDOUT: %Derived.loc17_37.1 => constants.%Derived.85c // CHECK:STDOUT: %pattern_type.loc17_25 => constants.%pattern_type.423 // CHECK:STDOUT: %pattern_type.loc17_40 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(constants.%i32) { -// CHECK:STDOUT: %T.loc8_15.2 => constants.%i32 +// CHECK:STDOUT: %T.loc8_15.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.10a @@ -380,7 +380,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%i32) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_17.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a @@ -461,12 +461,12 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: %Derived.type = class_decl @Derived [concrete = constants.%Derived.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingBase.decl: %AccessMissingBase.type = fn_decl @AccessMissingBase [concrete = constants.%AccessMissingBase] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -475,17 +475,17 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %return.patt: @AccessMissingBase.%pattern_type.loc13_44 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @AccessMissingBase.%pattern_type.loc13_44 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc13_47: type = name_ref T, %T.loc13_22.1 [symbolic = %T.loc13_22.2 (constants.%T)] -// CHECK:STDOUT: %T.loc13_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_22.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = value_param call_param0 -// CHECK:STDOUT: %.loc13: type = splice_block %Base.loc13_41.1 [symbolic = %Base.loc13_41.2 (constants.%Base.370)] { +// CHECK:STDOUT: %T.ref.loc13_47: type = name_ref T, %T.loc13_22.2 [symbolic = %T.loc13_22.1 (constants.%T)] +// CHECK:STDOUT: %T.loc13_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_22.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @AccessMissingBase.%Base.loc13_41.1 (%Base.370) = value_param call_param0 +// CHECK:STDOUT: %.loc13: type = splice_block %Base.loc13_41.2 [symbolic = %Base.loc13_41.1 (constants.%Base.370)] { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] -// CHECK:STDOUT: %T.ref.loc13_40: type = name_ref T, %T.loc13_22.1 [symbolic = %T.loc13_22.2 (constants.%T)] -// CHECK:STDOUT: %Base.loc13_41.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc13_41.2 (constants.%Base.370)] +// CHECK:STDOUT: %T.ref.loc13_40: type = name_ref T, %T.loc13_22.2 [symbolic = %T.loc13_22.1 (constants.%T)] +// CHECK:STDOUT: %Base.loc13_41.2: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc13_41.1 (constants.%Base.370)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @AccessMissingBase.%T.loc13_22.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @AccessMissingBase.%T.loc13_22.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %x: @AccessMissingBase.%Base.loc13_41.1 (%Base.370) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @AccessMissingBase.%T.loc13_22.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @AccessMissingBase.%T.loc13_22.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingDerived.decl: %AccessMissingDerived.type = fn_decl @AccessMissingDerived [concrete = constants.%AccessMissingDerived] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -494,17 +494,17 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: %return.patt: @AccessMissingDerived.%pattern_type.loc21_50 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @AccessMissingDerived.%pattern_type.loc21_50 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc21_53: type = name_ref T, %T.loc21_25.1 [symbolic = %T.loc21_25.2 (constants.%T)] -// CHECK:STDOUT: %T.loc21_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_25.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = value_param call_param0 -// CHECK:STDOUT: %.loc21: type = splice_block %Derived.loc21_47.1 [symbolic = %Derived.loc21_47.2 (constants.%Derived.85c)] { +// CHECK:STDOUT: %T.ref.loc21_53: type = name_ref T, %T.loc21_25.2 [symbolic = %T.loc21_25.1 (constants.%T)] +// CHECK:STDOUT: %T.loc21_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_25.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @AccessMissingDerived.%Derived.loc21_47.1 (%Derived.85c) = value_param call_param0 +// CHECK:STDOUT: %.loc21: type = splice_block %Derived.loc21_47.2 [symbolic = %Derived.loc21_47.1 (constants.%Derived.85c)] { // CHECK:STDOUT: %Derived.ref: %Derived.type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived.generic] -// CHECK:STDOUT: %T.ref.loc21_46: type = name_ref T, %T.loc21_25.1 [symbolic = %T.loc21_25.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc21_47.1: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc21_47.2 (constants.%Derived.85c)] +// CHECK:STDOUT: %T.ref.loc21_46: type = name_ref T, %T.loc21_25.2 [symbolic = %T.loc21_25.1 (constants.%T)] +// CHECK:STDOUT: %Derived.loc21_47.2: type = class_type @Derived, @Derived(constants.%T) [symbolic = %Derived.loc21_47.1 (constants.%Derived.85c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @AccessMissingDerived.%T.loc21_25.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @AccessMissingDerived.%T.loc21_25.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %x: @AccessMissingDerived.%Derived.loc21_47.1 (%Derived.85c) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @AccessMissingDerived.%T.loc21_25.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @AccessMissingDerived.%T.loc21_25.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingConcrete.decl: %AccessMissingConcrete.type = fn_decl @AccessMissingConcrete [concrete = constants.%AccessMissingConcrete] { // CHECK:STDOUT: %x.patt: %pattern_type.9c5 = binding_pattern x [concrete] @@ -527,18 +527,18 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_17.1: type) { -// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_17.2: type) { +// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_17.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.2) [symbolic = %Base (constants.%Base.370)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_17.2 [symbolic = %Base.elem (constants.%Base.elem.9af)] -// CHECK:STDOUT: %struct_type.b.loc6_1.2: type = struct_type {.b: @Base.%T.loc4_17.2 (%T)} [symbolic = %struct_type.b.loc6_1.2 (constants.%struct_type.b.f69)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_17.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc4_17.1) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.loc4_17.1 [symbolic = %Base.elem (constants.%Base.elem.9af)] +// CHECK:STDOUT: %struct_type.b.loc6_1.2: type = struct_type {.b: @Base.%T.loc4_17.1 (%T)} [symbolic = %struct_type.b.loc6_1.2 (constants.%struct_type.b.f69)] // CHECK:STDOUT: %complete_type.loc6_1.2: = complete_type_witness %struct_type.b.loc6_1.2 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_17.1 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_17.2 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: %.loc5: @Base.%Base.elem (%Base.elem.9af) = field_decl b, element0 [concrete] // CHECK:STDOUT: %struct_type.b.loc6_1.1: type = struct_type {.b: %T} [symbolic = %struct_type.b.loc6_1.2 (constants.%struct_type.b.f69)] // CHECK:STDOUT: %complete_type.loc6_1.1: = complete_type_witness %struct_type.b.loc6_1.1 [symbolic = %complete_type.loc6_1.2 (constants.%complete_type.eaf)] @@ -552,25 +552,25 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Derived(%T.loc8_15.1: type) { -// CHECK:STDOUT: %T.loc8_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: generic class @Derived(%T.loc8_15.2: type) { +// CHECK:STDOUT: %T.loc8_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.2) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] +// CHECK:STDOUT: %Base.loc9_22.2: type = class_type @Base, @Base(%T.loc8_15.1) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] // CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Base.loc9_22.2 [symbolic = %require_complete.loc9 (constants.%require_complete.97d)] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.2) [symbolic = %Derived (constants.%Derived.85c)] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc8_15.1) [symbolic = %Derived (constants.%Derived.85c)] // CHECK:STDOUT: %Derived.elem.loc9: type = unbound_element_type %Derived, %Base.loc9_22.2 [symbolic = %Derived.elem.loc9 (constants.%Derived.elem.8b3)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %T.loc8_15.2 [symbolic = %require_complete.loc10 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type %Derived, %T.loc8_15.2 [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.6d2)] -// CHECK:STDOUT: %struct_type.base.d.loc11_1.2: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.370), .d: @Derived.%T.loc8_15.2 (%T)} [symbolic = %struct_type.base.d.loc11_1.2 (constants.%struct_type.base.d.37c)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %T.loc8_15.1 [symbolic = %require_complete.loc10 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Derived.elem.loc10: type = unbound_element_type %Derived, %T.loc8_15.1 [symbolic = %Derived.elem.loc10 (constants.%Derived.elem.6d2)] +// CHECK:STDOUT: %struct_type.base.d.loc11_1.2: type = struct_type {.base: @Derived.%Base.loc9_22.2 (%Base.370), .d: @Derived.%T.loc8_15.1 (%T)} [symbolic = %struct_type.base.d.loc11_1.2 (constants.%struct_type.base.d.37c)] // CHECK:STDOUT: %complete_type.loc11_1.2: = complete_type_witness %struct_type.base.d.loc11_1.2 [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] -// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc9: type = name_ref T, %T.loc8_15.2 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: %Base.loc9_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc9_22.2 (constants.%Base.370)] // CHECK:STDOUT: %.loc9: @Derived.%Derived.elem.loc9 (%Derived.elem.8b3) = base_decl %Base.loc9_22.1, element0 [concrete] -// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc8_15.1 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc8_15.2 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: %.loc10: @Derived.%Derived.elem.loc10 (%Derived.elem.6d2) = field_decl d, element1 [concrete] // CHECK:STDOUT: %struct_type.base.d.loc11_1.1: type = struct_type {.base: %Base.370, .d: %T} [symbolic = %struct_type.base.d.loc11_1.2 (constants.%struct_type.base.d.37c)] // CHECK:STDOUT: %complete_type.loc11_1.1: = complete_type_witness %struct_type.base.d.loc11_1.1 [symbolic = %complete_type.loc11_1.2 (constants.%complete_type.8ad)] @@ -587,37 +587,37 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingBase(%T.loc13_22.1: type) { -// CHECK:STDOUT: %T.loc13_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_22.2 (constants.%T)] -// CHECK:STDOUT: %Base.loc13_41.2: type = class_type @Base, @Base(%T.loc13_22.2) [symbolic = %Base.loc13_41.2 (constants.%Base.370)] -// CHECK:STDOUT: %pattern_type.loc13_32: type = pattern_type %Base.loc13_41.2 [symbolic = %pattern_type.loc13_32 (constants.%pattern_type.9f7)] -// CHECK:STDOUT: %pattern_type.loc13_44: type = pattern_type %T.loc13_22.2 [symbolic = %pattern_type.loc13_44 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @AccessMissingBase(%T.loc13_22.2: type) { +// CHECK:STDOUT: %T.loc13_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_22.1 (constants.%T)] +// CHECK:STDOUT: %Base.loc13_41.1: type = class_type @Base, @Base(%T.loc13_22.1) [symbolic = %Base.loc13_41.1 (constants.%Base.370)] +// CHECK:STDOUT: %pattern_type.loc13_32: type = pattern_type %Base.loc13_41.1 [symbolic = %pattern_type.loc13_32 (constants.%pattern_type.9f7)] +// CHECK:STDOUT: %pattern_type.loc13_44: type = pattern_type %T.loc13_22.1 [symbolic = %pattern_type.loc13_44 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Base.loc13_41.2 [symbolic = %require_complete (constants.%require_complete.97d)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Base.loc13_41.1 [symbolic = %require_complete (constants.%require_complete.97d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessMissingBase.%Base.loc13_41.2 (%Base.370)) -> @AccessMissingBase.%T.loc13_22.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @AccessMissingBase.%Base.loc13_41.1 (%Base.370)) -> @AccessMissingBase.%T.loc13_22.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessMissingBase.%Base.loc13_41.2 (%Base.370) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @AccessMissingBase.%Base.loc13_41.1 (%Base.370) = name_ref x, %x // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingDerived(%T.loc21_25.1: type) { -// CHECK:STDOUT: %T.loc21_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_25.2 (constants.%T)] -// CHECK:STDOUT: %Derived.loc21_47.2: type = class_type @Derived, @Derived(%T.loc21_25.2) [symbolic = %Derived.loc21_47.2 (constants.%Derived.85c)] -// CHECK:STDOUT: %pattern_type.loc21_35: type = pattern_type %Derived.loc21_47.2 [symbolic = %pattern_type.loc21_35 (constants.%pattern_type.423)] -// CHECK:STDOUT: %pattern_type.loc21_50: type = pattern_type %T.loc21_25.2 [symbolic = %pattern_type.loc21_50 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @AccessMissingDerived(%T.loc21_25.2: type) { +// CHECK:STDOUT: %T.loc21_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_25.1 (constants.%T)] +// CHECK:STDOUT: %Derived.loc21_47.1: type = class_type @Derived, @Derived(%T.loc21_25.1) [symbolic = %Derived.loc21_47.1 (constants.%Derived.85c)] +// CHECK:STDOUT: %pattern_type.loc21_35: type = pattern_type %Derived.loc21_47.1 [symbolic = %pattern_type.loc21_35 (constants.%pattern_type.423)] +// CHECK:STDOUT: %pattern_type.loc21_50: type = pattern_type %T.loc21_25.1 [symbolic = %pattern_type.loc21_50 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc21: = require_complete_type %Derived.loc21_47.2 [symbolic = %require_complete.loc21 (constants.%require_complete.5f4)] -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc21_25.2) [symbolic = %Base (constants.%Base.370)] +// CHECK:STDOUT: %require_complete.loc21: = require_complete_type %Derived.loc21_47.1 [symbolic = %require_complete.loc21 (constants.%require_complete.5f4)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.loc21_25.1) [symbolic = %Base (constants.%Base.370)] // CHECK:STDOUT: %require_complete.loc26: = require_complete_type %Base [symbolic = %require_complete.loc26 (constants.%require_complete.97d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c)) -> @AccessMissingDerived.%T.loc21_25.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @AccessMissingDerived.%Derived.loc21_47.1 (%Derived.85c)) -> @AccessMissingDerived.%T.loc21_25.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessMissingDerived.%Derived.loc21_47.2 (%Derived.85c) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @AccessMissingDerived.%Derived.loc21_47.1 (%Derived.85c) = name_ref x, %x // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -631,7 +631,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4ae @@ -642,7 +642,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(constants.%T) { -// CHECK:STDOUT: %T.loc8_15.2 => constants.%T +// CHECK:STDOUT: %T.loc8_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.370 @@ -656,21 +656,21 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessMissingBase(constants.%T) { -// CHECK:STDOUT: %T.loc13_22.2 => constants.%T -// CHECK:STDOUT: %Base.loc13_41.2 => constants.%Base.370 +// CHECK:STDOUT: %T.loc13_22.1 => constants.%T +// CHECK:STDOUT: %Base.loc13_41.1 => constants.%Base.370 // CHECK:STDOUT: %pattern_type.loc13_32 => constants.%pattern_type.9f7 // CHECK:STDOUT: %pattern_type.loc13_44 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessMissingDerived(constants.%T) { -// CHECK:STDOUT: %T.loc21_25.2 => constants.%T -// CHECK:STDOUT: %Derived.loc21_47.2 => constants.%Derived.85c +// CHECK:STDOUT: %T.loc21_25.1 => constants.%T +// CHECK:STDOUT: %Derived.loc21_47.1 => constants.%Derived.85c // CHECK:STDOUT: %pattern_type.loc21_35 => constants.%pattern_type.423 // CHECK:STDOUT: %pattern_type.loc21_50 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(constants.%i32) { -// CHECK:STDOUT: %T.loc8_15.2 => constants.%i32 +// CHECK:STDOUT: %T.loc8_15.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Base.loc9_22.2 => constants.%Base.10a @@ -684,7 +684,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%i32) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_17.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a 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 9540bd7e0abf..cc2485763083 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -147,7 +147,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [symbolic = constants.%F] { // CHECK:STDOUT: %n.patt: @F.%pattern_type (%pattern_type.7dc) = binding_pattern n [concrete] @@ -155,7 +155,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %T.ref.loc10_31: type = name_ref T, %T.loc10 [symbolic = %T.loc5 (constants.%T)] // CHECK:STDOUT: %n.param.loc10: @F.%T.loc5 (%T) = value_param call_param0 // CHECK:STDOUT: %T.ref.loc10_25: type = name_ref T, %T.loc10 [symbolic = %T.loc5 (constants.%T)] @@ -169,7 +169,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %return.patt: @G.%pattern_type.loc6_22 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc6_22 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc14: type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc14: type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %T.ref.loc14: type = name_ref T, %T.loc14 [symbolic = %T.loc6 (constants.%T)] // CHECK:STDOUT: %self.param.loc14: @G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc14_28.1: type = splice_block %Self.ref.loc14 [symbolic = %Class (constants.%Class)] { @@ -182,18 +182,18 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Class(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc4_13.1) [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.loc4_13.2) [symbolic = %G.type (constants.%G.type)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @Class(%T.loc4_13.1) [symbolic = %G.type (constants.%G.type)] // CHECK:STDOUT: %G: @Class.%G.type (%G.type) = struct_value () [symbolic = %G (constants.%G)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.2) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc4_13.2 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %struct_type.n.loc8_1.2: type = struct_type {.n: @Class.%T.loc4_13.2 (%T)} [symbolic = %struct_type.n.loc8_1.2 (constants.%struct_type.n)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc4_13.1) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc4_13.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %struct_type.n.loc8_1.2: type = struct_type {.n: @Class.%T.loc4_13.1 (%T)} [symbolic = %struct_type.n.loc8_1.2 (constants.%struct_type.n)] // CHECK:STDOUT: %complete_type.loc8_1.2: = complete_type_witness %struct_type.n.loc8_1.2 [symbolic = %complete_type.loc8_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -203,9 +203,9 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T.loc5 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc5_17: type = name_ref T, @Class.%T.loc4_13.2 [symbolic = %T.loc5 (constants.%T)] // CHECK:STDOUT: %n.param.loc5: @F.%T.loc5 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T.loc5 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc5_11: type = name_ref T, @Class.%T.loc4_13.2 [symbolic = %T.loc5 (constants.%T)] // CHECK:STDOUT: %n.loc5: @F.%T.loc5 (%T) = bind_name n, %n.param.loc5 // CHECK:STDOUT: %return.param.loc5: ref @F.%T.loc5 (%T) = out_param call_param1 // CHECK:STDOUT: %return.loc5: ref @F.%T.loc5 (%T) = return_slot %return.param.loc5 @@ -216,7 +216,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %return.patt: @G.%pattern_type.loc6_22 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc6_22 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T.loc6 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @Class.%T.loc4_13.2 [symbolic = %T.loc6 (constants.%T)] // CHECK:STDOUT: %self.param.loc6: @G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc6_14.1: type = splice_block %Self.ref.loc6 [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc6_14.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] @@ -226,7 +226,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %return.param.loc6: ref @G.%T.loc6 (%T) = out_param call_param1 // CHECK:STDOUT: %return.loc6: ref @G.%T.loc6 (%T) = return_slot %return.param.loc6 // CHECK:STDOUT: } -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: %.loc7: @Class.%Class.elem (%Class.elem) = field_decl n, element0 [concrete] // CHECK:STDOUT: %struct_type.n.loc8_1.1: type = struct_type {.n: %T} [symbolic = %struct_type.n.loc8_1.2 (constants.%struct_type.n)] // CHECK:STDOUT: %complete_type.loc8_1.1: = complete_type_witness %struct_type.n.loc8_1.1 [symbolic = %complete_type.loc8_1.2 (constants.%complete_type)] @@ -241,7 +241,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc4_13.2: type) { // CHECK:STDOUT: %T.loc5: type = bind_symbolic_name T, 0 [symbolic = %T.loc5 (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc5 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: @@ -255,7 +255,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Class.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic fn @G(@Class.%T.loc4_13.2: 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)] // CHECK:STDOUT: %pattern_type.loc6_8: type = pattern_type %Class [symbolic = %pattern_type.loc6_8 (constants.%pattern_type.3c1)] @@ -277,7 +277,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type @@ -341,7 +341,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %A.decl: %A.type = class_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [symbolic = constants.%F] { // CHECK:STDOUT: %self.patt: @F.%pattern_type.loc6_10 (%pattern_type.13e) = binding_pattern self [concrete] @@ -349,7 +349,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %a.patt: @F.%pattern_type.loc6_22 (%pattern_type.7dc) = binding_pattern a [concrete] // CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc6_22 (%pattern_type.7dc) = value_param_pattern %a.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0 [symbolic = @A.%T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0 [symbolic = @A.%T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: %T.ref.loc10_22: type = name_ref T, %T.loc10 [symbolic = @B.%T (constants.%T)] // CHECK:STDOUT: %N.loc10: @B.%T (%T) = bind_symbolic_name N, 1 [symbolic = @B.%N.loc5_11.2 (constants.%N)] // CHECK:STDOUT: %self.param.loc10: @F.%B (%B) = value_param call_param0 @@ -364,18 +364,18 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @A(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %B.type: type = generic_class_type @B, @A(%T.loc4_9.2) [symbolic = %B.type (constants.%B.type)] +// CHECK:STDOUT: %B.type: type = generic_class_type @B, @A(%T.loc4_9.1) [symbolic = %B.type (constants.%B.type)] // CHECK:STDOUT: %B.generic: @A.%B.type (%B.type) = struct_value () [symbolic = %B.generic (constants.%B.generic)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %B.decl: @A.%B.type (%B.type) = class_decl @B [symbolic = @A.%B.generic (constants.%B.generic)] { // CHECK:STDOUT: %N.patt: @B.%pattern_type (%pattern_type.7dc) = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc4_9.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc4_9.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.loc5_11.1: @B.%T (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc5_11.2 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] @@ -389,7 +389,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @B(@A.%T.loc4_9.1: type, %N.loc5_11.1: @B.%T (%T)) { +// CHECK:STDOUT: generic class @B(@A.%T.loc4_9.2: type, %N.loc5_11.1: @B.%T (%T)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.loc5_11.2: @B.%T (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc5_11.2 (constants.%N)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dc)] @@ -412,7 +412,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc6: @F.%B (%B) = bind_name self, %self.param.loc6 // CHECK:STDOUT: %a.param.loc6: @F.%T.loc6 (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @A.%T.loc4_9.1 [symbolic = %T.loc6 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, @A.%T.loc4_9.2 [symbolic = %T.loc6 (constants.%T)] // CHECK:STDOUT: %a.loc6: @F.%T.loc6 (%T) = bind_name a, %a.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] @@ -426,7 +426,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@A.%T.loc4_9.1: type, @B.%N.loc5_11.1: @B.%T (%T)) { +// CHECK:STDOUT: generic fn @F(@A.%T.loc4_9.2: 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: @F.%T.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)] @@ -444,7 +444,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %B.type => constants.%B.type @@ -497,7 +497,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %NotGeneric.decl: type = class_decl @NotGeneric [concrete = constants.%NotGeneric] {} {} // CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.loc15 [concrete = constants.%F.c41] {} { -// CHECK:STDOUT: %T.loc15_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -514,8 +514,8 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc5(); // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc15(%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: generic fn @F.loc15(%T.loc15_15.2: type) { +// CHECK:STDOUT: %T.loc15_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -526,7 +526,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc15(constants.%T) { -// CHECK:STDOUT: %T.loc15_15.2 => constants.%T +// CHECK:STDOUT: %T.loc15_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_too_few_args.carbon @@ -561,16 +561,16 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Generic.decl: %Generic.type = class_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %TooFew.decl: %TooFew.type.e89 = fn_decl @TooFew.loc15 [concrete = constants.%TooFew.7c3] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Generic(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %TooFew.type: type = fn_type @TooFew.loc5, @Generic(%T.loc4_15.2) [symbolic = %TooFew.type (constants.%TooFew.type.dac)] +// CHECK:STDOUT: %TooFew.type: type = fn_type @TooFew.loc5, @Generic(%T.loc4_15.1) [symbolic = %TooFew.type (constants.%TooFew.type.dac)] // CHECK:STDOUT: %TooFew: @Generic.%TooFew.type (%TooFew.type.dac) = struct_value () [symbolic = %TooFew (constants.%TooFew.840)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -585,7 +585,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TooFew.loc5(@Generic.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic fn @TooFew.loc5(@Generic.%T.loc4_15.2: type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -595,7 +595,7 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TooFew.loc5(constants.%T) {} @@ -633,19 +633,19 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Generic.decl: %Generic.type = class_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %TooMany.decl: %TooMany.type.c84 = fn_decl @TooMany.loc15 [concrete = constants.%TooMany.1dc] {} { -// CHECK:STDOUT: %T.loc15_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T)] -// CHECK:STDOUT: %U.loc15_22.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_22.2 (constants.%U)] +// CHECK:STDOUT: %T.loc15_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.1 (constants.%T)] +// CHECK:STDOUT: %U.loc15_22.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_22.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Generic(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %TooMany.type: type = fn_type @TooMany.loc5, @Generic(%T.loc4_15.2) [symbolic = %TooMany.type (constants.%TooMany.type.cc8)] +// CHECK:STDOUT: %TooMany.type: type = fn_type @TooMany.loc5, @Generic(%T.loc4_15.1) [symbolic = %TooMany.type (constants.%TooMany.type.cc8)] // CHECK:STDOUT: %TooMany: @Generic.%TooMany.type (%TooMany.type.cc8) = struct_value () [symbolic = %TooMany (constants.%TooMany.dc4)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -660,13 +660,13 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TooMany.loc5(@Generic.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic fn @TooMany.loc5(@Generic.%T.loc4_15.2: type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TooMany.loc15(%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: generic fn @TooMany.loc15(%T.loc15_12.2: type, %U.loc15_22.2: type) { +// CHECK:STDOUT: %T.loc15_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.1 (constants.%T)] +// CHECK:STDOUT: %U.loc15_22.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc15_22.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -677,14 +677,14 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TooMany.loc5(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @TooMany.loc15(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc15_12.2 => constants.%T -// CHECK:STDOUT: %U.loc15_22.2 => constants.%U +// CHECK:STDOUT: %T.loc15_12.1 => constants.%T +// CHECK:STDOUT: %U.loc15_22.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_wrong_arg_type.carbon @@ -721,22 +721,22 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %Generic.decl: %Generic.type = class_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %WrongType.decl: %WrongType.type.edf = fn_decl @WrongType.loc15 [concrete = constants.%WrongType.131] {} { // CHECK:STDOUT: %.loc15_17.1: type = splice_block %.loc15_17.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc15_17.2: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc15_17.3: type = converted %.loc15_17.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc15_12.1: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T.7a6)] +// CHECK:STDOUT: %T.loc15_12.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.1 (constants.%T.7a6)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.8b3)] +// CHECK:STDOUT: generic class @Generic(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType.loc5, @Generic(%T.loc4_15.2) [symbolic = %WrongType.type (constants.%WrongType.type.c41)] +// CHECK:STDOUT: %WrongType.type: type = fn_type @WrongType.loc5, @Generic(%T.loc4_15.1) [symbolic = %WrongType.type (constants.%WrongType.type.c41)] // CHECK:STDOUT: %WrongType: @Generic.%WrongType.type (%WrongType.type.c41) = struct_value () [symbolic = %WrongType (constants.%WrongType.408)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -751,12 +751,12 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WrongType.loc5(@Generic.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic fn @WrongType.loc5(@Generic.%T.loc4_15.2: type) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WrongType.loc15(%T.loc15_12.1: %empty_tuple.type) { -// CHECK:STDOUT: %T.loc15_12.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T.7a6)] +// CHECK:STDOUT: generic fn @WrongType.loc15(%T.loc15_12.2: %empty_tuple.type) { +// CHECK:STDOUT: %T.loc15_12.1: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.1 (constants.%T.7a6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -767,12 +767,12 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WrongType.loc5(constants.%T.8b3) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @WrongType.loc15(constants.%T.7a6) { -// CHECK:STDOUT: %T.loc15_12.2 => constants.%T.7a6 +// CHECK:STDOUT: %T.loc15_12.1 => constants.%T.7a6 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_type.carbon b/toolchain/check/testdata/class/generic/member_type.carbon index 01eb7600d9ed..d8cdd84f0b08 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -99,24 +99,24 @@ fn Test() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a38: type = fn_type @Op.3, @Destroy.impl(%Inner.721) [concrete] +// CHECK:STDOUT: %Op.type.a38: type = fn_type @Op.1, @Destroy.impl(%Inner.721) [concrete] // CHECK:STDOUT: %Op.27e: %Op.type.a38 = struct_value () [concrete] // CHECK:STDOUT: %ptr.416: type = ptr_type %Inner.721 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.27e, @Op.3(%Inner.721) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.27e, @Op.1(%Inner.721) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -144,7 +144,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] @@ -157,12 +157,12 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Outer(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T.loc4_13.2) [symbolic = %Inner (constants.%Inner.51b)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @Outer(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type.2ee)] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T.loc4_13.1) [symbolic = %Inner (constants.%Inner.51b)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Outer(%T.loc4_13.1) [symbolic = %F.type (constants.%F.type.2ee)] // CHECK:STDOUT: %F: @Outer.%F.type (%F.type.2ee) = struct_value () [symbolic = %F (constants.%F.384)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -176,7 +176,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %.loc9_17: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner (constants.%Inner.51b)] // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc9_17 [symbolic = %Inner (constants.%Inner.51b)] // CHECK:STDOUT: %n.param: @F.%T (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %n: @F.%T (%T) = bind_name n, %n.param // CHECK:STDOUT: %return.param: ref @F.%Inner (%Inner.51b) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%Inner (%Inner.51b) = return_slot %return.param @@ -193,7 +193,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.4ae)] @@ -203,7 +203,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %complete_type.loc7_3.2: = complete_type_witness %struct_type.n.loc7_3.2 [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.84b)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc6: @Inner.%Inner.elem (%Inner.elem.310) = field_decl n, element0 [concrete] // CHECK:STDOUT: %struct_type.n.loc7_3.1: type = struct_type {.n: %T} [symbolic = %struct_type.n.loc7_3.2 (constants.%struct_type.n.848)] // CHECK:STDOUT: %complete_type.loc7_3.1: = complete_type_witness %struct_type.n.loc7_3.1 [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.84b)] @@ -216,7 +216,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Outer.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic fn @F(@Outer.%T.loc4_13.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type.loc9_8: type = pattern_type %T [symbolic = %pattern_type.loc9_8 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.51b)] @@ -257,7 +257,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %.loc13_3: ref %Inner.721 = splice_block %c.var {} // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_42.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_42.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc13_42.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_42.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -278,12 +278,12 @@ fn Test() -> i32 { // CHECK:STDOUT: %.loc14_11.1: ref %i32 = class_element_access %c.ref, element0 // CHECK:STDOUT: %.loc14_11.2: %i32 = bind_value %.loc14_11.1 // CHECK:STDOUT: %Op.bound.loc13_3.1: = bound_method %.loc13_3, constants.%Op.27e -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.27e, @Op.3(constants.%Inner.721) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.27e, @Op.1(constants.%Inner.721) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13_3.1: = bound_method %.loc13_3, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_3.1: %ptr.416 = addr_of %.loc13_3 // CHECK:STDOUT: %no_op.loc13_3.1: init %empty_tuple.type = call %bound_method.loc13_3.1(%addr.loc13_3.1) // CHECK:STDOUT: %Op.bound.loc13_3.2: = bound_method %c.var, constants.%Op.27e -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.27e, @Op.3(constants.%Inner.721) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.27e, @Op.1(constants.%Inner.721) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13_3.2: = bound_method %c.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_3.2: %ptr.416 = addr_of %c.var // CHECK:STDOUT: %no_op.loc13_3.2: init %empty_tuple.type = call %bound_method.loc13_3.2(%addr.loc13_3.2) @@ -291,7 +291,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner => constants.%Inner.51b @@ -317,7 +317,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%i32) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner => constants.%Inner.721 @@ -414,10 +414,10 @@ fn Test() -> i32 { // CHECK:STDOUT: %.b10: type = fn_type_with_self_type %F.type.86e, %Inner.facet.840 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.e75, @F.loc11(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.b66: type = fn_type @Op.3, @Destroy.impl(%C.70f) [concrete] +// CHECK:STDOUT: %Op.type.b66: type = fn_type @Op.1, @Destroy.impl(%C.70f) [concrete] // CHECK:STDOUT: %Op.369: %Op.type.b66 = struct_value () [concrete] // CHECK:STDOUT: %ptr.18f: type = ptr_type %C.70f [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.369, @Op.3(%C.70f) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.369, @Op.1(%C.70f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -442,7 +442,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] { @@ -456,7 +456,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Inner(@Outer.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic interface @Inner(@Outer.%T.loc4_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.392)] @@ -474,15 +474,15 @@ fn Test() -> i32 { // CHECK:STDOUT: %return.patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @F.loc6.%Self.as_type.loc6_16.1 (%Self.as_type.ea1) = value_param call_param0 -// CHECK:STDOUT: %.loc6_16.1: type = splice_block %.loc6_16.3 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.ea1)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %self.param: @F.loc6.%Self.as_type.loc6_16.2 (%Self.as_type.ea1) = value_param call_param0 +// CHECK:STDOUT: %.loc6_16.1: type = splice_block %.loc6_16.3 [symbolic = %Self.as_type.loc6_16.2 (constants.%Self.as_type.ea1)] { // CHECK:STDOUT: %.loc6_16.2: @F.loc6.%Inner.type (%Inner.type.392) = specific_constant @Inner.%Self.1, @Inner(constants.%T) [symbolic = %Self (constants.%Self.770)] // CHECK:STDOUT: %Self.ref: @F.loc6.%Inner.type (%Inner.type.392) = name_ref Self, %.loc6_16.2 [symbolic = %Self (constants.%Self.770)] -// CHECK:STDOUT: %Self.as_type.loc6_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.ea1)] -// CHECK:STDOUT: %.loc6_16.3: type = converted %Self.ref, %Self.as_type.loc6_16.2 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.ea1)] +// CHECK:STDOUT: %Self.as_type.loc6_16.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_16.2 (constants.%Self.as_type.ea1)] +// CHECK:STDOUT: %.loc6_16.3: type = converted %Self.ref, %Self.as_type.loc6_16.1 [symbolic = %Self.as_type.loc6_16.2 (constants.%Self.as_type.ea1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc6.%Self.as_type.loc6_16.1 (%Self.as_type.ea1) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc6.%Self.as_type.loc6_16.2 (%Self.as_type.ea1) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @F.loc6.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.loc6.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -496,7 +496,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @Inner.impl.eed(@Outer.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic impl @Inner.impl.eed(@Outer.%T.loc4_13.2: type) { // 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.390)] // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.392)] @@ -514,7 +514,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %return.patt: @F.loc11.%pattern_type.loc11_23 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc11.%pattern_type.loc11_23 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %self.param: @F.loc11.%C (%C.390) = value_param call_param0 // CHECK:STDOUT: %.loc11_18.1: type = splice_block %C.ref [symbolic = %C (constants.%C.390)] { // CHECK:STDOUT: %.loc11_18.2: type = specific_constant @Outer.%C.decl, @Outer(constants.%T) [symbolic = %C (constants.%C.390)] @@ -556,12 +556,12 @@ fn Test() -> i32 { // CHECK:STDOUT: witness = @D.%Inner.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Outer(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T.loc4_13.2)> [symbolic = %Inner.type (constants.%Inner.type.392)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_13.2) [symbolic = %C (constants.%C.390)] +// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T.loc4_13.1)> [symbolic = %Inner.type (constants.%Inner.type.392)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%T.loc4_13.1) [symbolic = %C (constants.%C.390)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [symbolic = @Outer.%Inner.type (constants.%Inner.type.392)] {} {} @@ -578,7 +578,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(@Outer.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic class @C(@Outer.%T.loc4_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -623,18 +623,18 @@ fn Test() -> i32 { // CHECK:STDOUT: .D = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc6(@Outer.%T.loc4_13.1: type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.392)) { +// CHECK:STDOUT: generic fn @F.loc6(@Outer.%T.loc4_13.2: type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type.392)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.392)] // CHECK:STDOUT: %Self: @F.loc6.%Inner.type (%Inner.type.392) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.770)] -// CHECK:STDOUT: %Self.as_type.loc6_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.ea1)] -// CHECK:STDOUT: %pattern_type.loc6_10: type = pattern_type %Self.as_type.loc6_16.1 [symbolic = %pattern_type.loc6_10 (constants.%pattern_type.81e)] +// CHECK:STDOUT: %Self.as_type.loc6_16.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_16.2 (constants.%Self.as_type.ea1)] +// CHECK:STDOUT: %pattern_type.loc6_10: type = pattern_type %Self.as_type.loc6_16.2 [symbolic = %pattern_type.loc6_10 (constants.%pattern_type.81e)] // CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %T [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc6.%Self.as_type.loc6_16.1 (%Self.as_type.ea1)) -> @F.loc6.%T (%T); +// CHECK:STDOUT: fn(%self.param: @F.loc6.%Self.as_type.loc6_16.2 (%Self.as_type.ea1)) -> @F.loc6.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc11(@Outer.%T.loc4_13.1: type) { +// CHECK:STDOUT: generic fn @F.loc11(@Outer.%T.loc4_13.2: type) { // 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.390)] // CHECK:STDOUT: %pattern_type.loc11_12: type = pattern_type %C [symbolic = %pattern_type.loc11_12 (constants.%pattern_type.e59)] @@ -712,7 +712,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %.loc24_34.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc24_34.2: %i32 = converted %F.call, %.loc24_34.1 // CHECK:STDOUT: %Op.bound: = bound_method %c.var, constants.%Op.369 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.369, @Op.3(constants.%C.70f) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.369, @Op.1(constants.%C.70f) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc23: = bound_method %c.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.18f = addr_of %c.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc23(%addr) @@ -720,7 +720,7 @@ fn Test() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.392 @@ -742,7 +742,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.392 // CHECK:STDOUT: %Self => constants.%Self.770 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%Self.as_type.ea1 +// CHECK:STDOUT: %Self.as_type.loc6_16.2 => constants.%Self.as_type.ea1 // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.81e // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } @@ -774,7 +774,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.392 // CHECK:STDOUT: %Self => constants.%Inner.facet.9a3 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.390 +// CHECK:STDOUT: %Self.as_type.loc6_16.2 => constants.%C.390 // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.e59 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } @@ -783,13 +783,13 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.392 // CHECK:STDOUT: %Self => constants.%Inner.facet.c18 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.390 +// CHECK:STDOUT: %Self.as_type.loc6_16.2 => constants.%C.390 // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.e59 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%i32) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.52d @@ -815,7 +815,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.52d // CHECK:STDOUT: %Self => constants.%Inner.facet.edc -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%D +// CHECK:STDOUT: %Self.as_type.loc6_16.2 => constants.%D // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.510 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7ce // CHECK:STDOUT: } @@ -857,7 +857,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.52d // CHECK:STDOUT: %Self => constants.%Inner.facet.840 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.70f +// CHECK:STDOUT: %Self.as_type.loc6_16.2 => constants.%C.70f // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.de9 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7ce // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index e51d30981801..851dfe2ef8b8 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -122,7 +122,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc18_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc18_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc18_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc18_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %c.patt: %pattern_type.827 = binding_pattern c [concrete] @@ -184,13 +184,13 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc18_13.1: type) { -// CHECK:STDOUT: %T.loc18_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc18_13.2 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc18_13.2: type) { +// CHECK:STDOUT: %T.loc18_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc18_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc18_13.2) [symbolic = %Get.type (constants.%Get.type.fd9)] +// CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T.loc18_13.1) [symbolic = %Get.type (constants.%Get.type.fd9)] // CHECK:STDOUT: %Get: @Class.%Get.type (%Get.type.fd9) = struct_value () [symbolic = %Get (constants.%Get.cf9)] -// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T.loc18_13.2) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.766)] +// CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T.loc18_13.1) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.766)] // CHECK:STDOUT: %GetNoDeduce: @Class.%GetNoDeduce.type (%GetNoDeduce.type.766) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -199,11 +199,11 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %return.patt: @Get.%pattern_type (%pattern_type.65c) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Get.%pattern_type (%pattern_type.65c) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc18_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %U.ref.loc19_27: type = name_ref U, %U.loc19_10.2 [symbolic = %U.loc19_10.1 (constants.%U)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc18_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %U.ref.loc19_27: type = name_ref U, %U.loc19_10.1 [symbolic = %U.loc19_10.2 (constants.%U)] // CHECK:STDOUT: %.loc19_28.1: %tuple.type.24b = tuple_literal (%T.ref, %U.ref.loc19_27) // CHECK:STDOUT: %.loc19_28.2: type = converted %.loc19_28.1, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] -// CHECK:STDOUT: %U.loc19_10.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc19_10.1 (constants.%U)] +// CHECK:STDOUT: %U.loc19_10.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc19_10.2 (constants.%U)] // CHECK:STDOUT: %return.param: ref @Get.%tuple.type (%tuple.type.30b) = out_param call_param0 // CHECK:STDOUT: %return: ref @Get.%tuple.type (%tuple.type.30b) = return_slot %return.param // CHECK:STDOUT: } @@ -214,14 +214,14 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %return.patt: @GetNoDeduce.%pattern_type.loc20_34 (%pattern_type.65c) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @GetNoDeduce.%pattern_type.loc20_34 (%pattern_type.65c) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc20_38: type = name_ref T, @Class.%T.loc18_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %U.ref.loc20_41: type = name_ref U, %U.loc20_24.2 [symbolic = %U.loc20_24.1 (constants.%U)] +// CHECK:STDOUT: %T.ref.loc20_38: type = name_ref T, @Class.%T.loc18_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %U.ref.loc20_41: type = name_ref U, %U.loc20_24.1 [symbolic = %U.loc20_24.2 (constants.%U)] // CHECK:STDOUT: %.loc20_42.1: %tuple.type.24b = tuple_literal (%T.ref.loc20_38, %U.ref.loc20_41) // CHECK:STDOUT: %.loc20_42.2: type = converted %.loc20_42.1, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %x.param: @GetNoDeduce.%T (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc20_21: type = name_ref T, @Class.%T.loc18_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref.loc20_21: type = name_ref T, @Class.%T.loc18_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %x: @GetNoDeduce.%T (%T) = bind_name x, %x.param -// CHECK:STDOUT: %U.loc20_24.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc20_24.1 (constants.%U)] +// CHECK:STDOUT: %U.loc20_24.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc20_24.2 (constants.%U)] // CHECK:STDOUT: %return.param: ref @GetNoDeduce.%tuple.type (%tuple.type.30b) = out_param call_param1 // CHECK:STDOUT: %return: ref @GetNoDeduce.%tuple.type (%tuple.type.30b) = return_slot %return.param // CHECK:STDOUT: } @@ -237,17 +237,17 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Get(@Class.%T.loc18_13.1: type, %U.loc19_10.2: type) { -// CHECK:STDOUT: %U.loc19_10.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc19_10.1 (constants.%U)] +// CHECK:STDOUT: generic fn @Get(@Class.%T.loc18_13.2: type, %U.loc19_10.1: type) { +// CHECK:STDOUT: %U.loc19_10.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc19_10.2 (constants.%U)] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%T, %U.loc19_10.1) [symbolic = %tuple.type (constants.%tuple.type.30b)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T, %U.loc19_10.2) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.65c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc19_20.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc19_20.1 (constants.%require_complete.fe1)] // CHECK:STDOUT: %Get.type: type = fn_type @Get, @Class(%T) [symbolic = %Get.type (constants.%Get.type.fd9)] // CHECK:STDOUT: %Get: @Get.%Get.type (%Get.type.fd9) = struct_value () [symbolic = %Get (constants.%Get.cf9)] -// CHECK:STDOUT: %Get.specific_fn.loc19_39.2: = specific_function %Get, @Get(%T, %U.loc19_10.1) [symbolic = %Get.specific_fn.loc19_39.2 (constants.%Get.specific_fn.f73)] +// CHECK:STDOUT: %Get.specific_fn.loc19_39.2: = specific_function %Get, @Get(%T, %U.loc19_10.2) [symbolic = %Get.specific_fn.loc19_39.2 (constants.%Get.specific_fn.f73)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.1c6)] // CHECK:STDOUT: %.loc19_20.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc19_20.3 (constants.%.1e9)] @@ -260,7 +260,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc19_39: @Get.%Get.type (%Get.type.fd9) = specific_constant @Class.%Get.decl, @Class(constants.%T) [symbolic = %Get (constants.%Get.cf9)] // CHECK:STDOUT: %Get.ref: @Get.%Get.type (%Get.type.fd9) = name_ref Get, %.loc19_39 [symbolic = %Get (constants.%Get.cf9)] -// CHECK:STDOUT: %U.ref.loc19_43: type = name_ref U, %U.loc19_10.2 [symbolic = %U.loc19_10.1 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc19_43: type = name_ref U, %U.loc19_10.1 [symbolic = %U.loc19_10.2 (constants.%U)] // CHECK:STDOUT: %Get.specific_fn.loc19_39.1: = specific_function %Get.ref, @Get(constants.%T, constants.%U) [symbolic = %Get.specific_fn.loc19_39.2 (constants.%Get.specific_fn.f73)] // CHECK:STDOUT: %.loc19_20.1: ref @Get.%tuple.type (%tuple.type.30b) = splice_block %return {} // CHECK:STDOUT: %Get.call: init @Get.%tuple.type (%tuple.type.30b) = call %Get.specific_fn.loc19_39.1() to %.loc19_20.1 @@ -274,18 +274,18 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GetNoDeduce(@Class.%T.loc18_13.1: type, %U.loc20_24.2: type) { +// CHECK:STDOUT: generic fn @GetNoDeduce(@Class.%T.loc18_13.2: type, %U.loc20_24.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type.loc20_18: type = pattern_type %T [symbolic = %pattern_type.loc20_18 (constants.%pattern_type.7dc)] -// CHECK:STDOUT: %U.loc20_24.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc20_24.1 (constants.%U)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%T, %U.loc20_24.1) [symbolic = %tuple.type (constants.%tuple.type.30b)] +// CHECK:STDOUT: %U.loc20_24.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc20_24.2 (constants.%U)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T, %U.loc20_24.2) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %pattern_type.loc20_34: type = pattern_type %tuple.type [symbolic = %pattern_type.loc20_34 (constants.%pattern_type.65c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc20_19: = require_complete_type %T [symbolic = %require_complete.loc20_19 (constants.%require_complete.4ae)] // CHECK:STDOUT: %GetNoDeduce.type: type = fn_type @GetNoDeduce, @Class(%T) [symbolic = %GetNoDeduce.type (constants.%GetNoDeduce.type.766)] // CHECK:STDOUT: %GetNoDeduce: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.766) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] -// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc20_53.2: = specific_function %GetNoDeduce, @GetNoDeduce(%T, %U.loc20_24.1) [symbolic = %GetNoDeduce.specific_fn.loc20_53.2 (constants.%GetNoDeduce.specific_fn.536)] +// CHECK:STDOUT: %GetNoDeduce.specific_fn.loc20_53.2: = specific_function %GetNoDeduce, @GetNoDeduce(%T, %U.loc20_24.2) [symbolic = %GetNoDeduce.specific_fn.loc20_53.2 (constants.%GetNoDeduce.specific_fn.536)] // CHECK:STDOUT: %require_complete.loc20_70: = require_complete_type %tuple.type [symbolic = %require_complete.loc20_70 (constants.%require_complete.fe1)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.1c6)] @@ -300,7 +300,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %.loc20_53: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.766) = specific_constant @Class.%GetNoDeduce.decl, @Class(constants.%T) [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] // CHECK:STDOUT: %GetNoDeduce.ref: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.766) = name_ref GetNoDeduce, %.loc20_53 [symbolic = %GetNoDeduce (constants.%GetNoDeduce.c9a)] // CHECK:STDOUT: %x.ref: @GetNoDeduce.%T (%T) = name_ref x, %x -// CHECK:STDOUT: %U.ref.loc20_68: type = name_ref U, %U.loc20_24.2 [symbolic = %U.loc20_24.1 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc20_68: type = name_ref U, %U.loc20_24.1 [symbolic = %U.loc20_24.2 (constants.%U)] // CHECK:STDOUT: %GetNoDeduce.specific_fn.loc20_53.1: = specific_function %GetNoDeduce.ref, @GetNoDeduce(constants.%T, constants.%U) [symbolic = %GetNoDeduce.specific_fn.loc20_53.2 (constants.%GetNoDeduce.specific_fn.536)] // CHECK:STDOUT: %.loc20_34.1: ref @GetNoDeduce.%tuple.type (%tuple.type.30b) = splice_block %return {} // CHECK:STDOUT: %GetNoDeduce.call: init @GetNoDeduce.%tuple.type (%tuple.type.30b) = call %GetNoDeduce.specific_fn.loc20_53.1(%x.ref) to %.loc20_34.1 @@ -360,7 +360,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc18_13.2 => constants.%T +// CHECK:STDOUT: %T.loc18_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Get.type => constants.%Get.type.fd9 @@ -370,7 +370,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%T, constants.%U) { -// CHECK:STDOUT: %U.loc19_10.1 => constants.%U +// CHECK:STDOUT: %U.loc19_10.2 => constants.%U // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: %pattern_type => constants.%pattern_type.65c @@ -392,7 +392,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: specific @GetNoDeduce(constants.%T, constants.%U) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %pattern_type.loc20_18 => constants.%pattern_type.7dc -// CHECK:STDOUT: %U.loc20_24.1 => constants.%U +// CHECK:STDOUT: %U.loc20_24.2 => constants.%U // CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: %pattern_type.loc20_34 => constants.%pattern_type.65c // CHECK:STDOUT: @@ -412,7 +412,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%A) { -// CHECK:STDOUT: %T.loc18_13.2 => constants.%A +// CHECK:STDOUT: %T.loc18_13.1 => constants.%A // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Get.type => constants.%Get.type.501 @@ -422,7 +422,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Get(constants.%A, constants.%B) { -// CHECK:STDOUT: %U.loc19_10.1 => constants.%B +// CHECK:STDOUT: %U.loc19_10.2 => constants.%B // CHECK:STDOUT: %T => constants.%A // CHECK:STDOUT: %tuple.type => constants.%tuple.type.cc6 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.edc @@ -444,7 +444,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: specific @GetNoDeduce(constants.%A, constants.%B) { // CHECK:STDOUT: %T => constants.%A // CHECK:STDOUT: %pattern_type.loc20_18 => constants.%pattern_type.c10 -// CHECK:STDOUT: %U.loc20_24.1 => constants.%B +// CHECK:STDOUT: %U.loc20_24.2 => constants.%B // CHECK:STDOUT: %tuple.type => constants.%tuple.type.cc6 // CHECK:STDOUT: %pattern_type.loc20_34 => constants.%pattern_type.edc // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/redeclare.carbon b/toolchain/check/testdata/class/generic/redeclare.carbon index 9368e33f45d0..374f078512f1 100644 --- a/toolchain/check/testdata/class/generic/redeclare.carbon +++ b/toolchain/check/testdata/class/generic/redeclare.carbon @@ -125,17 +125,17 @@ class E(U:! type) {} // CHECK:STDOUT: %Generic.decl.loc4: %Generic.type = class_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Generic.decl.loc6: %Generic.type = class_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Generic(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -150,7 +150,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_list.carbon @@ -183,14 +183,14 @@ class E(U:! type) {} // CHECK:STDOUT: %A.decl.loc12: %A.type = class_decl @A.loc12 [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc12_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @A.loc4; // CHECK:STDOUT: -// CHECK:STDOUT: generic class @A.loc12(%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: generic class @A.loc12(%T.loc12_9.2: type) { +// CHECK:STDOUT: %T.loc12_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -205,7 +205,7 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.loc12(constants.%T) { -// CHECK:STDOUT: %T.loc12_9.2 => constants.%T +// CHECK:STDOUT: %T.loc12_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_implicit_param_list.carbon @@ -246,15 +246,15 @@ class E(U:! type) {} // CHECK:STDOUT: %N.patt: %pattern_type.c10 = symbolic_binding_pattern N, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %N.loc6_9.1: %A = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.2 (constants.%N.9e6)] +// CHECK:STDOUT: %N.loc6_9.2: %A = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.1 (constants.%N.9e6)] // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl.loc14: %B.type.844c0f.2 = class_decl @B.loc14 [concrete = constants.%B.generic.ba299b.2] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: @B.loc14.%pattern_type (%pattern_type.7dc) = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc14_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.2 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc14_9.1 [symbolic = %T.loc14_9.2 (constants.%T)] -// CHECK:STDOUT: %N.loc14_19.1: @B.loc14.%T.loc14_9.2 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc14_19.2 (constants.%N.f22)] +// CHECK:STDOUT: %T.loc14_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc14_9.2 [symbolic = %T.loc14_9.1 (constants.%T)] +// CHECK:STDOUT: %N.loc14_19.2: @B.loc14.%T.loc14_9.1 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc14_19.1 (constants.%N.f22)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -267,16 +267,16 @@ class E(U:! type) {} // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @B.loc6(%N.loc6_9.1: %A) { -// CHECK:STDOUT: %N.loc6_9.2: %A = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.2 (constants.%N.9e6)] +// CHECK:STDOUT: generic class @B.loc6(%N.loc6_9.2: %A) { +// CHECK:STDOUT: %N.loc6_9.1: %A = bind_symbolic_name N, 0 [symbolic = %N.loc6_9.1 (constants.%N.9e6)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @B.loc14(%T.loc14_9.1: type, %N.loc14_19.1: @B.loc14.%T.loc14_9.2 (%T)) { -// CHECK:STDOUT: %T.loc14_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.2 (constants.%T)] -// CHECK:STDOUT: %N.loc14_19.2: @B.loc14.%T.loc14_9.2 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc14_19.2 (constants.%N.f22)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc14_9.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic class @B.loc14(%T.loc14_9.2: type, %N.loc14_19.2: @B.loc14.%T.loc14_9.1 (%T)) { +// CHECK:STDOUT: %T.loc14_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.1 (constants.%T)] +// CHECK:STDOUT: %N.loc14_19.1: @B.loc14.%T.loc14_9.1 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc14_19.1 (constants.%N.f22)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc14_9.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -291,12 +291,12 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B.loc6(constants.%N.9e6) { -// CHECK:STDOUT: %N.loc6_9.2 => constants.%N.9e6 +// CHECK:STDOUT: %N.loc6_9.1 => constants.%N.9e6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B.loc14(constants.%T, constants.%N.f22) { -// CHECK:STDOUT: %T.loc14_9.2 => constants.%T -// CHECK:STDOUT: %N.loc14_19.2 => constants.%N.f22 +// CHECK:STDOUT: %T.loc14_9.1 => constants.%T +// CHECK:STDOUT: %N.loc14_19.1 => constants.%N.f22 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -335,15 +335,15 @@ class E(U:! type) {} // CHECK:STDOUT: %C.decl.loc6: %C.type.e6e560.1 = class_decl @C.loc6 [concrete = constants.%C.generic.965b12.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc14: %C.type.e6e560.2 = class_decl @C.loc14 [concrete = constants.%C.generic.965b12.2] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.c10 = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc14_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc14_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.1 (constants.%T)] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %U.loc14_19.1: %A = bind_symbolic_name U, 1 [symbolic = %U.loc14_19.2 (constants.%U)] +// CHECK:STDOUT: %U.loc14_19.2: %A = bind_symbolic_name U, 1 [symbolic = %U.loc14_19.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -356,15 +356,15 @@ class E(U:! type) {} // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C.loc6(%T.loc6_9.1: type) { -// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @C.loc6(%T.loc6_9.2: type) { +// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C.loc14(%T.loc14_9.1: type, %U.loc14_19.1: %A) { -// CHECK:STDOUT: %T.loc14_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.2 (constants.%T)] -// CHECK:STDOUT: %U.loc14_19.2: %A = bind_symbolic_name U, 1 [symbolic = %U.loc14_19.2 (constants.%U)] +// CHECK:STDOUT: generic class @C.loc14(%T.loc14_9.2: type, %U.loc14_19.2: %A) { +// CHECK:STDOUT: %T.loc14_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.1 (constants.%T)] +// CHECK:STDOUT: %U.loc14_19.1: %A = bind_symbolic_name U, 1 [symbolic = %U.loc14_19.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -379,12 +379,12 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.loc6(constants.%T) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%T +// CHECK:STDOUT: %T.loc6_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.loc14(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc14_9.2 => constants.%T -// CHECK:STDOUT: %U.loc14_19.2 => constants.%U +// CHECK:STDOUT: %T.loc14_9.1 => constants.%T +// CHECK:STDOUT: %U.loc14_19.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_type.carbon @@ -422,13 +422,13 @@ class E(U:! type) {} // CHECK:STDOUT: %D.decl.loc6: %D.type.bbd080.1 = class_decl @D.loc6 [concrete = constants.%D.generic.4e2319.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc14: %D.type.bbd080.2 = class_decl @D.loc14 [concrete = constants.%D.generic.4e2319.2] { // CHECK:STDOUT: %T.patt: %pattern_type.c10 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %T.loc14_9.1: %A = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.2 (constants.%T.9e6)] +// CHECK:STDOUT: %T.loc14_9.2: %A = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.1 (constants.%T.9e6)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -441,14 +441,14 @@ class E(U:! type) {} // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D.loc6(%T.loc6_9.1: type) { -// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic class @D.loc6(%T.loc6_9.2: type) { +// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D.loc14(%T.loc14_9.1: %A) { -// CHECK:STDOUT: %T.loc14_9.2: %A = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.2 (constants.%T.9e6)] +// CHECK:STDOUT: generic class @D.loc14(%T.loc14_9.2: %A) { +// CHECK:STDOUT: %T.loc14_9.1: %A = bind_symbolic_name T, 0 [symbolic = %T.loc14_9.1 (constants.%T.9e6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -463,11 +463,11 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.loc6(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc6_9.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.loc14(constants.%T.9e6) { -// CHECK:STDOUT: %T.loc14_9.2 => constants.%T.9e6 +// CHECK:STDOUT: %T.loc14_9.1 => constants.%T.9e6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_param_name.carbon @@ -501,23 +501,23 @@ class E(U:! type) {} // CHECK:STDOUT: %E.decl.loc4: %E.type.b0f8dc.1 = class_decl @E.loc4 [concrete = constants.%E.generic.f281ba.1] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %E.decl.loc12: %E.type.b0f8dc.2 = class_decl @E.loc12 [concrete = constants.%E.generic.f281ba.2] { // CHECK:STDOUT: %U.patt: %pattern_type = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc12_9.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_9.2 (constants.%U)] +// CHECK:STDOUT: %U.loc12_9.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_9.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @E.loc4(%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: generic class @E.loc4(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @E.loc12(%U.loc12_9.1: type) { -// CHECK:STDOUT: %U.loc12_9.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_9.2 (constants.%U)] +// CHECK:STDOUT: generic class @E.loc12(%U.loc12_9.2: type) { +// CHECK:STDOUT: %U.loc12_9.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc12_9.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -532,10 +532,10 @@ class E(U:! type) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @E.loc4(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @E.loc12(constants.%U) { -// CHECK:STDOUT: %U.loc12_9.2 => constants.%U +// CHECK:STDOUT: %U.loc12_9.1 => 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 f836ac978ed8..ba48477d43c9 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -74,19 +74,19 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc15_13.1: type) { -// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc15_13.2: type) { +// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T.loc15_13.2) [symbolic = %MakeSelf.type (constants.%MakeSelf.type)] +// CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T.loc15_13.1) [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.loc15_13.2) [symbolic = %MakeClass.type (constants.%MakeClass.type)] +// CHECK:STDOUT: %MakeClass.type: type = fn_type @MakeClass, @Class(%T.loc15_13.1) [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.loc15_13.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc15_13.1) [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 { @@ -104,10 +104,10 @@ class Class(T:! type) { // CHECK:STDOUT: %return.param_patt: @MakeClass.%pattern_type (%pattern_type.3c1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc19_28.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_28.1 (constants.%Class)] -// CHECK:STDOUT: %return.param: ref @MakeClass.%Class.loc19_28.1 (%Class) = out_param call_param0 -// CHECK:STDOUT: %return: ref @MakeClass.%Class.loc19_28.1 (%Class) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Class.loc19_28.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_28.2 (constants.%Class)] +// CHECK:STDOUT: %return.param: ref @MakeClass.%Class.loc19_28.2 (%Class) = out_param call_param0 +// CHECK:STDOUT: %return: ref @MakeClass.%Class.loc19_28.2 (%Class) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] {} {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] @@ -124,7 +124,7 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeSelf(@Class.%T.loc15_13.1: type) { +// CHECK:STDOUT: generic fn @MakeSelf(@Class.%T.loc15_13.2: 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)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Class [symbolic = %pattern_type (constants.%pattern_type.3c1)] @@ -142,25 +142,25 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeClass(@Class.%T.loc15_13.1: type) { +// CHECK:STDOUT: generic fn @MakeClass(@Class.%T.loc15_13.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc19_28.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc19_28.1 (constants.%Class)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc19_28.1 [symbolic = %pattern_type (constants.%pattern_type.3c1)] +// CHECK:STDOUT: %Class.loc19_28.2: type = class_type @Class, @Class(%T) [symbolic = %Class.loc19_28.2 (constants.%Class)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc19_28.2 [symbolic = %pattern_type (constants.%pattern_type.3c1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc19_28.1 [symbolic = %require_complete (constants.%require_complete.4f8)] -// CHECK:STDOUT: %Class.val: @MakeClass.%Class.loc19_28.1 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc19_28.2 [symbolic = %require_complete (constants.%require_complete.4f8)] +// CHECK:STDOUT: %Class.val: @MakeClass.%Class.loc19_28.2 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @MakeClass.%Class.loc19_28.1 (%Class) { +// CHECK:STDOUT: fn() -> %return.param: @MakeClass.%Class.loc19_28.2 (%Class) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %.loc19_40.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc19_40.2: init @MakeClass.%Class.loc19_28.1 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] -// CHECK:STDOUT: %.loc19_41: init @MakeClass.%Class.loc19_28.1 (%Class) = converted %.loc19_40.1, %.loc19_40.2 [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %.loc19_40.2: init @MakeClass.%Class.loc19_28.2 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %.loc19_41: init @MakeClass.%Class.loc19_28.2 (%Class) = converted %.loc19_40.1, %.loc19_40.2 [symbolic = %Class.val (constants.%Class.val)] // CHECK:STDOUT: return %.loc19_41 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc15_13.1: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc15_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class.loc21_19.2: type = class_type @Class, @Class(%T) [symbolic = %Class.loc21_19.2 (constants.%Class)] @@ -195,7 +195,7 @@ class Class(T:! type) { // CHECK:STDOUT: assign %c.var, %MakeSelf.call // CHECK:STDOUT: %.loc21_19: type = splice_block %Class.loc21_19.1 [symbolic = %Class.loc21_19.2 (constants.%Class)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class.loc21_19.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc21_19.2 (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref @F.%Class.loc21_19.2 (%Class) = bind_name c, %c.var @@ -244,7 +244,7 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%T +// CHECK:STDOUT: %T.loc15_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %MakeSelf.type => constants.%MakeSelf.type @@ -267,7 +267,7 @@ class Class(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @MakeClass(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Class.loc19_28.1 => constants.%Class +// CHECK:STDOUT: %Class.loc19_28.2 => constants.%Class // CHECK:STDOUT: %pattern_type => constants.%pattern_type.3c1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/class/generic/stringify.carbon b/toolchain/check/testdata/class/generic/stringify.carbon index 8dc4d7671c45..e8511c15cdd6 100644 --- a/toolchain/check/testdata/class/generic/stringify.carbon +++ b/toolchain/check/testdata/class/generic/stringify.carbon @@ -225,7 +225,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: %pattern_type.828 = binding_pattern v [concrete] @@ -262,11 +262,11 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %w: ref %Inner.277 = bind_name w, %w.var [concrete = %w.var] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Outer(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.1) [symbolic = %Inner.type (constants.%Inner.type.eae)] // CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -285,7 +285,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.1: type, %U.loc5_15.1: type) { +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.2: 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: @@ -309,7 +309,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%T, constants.%U) { @@ -317,7 +317,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%ptr.c28) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.c28 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%ptr.c28 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.5d2 @@ -393,7 +393,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.1 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: %pattern_type.1b4 = binding_pattern v [concrete] @@ -415,8 +415,8 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %v: ref %C.4c3 = bind_name v, %v.var [concrete = %v.var] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%N.loc4_9.1: %i32) { -// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.51e)] +// CHECK:STDOUT: generic class @C(%N.loc4_9.2: %i32) { +// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.1 (constants.%N.51e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -439,11 +439,11 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%N.51e) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc4_9.1 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_123.f7f) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_123.f7f +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_123.f7f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -526,7 +526,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %F.patt: %pattern_type.510 = symbolic_binding_pattern F, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %F.loc9_9.1: %D = bind_symbolic_name F, 0 [symbolic = %F.loc9_9.2 (constants.%F)] +// CHECK:STDOUT: %F.loc9_9.2: %D = bind_symbolic_name F, 0 [symbolic = %F.loc9_9.1 (constants.%F)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %g.patt: = binding_pattern g [concrete] @@ -580,8 +580,8 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: .b = %.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @E(%F.loc9_9.1: %D) { -// CHECK:STDOUT: %F.loc9_9.2: %D = bind_symbolic_name F, 0 [symbolic = %F.loc9_9.2 (constants.%F)] +// CHECK:STDOUT: generic class @E(%F.loc9_9.2: %D) { +// CHECK:STDOUT: %F.loc9_9.1: %D = bind_symbolic_name F, 0 [symbolic = %F.loc9_9.1 (constants.%F)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -629,6 +629,6 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @E(constants.%F) { -// CHECK:STDOUT: %F.loc9_9.2 => constants.%F +// CHECK:STDOUT: %F.loc9_9.1 => constants.%F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic_method.carbon b/toolchain/check/testdata/class/generic_method.carbon index 5e0913a812d1..aaa457067399 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: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [symbolic = constants.%F] { // CHECK:STDOUT: %self.patt: @F.%pattern_type.loc17_8 (%pattern_type.3c1) = binding_pattern self [concrete] @@ -62,7 +62,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: %n.patt: @F.%pattern_type.loc17_20 (%pattern_type.7dc) = binding_pattern n [concrete] // CHECK:STDOUT: %n.param_patt: @F.%pattern_type.loc17_20 (%pattern_type.7dc) = value_param_pattern %n.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc20: type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc20: type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: %self.param.loc20: @F.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc20_28.1: type = splice_block %Self.ref.loc20 [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc20_28.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] @@ -75,20 +75,20 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc15_13.1: type) { -// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc15_13.2: type) { +// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc15_13.2) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc15_13.2 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc15_13.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc15_13.1) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.loc15_13.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc15_13.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %struct_type.a.loc18_1.2: type = struct_type {.a: @Class.%T.loc15_13.2 (%T)} [symbolic = %struct_type.a.loc18_1.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %struct_type.a.loc18_1.2: type = struct_type {.a: @Class.%T.loc15_13.1 (%T)} [symbolic = %struct_type.a.loc18_1.2 (constants.%struct_type.a)] // CHECK:STDOUT: %complete_type.loc18_1.2: = complete_type_witness %struct_type.a.loc18_1.2 [symbolic = %complete_type.loc18_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_13.1 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_13.2 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: %.loc16: @Class.%Class.elem (%Class.elem) = field_decl a, element0 [concrete] // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] { // CHECK:STDOUT: %self.patt: @F.%pattern_type.loc17_8 (%pattern_type.3c1) = binding_pattern self [concrete] @@ -103,7 +103,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc17: @F.%Class (%Class) = bind_name self, %self.param.loc17 // CHECK:STDOUT: %n.param.loc17: @F.%T.loc17 (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref.loc17: type = name_ref T, @Class.%T.loc15_13.1 [symbolic = %T.loc17 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc17: type = name_ref T, @Class.%T.loc15_13.2 [symbolic = %T.loc17 (constants.%T)] // CHECK:STDOUT: %n.loc17: @F.%T.loc17 (%T) = bind_name n, %n.param.loc17 // CHECK:STDOUT: } // CHECK:STDOUT: %struct_type.a.loc18_1.1: type = struct_type {.a: %T} [symbolic = %struct_type.a.loc18_1.2 (constants.%struct_type.a)] @@ -118,7 +118,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc15_13.1: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc15_13.2: type) { // CHECK:STDOUT: %T.loc17: type = bind_symbolic_name T, 0 [symbolic = %T.loc17 (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc17) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc17_8: type = pattern_type %Class [symbolic = %pattern_type.loc17_8 (constants.%pattern_type.3c1)] @@ -135,7 +135,7 @@ fn Class(T:! type).F[self: Self](n: T) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%T +// CHECK:STDOUT: %T.loc15_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4ae diff --git a/toolchain/check/testdata/class/generic_vs_params.carbon b/toolchain/check/testdata/class/generic_vs_params.carbon index b7561b6eae02..3ef04b5d0c9e 100644 --- a/toolchain/check/testdata/class/generic_vs_params.carbon +++ b/toolchain/check/testdata/class/generic_vs_params.carbon @@ -137,12 +137,12 @@ class Foo[T:! type]; // CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.c8d = class_decl @GenericAndParams.loc6 [concrete = constants.%GenericAndParams.generic.1e4] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_24.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_24.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_24.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_24.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: name_binding_decl { @@ -221,8 +221,8 @@ class Foo[T:! type]; // CHECK:STDOUT: .Self = constants.%NotGenericButParams // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericAndParams.loc6(%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: generic class @GenericAndParams.loc6(%T.loc6_24.2: type) { +// CHECK:STDOUT: %T.loc6_24.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_24.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -236,12 +236,12 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc8_9.2: type) { +// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericNoParams: type = class_type @GenericNoParams, @GenericNoParams(%T.loc8_9.2) [symbolic = %GenericNoParams (constants.%GenericNoParams.fbf)] -// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.loc10, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.3ce)] +// CHECK:STDOUT: %GenericNoParams: type = class_type @GenericNoParams, @GenericNoParams(%T.loc8_9.1) [symbolic = %GenericNoParams (constants.%GenericNoParams.fbf)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_class_type @GenericAndParams.loc10, @C(%T.loc8_9.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.3ce)] // CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.3ce) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.54a)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -262,7 +262,7 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericNoParams(@C.%T.loc8_9.1: type) { +// CHECK:STDOUT: generic class @GenericNoParams(@C.%T.loc8_9.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -275,7 +275,7 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericAndParams.loc10(@C.%T.loc8_9.1: type, %U.loc10_26.1: type) { +// CHECK:STDOUT: generic class @GenericAndParams.loc10(@C.%T.loc8_9.2: 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: @@ -325,11 +325,11 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.loc6(constants.%T) { -// CHECK:STDOUT: %T.loc6_24.2 => constants.%T +// CHECK:STDOUT: %T.loc6_24.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%T +// CHECK:STDOUT: %T.loc8_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericNoParams(constants.%T) {} @@ -339,13 +339,13 @@ class Foo[T:! type]; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.loc6(constants.%X) { -// CHECK:STDOUT: %T.loc6_24.2 => constants.%X +// CHECK:STDOUT: %T.loc6_24.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%X +// CHECK:STDOUT: %T.loc8_9.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericNoParams => constants.%GenericNoParams.fa1 @@ -412,7 +412,7 @@ class Foo[T:! type]; // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc11_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -425,22 +425,22 @@ class Foo[T:! type]; // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic fn @F(%T.loc11_6.2: type) { +// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [concrete = constants.%A.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_6.2 [symbolic = %T.loc11_6.1 (constants.%T)] // CHECK:STDOUT: %A: type = class_type @A [concrete = constants.%A] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc11_6.2 => constants.%T +// CHECK:STDOUT: %T.loc11_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_implicit_params_only_empty.carbon @@ -475,17 +475,17 @@ class Foo[T:! type]; // CHECK:STDOUT: %Foo.decl: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_11.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_11.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_11.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_11.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo(%T.loc8_11.1: type) { -// CHECK:STDOUT: %T.loc8_11.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_11.2 (constants.%T)] +// CHECK:STDOUT: generic class @Foo(%T.loc8_11.2: type) { +// CHECK:STDOUT: %T.loc8_11.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_11.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%T) { -// CHECK:STDOUT: %T.loc8_11.2 => constants.%T +// CHECK:STDOUT: %T.loc8_11.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index 364f08032854..2bc03acf304d 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -185,17 +185,17 @@ fn Run() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.9ba: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0b2: type = fn_type @Convert.2, @ImplicitAs.impl.c81(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0b2: type = fn_type @Convert.1, @ImplicitAs.impl.c81(%To) [symbolic] // CHECK:STDOUT: %Convert.6d7: %Convert.type.0b2 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.e34: = impl_witness imports.%ImplicitAs.impl_witness_table.e36, @ImplicitAs.impl.c81(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @ImplicitAs.impl.c81(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.1, @ImplicitAs.impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e34) [concrete] // CHECK:STDOUT: %.d6a: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.43e: = bound_method %int_1.5b8, %Convert.16d [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.947: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.47b: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Field.val: %Field = struct_value (%int_1.47b) [concrete] @@ -217,25 +217,25 @@ fn Run() { // CHECK:STDOUT: %ptr.c62: type = ptr_type %Incomplete [concrete] // CHECK:STDOUT: %pattern_type.275: type = pattern_type %ptr.c62 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7f0: type = fn_type @Op.3, @Destroy.impl(%ptr.c62) [concrete] +// CHECK:STDOUT: %Op.type.7f0: type = fn_type @Op.1, @Destroy.impl(%ptr.c62) [concrete] // CHECK:STDOUT: %Op.90d: %Op.type.7f0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c22: type = ptr_type %ptr.c62 [concrete] -// CHECK:STDOUT: %Op.specific_fn.b24: = specific_function %Op.90d, @Op.3(%ptr.c62) [concrete] -// CHECK:STDOUT: %Op.type.d2a: type = fn_type @Op.3, @Destroy.impl(%ptr.6cf) [concrete] +// CHECK:STDOUT: %Op.specific_fn.b24: = specific_function %Op.90d, @Op.1(%ptr.c62) [concrete] +// CHECK:STDOUT: %Op.type.d2a: type = fn_type @Op.1, @Destroy.impl(%ptr.6cf) [concrete] // CHECK:STDOUT: %Op.3b0: %Op.type.d2a = struct_value () [concrete] // CHECK:STDOUT: %ptr.df0: type = ptr_type %ptr.6cf [concrete] -// CHECK:STDOUT: %Op.specific_fn.3de: = specific_function %Op.3b0, @Op.3(%ptr.6cf) [concrete] -// CHECK:STDOUT: %Op.type.308: type = fn_type @Op.3, @Destroy.impl(%ForwardDeclared.7b34f2.1) [concrete] +// CHECK:STDOUT: %Op.specific_fn.3de: = specific_function %Op.3b0, @Op.1(%ptr.6cf) [concrete] +// CHECK:STDOUT: %Op.type.308: type = fn_type @Op.1, @Destroy.impl(%ForwardDeclared.7b34f2.1) [concrete] // CHECK:STDOUT: %Op.9e2: %Op.type.308 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.09a: = specific_function %Op.9e2, @Op.3(%ForwardDeclared.7b34f2.1) [concrete] -// CHECK:STDOUT: %Op.type.47c: type = fn_type @Op.3, @Destroy.impl(%Field) [concrete] +// CHECK:STDOUT: %Op.specific_fn.09a: = specific_function %Op.9e2, @Op.1(%ForwardDeclared.7b34f2.1) [concrete] +// CHECK:STDOUT: %Op.type.47c: type = fn_type @Op.1, @Destroy.impl(%Field) [concrete] // CHECK:STDOUT: %Op.576: %Op.type.47c = struct_value () [concrete] // CHECK:STDOUT: %ptr.d8b: type = ptr_type %Field [concrete] -// CHECK:STDOUT: %Op.specific_fn.29d: = specific_function %Op.576, @Op.3(%Field) [concrete] -// CHECK:STDOUT: %Op.type.b74: type = fn_type @Op.3, @Destroy.impl(%Empty) [concrete] +// CHECK:STDOUT: %Op.specific_fn.29d: = specific_function %Op.576, @Op.1(%Field) [concrete] +// CHECK:STDOUT: %Op.type.b74: type = fn_type @Op.1, @Destroy.impl(%Empty) [concrete] // CHECK:STDOUT: %Op.6e4: %Op.type.b74 = struct_value () [concrete] // CHECK:STDOUT: %ptr.961: type = ptr_type %Empty [concrete] -// CHECK:STDOUT: %Op.specific_fn.1a5: = specific_function %Op.6e4, @Op.3(%Empty) [concrete] +// CHECK:STDOUT: %Op.specific_fn.1a5: = specific_function %Op.6e4, @Op.1(%Empty) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -340,7 +340,7 @@ fn Run() { // CHECK:STDOUT: %.loc9_25.1: %struct_type.x.c96 = struct_literal (%int_1) // CHECK:STDOUT: %impl.elem0.loc9: %.d6a = impl_witness_access constants.%ImplicitAs.impl_witness.e34, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc9_25.1: = bound_method %int_1, %impl.elem0.loc9 [concrete = constants.%Convert.bound.43e] -// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_25.2: = bound_method %int_1, %specific_fn.loc9 [concrete = constants.%bound_method.947] // CHECK:STDOUT: %int.convert_checked.loc9: init %i32 = call %bound_method.loc9_25.2(%int_1) [concrete = constants.%int_1.47b] // CHECK:STDOUT: %.loc9_25.2: init %i32 = converted %int_1, %int.convert_checked.loc9 [concrete = constants.%int_1.47b] @@ -357,7 +357,7 @@ fn Run() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc10: %.d6a = impl_witness_access constants.%ImplicitAs.impl_witness.e34, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc10_7.1: = bound_method %int_2, %impl.elem0.loc10 [concrete = constants.%Convert.bound.918] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_7.2: = bound_method %int_2, %specific_fn.loc10 [concrete = constants.%bound_method.c74] // CHECK:STDOUT: %int.convert_checked.loc10: init %i32 = call %bound_method.loc10_7.2(%int_2) [concrete = constants.%int_2.d0d] // CHECK:STDOUT: %.loc10_7: init %i32 = converted %int_2, %int.convert_checked.loc10 [concrete = constants.%int_2.d0d] @@ -407,27 +407,27 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %e: ref %ptr.c62 = bind_name e, %e.var // CHECK:STDOUT: %Op.bound.loc18: = bound_method %e.var, constants.%Op.90d -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.90d, @Op.3(constants.%ptr.c62) [concrete = constants.%Op.specific_fn.b24] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.90d, @Op.1(constants.%ptr.c62) [concrete = constants.%Op.specific_fn.b24] // CHECK:STDOUT: %bound_method.loc18: = bound_method %e.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18: %ptr.c22 = addr_of %e.var // CHECK:STDOUT: %no_op.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) // CHECK:STDOUT: %Op.bound.loc16: = bound_method %d.var, constants.%Op.3b0 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.3b0, @Op.3(constants.%ptr.6cf) [concrete = constants.%Op.specific_fn.3de] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.3b0, @Op.1(constants.%ptr.6cf) [concrete = constants.%Op.specific_fn.3de] // CHECK:STDOUT: %bound_method.loc16: = bound_method %d.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc16_3: %ptr.df0 = addr_of %d.var // CHECK:STDOUT: %no_op.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16_3) // CHECK:STDOUT: %Op.bound.loc12: = bound_method %c.var, constants.%Op.9e2 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.9e2, @Op.3(constants.%ForwardDeclared.7b34f2.1) [concrete = constants.%Op.specific_fn.09a] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.9e2, @Op.1(constants.%ForwardDeclared.7b34f2.1) [concrete = constants.%Op.specific_fn.09a] // CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.6cf = addr_of %c.var // CHECK:STDOUT: %no_op.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: %Op.bound.loc9: = bound_method %b.var, constants.%Op.576 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.576, @Op.3(constants.%Field) [concrete = constants.%Op.specific_fn.29d] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.576, @Op.1(constants.%Field) [concrete = constants.%Op.specific_fn.29d] // CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc9: %ptr.d8b = addr_of %b.var // CHECK:STDOUT: %no_op.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) // CHECK:STDOUT: %Op.bound.loc7: = bound_method %a.var, constants.%Op.6e4 -// CHECK:STDOUT: %Op.specific_fn.5: = specific_function constants.%Op.6e4, @Op.3(constants.%Empty) [concrete = constants.%Op.specific_fn.1a5] +// CHECK:STDOUT: %Op.specific_fn.5: = specific_function constants.%Op.6e4, @Op.1(constants.%Empty) [concrete = constants.%Op.specific_fn.1a5] // CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %Op.specific_fn.5 // CHECK:STDOUT: %addr.loc7: %ptr.961 = addr_of %a.var // CHECK:STDOUT: %no_op.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) diff --git a/toolchain/check/testdata/class/import_base.carbon b/toolchain/check/testdata/class/import_base.carbon index 18004e4b1820..c6fc223a246d 100644 --- a/toolchain/check/testdata/class/import_base.carbon +++ b/toolchain/check/testdata/class/import_base.carbon @@ -157,17 +157,17 @@ fn Run() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.9ba: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0b2: type = fn_type @Convert.2, @ImplicitAs.impl.c81(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0b2: type = fn_type @Convert.1, @ImplicitAs.impl.c81(%To) [symbolic] // CHECK:STDOUT: %Convert.6d7: %Convert.type.0b2 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.e34: = impl_witness imports.%ImplicitAs.impl_witness_table.e36, @ImplicitAs.impl.c81(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @ImplicitAs.impl.c81(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.1, @ImplicitAs.impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e34) [concrete] // CHECK:STDOUT: %.d6a: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.9aa: = bound_method %int_0.5c6, %Convert.16d [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8aa: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.263: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Convert.bound.43e: = bound_method %int_1.5b8, %Convert.16d [concrete] @@ -183,10 +183,10 @@ fn Run() { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ea2: type = fn_type @Op.3, @Destroy.impl(%Child) [concrete] +// CHECK:STDOUT: %Op.type.ea2: type = fn_type @Op.1, @Destroy.impl(%Child) [concrete] // CHECK:STDOUT: %Op.c04: %Op.type.ea2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.dc0: type = ptr_type %Child [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.c04, @Op.3(%Child) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.c04, @Op.1(%Child) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -262,7 +262,7 @@ fn Run() { // CHECK:STDOUT: %.loc7_48.1: %struct_type.base.6c7 = struct_literal (%.loc7_47.1) // CHECK:STDOUT: %impl.elem0.loc7_47.1: %.d6a = impl_witness_access constants.%ImplicitAs.impl_witness.e34, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc7_47.1: = bound_method %int_0, %impl.elem0.loc7_47.1 [concrete = constants.%Convert.bound.9aa] -// CHECK:STDOUT: %specific_fn.loc7_47.1: = specific_function %impl.elem0.loc7_47.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc7_47.1: = specific_function %impl.elem0.loc7_47.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_47.2: = bound_method %int_0, %specific_fn.loc7_47.1 [concrete = constants.%bound_method.8aa] // CHECK:STDOUT: %int.convert_checked.loc7_47.1: init %i32 = call %bound_method.loc7_47.2(%int_0) [concrete = constants.%int_0.263] // CHECK:STDOUT: %.loc7_47.2: init %i32 = converted %int_0, %int.convert_checked.loc7_47.1 [concrete = constants.%int_0.263] @@ -271,7 +271,7 @@ fn Run() { // CHECK:STDOUT: %.loc7_47.4: init %i32 = initialize_from %.loc7_47.2 to %.loc7_47.3 [concrete = constants.%int_0.263] // CHECK:STDOUT: %impl.elem0.loc7_47.2: %.d6a = impl_witness_access constants.%ImplicitAs.impl_witness.e34, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc7_47.3: = bound_method %int_1, %impl.elem0.loc7_47.2 [concrete = constants.%Convert.bound.43e] -// CHECK:STDOUT: %specific_fn.loc7_47.2: = specific_function %impl.elem0.loc7_47.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc7_47.2: = specific_function %impl.elem0.loc7_47.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_47.4: = bound_method %int_1, %specific_fn.loc7_47.2 [concrete = constants.%bound_method.947] // CHECK:STDOUT: %int.convert_checked.loc7_47.2: init %i32 = call %bound_method.loc7_47.4(%int_1) [concrete = constants.%int_1.47b] // CHECK:STDOUT: %.loc7_47.5: init %i32 = converted %int_1, %int.convert_checked.loc7_47.2 [concrete = constants.%int_1.47b] @@ -292,7 +292,7 @@ fn Run() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc8: %.d6a = impl_witness_access constants.%ImplicitAs.impl_witness.e34, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc8_7.1: = bound_method %int_2, %impl.elem0.loc8 [concrete = constants.%Convert.bound.918] -// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_7.2: = bound_method %int_2, %specific_fn.loc8 [concrete = constants.%bound_method.c74] // CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %bound_method.loc8_7.2(%int_2) [concrete = constants.%int_2.d0d] // CHECK:STDOUT: %.loc8_7: init %i32 = converted %int_2, %int.convert_checked.loc8 [concrete = constants.%int_2.d0d] @@ -305,7 +305,7 @@ fn Run() { // CHECK:STDOUT: %.loc9_3.3: %Base = bind_value %.loc9_3.2 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.bound(%.loc9_3.3) // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.c04 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.c04, @Op.3(constants.%Child) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.c04, @Op.1(constants.%Child) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_3: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.dc0 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc7_3(%addr) diff --git a/toolchain/check/testdata/class/import_member_cycle.carbon b/toolchain/check/testdata/class/import_member_cycle.carbon index 98c30046ae25..5ca2babd960c 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -82,10 +82,10 @@ fn Run() { // CHECK:STDOUT: %complete_type.e4b: = complete_type_witness %struct_type.a [concrete] // CHECK:STDOUT: %pattern_type.d3d: type = pattern_type %ptr.257 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a45: type = fn_type @Op.2, @Destroy.impl(%ptr.257) [concrete] +// CHECK:STDOUT: %Op.type.a45: type = fn_type @Op.1, @Destroy.impl(%ptr.257) [concrete] // CHECK:STDOUT: %Op.109: %Op.type.a45 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d80: type = ptr_type %ptr.257 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.109, @Op.2(%ptr.257) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.109, @Op.1(%ptr.257) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -133,7 +133,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %ptr.257 = bind_name a, %a.var // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.109 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.109, @Op.2(constants.%ptr.257) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.109, @Op.1(constants.%ptr.257) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d80 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/class/inheritance_access.carbon b/toolchain/check/testdata/class/inheritance_access.carbon index 63678b0dd93a..2b0a1c1eb147 100644 --- a/toolchain/check/testdata/class/inheritance_access.carbon +++ b/toolchain/check/testdata/class/inheritance_access.carbon @@ -380,10 +380,10 @@ class B { // CHECK:STDOUT: %complete_type.98e: = complete_type_witness %struct_type.base.0ff [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -489,7 +489,7 @@ class B { // CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_45: %empty_tuple.type = converted %F.call, %tuple [concrete = constants.%empty_tuple] // CHECK:STDOUT: %Op.bound: = bound_method %.loc15_44.1, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc15_44.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %.loc15_44.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -509,17 +509,17 @@ class B { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %SomeProtectedFunction.type: type = fn_type @SomeProtectedFunction [concrete] @@ -571,7 +571,7 @@ class B { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_38.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_38.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc5_38.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc5_38.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_5.0f6] @@ -636,7 +636,7 @@ class B { // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc7_13.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc7_13.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_5.0f6] @@ -1025,17 +1025,17 @@ class B { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_5.0f6: %i32 = int_value 5 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -1089,7 +1089,7 @@ class B { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0.loc5: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_48.1: = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_48.2: = bound_method %int_5.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc5: init %i32 = call %bound_method.loc5_48.2(%int_5.loc5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc5_48.1: %i32 = value_of_initializer %int.convert_checked.loc5 [concrete = constants.%int_5.0f6] @@ -1105,7 +1105,7 @@ class B { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0.loc6: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_44.1: = bound_method %int_5.loc6, %impl.elem0.loc6 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_44.2: = bound_method %int_5.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %bound_method.loc6_44.2(%int_5.loc6) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc6_44.1: %i32 = value_of_initializer %int.convert_checked.loc6 [concrete = constants.%int_5.0f6] @@ -1132,7 +1132,7 @@ class B { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_42.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_42.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc10_42.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc10_42.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_5.0f6] diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index 1e2013804a06..941031b91618 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -42,17 +42,17 @@ fn F() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -60,10 +60,10 @@ fn F() -> i32 { // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.5d2, %int_2.ef8) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.3, @Destroy.impl(%Class) [concrete] +// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.1, @Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %Op.d64: %Op.type.7de = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.3(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.1(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -125,7 +125,7 @@ fn F() -> i32 { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %impl.elem0.loc21_26.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_26.1: = bound_method %int_1, %impl.elem0.loc21_26.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc21_26.1: = specific_function %impl.elem0.loc21_26.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc21_26.1: = specific_function %impl.elem0.loc21_26.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_26.2: = bound_method %int_1, %specific_fn.loc21_26.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc21_26.1: init %i32 = call %bound_method.loc21_26.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc21_26.2: init %i32 = converted %int_1, %int.convert_checked.loc21_26.1 [concrete = constants.%int_1.5d2] @@ -134,7 +134,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc21_26.5: init %i32 = initialize_from %.loc21_26.2 to %.loc21_26.4 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc21_26.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_26.3: = bound_method %int_2, %impl.elem0.loc21_26.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc21_26.2: = specific_function %impl.elem0.loc21_26.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc21_26.2: = specific_function %impl.elem0.loc21_26.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_26.4: = bound_method %int_2, %specific_fn.loc21_26.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc21_26.2: init %i32 = call %bound_method.loc21_26.4(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc21_26.6: init %i32 = converted %int_2, %int.convert_checked.loc21_26.2 [concrete = constants.%int_2.ef8] @@ -147,7 +147,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc21_37.1: ref %i32 = class_element_access %.loc21_28, element0 // CHECK:STDOUT: %.loc21_37.2: %i32 = bind_value %.loc21_37.1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc21_26.3, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.3(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc21_26.5: = bound_method %.loc21_26.3, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc21_26.3 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc21_26.5(%addr) diff --git a/toolchain/check/testdata/class/init_nested.carbon b/toolchain/check/testdata/class/init_nested.carbon index 4cbd13ee6419..68fa871e4e79 100644 --- a/toolchain/check/testdata/class/init_nested.carbon +++ b/toolchain/check/testdata/class/init_nested.carbon @@ -51,10 +51,10 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: %MakeOuter.type: type = fn_type @MakeOuter [concrete] // CHECK:STDOUT: %MakeOuter: %MakeOuter.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.e24: type = fn_type @Op.2, @Destroy.impl(%Inner) [concrete] +// CHECK:STDOUT: %Op.type.e24: type = fn_type @Op.1, @Destroy.impl(%Inner) [concrete] // CHECK:STDOUT: %Op.7b1: %Op.type.e24 = struct_value () [concrete] // CHECK:STDOUT: %ptr.78b: type = ptr_type %Inner [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.7b1, @Op.2(%Inner) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.7b1, @Op.1(%Inner) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -144,12 +144,12 @@ fn MakeOuter() -> Outer { // CHECK:STDOUT: %.loc28_45.4: init %Outer = class_init (%MakeInner.call.loc28_26, %MakeInner.call.loc28_44), %return // CHECK:STDOUT: %.loc28_46: init %Outer = converted %.loc28_45.3, %.loc28_45.4 // CHECK:STDOUT: %Op.bound.loc28_45.1: = bound_method %.loc28_45.2, constants.%Op.7b1 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.7b1, @Op.2(constants.%Inner) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.7b1, @Op.1(constants.%Inner) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc28_45.1: = bound_method %.loc28_45.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc28_45.1: %ptr.78b = addr_of %.loc28_45.2 // CHECK:STDOUT: %no_op.loc28_45.1: init %empty_tuple.type = call %bound_method.loc28_45.1(%addr.loc28_45.1) // CHECK:STDOUT: %Op.bound.loc28_45.2: = bound_method %.loc28_45.1, constants.%Op.7b1 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.7b1, @Op.2(constants.%Inner) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.7b1, @Op.1(constants.%Inner) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc28_45.2: = bound_method %.loc28_45.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc28_45.2: %ptr.78b = addr_of %.loc28_45.1 // CHECK:STDOUT: %no_op.loc28_45.2: init %empty_tuple.type = call %bound_method.loc28_45.2(%addr.loc28_45.2) diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index 7ff25e36caa4..afd628dfd9f2 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -53,25 +53,25 @@ class A { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %B.val: %B = struct_value (%int_1.5d2) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.96c: type = fn_type @Op.3, @Destroy.impl(%B) [concrete] +// CHECK:STDOUT: %Op.type.96c: type = fn_type @Op.1, @Destroy.impl(%B) [concrete] // CHECK:STDOUT: %Op.c53: %Op.type.96c = struct_value () [concrete] // CHECK:STDOUT: %ptr.bac: type = ptr_type %B [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.c53, @Op.3(%B) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.c53, @Op.1(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -151,7 +151,7 @@ class A { // CHECK:STDOUT: %.loc26_20.1: ref %i32 = class_element_access %.loc26_19.2, element0 // CHECK:STDOUT: %.loc26_20.2: %i32 = bind_value %.loc26_20.1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc26_19.1, constants.%Op.c53 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.c53, @Op.3(constants.%B) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.c53, @Op.1(constants.%B) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc26_19.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bac = addr_of %.loc26_19.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -168,7 +168,7 @@ class A { // CHECK:STDOUT: %.loc19_39.1: %struct_type.n.44a = struct_literal (%int_1) // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_39.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_39.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc19_39.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_39.2: init %i32 = converted %int_1, %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/class/method.carbon b/toolchain/check/testdata/class/method.carbon index c7b8fd66aaf4..23f206537c27 100644 --- a/toolchain/check/testdata/class/method.carbon +++ b/toolchain/check/testdata/class/method.carbon @@ -94,24 +94,24 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Class.val: %Class = struct_value (%int_1.5d2) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.3, @Destroy.impl(%Class) [concrete] +// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.1, @Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %Op.d64: %Op.type.7de = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.3(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.1(%Class) [concrete] // CHECK:STDOUT: %CallWithAddr.type: type = fn_type @CallWithAddr [concrete] // CHECK:STDOUT: %CallWithAddr: %CallWithAddr.type = struct_value () [concrete] // CHECK:STDOUT: %CallFThroughPointer.type: type = fn_type @CallFThroughPointer [concrete] @@ -369,7 +369,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc39_18.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc39_18.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc39_18.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc39_18.2: init %i32 = converted %int_1, %int.convert_checked [concrete = constants.%int_1.5d2] @@ -386,7 +386,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %.loc39_33.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc39_33.2: %i32 = converted %F.call, %.loc39_33.1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc39_18.3, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.3(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc39_18.3: = bound_method %.loc39_18.3, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc39_18.3 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc39_18.3(%addr) @@ -410,7 +410,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %.loc44_15.1: %i32 = value_of_initializer %G.call // CHECK:STDOUT: %.loc44_15.2: %i32 = converted %G.call, %.loc44_15.1 // CHECK:STDOUT: %Op.bound: = bound_method %c.var, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.3(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %c.var, %Op.specific_fn // CHECK:STDOUT: %addr.loc43: %ptr.e71 = addr_of %c.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr.loc43) @@ -458,7 +458,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %.loc58_20.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc58_20.2: %i32 = converted %F.call, %.loc58_20.1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc58_15.1, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.3(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc58_15.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc58_15.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -478,7 +478,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %.loc62_20.1: %i32 = value_of_initializer %G.call // CHECK:STDOUT: %.loc62_20.2: %i32 = converted %G.call, %.loc62_20.1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc62_15.1, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.3(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc62_15.1, %Op.specific_fn // CHECK:STDOUT: %addr.loc62_15.2: %ptr.e71 = addr_of %.loc62_15.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr.loc62_15.2) diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index 3ea3a7f77cbf..8e39e3f8416e 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -78,14 +78,14 @@ fn F(a: Outer*) { // CHECK:STDOUT: %pattern_type.e74: type = pattern_type %Outer [concrete] // CHECK:STDOUT: %pattern_type.906: type = pattern_type %Inner [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.9bc: type = fn_type @Op.2, @Destroy.impl(%Inner) [concrete] +// CHECK:STDOUT: %Op.type.9bc: type = fn_type @Op.1, @Destroy.impl(%Inner) [concrete] // CHECK:STDOUT: %Op.754: %Op.type.9bc = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.27f: type = pattern_type %ptr.36a [concrete] -// CHECK:STDOUT: %Op.specific_fn.72f: = specific_function %Op.754, @Op.2(%Inner) [concrete] -// CHECK:STDOUT: %Op.type.50c: type = fn_type @Op.2, @Destroy.impl(%Outer) [concrete] +// CHECK:STDOUT: %Op.specific_fn.72f: = specific_function %Op.754, @Op.1(%Inner) [concrete] +// CHECK:STDOUT: %Op.type.50c: type = fn_type @Op.1, @Destroy.impl(%Outer) [concrete] // CHECK:STDOUT: %Op.8d4: %Op.type.50c = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.95c: type = pattern_type %ptr.5df [concrete] -// CHECK:STDOUT: %Op.specific_fn.2a1: = specific_function %Op.8d4, @Op.2(%Outer) [concrete] +// CHECK:STDOUT: %Op.specific_fn.2a1: = specific_function %Op.8d4, @Op.1(%Outer) [concrete] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.loc45 [concrete] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] // CHECK:STDOUT: } @@ -190,12 +190,12 @@ fn F(a: Outer*) { // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %Op.bound.loc19: = bound_method %i.var, constants.%Op.754 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.754, @Op.2(constants.%Inner) [concrete = constants.%Op.specific_fn.72f] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.754, @Op.1(constants.%Inner) [concrete = constants.%Op.specific_fn.72f] // CHECK:STDOUT: %bound_method.loc19: = bound_method %i.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc19: %ptr.36a = addr_of %i.var // CHECK:STDOUT: %no_op.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: %Op.bound.loc18: = bound_method %o.var, constants.%Op.8d4 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8d4, @Op.2(constants.%Outer) [concrete = constants.%Op.specific_fn.2a1] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8d4, @Op.1(constants.%Outer) [concrete = constants.%Op.specific_fn.2a1] // CHECK:STDOUT: %bound_method.loc18: = bound_method %o.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18: %ptr.5df = addr_of %o.var // CHECK:STDOUT: %no_op.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) @@ -219,12 +219,12 @@ fn F(a: Outer*) { // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %Op.bound.loc30: = bound_method %i.var, constants.%Op.754 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.754, @Op.2(constants.%Inner) [concrete = constants.%Op.specific_fn.72f] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.754, @Op.1(constants.%Inner) [concrete = constants.%Op.specific_fn.72f] // CHECK:STDOUT: %bound_method.loc30: = bound_method %i.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc30: %ptr.36a = addr_of %i.var // CHECK:STDOUT: %no_op.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) // CHECK:STDOUT: %Op.bound.loc29: = bound_method %o.var, constants.%Op.8d4 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8d4, @Op.2(constants.%Outer) [concrete = constants.%Op.specific_fn.2a1] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8d4, @Op.1(constants.%Outer) [concrete = constants.%Op.specific_fn.2a1] // CHECK:STDOUT: %bound_method.loc29: = bound_method %o.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc29: %ptr.5df = addr_of %o.var // CHECK:STDOUT: %no_op.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29) @@ -248,12 +248,12 @@ fn F(a: Outer*) { // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, @Outer.%Inner.decl [concrete = constants.%Inner] // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %Op.bound.loc37: = bound_method %i.var, constants.%Op.754 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.754, @Op.2(constants.%Inner) [concrete = constants.%Op.specific_fn.72f] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.754, @Op.1(constants.%Inner) [concrete = constants.%Op.specific_fn.72f] // CHECK:STDOUT: %bound_method.loc37: = bound_method %i.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc37: %ptr.36a = addr_of %i.var // CHECK:STDOUT: %no_op.loc37: init %empty_tuple.type = call %bound_method.loc37(%addr.loc37) // CHECK:STDOUT: %Op.bound.loc36: = bound_method %o.var, constants.%Op.8d4 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8d4, @Op.2(constants.%Outer) [concrete = constants.%Op.specific_fn.2a1] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8d4, @Op.1(constants.%Outer) [concrete = constants.%Op.specific_fn.2a1] // CHECK:STDOUT: %bound_method.loc36: = bound_method %o.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc36: %ptr.5df = addr_of %o.var // CHECK:STDOUT: %no_op.loc36: init %empty_tuple.type = call %bound_method.loc36(%addr.loc36) diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index b91b7cad6f38..6693545470bd 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -49,10 +49,10 @@ fn G(o: Outer) { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.9bc: type = fn_type @Op.2, @Destroy.impl(%Inner) [concrete] +// CHECK:STDOUT: %Op.type.9bc: type = fn_type @Op.1, @Destroy.impl(%Inner) [concrete] // CHECK:STDOUT: %Op.754: %Op.type.9bc = struct_value () [concrete] // CHECK:STDOUT: %ptr.36a: type = ptr_type %Inner [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.754, @Op.2(%Inner) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.754, @Op.1(%Inner) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -148,7 +148,7 @@ fn G(o: Outer) { // CHECK:STDOUT: } // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %Op.bound: = bound_method %i.var, constants.%Op.754 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.754, @Op.2(constants.%Inner) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.754, @Op.1(constants.%Inner) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %i.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.36a = addr_of %i.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/class/raw_self_type.carbon b/toolchain/check/testdata/class/raw_self_type.carbon index b4a4b652317a..d5600f74191f 100644 --- a/toolchain/check/testdata/class/raw_self_type.carbon +++ b/toolchain/check/testdata/class/raw_self_type.carbon @@ -39,10 +39,10 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] // CHECK:STDOUT: %pattern_type.796: type = pattern_type %ptr.e71 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.faa: type = fn_type @Op.2, @Destroy.impl(%ptr.e71) [concrete] +// CHECK:STDOUT: %Op.type.faa: type = fn_type @Op.1, @Destroy.impl(%ptr.e71) [concrete] // CHECK:STDOUT: %Op.5a3: %Op.type.faa = struct_value () [concrete] // CHECK:STDOUT: %ptr.0dd: type = ptr_type %ptr.e71 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5a3, @Op.2(%ptr.e71) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5a3, @Op.1(%ptr.e71) [concrete] // CHECK:STDOUT: %MemberNamedSelf: type = class_type @MemberNamedSelf [concrete] // CHECK:STDOUT: %Self.362: type = class_type @Self [concrete] // CHECK:STDOUT: %pattern_type.356: type = pattern_type %MemberNamedSelf [concrete] @@ -155,12 +155,12 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: } // CHECK:STDOUT: %p: ref %ptr.e71 = bind_name p, %p.var // CHECK:STDOUT: %Op.bound.loc18: = bound_method %p.var, constants.%Op.5a3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5a3, @Op.2(constants.%ptr.e71) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5a3, @Op.1(constants.%ptr.e71) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18: = bound_method %p.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18: %ptr.0dd = addr_of %p.var // CHECK:STDOUT: %no_op.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) // CHECK:STDOUT: %Op.bound.loc17: = bound_method %Self.var, constants.%Op.5a3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5a3, @Op.2(constants.%ptr.e71) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5a3, @Op.1(constants.%ptr.e71) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17: = bound_method %Self.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.0dd = addr_of %Self.var // CHECK:STDOUT: %no_op.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) diff --git a/toolchain/check/testdata/class/reorder.carbon b/toolchain/check/testdata/class/reorder.carbon index f3ce76df343c..5fcb822fc818 100644 --- a/toolchain/check/testdata/class/reorder.carbon +++ b/toolchain/check/testdata/class/reorder.carbon @@ -41,17 +41,17 @@ class Class { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -123,7 +123,7 @@ class Class { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc21_13.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc21_13.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index 7d17d1a0615e..ae1f49007177 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -90,17 +90,17 @@ class A { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %A.val: %A = struct_value (%int_1.5d2) [concrete] @@ -126,22 +126,22 @@ class A { // CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %D.val: %D = struct_value (%int_4.940) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7e3: type = fn_type @Op.3, @Destroy.impl(%D) [concrete] +// CHECK:STDOUT: %Op.type.7e3: type = fn_type @Op.1, @Destroy.impl(%D) [concrete] // CHECK:STDOUT: %Op.47c: %Op.type.7e3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.321: type = ptr_type %D [concrete] -// CHECK:STDOUT: %Op.specific_fn.ceb: = specific_function %Op.47c, @Op.3(%D) [concrete] -// CHECK:STDOUT: %Op.type.2eb: type = fn_type @Op.3, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn.ceb: = specific_function %Op.47c, @Op.1(%D) [concrete] +// CHECK:STDOUT: %Op.type.2eb: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.f77: %Op.type.2eb = struct_value () [concrete] // CHECK:STDOUT: %ptr.388: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.c65: = specific_function %Op.f77, @Op.3(%C) [concrete] -// CHECK:STDOUT: %Op.type.266: type = fn_type @Op.3, @Destroy.impl(%B) [concrete] +// CHECK:STDOUT: %Op.specific_fn.c65: = specific_function %Op.f77, @Op.1(%C) [concrete] +// CHECK:STDOUT: %Op.type.266: type = fn_type @Op.1, @Destroy.impl(%B) [concrete] // CHECK:STDOUT: %Op.4a4: %Op.type.266 = struct_value () [concrete] // CHECK:STDOUT: %ptr.01b: type = ptr_type %B [concrete] -// CHECK:STDOUT: %Op.specific_fn.70c: = specific_function %Op.4a4, @Op.3(%B) [concrete] -// CHECK:STDOUT: %Op.type.b96: type = fn_type @Op.3, @Destroy.impl(%A) [concrete] +// CHECK:STDOUT: %Op.specific_fn.70c: = specific_function %Op.4a4, @Op.1(%B) [concrete] +// CHECK:STDOUT: %Op.type.b96: type = fn_type @Op.1, @Destroy.impl(%A) [concrete] // CHECK:STDOUT: %Op.885: %Op.type.b96 = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] -// CHECK:STDOUT: %Op.specific_fn.716: = specific_function %Op.885, @Op.3(%A) [concrete] +// CHECK:STDOUT: %Op.specific_fn.716: = specific_function %Op.885, @Op.1(%A) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -269,7 +269,7 @@ class A { // CHECK:STDOUT: %.loc33_25.1: %struct_type.a.a6c = struct_literal (%int_1) // CHECK:STDOUT: %impl.elem0.loc33: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc33_25.1: = bound_method %int_1, %impl.elem0.loc33 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc33_25.2: = bound_method %int_1, %specific_fn.loc33 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc33: init %i32 = call %bound_method.loc33_25.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc33_25.2: init %i32 = converted %int_1, %int.convert_checked.loc33 [concrete = constants.%int_1.5d2] @@ -289,7 +289,7 @@ class A { // CHECK:STDOUT: %.loc34_25.1: %struct_type.b.a15 = struct_literal (%int_2) // CHECK:STDOUT: %impl.elem0.loc34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc34_25.1: = bound_method %int_2, %impl.elem0.loc34 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc34: = specific_function %impl.elem0.loc34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc34: = specific_function %impl.elem0.loc34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc34_25.2: = bound_method %int_2, %specific_fn.loc34 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc34: init %i32 = call %bound_method.loc34_25.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc34_25.2: init %i32 = converted %int_2, %int.convert_checked.loc34 [concrete = constants.%int_2.ef8] @@ -309,7 +309,7 @@ class A { // CHECK:STDOUT: %.loc35_25.1: %struct_type.c.5b8 = struct_literal (%int_3) // CHECK:STDOUT: %impl.elem0.loc35: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc35_25.1: = bound_method %int_3, %impl.elem0.loc35 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc35_25.2: = bound_method %int_3, %specific_fn.loc35 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc35: init %i32 = call %bound_method.loc35_25.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc35_25.2: init %i32 = converted %int_3, %int.convert_checked.loc35 [concrete = constants.%int_3.822] @@ -329,7 +329,7 @@ class A { // CHECK:STDOUT: %.loc36_25.1: %struct_type.d.3ea = struct_literal (%int_4) // CHECK:STDOUT: %impl.elem0.loc36: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc36_25.1: = bound_method %int_4, %impl.elem0.loc36 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc36: = specific_function %impl.elem0.loc36, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc36: = specific_function %impl.elem0.loc36, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc36_25.2: = bound_method %int_4, %specific_fn.loc36 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc36: init %i32 = call %bound_method.loc36_25.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc36_25.2: init %i32 = converted %int_4, %int.convert_checked.loc36 [concrete = constants.%int_4.940] @@ -349,22 +349,22 @@ class A { // CHECK:STDOUT: %DF.ref: %DF.type = name_ref DF, @D.%DF.decl [concrete = constants.%DF] // CHECK:STDOUT: %DF.call: init %empty_tuple.type = call %DF.ref() // CHECK:STDOUT: %Op.bound.loc36: = bound_method %d.var, constants.%Op.47c -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.47c, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn.ceb] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.47c, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.ceb] // CHECK:STDOUT: %bound_method.loc36_7: = bound_method %d.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc36: %ptr.321 = addr_of %d.var // CHECK:STDOUT: %no_op.loc36: init %empty_tuple.type = call %bound_method.loc36_7(%addr.loc36) // CHECK:STDOUT: %Op.bound.loc35: = bound_method %c.var, constants.%Op.f77 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f77, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn.c65] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f77, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn.c65] // CHECK:STDOUT: %bound_method.loc35_7: = bound_method %c.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc35: %ptr.388 = addr_of %c.var // CHECK:STDOUT: %no_op.loc35: init %empty_tuple.type = call %bound_method.loc35_7(%addr.loc35) // CHECK:STDOUT: %Op.bound.loc34: = bound_method %b.var, constants.%Op.4a4 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.4a4, @Op.3(constants.%B) [concrete = constants.%Op.specific_fn.70c] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.4a4, @Op.1(constants.%B) [concrete = constants.%Op.specific_fn.70c] // CHECK:STDOUT: %bound_method.loc34_7: = bound_method %b.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc34: %ptr.01b = addr_of %b.var // CHECK:STDOUT: %no_op.loc34: init %empty_tuple.type = call %bound_method.loc34_7(%addr.loc34) // CHECK:STDOUT: %Op.bound.loc33: = bound_method %a.var, constants.%Op.885 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.885, @Op.3(constants.%A) [concrete = constants.%Op.specific_fn.716] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.885, @Op.1(constants.%A) [concrete = constants.%Op.specific_fn.716] // CHECK:STDOUT: %bound_method.loc33_7: = bound_method %a.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc33: %ptr.6db = addr_of %a.var // CHECK:STDOUT: %no_op.loc33: init %empty_tuple.type = call %bound_method.loc33_7(%addr.loc33) diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index 7b5061735828..7546258e5310 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -51,17 +51,17 @@ fn Run() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.loc25 [concrete] @@ -73,10 +73,10 @@ fn Run() { // CHECK:STDOUT: %Run.type: type = fn_type @Run [concrete] // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.2(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -149,7 +149,7 @@ fn Run() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc17_13.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_13.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -171,7 +171,7 @@ fn Run() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_11.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_11.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc26_11.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc26_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] @@ -209,12 +209,12 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %Op.bound.loc31: = bound_method %b.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc31: = bound_method %b.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc31: %ptr.235 = addr_of %b.var // CHECK:STDOUT: %no_op.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) // CHECK:STDOUT: %Op.bound.loc30: = bound_method %a.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc30: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.235 = addr_of %a.var // CHECK:STDOUT: %no_op.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) diff --git a/toolchain/check/testdata/class/self_conversion.carbon b/toolchain/check/testdata/class/self_conversion.carbon index 65736410f24a..9318023e2455 100644 --- a/toolchain/check/testdata/class/self_conversion.carbon +++ b/toolchain/check/testdata/class/self_conversion.carbon @@ -65,17 +65,17 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %ptr.404: type = ptr_type %Derived [concrete] @@ -226,7 +226,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc31_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc31_13.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc31_13: init %i32 = converted %int_1, %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/class/static_method.carbon b/toolchain/check/testdata/class/static_method.carbon index 7622eaf37c2e..547395207edb 100644 --- a/toolchain/check/testdata/class/static_method.carbon +++ b/toolchain/check/testdata/class/static_method.carbon @@ -39,10 +39,10 @@ fn Run() -> i32 { // CHECK:STDOUT: %Run: %Run.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.761: type = pattern_type %Class [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.2, @Destroy.impl(%Class) [concrete] +// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.1, @Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %Op.d64: %Op.type.7de = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.2(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.1(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -113,7 +113,7 @@ fn Run() -> i32 { // CHECK:STDOUT: %.loc21_15.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc21_15.2: %i32 = converted %F.call, %.loc21_15.1 // CHECK:STDOUT: %Op.bound: = bound_method %c.var, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.2(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %c.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %c.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/class/syntactic_merge.carbon b/toolchain/check/testdata/class/syntactic_merge.carbon index e36fc10f1fe8..2c0560ccb925 100644 --- a/toolchain/check/testdata/class/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/syntactic_merge.carbon @@ -214,25 +214,25 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc8: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc10: %Bar.type = class_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc10_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc10_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc11: %Bar.type = class_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc11: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc11: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -245,8 +245,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Foo(%a.loc7_11.2: %C) { +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -260,8 +260,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Bar(%a.loc10_11.2: %C) { +// CHECK:STDOUT: %a.loc10_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -276,11 +276,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc7_11.2 => constants.%a +// CHECK:STDOUT: %a.loc7_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.loc10_11.2 => constants.%a +// CHECK:STDOUT: %a.loc10_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- spacing.carbon @@ -306,13 +306,13 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_17.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_17.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_17.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_17.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_17.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_17.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -325,8 +325,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Foo(%a.loc6_17.2: %C) { +// CHECK:STDOUT: %a.loc6_17.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_17.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -341,7 +341,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc6_17.2 => constants.%a +// CHECK:STDOUT: %a.loc6_17.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_parens.carbon @@ -369,13 +369,13 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.39e446.2 = class_decl @Foo.loc14 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc14_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc14_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -388,14 +388,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc6(%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: generic class @Foo.loc6(%a.loc6_11.2: %C) { +// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc14(%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: generic class @Foo.loc14(%a.loc14_11.2: %C) { +// CHECK:STDOUT: %a.loc14_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -410,11 +410,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc6(constants.%a) { -// CHECK:STDOUT: %a.loc6_11.2 => constants.%a +// CHECK:STDOUT: %a.loc6_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc14(constants.%a) { -// CHECK:STDOUT: %a.loc14_11.2 => constants.%a +// CHECK:STDOUT: %a.loc14_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_raw_identifier.carbon @@ -440,13 +440,13 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = class_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -459,8 +459,8 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Foo(%a.loc6_11.2: %C) { +// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -475,7 +475,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc6_11.2 => constants.%a +// CHECK:STDOUT: %a.loc6_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- two_file.carbon @@ -506,13 +506,13 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = class_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc8_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc8_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -525,24 +525,24 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Foo(%a.loc7_11.2: %C) { +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Bar(%a.loc8_11.2: %C) { +// CHECK:STDOUT: %a.loc8_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc7_11.2 => constants.%a +// CHECK:STDOUT: %a.loc7_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.loc8_11.2 => constants.%a +// CHECK:STDOUT: %a.loc8_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- two_file.impl.carbon @@ -667,13 +667,13 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.39e446.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %b.patt: %pattern_type = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %b.loc15_11.1: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_11.2 (constants.%b)] +// CHECK:STDOUT: %b.loc15_11.2: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_11.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -686,14 +686,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc7(%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: generic class @Foo.loc7(%a.loc7_11.2: %C) { +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc15(%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: generic class @Foo.loc15(%b.loc15_11.2: %C) { +// CHECK:STDOUT: %b.loc15_11.1: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_11.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -708,11 +708,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc7(constants.%a) { -// CHECK:STDOUT: %a.loc7_11.2 => constants.%a +// CHECK:STDOUT: %a.loc7_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc15(constants.%b) { -// CHECK:STDOUT: %b.loc15_11.2 => constants.%b +// CHECK:STDOUT: %b.loc15_11.1 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias.carbon @@ -743,13 +743,13 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.39e446.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc15_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc15_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -762,14 +762,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc7(%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: generic class @Foo.loc7(%a.loc7_11.2: %C) { +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc15(%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: generic class @Foo.loc15(%a.loc15_11.2: %C) { +// CHECK:STDOUT: %a.loc15_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -784,11 +784,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc7(constants.%a) { -// CHECK:STDOUT: %a.loc7_11.2 => constants.%a +// CHECK:STDOUT: %a.loc7_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc15(constants.%a) { -// CHECK:STDOUT: %a.loc15_11.2 => constants.%a +// CHECK:STDOUT: %a.loc15_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduced_alias.carbon @@ -819,13 +819,13 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.39e446.2 = class_decl @Foo.loc15 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc15_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc15_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -838,14 +838,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc7(%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: generic class @Foo.loc7(%a.loc7_11.2: %C) { +// CHECK:STDOUT: %a.loc7_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc15(%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: generic class @Foo.loc15(%a.loc15_11.2: %C) { +// CHECK:STDOUT: %a.loc15_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -860,11 +860,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc7(constants.%a) { -// CHECK:STDOUT: %a.loc7_11.2 => constants.%a +// CHECK:STDOUT: %a.loc7_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc15(constants.%a) { -// CHECK:STDOUT: %a.loc15_11.2 => constants.%a +// CHECK:STDOUT: %a.loc15_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- alias_two_file.carbon @@ -889,7 +889,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -902,14 +902,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Foo(%a.loc6_11.2: %C) { +// CHECK:STDOUT: %a.loc6_11.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc6_11.2 => constants.%a +// CHECK:STDOUT: %a.loc6_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_alias_two_file.impl.carbon @@ -1005,7 +1005,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const: type = const_type %C.ref [concrete = constants.%const] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc6_11.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_11.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.39e446.2 = class_decl @Foo.loc18 [concrete = constants.%Foo.generic.80461b.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] @@ -1015,7 +1015,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %const.loc18_22: type = const_type %C.ref [concrete = constants.%const] // CHECK:STDOUT: %const.loc18_15: type = const_type %const.loc18_22 [concrete = constants.%const] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc18_11.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_11.2 (constants.%a)] +// CHECK:STDOUT: %a.loc18_11.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_11.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1028,14 +1028,14 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc6(%a.loc6_11.1: %const) { -// CHECK:STDOUT: %a.loc6_11.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.2 (constants.%a)] +// CHECK:STDOUT: generic class @Foo.loc6(%a.loc6_11.2: %const) { +// CHECK:STDOUT: %a.loc6_11.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Foo.loc18(%a.loc18_11.1: %const) { -// CHECK:STDOUT: %a.loc18_11.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_11.2 (constants.%a)] +// CHECK:STDOUT: generic class @Foo.loc18(%a.loc18_11.2: %const) { +// CHECK:STDOUT: %a.loc18_11.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_11.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1050,11 +1050,11 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc6(constants.%a) { -// CHECK:STDOUT: %a.loc6_11.2 => constants.%a +// CHECK:STDOUT: %a.loc6_11.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc18(constants.%a) { -// CHECK:STDOUT: %a.loc18_11.2 => constants.%a +// CHECK:STDOUT: %a.loc18_11.1 => 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 565ca5a19157..d2e1e821faf4 100644 --- a/toolchain/check/testdata/class/syntactic_merge_literal.carbon +++ b/toolchain/check/testdata/class/syntactic_merge_literal.carbon @@ -101,7 +101,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc4_9.1: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.2 (constants.%a)] +// CHECK:STDOUT: %a.loc4_9.2: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc5: %D.type = class_decl @D [concrete = constants.%D.generic] { // CHECK:STDOUT: %b.patt: %pattern_type.dfb = symbolic_binding_pattern b, 0 [concrete] @@ -118,7 +118,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc5_20.3: %i32 = converted %int_1000.loc5, %.loc5_20.2 [concrete = constants.%int_1000.1b6] // CHECK:STDOUT: %C.loc5: type = class_type @C, @C(constants.%int_1000.1b6) [concrete = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc5_9.1: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: %b.loc5_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc6: %D.type = class_decl @D [concrete = constants.%D.generic] { // CHECK:STDOUT: %b.patt: %pattern_type.dfb = symbolic_binding_pattern b, 0 [concrete] @@ -135,12 +135,12 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc6_20.3: %i32 = converted %int_1000.loc6, %.loc6_20.2 [concrete = constants.%int_1000.1b6] // CHECK:STDOUT: %C.loc6: type = class_type @C, @C(constants.%int_1000.1b6) [concrete = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc6: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: %b.loc6: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%a.loc4_9.1: %i32) { -// CHECK:STDOUT: %a.loc4_9.2: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.2 (constants.%a)] +// CHECK:STDOUT: generic class @C(%a.loc4_9.2: %i32) { +// CHECK:STDOUT: %a.loc4_9.1: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -154,8 +154,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%b.loc5_9.1: %C.262) { -// CHECK:STDOUT: %b.loc5_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: generic class @D(%b.loc5_9.2: %C.262) { +// CHECK:STDOUT: %b.loc5_9.1: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -170,15 +170,15 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%a) { -// CHECK:STDOUT: %a.loc4_9.2 => constants.%a +// CHECK:STDOUT: %a.loc4_9.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_1000.1b6) { -// CHECK:STDOUT: %a.loc4_9.2 => constants.%int_1000.1b6 +// CHECK:STDOUT: %a.loc4_9.1 => constants.%int_1000.1b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%b) { -// CHECK:STDOUT: %b.loc5_9.2 => constants.%b +// CHECK:STDOUT: %b.loc5_9.1 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_int_mismatch.carbon @@ -249,7 +249,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc4_9.1: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.2 (constants.%a)] +// CHECK:STDOUT: %a.loc4_9.2: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc5: %D.type.bbd080.1 = class_decl @D.loc5 [concrete = constants.%D.generic.4e2319.1] { // CHECK:STDOUT: %b.patt: %pattern_type.dfb = symbolic_binding_pattern b, 0 [concrete] @@ -266,7 +266,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc5_19.3: %i32 = converted %int_1000, %.loc5_19.2 [concrete = constants.%int_1000.1b6] // CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.1b6) [concrete = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc5_9.1: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: %b.loc5_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl.loc13: %D.type.bbd080.2 = class_decl @D.loc13 [concrete = constants.%D.generic.4e2319.2] { // CHECK:STDOUT: %b.patt: %pattern_type.dfb = symbolic_binding_pattern b, 0 [concrete] @@ -283,12 +283,12 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc13_20.3: %i32 = converted %int_1000, %.loc13_20.2 [concrete = constants.%int_1000.1b6] // CHECK:STDOUT: %C: type = class_type @C, @C(constants.%int_1000.1b6) [concrete = constants.%C.262] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc13_9.1: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc13_9.2 (constants.%b)] +// CHECK:STDOUT: %b.loc13_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc13_9.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%a.loc4_9.1: %i32) { -// CHECK:STDOUT: %a.loc4_9.2: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.2 (constants.%a)] +// CHECK:STDOUT: generic class @C(%a.loc4_9.2: %i32) { +// CHECK:STDOUT: %a.loc4_9.1: %i32 = bind_symbolic_name a, 0 [symbolic = %a.loc4_9.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -302,14 +302,14 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D.loc5(%b.loc5_9.1: %C.262) { -// CHECK:STDOUT: %b.loc5_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.2 (constants.%b)] +// CHECK:STDOUT: generic class @D.loc5(%b.loc5_9.2: %C.262) { +// CHECK:STDOUT: %b.loc5_9.1: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc5_9.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D.loc13(%b.loc13_9.1: %C.262) { -// CHECK:STDOUT: %b.loc13_9.2: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc13_9.2 (constants.%b)] +// CHECK:STDOUT: generic class @D.loc13(%b.loc13_9.2: %C.262) { +// CHECK:STDOUT: %b.loc13_9.1: %C.262 = bind_symbolic_name b, 0 [symbolic = %b.loc13_9.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -324,18 +324,18 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%a) { -// CHECK:STDOUT: %a.loc4_9.2 => constants.%a +// CHECK:STDOUT: %a.loc4_9.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_1000.1b6) { -// CHECK:STDOUT: %a.loc4_9.2 => constants.%int_1000.1b6 +// CHECK:STDOUT: %a.loc4_9.1 => constants.%int_1000.1b6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.loc5(constants.%b) { -// CHECK:STDOUT: %b.loc5_9.2 => constants.%b +// CHECK:STDOUT: %b.loc5_9.1 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D.loc13(constants.%b) { -// CHECK:STDOUT: %b.loc13_9.2 => constants.%b +// CHECK:STDOUT: %b.loc13_9.1 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index db3e6cc79c66..fc2b1bc14d29 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -617,10 +617,10 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.val: %Base = struct_value (%Derived.vtable_ptr) [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Base.val) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.102: type = fn_type @Op.2, @Destroy.impl(%Derived) [concrete] +// CHECK:STDOUT: %Op.type.102: type = fn_type @Op.1, @Destroy.impl(%Derived) [concrete] // CHECK:STDOUT: %Op.539: %Op.type.102 = struct_value () [concrete] // CHECK:STDOUT: %ptr.404: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.539, @Op.2(%Derived) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.539, @Op.1(%Derived) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -721,7 +721,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, file.%Derived.decl [concrete = constants.%Derived] // CHECK:STDOUT: %d: ref %Derived = bind_name d, %d.var // CHECK:STDOUT: %Op.bound: = bound_method %d.var, constants.%Op.539 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.539, @Op.2(constants.%Derived) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.539, @Op.1(constants.%Derived) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %d.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.404 = addr_of %d.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -840,10 +840,10 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.vtable_ptr: ref %ptr.454 = vtable_ptr @Base.vtable [concrete] // CHECK:STDOUT: %Base.val: %Base = struct_value (%Base.vtable_ptr) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.47e: type = fn_type @Op.2, @Destroy.impl(%Base) [concrete] +// CHECK:STDOUT: %Op.type.47e: type = fn_type @Op.1, @Destroy.impl(%Base) [concrete] // CHECK:STDOUT: %Op.033: %Op.type.47e = struct_value () [concrete] // CHECK:STDOUT: %ptr.f03: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.033, @Op.2(%Base) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.033, @Op.1(%Base) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -907,7 +907,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %Base = bind_name v, %v.var // CHECK:STDOUT: %Op.bound: = bound_method %v.var, constants.%Op.033 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.033, @Op.2(constants.%Base) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.033, @Op.1(constants.%Base) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %v.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f03 = addr_of %v.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1052,18 +1052,18 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %B2.val.426: %B2 = struct_value (%B1.val.b9d) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value (%B2.val.426) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.2(%C) [concrete] -// CHECK:STDOUT: %Op.type.49c: type = fn_type @Op.2, @Destroy.impl(%B2) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.1(%C) [concrete] +// CHECK:STDOUT: %Op.type.49c: type = fn_type @Op.1, @Destroy.impl(%B2) [concrete] // CHECK:STDOUT: %Op.bb0: %Op.type.49c = struct_value () [concrete] // CHECK:STDOUT: %ptr.afe: type = ptr_type %B2 [concrete] -// CHECK:STDOUT: %Op.specific_fn.a6f: = specific_function %Op.bb0, @Op.2(%B2) [concrete] -// CHECK:STDOUT: %Op.type.5ba: type = fn_type @Op.2, @Destroy.impl(%B1) [concrete] +// CHECK:STDOUT: %Op.specific_fn.a6f: = specific_function %Op.bb0, @Op.1(%B2) [concrete] +// CHECK:STDOUT: %Op.type.5ba: type = fn_type @Op.1, @Destroy.impl(%B1) [concrete] // CHECK:STDOUT: %Op.a5c: %Op.type.5ba = struct_value () [concrete] // CHECK:STDOUT: %ptr.890: type = ptr_type %B1 [concrete] -// CHECK:STDOUT: %Op.specific_fn.075: = specific_function %Op.a5c, @Op.2(%B1) [concrete] +// CHECK:STDOUT: %Op.specific_fn.075: = specific_function %Op.a5c, @Op.1(%B1) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1232,17 +1232,17 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %Op.bound.loc21: = bound_method %c.var, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc21: %ptr.019 = addr_of %c.var // CHECK:STDOUT: %no_op.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: %Op.bound.loc20: = bound_method %b2.var, constants.%Op.bb0 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.bb0, @Op.2(constants.%B2) [concrete = constants.%Op.specific_fn.a6f] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.bb0, @Op.1(constants.%B2) [concrete = constants.%Op.specific_fn.a6f] // CHECK:STDOUT: %bound_method.loc20: = bound_method %b2.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20: %ptr.afe = addr_of %b2.var // CHECK:STDOUT: %no_op.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) // CHECK:STDOUT: %Op.bound.loc19: = bound_method %b1.var, constants.%Op.a5c -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.a5c, @Op.2(constants.%B1) [concrete = constants.%Op.specific_fn.075] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.a5c, @Op.1(constants.%B1) [concrete = constants.%Op.specific_fn.075] // CHECK:STDOUT: %bound_method.loc19: = bound_method %b1.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc19: %ptr.890 = addr_of %b1.var // CHECK:STDOUT: %no_op.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) @@ -1320,17 +1320,17 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.m2.m1.68c: type = struct_type {.m2: %i32, .m1: %i32} [concrete] @@ -1345,14 +1345,14 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %bound_method.1da: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.193: type = fn_type @Op.3, @Destroy.impl(%Base) [concrete] +// CHECK:STDOUT: %Op.type.193: type = fn_type @Op.1, @Destroy.impl(%Base) [concrete] // CHECK:STDOUT: %Op.345: %Op.type.193 = struct_value () [concrete] // CHECK:STDOUT: %ptr.11f: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %Op.specific_fn.083: = specific_function %Op.345, @Op.3(%Base) [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.083: = specific_function %Op.345, @Op.1(%Base) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1425,7 +1425,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %int_3.loc12: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0.loc12: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_3.1: = bound_method %int_3.loc12, %impl.elem0.loc12 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_3.2: = bound_method %int_3.loc12, %specific_fn.loc12 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %bound_method.loc12_3.2(%int_3.loc12) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc12_3: init %i32 = converted %int_3.loc12, %int.convert_checked.loc12 [concrete = constants.%int_3.822] @@ -1468,7 +1468,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %.loc14_35.3: init %ptr.454 = initialize_from @Base.%vtable_ptr to %.loc14_35.2 [concrete = constants.%Base.vtable_ptr] // CHECK:STDOUT: %impl.elem0.loc14_35.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_35.1: = bound_method %int_5, %impl.elem0.loc14_35.1 [concrete = constants.%Convert.bound.4e6] -// CHECK:STDOUT: %specific_fn.loc14_35.1: = specific_function %impl.elem0.loc14_35.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc14_35.1: = specific_function %impl.elem0.loc14_35.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_35.2: = bound_method %int_5, %specific_fn.loc14_35.1 [concrete = constants.%bound_method.a25] // CHECK:STDOUT: %int.convert_checked.loc14_35.1: init %i32 = call %bound_method.loc14_35.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc14_35.4: init %i32 = converted %int_5, %int.convert_checked.loc14_35.1 [concrete = constants.%int_5.0f6] @@ -1476,7 +1476,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %.loc14_35.6: init %i32 = initialize_from %.loc14_35.4 to %.loc14_35.5 [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %impl.elem0.loc14_35.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_35.3: = bound_method %int_3.loc14, %impl.elem0.loc14_35.2 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc14_35.2: = specific_function %impl.elem0.loc14_35.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc14_35.2: = specific_function %impl.elem0.loc14_35.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_35.4: = bound_method %int_3.loc14, %specific_fn.loc14_35.2 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc14_35.2: init %i32 = call %bound_method.loc14_35.4(%int_3.loc14) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc14_35.7: init %i32 = converted %int_3.loc14, %int.convert_checked.loc14_35.2 [concrete = constants.%int_3.822] @@ -1493,23 +1493,23 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc16: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_9.1: = bound_method %int_4, %impl.elem0.loc16 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_9.2: = bound_method %int_4, %specific_fn.loc16 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %bound_method.loc16_9.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc16_9: init %i32 = converted %int_4, %int.convert_checked.loc16 [concrete = constants.%int_4.940] // CHECK:STDOUT: assign %.loc16_5, %.loc16_9 // CHECK:STDOUT: %Op.bound.loc14: = bound_method %b2.var, constants.%Op.345 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.345, @Op.3(constants.%Base) [concrete = constants.%Op.specific_fn.083] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.345, @Op.1(constants.%Base) [concrete = constants.%Op.specific_fn.083] // CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b2.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.11f = addr_of %b2.var // CHECK:STDOUT: %no_op.loc14: init %empty_tuple.type = call %bound_method.loc14_3(%addr.loc14) // CHECK:STDOUT: %Op.bound.loc13: = bound_method %b1.var, constants.%Op.345 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.345, @Op.3(constants.%Base) [concrete = constants.%Op.specific_fn.083] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.345, @Op.1(constants.%Base) [concrete = constants.%Op.specific_fn.083] // CHECK:STDOUT: %bound_method.loc13: = bound_method %b1.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13: %ptr.11f = addr_of %b1.var // CHECK:STDOUT: %no_op.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: %Op.bound.loc12: = bound_method %i.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc12_3.3: = bound_method %i.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.235 = addr_of %i.var // CHECK:STDOUT: %no_op.loc12: init %empty_tuple.type = call %bound_method.loc12_3.3(%addr.loc12) @@ -2164,18 +2164,18 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc7_17.1: type) { -// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc7_17.2: type) { +// CHECK:STDOUT: %T.loc7_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @Base(%T.loc7_17.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Base(%T.loc7_17.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.specific_fn.loc13_1.2: = specific_function %F, @F(%T.loc7_17.2) [symbolic = %F.specific_fn.loc13_1.2 (constants.%F.specific_fn)] -// CHECK:STDOUT: %vtable_ptr.loc13_1.2: ref %ptr = vtable_ptr @Base.vtable, @Base(%T.loc7_17.2) [symbolic = %vtable_ptr.loc13_1.2 (constants.%Base.vtable_ptr)] +// CHECK:STDOUT: %F.specific_fn.loc13_1.2: = specific_function %F, @F(%T.loc7_17.1) [symbolic = %F.specific_fn.loc13_1.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %vtable_ptr.loc13_1.2: ref %ptr = vtable_ptr @Base.vtable, @Base(%T.loc7_17.1) [symbolic = %vtable_ptr.loc13_1.2 (constants.%Base.vtable_ptr)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type) = fn_decl @F [symbolic = @Base.%F (constants.%F)] { @@ -2206,7 +2206,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @Base.%F.specific_fn.loc13_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F(@Base.%T.loc7_17.1: type) { +// CHECK:STDOUT: generic virtual fn @F(@Base.%T.loc7_17.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Base [symbolic = %pattern_type (constants.%pattern_type.9f7)] @@ -2215,7 +2215,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc7_17.2 => constants.%T +// CHECK:STDOUT: %T.loc7_17.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { @@ -2282,7 +2282,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: } @@ -2296,14 +2296,14 @@ var v: Base(T1) = {}; // CHECK:STDOUT: .Self = constants.%T1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc7_17.1: type) { -// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc7_17.2: type) { +// CHECK:STDOUT: %T.loc7_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @Base(%T.loc7_17.2) [symbolic = %F.type (constants.%F.type.f17)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @Base(%T.loc7_17.1) [symbolic = %F.type (constants.%F.type.f17)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)] -// CHECK:STDOUT: %F.specific_fn.loc9_1.2: = specific_function %F, @F.loc8(%T.loc7_17.2) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)] -// CHECK:STDOUT: %vtable_ptr.loc9_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc7_17.2) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)] +// CHECK:STDOUT: %F.specific_fn.loc9_1.2: = specific_function %F, @F.loc8(%T.loc7_17.1) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)] +// CHECK:STDOUT: %vtable_ptr.loc9_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc7_17.1) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.loc8 [symbolic = @Base.%F (constants.%F.e26)] { @@ -2319,7 +2319,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.loc8.%Base (%Base.370) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @F.loc8.%T (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc7_17.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc7_17.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @F.loc8.%T (%T) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.specific_fn.loc9_1.1: = specific_function %F.decl, @F.loc8(constants.%T) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)] @@ -2378,7 +2378,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @Derived.%F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F.loc8(@Base.%T.loc7_17.1: type) { +// CHECK:STDOUT: generic virtual fn @F.loc8(@Base.%T.loc7_17.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.370)] // CHECK:STDOUT: %pattern_type.loc8_16: type = pattern_type %Base [symbolic = %pattern_type.loc8_16 (constants.%pattern_type.9f7)] @@ -2400,7 +2400,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc7_17.2 => constants.%T +// CHECK:STDOUT: %T.loc7_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.f17 @@ -2421,7 +2421,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T1) { -// CHECK:STDOUT: %T.loc7_17.2 => constants.%T1 +// CHECK:STDOUT: %T.loc7_17.1 => constants.%T1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.d82 @@ -2656,7 +2656,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %self.param: %T1 = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%T1 [concrete = constants.%T1] // CHECK:STDOUT: %self: %T1 = bind_name self, %self.param -// CHECK:STDOUT: %T.loc9_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_28.1 (constants.%T)] +// CHECK:STDOUT: %T.loc9_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_28.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] @@ -2667,14 +2667,14 @@ var v: Base(T1) = {}; // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F(%T.loc9_28.2: type) { -// CHECK:STDOUT: %T.loc9_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_28.1 (constants.%T)] +// CHECK:STDOUT: generic virtual fn @F(%T.loc9_28.1: type) { +// CHECK:STDOUT: %T.loc9_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_28.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: virtual fn(%self.param: %T1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc9_28.1 => constants.%T +// CHECK:STDOUT: %T.loc9_28.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_generic_virtual_in_generic_class.carbon @@ -2709,15 +2709,15 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %T1.decl: %T1.type = class_decl @T1 [concrete = constants.%T1.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @T1(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic class @T1(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @T1(%T.loc4_15.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @T1(%T.loc4_15.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @T1.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -2732,7 +2732,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc9_22.2 [symbolic = %T1 (constants.%T1)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.%T1 (%T1) = bind_name self, %self.param -// CHECK:STDOUT: %T.loc9_28.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc9_28.1 (constants.%T.336)] +// CHECK:STDOUT: %T.loc9_28.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc9_28.2 (constants.%T.336)] // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] @@ -2744,24 +2744,24 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F(@T1.%T.loc4_15.1: type, %T.loc9_28.2: type) { +// CHECK:STDOUT: generic virtual fn @F(@T1.%T.loc4_15.2: type, %T.loc9_28.1: type) { // CHECK:STDOUT: %T.loc9_22: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_22 (constants.%T.8b3)] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T.loc9_22) [symbolic = %T1 (constants.%T1)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T1 [symbolic = %pattern_type (constants.%pattern_type.48e)] -// CHECK:STDOUT: %T.loc9_28.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc9_28.1 (constants.%T.336)] +// CHECK:STDOUT: %T.loc9_28.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc9_28.2 (constants.%T.336)] // CHECK:STDOUT: // CHECK:STDOUT: virtual fn(%self.param: @F.%T1 (%T1)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T1(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.8b3, constants.%T.336) { // CHECK:STDOUT: %T.loc9_22 => constants.%T.8b3 // CHECK:STDOUT: %T1 => constants.%T1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.48e -// CHECK:STDOUT: %T.loc9_28.1 => constants.%T.336 +// CHECK:STDOUT: %T.loc9_28.2 => constants.%T.336 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- generic_with_virtual.carbon @@ -2799,18 +2799,18 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %T1.decl: %T1.type = class_decl @T1 [concrete = constants.%T1.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @T1(%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: generic class @T1(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @T1(%T.loc4_15.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @T1(%T.loc4_15.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @T1.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F(%T.loc4_15.2) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn)] -// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @T1.vtable, @T1(%T.loc4_15.2) [symbolic = %vtable_ptr.loc6_1.2 (constants.%T1.vtable_ptr)] +// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F(%T.loc4_15.1) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @T1.vtable, @T1(%T.loc4_15.1) [symbolic = %vtable_ptr.loc6_1.2 (constants.%T1.vtable_ptr)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @T1.%F.type (%F.type) = fn_decl @F [symbolic = @T1.%F (constants.%F)] { @@ -2841,7 +2841,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @T1.%F.specific_fn.loc6_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F(@T1.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic virtual fn @F(@T1.%T.loc4_15.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic = %T1 (constants.%T1)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T1 [symbolic = %pattern_type (constants.%pattern_type.48e)] @@ -2856,7 +2856,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T1(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type @@ -2911,18 +2911,18 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %T1.decl: %T1.type = class_decl @T1 [concrete = constants.%T1.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @T1(%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: generic class @T1(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @T1(%T.loc4_15.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @T1(%T.loc4_15.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @T1.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F(%T.loc4_15.2) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn)] -// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @T1.vtable, @T1(%T.loc4_15.2) [symbolic = %vtable_ptr.loc6_1.2 (constants.%T1.vtable_ptr)] +// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F(%T.loc4_15.1) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @T1.vtable, @T1(%T.loc4_15.1) [symbolic = %vtable_ptr.loc6_1.2 (constants.%T1.vtable_ptr)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @T1.%F.type (%F.type) = fn_decl @F [symbolic = @T1.%F (constants.%F)] { @@ -2938,7 +2938,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.%T1 (%T1) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @F.%T (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref: type = name_ref T, @T1.%T.loc4_15.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @T1.%T.loc4_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @F.%T (%T) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.specific_fn.loc6_1.1: = specific_function %F.decl, @F(constants.%T) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn)] @@ -2959,7 +2959,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @T1.%F.specific_fn.loc6_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F(@T1.%T.loc4_15.1: type) { +// CHECK:STDOUT: generic virtual fn @F(@T1.%T.loc4_15.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic = %T1 (constants.%T1)] // CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %T1 [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.48e)] @@ -2976,7 +2976,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T1(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type @@ -3106,7 +3106,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %GenericDerived.decl: %GenericDerived.type = class_decl @GenericDerived [concrete = constants.%GenericDerived.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc9_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_27.2 (constants.%T)] +// CHECK:STDOUT: %T.loc9_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_27.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3139,19 +3139,19 @@ var v: Base(T1) = {}; // CHECK:STDOUT: .F2 = %F2.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericDerived(%T.loc9_27.1: type) { -// CHECK:STDOUT: %T.loc9_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_27.2 (constants.%T)] +// CHECK:STDOUT: generic class @GenericDerived(%T.loc9_27.2: type) { +// CHECK:STDOUT: %T.loc9_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_27.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T.loc9_27.2) [symbolic = %GenericDerived (constants.%GenericDerived)] +// CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T.loc9_27.1) [symbolic = %GenericDerived (constants.%GenericDerived)] // CHECK:STDOUT: %GenericDerived.elem: type = unbound_element_type %GenericDerived, constants.%NonGenericBase [symbolic = %GenericDerived.elem (constants.%GenericDerived.elem)] -// CHECK:STDOUT: %F2.type: type = fn_type @F2.loc11, @GenericDerived(%T.loc9_27.2) [symbolic = %F2.type (constants.%F2.type.e6e)] +// CHECK:STDOUT: %F2.type: type = fn_type @F2.loc11, @GenericDerived(%T.loc9_27.1) [symbolic = %F2.type (constants.%F2.type.e6e)] // CHECK:STDOUT: %F2: @GenericDerived.%F2.type (%F2.type.e6e) = struct_value () [symbolic = %F2 (constants.%F2.5da)] -// CHECK:STDOUT: %F3.type: type = fn_type @F3, @GenericDerived(%T.loc9_27.2) [symbolic = %F3.type (constants.%F3.type)] +// CHECK:STDOUT: %F3.type: type = fn_type @F3, @GenericDerived(%T.loc9_27.1) [symbolic = %F3.type (constants.%F3.type)] // CHECK:STDOUT: %F3: @GenericDerived.%F3.type (%F3.type) = struct_value () [symbolic = %F3 (constants.%F3)] -// CHECK:STDOUT: %F2.specific_fn.loc13_1.2: = specific_function %F2, @F2.loc11(%T.loc9_27.2) [symbolic = %F2.specific_fn.loc13_1.2 (constants.%F2.specific_fn)] -// CHECK:STDOUT: %F3.specific_fn.loc13_1.2: = specific_function %F3, @F3(%T.loc9_27.2) [symbolic = %F3.specific_fn.loc13_1.2 (constants.%F3.specific_fn)] -// CHECK:STDOUT: %vtable_ptr.loc13_1.2: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(%T.loc9_27.2) [symbolic = %vtable_ptr.loc13_1.2 (constants.%GenericDerived.vtable_ptr)] +// CHECK:STDOUT: %F2.specific_fn.loc13_1.2: = specific_function %F2, @F2.loc11(%T.loc9_27.1) [symbolic = %F2.specific_fn.loc13_1.2 (constants.%F2.specific_fn)] +// CHECK:STDOUT: %F3.specific_fn.loc13_1.2: = specific_function %F3, @F3(%T.loc9_27.1) [symbolic = %F3.specific_fn.loc13_1.2 (constants.%F3.specific_fn)] +// CHECK:STDOUT: %vtable_ptr.loc13_1.2: ref %ptr.454 = vtable_ptr @GenericDerived.vtable, @GenericDerived(%T.loc9_27.1) [symbolic = %vtable_ptr.loc13_1.2 (constants.%GenericDerived.vtable_ptr)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %NonGenericBase.ref: type = name_ref NonGenericBase, file.%NonGenericBase.decl [concrete = constants.%NonGenericBase] @@ -3217,7 +3217,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl fn @F2.loc11(@GenericDerived.%T.loc9_27.1: type) { +// CHECK:STDOUT: generic impl fn @F2.loc11(@GenericDerived.%T.loc9_27.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T) [symbolic = %GenericDerived (constants.%GenericDerived)] // CHECK:STDOUT: %pattern_type: type = pattern_type %GenericDerived [symbolic = %pattern_type (constants.%pattern_type.061)] @@ -3231,7 +3231,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F3(@GenericDerived.%T.loc9_27.1: type) { +// CHECK:STDOUT: generic virtual fn @F3(@GenericDerived.%T.loc9_27.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %GenericDerived: type = class_type @GenericDerived, @GenericDerived(%T) [symbolic = %GenericDerived (constants.%GenericDerived)] // CHECK:STDOUT: %pattern_type: type = pattern_type %GenericDerived [symbolic = %pattern_type (constants.%pattern_type.061)] @@ -3246,7 +3246,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericDerived(constants.%T) { -// CHECK:STDOUT: %T.loc9_27.2 => constants.%T +// CHECK:STDOUT: %T.loc9_27.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericDerived => constants.%GenericDerived @@ -3338,23 +3338,23 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %GenericBase.decl: %GenericBase.type = class_decl @GenericBase [concrete = constants.%GenericBase.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_24.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_24.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_24.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_24.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %T1.decl: type = class_decl @T1 [concrete = constants.%T1] {} {} // CHECK:STDOUT: %NonGenericDerived.decl: type = class_decl @NonGenericDerived [concrete = constants.%NonGenericDerived] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericBase(%T.loc4_24.1: type) { -// CHECK:STDOUT: %T.loc4_24.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_24.2 (constants.%T)] +// CHECK:STDOUT: generic class @GenericBase(%T.loc4_24.2: type) { +// CHECK:STDOUT: %T.loc4_24.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_24.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F1.type: type = fn_type @F1, @GenericBase(%T.loc4_24.2) [symbolic = %F1.type (constants.%F1.type.2af)] +// CHECK:STDOUT: %F1.type: type = fn_type @F1, @GenericBase(%T.loc4_24.1) [symbolic = %F1.type (constants.%F1.type.2af)] // CHECK:STDOUT: %F1: @GenericBase.%F1.type (%F1.type.2af) = struct_value () [symbolic = %F1 (constants.%F1.80a)] -// CHECK:STDOUT: %F2.type: type = fn_type @F2.loc6, @GenericBase(%T.loc4_24.2) [symbolic = %F2.type (constants.%F2.type.2ca)] +// CHECK:STDOUT: %F2.type: type = fn_type @F2.loc6, @GenericBase(%T.loc4_24.1) [symbolic = %F2.type (constants.%F2.type.2ca)] // CHECK:STDOUT: %F2: @GenericBase.%F2.type (%F2.type.2ca) = struct_value () [symbolic = %F2 (constants.%F2.414)] -// CHECK:STDOUT: %F1.specific_fn.loc7_1.2: = specific_function %F1, @F1(%T.loc4_24.2) [symbolic = %F1.specific_fn.loc7_1.2 (constants.%F1.specific_fn.aea)] -// CHECK:STDOUT: %F2.specific_fn.loc7_1.2: = specific_function %F2, @F2.loc6(%T.loc4_24.2) [symbolic = %F2.specific_fn.loc7_1.2 (constants.%F2.specific_fn.758)] -// CHECK:STDOUT: %vtable_ptr.loc7_1.2: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T.loc4_24.2) [symbolic = %vtable_ptr.loc7_1.2 (constants.%GenericBase.vtable_ptr.e41)] +// CHECK:STDOUT: %F1.specific_fn.loc7_1.2: = specific_function %F1, @F1(%T.loc4_24.1) [symbolic = %F1.specific_fn.loc7_1.2 (constants.%F1.specific_fn.aea)] +// CHECK:STDOUT: %F2.specific_fn.loc7_1.2: = specific_function %F2, @F2.loc6(%T.loc4_24.1) [symbolic = %F2.specific_fn.loc7_1.2 (constants.%F2.specific_fn.758)] +// CHECK:STDOUT: %vtable_ptr.loc7_1.2: ref %ptr.454 = vtable_ptr @GenericBase.vtable, @GenericBase(%T.loc4_24.1) [symbolic = %vtable_ptr.loc7_1.2 (constants.%GenericBase.vtable_ptr.e41)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F1.decl: @GenericBase.%F1.type (%F1.type.2af) = fn_decl @F1 [symbolic = @GenericBase.%F1 (constants.%F1.80a)] { @@ -3444,7 +3444,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @NonGenericDerived.%F3.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F1(@GenericBase.%T.loc4_24.1: type) { +// CHECK:STDOUT: generic virtual fn @F1(@GenericBase.%T.loc4_24.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %GenericBase: type = class_type @GenericBase, @GenericBase(%T) [symbolic = %GenericBase (constants.%GenericBase.018)] // CHECK:STDOUT: %pattern_type: type = pattern_type %GenericBase [symbolic = %pattern_type (constants.%pattern_type.34e)] @@ -3458,7 +3458,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F2.loc6(@GenericBase.%T.loc4_24.1: type) { +// CHECK:STDOUT: generic virtual fn @F2.loc6(@GenericBase.%T.loc4_24.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %GenericBase: type = class_type @GenericBase, @GenericBase(%T) [symbolic = %GenericBase (constants.%GenericBase.018)] // CHECK:STDOUT: %pattern_type: type = pattern_type %GenericBase [symbolic = %pattern_type (constants.%pattern_type.34e)] @@ -3483,7 +3483,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericBase(constants.%T) { -// CHECK:STDOUT: %T.loc4_24.2 => constants.%T +// CHECK:STDOUT: %T.loc4_24.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F1.type => constants.%F1.type.2af @@ -3514,7 +3514,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericBase(constants.%T1) { -// CHECK:STDOUT: %T.loc4_24.2 => constants.%T1 +// CHECK:STDOUT: %T.loc4_24.1 => constants.%T1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F1.type => constants.%F1.type.648 @@ -3602,20 +3602,20 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %T1.decl: type = class_decl @T1 [concrete = constants.%T1] {} {} // CHECK:STDOUT: %D1.decl: type = class_decl @D1 [concrete = constants.%D1] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_17.1: type) { -// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_17.2: type) { +// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_17.2) [symbolic = %F.type (constants.%F.type.f17)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_17.1) [symbolic = %F.type (constants.%F.type.f17)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)] -// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_17.2) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] -// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_17.2) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr.573)] +// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_17.1) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] +// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_17.1) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr.573)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.loc5 [symbolic = @Base.%F (constants.%F.e26)] { @@ -3630,14 +3630,14 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_22.2 [symbolic = %Base.loc5_22 (constants.%Base.370)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.loc5.%Base.loc5_22 (%Base.370) = bind_name self, %self.param -// CHECK:STDOUT: %t.param: @F.loc5.%ptr.loc5_38.1 (%ptr.b7c) = value_param call_param1 -// CHECK:STDOUT: %.loc5_38: type = splice_block %ptr.loc5_38.2 [symbolic = %ptr.loc5_38.1 (constants.%ptr.b7c)] { +// CHECK:STDOUT: %t.param: @F.loc5.%ptr.loc5_38.2 (%ptr.b7c) = value_param call_param1 +// CHECK:STDOUT: %.loc5_38: type = splice_block %ptr.loc5_38.1 [symbolic = %ptr.loc5_38.2 (constants.%ptr.b7c)] { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc4_17.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc4_17.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base.loc5_37: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc5_22 (constants.%Base.370)] -// CHECK:STDOUT: %ptr.loc5_38.2: type = ptr_type %Base.loc5_37 [symbolic = %ptr.loc5_38.1 (constants.%ptr.b7c)] +// CHECK:STDOUT: %ptr.loc5_38.1: type = ptr_type %Base.loc5_37 [symbolic = %ptr.loc5_38.2 (constants.%ptr.b7c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.loc5.%ptr.loc5_38.1 (%ptr.b7c) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.loc5.%ptr.loc5_38.2 (%ptr.b7c) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.specific_fn.loc6_1.1: = specific_function %F.decl, @F.loc5(constants.%T) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] // CHECK:STDOUT: %vtable_ptr.loc6_1.1: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(constants.%T) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr.573)] @@ -3703,18 +3703,18 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @D1.%F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F.loc5(@Base.%T.loc4_17.1: type) { +// CHECK:STDOUT: generic virtual fn @F.loc5(@Base.%T.loc4_17.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base.loc5_22: type = class_type @Base, @Base(%T) [symbolic = %Base.loc5_22 (constants.%Base.370)] // CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %Base.loc5_22 [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.9f7)] -// CHECK:STDOUT: %ptr.loc5_38.1: type = ptr_type %Base.loc5_22 [symbolic = %ptr.loc5_38.1 (constants.%ptr.b7c)] -// CHECK:STDOUT: %pattern_type.loc5_28: type = pattern_type %ptr.loc5_38.1 [symbolic = %pattern_type.loc5_28 (constants.%pattern_type.8d4)] +// CHECK:STDOUT: %ptr.loc5_38.2: type = ptr_type %Base.loc5_22 [symbolic = %ptr.loc5_38.2 (constants.%ptr.b7c)] +// CHECK:STDOUT: %pattern_type.loc5_28: type = pattern_type %ptr.loc5_38.2 [symbolic = %pattern_type.loc5_28 (constants.%pattern_type.8d4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_20: = require_complete_type %Base.loc5_22 [symbolic = %require_complete.loc5_20 (constants.%require_complete.97d)] -// CHECK:STDOUT: %require_complete.loc5_29: = require_complete_type %ptr.loc5_38.1 [symbolic = %require_complete.loc5_29 (constants.%require_complete.cbc)] +// CHECK:STDOUT: %require_complete.loc5_29: = require_complete_type %ptr.loc5_38.2 [symbolic = %require_complete.loc5_29 (constants.%require_complete.cbc)] // CHECK:STDOUT: -// CHECK:STDOUT: virtual fn(%self.param: @F.loc5.%Base.loc5_22 (%Base.370), %t.param: @F.loc5.%ptr.loc5_38.1 (%ptr.b7c)) { +// CHECK:STDOUT: virtual fn(%self.param: @F.loc5.%Base.loc5_22 (%Base.370), %t.param: @F.loc5.%ptr.loc5_38.2 (%ptr.b7c)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3726,7 +3726,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.f17 @@ -3739,7 +3739,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Base.loc5_22 => constants.%Base.370 // CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.9f7 -// CHECK:STDOUT: %ptr.loc5_38.1 => constants.%ptr.b7c +// CHECK:STDOUT: %ptr.loc5_38.2 => constants.%ptr.b7c // CHECK:STDOUT: %pattern_type.loc5_28 => constants.%pattern_type.8d4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -3748,7 +3748,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T1) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T1 +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.d82 @@ -3761,7 +3761,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %T => constants.%T1 // CHECK:STDOUT: %Base.loc5_22 => constants.%Base.ea5 // CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.3bf -// CHECK:STDOUT: %ptr.loc5_38.1 => constants.%ptr.184 +// CHECK:STDOUT: %ptr.loc5_38.2 => constants.%ptr.184 // CHECK:STDOUT: %pattern_type.loc5_28 => constants.%pattern_type.04d // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -3829,7 +3829,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %D1.decl: type = class_decl @D1 [concrete = constants.%D1] {} {} // CHECK:STDOUT: } @@ -3838,14 +3838,14 @@ var v: Base(T1) = {}; // CHECK:STDOUT: // CHECK:STDOUT: class @T2; // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc7_17.1: type) { -// CHECK:STDOUT: %T.loc7_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc7_17.2: type) { +// CHECK:STDOUT: %T.loc7_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @Base(%T.loc7_17.2) [symbolic = %F.type (constants.%F.type.f17)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @Base(%T.loc7_17.1) [symbolic = %F.type (constants.%F.type.f17)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)] -// CHECK:STDOUT: %F.specific_fn.loc9_1.2: = specific_function %F, @F.loc8(%T.loc7_17.2) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)] -// CHECK:STDOUT: %vtable_ptr.loc9_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc7_17.2) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)] +// CHECK:STDOUT: %F.specific_fn.loc9_1.2: = specific_function %F, @F.loc8(%T.loc7_17.1) [symbolic = %F.specific_fn.loc9_1.2 (constants.%F.specific_fn.892)] +// CHECK:STDOUT: %vtable_ptr.loc9_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc7_17.1) [symbolic = %vtable_ptr.loc9_1.2 (constants.%Base.vtable_ptr.573)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.loc8 [symbolic = @Base.%F (constants.%F.e26)] { @@ -3927,7 +3927,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @D1.%F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F.loc8(@Base.%T.loc7_17.1: type) { +// CHECK:STDOUT: generic virtual fn @F.loc8(@Base.%T.loc7_17.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.370)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Base [symbolic = %pattern_type (constants.%pattern_type.9f7)] @@ -3947,7 +3947,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc7_17.2 => constants.%T +// CHECK:STDOUT: %T.loc7_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.f17 @@ -3966,7 +3966,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T1) { -// CHECK:STDOUT: %T.loc7_17.2 => constants.%T1 +// CHECK:STDOUT: %T.loc7_17.1 => constants.%T1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.d82 @@ -4037,23 +4037,23 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: %Derived.type = class_decl @Derived [concrete = constants.%Derived.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_21.1: type) { -// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_21.2: type) { +// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_21.2) [symbolic = %F.type (constants.%F.type.f17)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_21.1) [symbolic = %F.type (constants.%F.type.f17)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)] -// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_21.2) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] -// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_21.2) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr)] +// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_21.1) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] +// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_21.1) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.loc5 [symbolic = @Base.%F (constants.%F.e26)] { @@ -4068,12 +4068,12 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_22.2 [symbolic = %Base (constants.%Base)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.loc5.%Base (%Base) = bind_name self, %self.param -// CHECK:STDOUT: %t.param: @F.loc5.%ptr.loc5_32.1 (%ptr.79f) = value_param call_param1 -// CHECK:STDOUT: %.loc5_32: type = splice_block %ptr.loc5_32.2 [symbolic = %ptr.loc5_32.1 (constants.%ptr.79f)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc4_21.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %ptr.loc5_32.2: type = ptr_type %T.ref [symbolic = %ptr.loc5_32.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %t.param: @F.loc5.%ptr.loc5_32.2 (%ptr.79f) = value_param call_param1 +// CHECK:STDOUT: %.loc5_32: type = splice_block %ptr.loc5_32.1 [symbolic = %ptr.loc5_32.2 (constants.%ptr.79f)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc4_21.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %ptr.loc5_32.1: type = ptr_type %T.ref [symbolic = %ptr.loc5_32.2 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.loc5.%ptr.loc5_32.1 (%ptr.79f) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.loc5.%ptr.loc5_32.2 (%ptr.79f) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.specific_fn.loc6_1.1: = specific_function %F.decl, @F.loc5(constants.%T) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] // CHECK:STDOUT: %vtable_ptr.loc6_1.1: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(constants.%T) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr)] @@ -4089,24 +4089,24 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Derived(%T.loc7_15.1: type) { -// CHECK:STDOUT: %T.loc7_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] +// CHECK:STDOUT: generic class @Derived(%T.loc7_15.2: type) { +// CHECK:STDOUT: %T.loc7_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Base.loc8_22.2: type = class_type @Base, @Base(%T.loc7_15.2) [symbolic = %Base.loc8_22.2 (constants.%Base)] +// CHECK:STDOUT: %Base.loc8_22.2: type = class_type @Base, @Base(%T.loc7_15.1) [symbolic = %Base.loc8_22.2 (constants.%Base)] // CHECK:STDOUT: %require_complete: = require_complete_type %Base.loc8_22.2 [symbolic = %require_complete (constants.%require_complete.97d)] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc7_15.2) [symbolic = %Derived (constants.%Derived)] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc7_15.1) [symbolic = %Derived (constants.%Derived)] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.loc8_22.2 [symbolic = %Derived.elem (constants.%Derived.elem)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Derived(%T.loc7_15.2) [symbolic = %F.type (constants.%F.type.e3f)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Derived(%T.loc7_15.1) [symbolic = %F.type (constants.%F.type.e3f)] // CHECK:STDOUT: %F: @Derived.%F.type (%F.type.e3f) = struct_value () [symbolic = %F (constants.%F.8d6)] -// CHECK:STDOUT: %F.specific_fn.loc17_1.2: = specific_function %F, @F.loc16(%T.loc7_15.2) [symbolic = %F.specific_fn.loc17_1.2 (constants.%F.specific_fn.2e6)] -// CHECK:STDOUT: %vtable_ptr.loc17_1.2: ref %ptr.454 = vtable_ptr @Derived.vtable, @Derived(%T.loc7_15.2) [symbolic = %vtable_ptr.loc17_1.2 (constants.%Derived.vtable_ptr)] +// CHECK:STDOUT: %F.specific_fn.loc17_1.2: = specific_function %F, @F.loc16(%T.loc7_15.1) [symbolic = %F.specific_fn.loc17_1.2 (constants.%F.specific_fn.2e6)] +// CHECK:STDOUT: %vtable_ptr.loc17_1.2: ref %ptr.454 = vtable_ptr @Derived.vtable, @Derived(%T.loc7_15.1) [symbolic = %vtable_ptr.loc17_1.2 (constants.%Derived.vtable_ptr)] // CHECK:STDOUT: %struct_type.base.loc17_1.2: type = struct_type {.base: @Derived.%Base.loc8_22.2 (%Base)} [symbolic = %struct_type.base.loc17_1.2 (constants.%struct_type.base.8ea)] // CHECK:STDOUT: %complete_type.loc17_1.2: = complete_type_witness %struct_type.base.loc17_1.2 [symbolic = %complete_type.loc17_1.2 (constants.%complete_type.d5d)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.2 [symbolic = %T.loc7_15.1 (constants.%T)] // CHECK:STDOUT: %Base.loc8_22.1: type = class_type @Base, @Base(constants.%T) [symbolic = %Base.loc8_22.2 (constants.%Base)] // CHECK:STDOUT: %.loc8: @Derived.%Derived.elem (%Derived.elem) = base_decl %Base.loc8_22.1, element0 [concrete] // CHECK:STDOUT: %F.decl: @Derived.%F.type (%F.type.e3f) = fn_decl @F.loc16 [symbolic = @Derived.%F (constants.%F.8d6)] { @@ -4122,7 +4122,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.loc16.%Derived (%Derived) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @F.loc16.%T (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref: type = name_ref T, @Derived.%T.loc7_15.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Derived.%T.loc7_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @F.loc16.%T (%T) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.specific_fn.loc17_1.1: = specific_function %F.decl, @F.loc16(constants.%T) [symbolic = %F.specific_fn.loc17_1.2 (constants.%F.specific_fn.2e6)] @@ -4150,24 +4150,24 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @Derived.%F.specific_fn.loc17_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F.loc5(@Base.%T.loc4_21.1: type) { +// CHECK:STDOUT: generic virtual fn @F.loc5(@Base.%T.loc4_21.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base)] // CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %Base [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.9f7)] -// CHECK:STDOUT: %ptr.loc5_32.1: type = ptr_type %T [symbolic = %ptr.loc5_32.1 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type.loc5_28: type = pattern_type %ptr.loc5_32.1 [symbolic = %pattern_type.loc5_28 (constants.%pattern_type.afe)] +// CHECK:STDOUT: %ptr.loc5_32.2: type = ptr_type %T [symbolic = %ptr.loc5_32.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type.loc5_28: type = pattern_type %ptr.loc5_32.2 [symbolic = %pattern_type.loc5_28 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_20: = require_complete_type %Base [symbolic = %require_complete.loc5_20 (constants.%require_complete.97d)] -// CHECK:STDOUT: %require_complete.loc5_29: = require_complete_type %ptr.loc5_32.1 [symbolic = %require_complete.loc5_29 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc5_29: = require_complete_type %ptr.loc5_32.2 [symbolic = %require_complete.loc5_29 (constants.%require_complete.6e5)] // CHECK:STDOUT: -// CHECK:STDOUT: virtual fn(%self.param: @F.loc5.%Base (%Base), %t.param: @F.loc5.%ptr.loc5_32.1 (%ptr.79f)) { +// CHECK:STDOUT: virtual fn(%self.param: @F.loc5.%Base (%Base), %t.param: @F.loc5.%ptr.loc5_32.2 (%ptr.79f)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl fn @F.loc16(@Derived.%T.loc7_15.1: type) { +// CHECK:STDOUT: generic impl fn @F.loc16(@Derived.%T.loc7_15.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T) [symbolic = %Derived (constants.%Derived)] // CHECK:STDOUT: %pattern_type.loc16_13: type = pattern_type %Derived [symbolic = %pattern_type.loc16_13 (constants.%pattern_type.423)] @@ -4186,7 +4186,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%T +// CHECK:STDOUT: %T.loc4_21.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.f17 @@ -4199,7 +4199,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Base => constants.%Base // CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.9f7 -// CHECK:STDOUT: %ptr.loc5_32.1 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc5_32.2 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc5_28 => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -4208,7 +4208,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(constants.%T) { -// CHECK:STDOUT: %T.loc7_15.2 => constants.%T +// CHECK:STDOUT: %T.loc7_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Base.loc8_22.2 => constants.%Base @@ -4296,23 +4296,23 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Derived.decl: %Derived.type = class_decl @Derived [concrete = constants.%Derived.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_21.1: type) { -// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_21.2: type) { +// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_21.2) [symbolic = %F.type (constants.%F.type.f17)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_21.1) [symbolic = %F.type (constants.%F.type.f17)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)] -// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_21.2) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] -// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_21.2) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr.573)] +// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_21.1) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] +// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_21.1) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr.573)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.loc5 [symbolic = @Base.%F (constants.%F.e26)] { @@ -4328,7 +4328,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.loc5.%Base (%Base.370) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @F.loc5.%T (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc4_21.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Base.%T.loc4_21.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @F.loc5.%T (%T) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.specific_fn.loc6_1.1: = specific_function %F.decl, @F.loc5(constants.%T) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] @@ -4345,25 +4345,25 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Derived(%T.loc7_15.1: type) { -// CHECK:STDOUT: %T.loc7_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] +// CHECK:STDOUT: generic class @Derived(%T.loc7_15.2: type) { +// CHECK:STDOUT: %T.loc7_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr.loc8_22.2: type = ptr_type %T.loc7_15.2 [symbolic = %ptr.loc8_22.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc8_22.2: type = ptr_type %T.loc7_15.1 [symbolic = %ptr.loc8_22.2 (constants.%ptr.79f)] // CHECK:STDOUT: %Base.loc8_23.2: type = class_type @Base, @Base(%ptr.loc8_22.2) [symbolic = %Base.loc8_23.2 (constants.%Base.16b)] // CHECK:STDOUT: %require_complete: = require_complete_type %Base.loc8_23.2 [symbolic = %require_complete (constants.%require_complete.fce)] -// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc7_15.2) [symbolic = %Derived (constants.%Derived)] +// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T.loc7_15.1) [symbolic = %Derived (constants.%Derived)] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.loc8_23.2 [symbolic = %Derived.elem (constants.%Derived.elem)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc9, @Derived(%T.loc7_15.2) [symbolic = %F.type (constants.%F.type.e3f)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc9, @Derived(%T.loc7_15.1) [symbolic = %F.type (constants.%F.type.e3f)] // CHECK:STDOUT: %F: @Derived.%F.type (%F.type.e3f) = struct_value () [symbolic = %F (constants.%F.8d6)] -// CHECK:STDOUT: %F.specific_fn.loc10_1.2: = specific_function %F, @F.loc9(%T.loc7_15.2) [symbolic = %F.specific_fn.loc10_1.2 (constants.%F.specific_fn.2e6)] -// CHECK:STDOUT: %vtable_ptr.loc10_1.2: ref %ptr.454 = vtable_ptr @Derived.vtable, @Derived(%T.loc7_15.2) [symbolic = %vtable_ptr.loc10_1.2 (constants.%Derived.vtable_ptr)] +// CHECK:STDOUT: %F.specific_fn.loc10_1.2: = specific_function %F, @F.loc9(%T.loc7_15.1) [symbolic = %F.specific_fn.loc10_1.2 (constants.%F.specific_fn.2e6)] +// CHECK:STDOUT: %vtable_ptr.loc10_1.2: ref %ptr.454 = vtable_ptr @Derived.vtable, @Derived(%T.loc7_15.1) [symbolic = %vtable_ptr.loc10_1.2 (constants.%Derived.vtable_ptr)] // CHECK:STDOUT: %struct_type.base.loc10_1.2: type = struct_type {.base: @Derived.%Base.loc8_23.2 (%Base.16b)} [symbolic = %struct_type.base.loc10_1.2 (constants.%struct_type.base.d96)] // CHECK:STDOUT: %complete_type.loc10_1.2: = complete_type_witness %struct_type.base.loc10_1.2 [symbolic = %complete_type.loc10_1.2 (constants.%complete_type.5dc)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Base.ref: %Base.type = name_ref Base, file.%Base.decl [concrete = constants.%Base.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_15.2 [symbolic = %T.loc7_15.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc8_22.1: type = ptr_type %T.ref [symbolic = %ptr.loc8_22.2 (constants.%ptr.79f)] // CHECK:STDOUT: %Base.loc8_23.1: type = class_type @Base, @Base(constants.%ptr.79f) [symbolic = %Base.loc8_23.2 (constants.%Base.16b)] // CHECK:STDOUT: %.loc8: @Derived.%Derived.elem (%Derived.elem) = base_decl %Base.loc8_23.1, element0 [concrete] @@ -4381,7 +4381,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %self: @F.loc9.%Derived (%Derived) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @F.loc9.%ptr.loc9_28 (%ptr.79f) = value_param call_param1 // CHECK:STDOUT: %.loc9_29: type = splice_block %ptr.loc9_29 [symbolic = %ptr.loc9_28 (constants.%ptr.79f)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Derived.%T.loc7_15.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Derived.%T.loc7_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ptr.loc9_29: type = ptr_type %T.ref [symbolic = %ptr.loc9_28 (constants.%ptr.79f)] // CHECK:STDOUT: } // CHECK:STDOUT: %t: @F.loc9.%ptr.loc9_28 (%ptr.79f) = bind_name t, %t.param @@ -4411,7 +4411,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @Derived.%F.specific_fn.loc10_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F.loc5(@Base.%T.loc4_21.1: type) { +// CHECK:STDOUT: generic virtual fn @F.loc5(@Base.%T.loc4_21.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.370)] // CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %Base [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.9f7)] @@ -4427,7 +4427,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl fn @F.loc9(@Derived.%T.loc7_15.1: type) { +// CHECK:STDOUT: generic impl fn @F.loc9(@Derived.%T.loc7_15.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T) [symbolic = %Derived (constants.%Derived)] // CHECK:STDOUT: %pattern_type.loc9_13: type = pattern_type %Derived [symbolic = %pattern_type.loc9_13 (constants.%pattern_type.423)] @@ -4447,7 +4447,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%T +// CHECK:STDOUT: %T.loc4_21.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.f17 @@ -4468,7 +4468,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Derived(constants.%T) { -// CHECK:STDOUT: %T.loc7_15.2 => constants.%T +// CHECK:STDOUT: %T.loc7_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %ptr.loc8_22.2 => constants.%ptr.79f @@ -4485,7 +4485,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%ptr.79f) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc4_21.1 => constants.%ptr.79f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.5df @@ -4570,20 +4570,20 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %T1.decl: type = class_decl @T1 [concrete = constants.%T1] {} {} // CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_21.1: type) { -// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_21.2: type) { +// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_21.2) [symbolic = %F.type (constants.%F.type.f17)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Base(%T.loc4_21.1) [symbolic = %F.type (constants.%F.type.f17)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type.f17) = struct_value () [symbolic = %F (constants.%F.e26)] -// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_21.2) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] -// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_21.2) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr.573)] +// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F.loc5(%T.loc4_21.1) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn.892)] +// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_21.1) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr.573)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type.f17) = fn_decl @F.loc5 [symbolic = @Base.%F (constants.%F.e26)] { @@ -4648,7 +4648,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @Derived.%F.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic abstract fn @F.loc5(@Base.%T.loc4_21.1: type) { +// CHECK:STDOUT: generic abstract fn @F.loc5(@Base.%T.loc4_21.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.370)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Base [symbolic = %pattern_type (constants.%pattern_type.9f7)] @@ -4662,7 +4662,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%T +// CHECK:STDOUT: %T.loc4_21.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%T) { @@ -4672,7 +4672,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T1) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%T1 +// CHECK:STDOUT: %T.loc4_21.1 => constants.%T1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.d82 @@ -4722,18 +4722,18 @@ var v: Base(T1) = {}; // CHECK:STDOUT: %Base.decl: %Base.type = class_decl @Base [concrete = constants.%Base.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(%T.loc4_17.1: type) { -// CHECK:STDOUT: %T.loc4_17.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T)] +// CHECK:STDOUT: generic class @Base(%T.loc4_17.2: type) { +// CHECK:STDOUT: %T.loc4_17.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @Base(%T.loc4_17.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Base(%T.loc4_17.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Base.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F(%T.loc4_17.2) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn)] -// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_17.2) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr)] +// CHECK:STDOUT: %F.specific_fn.loc6_1.2: = specific_function %F, @F(%T.loc4_17.1) [symbolic = %F.specific_fn.loc6_1.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %vtable_ptr.loc6_1.2: ref %ptr.454 = vtable_ptr @Base.vtable, @Base(%T.loc4_17.1) [symbolic = %vtable_ptr.loc6_1.2 (constants.%Base.vtable_ptr)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %F.decl: @Base.%F.type (%F.type) = fn_decl @F [symbolic = @Base.%F (constants.%F)] { @@ -4764,7 +4764,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: @Base.%F.specific_fn.loc6_1.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @F(@Base.%T.loc4_17.1: type) { +// CHECK:STDOUT: generic virtual fn @F(@Base.%T.loc4_17.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Base [symbolic = %pattern_type (constants.%pattern_type.9f7)] @@ -4779,7 +4779,7 @@ var v: Base(T1) = {}; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Base(constants.%T) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index 679b7548b4a9..c96152ed3328 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -150,17 +150,17 @@ fn G() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] @@ -176,13 +176,13 @@ fn G() -> i32 { // CHECK:STDOUT: %array: %array_type.002 = tuple_value (%C.val, %C.val, %C.val) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.3, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.3(%C) [concrete] -// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.3, @Destroy.impl(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.2, @Destroy.impl(%array_type.002) [concrete] // CHECK:STDOUT: %Op.1f9: %Op.type.85d = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.f55: = specific_function %Op.1f9, @Op.3(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.specific_fn.f55: = specific_function %Op.1f9, @Op.2(%array_type.002) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -217,17 +217,17 @@ fn G() -> i32 { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_29.2 (%array_type.743) = value_param call_param0 -// CHECK:STDOUT: %.loc6_29: type = splice_block %array_type.loc6_29.1 [symbolic = %array_type.loc6_29.2 (constants.%array_type.743)] { -// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_29.1 (%array_type.743) = value_param call_param0 +// CHECK:STDOUT: %.loc6_29: type = splice_block %array_type.loc6_29.2 [symbolic = %array_type.loc6_29.1 (constants.%array_type.743)] { +// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %array_type.loc6_29.1: type = array_type %int_3, %T.ref.loc6_25 [symbolic = %array_type.loc6_29.2 (constants.%array_type.743)] +// CHECK:STDOUT: %array_type.loc6_29.2: type = array_type %int_3, %T.ref.loc6_25 [symbolic = %array_type.loc6_29.1 (constants.%array_type.743)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_29.2 (%array_type.743) = bind_name a, %a.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_29.1 (%array_type.743) = bind_name a, %a.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %return.patt: %pattern_type.c48 = return_slot_pattern [concrete] @@ -248,32 +248,32 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %array_type.loc6_29.2: type = array_type constants.%int_3, %T.loc6_6.2 [symbolic = %array_type.loc6_29.2 (constants.%array_type.743)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_29.2 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.58b)] -// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %array_type.loc6_29.1: type = array_type constants.%int_3, %T.loc6_6.1 [symbolic = %array_type.loc6_29.1 (constants.%array_type.743)] +// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_29.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.58b)] +// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc6_32 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %array_type.loc6_29.2 [symbolic = %require_complete.loc6_17 (constants.%require_complete.06f)] +// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.06f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_29.2 (%array_type.743)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_29.1 (%array_type.743)) -> @F.%T.loc6_6.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_29.2 (%array_type.743) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_29.1 (%array_type.743) = name_ref a, %a // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_48.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_48.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc6_48.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_48.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_48.2: %i32 = converted %int_0, %.loc6_48.1 [concrete = constants.%int_0.6a9] -// CHECK:STDOUT: %.loc6_49.1: ref @F.%array_type.loc6_29.2 (%array_type.743) = value_as_ref %a.ref -// CHECK:STDOUT: %.loc6_49.2: ref @F.%T.loc6_6.2 (%T) = array_index %.loc6_49.1, %.loc6_48.2 -// CHECK:STDOUT: %.loc6_49.3: @F.%T.loc6_6.2 (%T) = bind_value %.loc6_49.2 +// CHECK:STDOUT: %.loc6_49.1: ref @F.%array_type.loc6_29.1 (%array_type.743) = value_as_ref %a.ref +// CHECK:STDOUT: %.loc6_49.2: ref @F.%T.loc6_6.1 (%T) = array_index %.loc6_49.1, %.loc6_48.2 +// CHECK:STDOUT: %.loc6_49.3: @F.%T.loc6_6.1 (%T) = bind_value %.loc6_49.2 // CHECK:STDOUT: return %.loc6_49.3 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -317,12 +317,12 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc10: %array_type.002 = bind_value %a.ref // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%.loc10) to %.loc8 // CHECK:STDOUT: %Op.bound.loc8: = bound_method %.loc8, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8: %ptr.019 = addr_of %.loc8 // CHECK:STDOUT: %no_op.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %Op.bound.loc9: = bound_method %a.var, constants.%Op.1f9 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.1f9, @Op.3(constants.%array_type.002) [concrete = constants.%Op.specific_fn.f55] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.1f9, @Op.2(constants.%array_type.002) [concrete = constants.%Op.specific_fn.f55] // CHECK:STDOUT: %bound_method.loc9: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9: %ptr.301 = addr_of %a.var // CHECK:STDOUT: %no_op.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) @@ -330,15 +330,15 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T -// CHECK:STDOUT: %array_type.loc6_29.2 => constants.%array_type.743 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T +// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.743 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.58b // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%C -// CHECK:STDOUT: %array_type.loc6_29.2 => constants.%array_type.002 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%C +// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.002 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.a63 // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.c48 // CHECK:STDOUT: @@ -371,17 +371,17 @@ fn G() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.41f: = bound_method %N, %Convert.956 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.ad4: = bound_method %N, %Convert.specific_fn [symbolic] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.ad4(%N) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -398,9 +398,9 @@ fn G() -> i32 { // CHECK:STDOUT: %array: %array_type.002 = tuple_value (%C.val, %C.val, %C.val) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_3.1ba) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.3, @Destroy.impl(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.2, @Destroy.impl(%array_type.002) [concrete] // CHECK:STDOUT: %Op.1f9: %Op.type.85d = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1f9, @Op.3(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1f9, @Op.2(%array_type.002) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -449,14 +449,14 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc6_26.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc6_26.3: type = converted %int_literal.make_type, %.loc6_26.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_42.2 (%array_type.6a2) = value_param call_param0 -// CHECK:STDOUT: %.loc6_42: type = splice_block %array_type.loc6_42.1 [symbolic = %array_type.loc6_42.2 (constants.%array_type.6a2)] { +// CHECK:STDOUT: %N.loc6_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.1 (constants.%N)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_42.1 (%array_type.6a2) = value_param call_param0 +// CHECK:STDOUT: %.loc6_42: type = splice_block %array_type.loc6_42.2 [symbolic = %array_type.loc6_42.1 (constants.%array_type.6a2)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %N.ref.loc6_41: Core.IntLiteral = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N)] -// CHECK:STDOUT: %array_type.loc6_42.1: type = array_type %N.ref.loc6_41, %C.ref [symbolic = %array_type.loc6_42.2 (constants.%array_type.6a2)] +// CHECK:STDOUT: %N.ref.loc6_41: Core.IntLiteral = name_ref N, %N.loc6_6.2 [symbolic = %N.loc6_6.1 (constants.%N)] +// CHECK:STDOUT: %array_type.loc6_42.2: type = array_type %N.ref.loc6_41, %C.ref [symbolic = %array_type.loc6_42.1 (constants.%array_type.6a2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_42.2 (%array_type.6a2) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_42.1 (%array_type.6a2) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -480,23 +480,23 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc6_6.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc6_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N)] -// CHECK:STDOUT: %array_type.loc6_42.2: type = array_type %N.loc6_6.2, constants.%C [symbolic = %array_type.loc6_42.2 (constants.%array_type.6a2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_42.2 [symbolic = %pattern_type (constants.%pattern_type.9ee)] +// CHECK:STDOUT: generic fn @F(%N.loc6_6.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc6_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.1 (constants.%N)] +// CHECK:STDOUT: %array_type.loc6_42.1: type = array_type %N.loc6_6.1, constants.%C [symbolic = %array_type.loc6_42.1 (constants.%array_type.6a2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_42.1 [symbolic = %pattern_type (constants.%pattern_type.9ee)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_42.2 [symbolic = %require_complete (constants.%require_complete.d82)] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_6.2, constants.%Convert.956 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] -// CHECK:STDOUT: %bound_method.loc6_62.3: = bound_method %N.loc6_6.2, constants.%Convert.specific_fn [symbolic = %bound_method.loc6_62.3 (constants.%bound_method.ad4)] -// CHECK:STDOUT: %int.convert_checked.loc6_62.2: init %i32 = call %bound_method.loc6_62.3(%N.loc6_6.2) [symbolic = %int.convert_checked.loc6_62.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_42.1 [symbolic = %require_complete (constants.%require_complete.d82)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_6.1, constants.%Convert.956 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] +// CHECK:STDOUT: %bound_method.loc6_62.3: = bound_method %N.loc6_6.1, constants.%Convert.specific_fn [symbolic = %bound_method.loc6_62.3 (constants.%bound_method.ad4)] +// CHECK:STDOUT: %int.convert_checked.loc6_62.2: init %i32 = call %bound_method.loc6_62.3(%N.loc6_6.1) [symbolic = %int.convert_checked.loc6_62.2 (constants.%int.convert_checked)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_42.2 (%array_type.6a2)) -> %i32 { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_42.1 (%array_type.6a2)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_61: Core.IntLiteral = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc6_61: Core.IntLiteral = name_ref N, %N.loc6_6.2 [symbolic = %N.loc6_6.1 (constants.%N)] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_62.1: = bound_method %N.ref.loc6_61, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_62.2: = bound_method %N.ref.loc6_61, %specific_fn [symbolic = %bound_method.loc6_62.3 (constants.%bound_method.ad4)] // CHECK:STDOUT: %int.convert_checked.loc6_62.1: init %i32 = call %bound_method.loc6_62.2(%N.ref.loc6_61) [symbolic = %int.convert_checked.loc6_62.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc6_62.1: %i32 = value_of_initializer %int.convert_checked.loc6_62.1 [symbolic = %int.convert_checked.loc6_62.2 (constants.%int.convert_checked)] @@ -545,7 +545,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc10_14.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc10_14.2: %i32 = converted %F.call, %.loc10_14.1 // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.1f9 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1f9, @Op.3(constants.%array_type.002) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1f9, @Op.2(constants.%array_type.002) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -553,14 +553,14 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%N -// CHECK:STDOUT: %array_type.loc6_42.2 => constants.%array_type.6a2 +// CHECK:STDOUT: %N.loc6_6.1 => constants.%N +// CHECK:STDOUT: %array_type.loc6_42.1 => constants.%array_type.6a2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9ee // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_3.1ba) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%int_3.1ba -// CHECK:STDOUT: %array_type.loc6_42.2 => constants.%array_type.002 +// CHECK:STDOUT: %N.loc6_6.1 => constants.%int_3.1ba +// CHECK:STDOUT: %array_type.loc6_42.1 => constants.%array_type.002 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a63 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -602,9 +602,9 @@ fn G() -> i32 { // CHECK:STDOUT: %array: %array_type.002 = tuple_value (%C.val, %C.val, %C.val) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%C, %int_3) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.2, @Destroy.impl(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.1, @Destroy.impl(%array_type.002) [concrete] // CHECK:STDOUT: %Op.1f9: %Op.type.85d = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1f9, @Op.2(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1f9, @Op.1(%array_type.002) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -634,7 +634,7 @@ fn G() -> i32 { // CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.261) = binding_pattern a [concrete] // CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.261) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %.loc6_36.1: type = splice_block %.loc6_36.3 [concrete = Core.IntLiteral] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, imports.%Core.IntLiteral [concrete = constants.%IntLiteral] @@ -642,14 +642,14 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc6_36.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc6_36.3: type = converted %int_literal.make_type, %.loc6_36.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_16.1: Core.IntLiteral = bind_symbolic_name N, 1 [symbolic = %N.loc6_16.2 (constants.%N)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_52.2 (%array_type.bb5) = value_param call_param0 -// CHECK:STDOUT: %.loc6_52: type = splice_block %array_type.loc6_52.1 [symbolic = %array_type.loc6_52.2 (constants.%array_type.bb5)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, %N.loc6_16.1 [symbolic = %N.loc6_16.2 (constants.%N)] -// CHECK:STDOUT: %array_type.loc6_52.1: type = array_type %N.ref, %T.ref [symbolic = %array_type.loc6_52.2 (constants.%array_type.bb5)] +// CHECK:STDOUT: %N.loc6_16.2: Core.IntLiteral = bind_symbolic_name N, 1 [symbolic = %N.loc6_16.1 (constants.%N)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_52.1 (%array_type.bb5) = value_param call_param0 +// CHECK:STDOUT: %.loc6_52: type = splice_block %array_type.loc6_52.2 [symbolic = %array_type.loc6_52.1 (constants.%array_type.bb5)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, %N.loc6_16.2 [symbolic = %N.loc6_16.1 (constants.%N)] +// CHECK:STDOUT: %array_type.loc6_52.2: type = array_type %N.ref, %T.ref [symbolic = %array_type.loc6_52.1 (constants.%array_type.bb5)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_52.2 (%array_type.bb5) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_52.1 (%array_type.bb5) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } @@ -663,16 +663,16 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6_6.1: type, %N.loc6_16.1: Core.IntLiteral) { -// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %N.loc6_16.2: Core.IntLiteral = bind_symbolic_name N, 1 [symbolic = %N.loc6_16.2 (constants.%N)] -// CHECK:STDOUT: %array_type.loc6_52.2: type = array_type %N.loc6_16.2, %T.loc6_6.2 [symbolic = %array_type.loc6_52.2 (constants.%array_type.bb5)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_52.2 [symbolic = %pattern_type (constants.%pattern_type.261)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type, %N.loc6_16.2: Core.IntLiteral) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %N.loc6_16.1: Core.IntLiteral = bind_symbolic_name N, 1 [symbolic = %N.loc6_16.1 (constants.%N)] +// CHECK:STDOUT: %array_type.loc6_52.1: type = array_type %N.loc6_16.1, %T.loc6_6.1 [symbolic = %array_type.loc6_52.1 (constants.%array_type.bb5)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_52.1 [symbolic = %pattern_type (constants.%pattern_type.261)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_52.2 [symbolic = %require_complete (constants.%require_complete.ec9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_52.1 [symbolic = %require_complete (constants.%require_complete.ec9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_52.2 (%array_type.bb5)) { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_52.1 (%array_type.bb5)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -716,7 +716,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc10: %array_type.002 = bind_value %a.ref // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc10) // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.1f9 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1f9, @Op.2(constants.%array_type.002) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1f9, @Op.1(constants.%array_type.002) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -724,16 +724,16 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T -// CHECK:STDOUT: %N.loc6_16.2 => constants.%N -// CHECK:STDOUT: %array_type.loc6_52.2 => constants.%array_type.bb5 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T +// CHECK:STDOUT: %N.loc6_16.1 => constants.%N +// CHECK:STDOUT: %array_type.loc6_52.1 => constants.%array_type.bb5 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.261 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C, constants.%int_3) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%C -// CHECK:STDOUT: %N.loc6_16.2 => constants.%int_3 -// CHECK:STDOUT: %array_type.loc6_52.2 => constants.%array_type.002 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%C +// CHECK:STDOUT: %N.loc6_16.1 => constants.%int_3 +// CHECK:STDOUT: %array_type.loc6_52.1 => constants.%array_type.002 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a63 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -765,17 +765,17 @@ fn G() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] @@ -793,13 +793,13 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.114: type = pattern_type %array_type.15a [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.3, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.3(%C) [concrete] -// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.3, @Destroy.impl(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.2, @Destroy.impl(%array_type.002) [concrete] // CHECK:STDOUT: %Op.1f9: %Op.type.85d = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.f55: = specific_function %Op.1f9, @Op.3(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.specific_fn.f55: = specific_function %Op.1f9, @Op.2(%array_type.002) [concrete] // CHECK:STDOUT: %complete_type.8eb: = complete_type_witness %array_type.15a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -834,17 +834,17 @@ fn G() -> i32 { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_32 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_32 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_29.2 (%array_type.9d4) = value_param call_param0 -// CHECK:STDOUT: %.loc6_29: type = splice_block %array_type.loc6_29.1 [symbolic = %array_type.loc6_29.2 (constants.%array_type.9d4)] { -// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_35: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_29.1 (%array_type.9d4) = value_param call_param0 +// CHECK:STDOUT: %.loc6_29: type = splice_block %array_type.loc6_29.2 [symbolic = %array_type.loc6_29.1 (constants.%array_type.9d4)] { +// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] -// CHECK:STDOUT: %array_type.loc6_29.1: type = array_type %int_2, %T.ref.loc6_25 [symbolic = %array_type.loc6_29.2 (constants.%array_type.9d4)] +// CHECK:STDOUT: %array_type.loc6_29.2: type = array_type %int_2, %T.ref.loc6_25 [symbolic = %array_type.loc6_29.1 (constants.%array_type.9d4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_29.2 (%array_type.9d4) = bind_name a, %a.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_29.1 (%array_type.9d4) = bind_name a, %a.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %return.patt: %pattern_type.c48 = return_slot_pattern [concrete] @@ -865,32 +865,32 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %array_type.loc6_29.2: type = array_type constants.%int_2, %T.loc6_6.2 [symbolic = %array_type.loc6_29.2 (constants.%array_type.9d4)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_29.2 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.a4c)] -// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %array_type.loc6_29.1: type = array_type constants.%int_2, %T.loc6_6.1 [symbolic = %array_type.loc6_29.1 (constants.%array_type.9d4)] +// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_29.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.a4c)] +// CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc6_32 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %array_type.loc6_29.2 [symbolic = %require_complete.loc6_17 (constants.%require_complete.d11)] +// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.d11)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_29.2 (%array_type.9d4)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_29.1 (%array_type.9d4)) -> @F.%T.loc6_6.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_29.2 (%array_type.9d4) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @F.%array_type.loc6_29.1 (%array_type.9d4) = name_ref a, %a // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_48.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_48.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc6_48.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_48.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_48.2: %i32 = converted %int_0, %.loc6_48.1 [concrete = constants.%int_0.6a9] -// CHECK:STDOUT: %.loc6_49.1: ref @F.%array_type.loc6_29.2 (%array_type.9d4) = value_as_ref %a.ref -// CHECK:STDOUT: %.loc6_49.2: ref @F.%T.loc6_6.2 (%T) = array_index %.loc6_49.1, %.loc6_48.2 -// CHECK:STDOUT: %.loc6_49.3: @F.%T.loc6_6.2 (%T) = bind_value %.loc6_49.2 +// CHECK:STDOUT: %.loc6_49.1: ref @F.%array_type.loc6_29.1 (%array_type.9d4) = value_as_ref %a.ref +// CHECK:STDOUT: %.loc6_49.2: ref @F.%T.loc6_6.1 (%T) = array_index %.loc6_49.1, %.loc6_48.2 +// CHECK:STDOUT: %.loc6_49.3: @F.%T.loc6_6.1 (%T) = bind_value %.loc6_49.2 // CHECK:STDOUT: return %.loc6_49.3 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -934,12 +934,12 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc21: %array_type.15a = converted %a.ref, [concrete = ] // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn() to %.loc8 // CHECK:STDOUT: %Op.bound.loc8: = bound_method %.loc8, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8: %ptr.019 = addr_of %.loc8 // CHECK:STDOUT: %no_op.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %Op.bound.loc10: = bound_method %a.var, constants.%Op.1f9 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.1f9, @Op.3(constants.%array_type.002) [concrete = constants.%Op.specific_fn.f55] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.1f9, @Op.2(constants.%array_type.002) [concrete = constants.%Op.specific_fn.f55] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10: %ptr.301 = addr_of %a.var // CHECK:STDOUT: %no_op.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) @@ -947,15 +947,15 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T -// CHECK:STDOUT: %array_type.loc6_29.2 => constants.%array_type.9d4 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T +// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.9d4 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.a4c // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%C -// CHECK:STDOUT: %array_type.loc6_29.2 => constants.%array_type.15a +// CHECK:STDOUT: %T.loc6_6.1 => constants.%C +// CHECK:STDOUT: %array_type.loc6_29.1 => constants.%array_type.15a // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.114 // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.c48 // CHECK:STDOUT: @@ -989,17 +989,17 @@ fn G() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.41f: = bound_method %N, %Convert.956 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.ad4: = bound_method %N, %Convert.specific_fn [symbolic] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.ad4(%N) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -1018,9 +1018,9 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.a63: type = pattern_type %array_type.002 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_3.1ba) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.419: type = fn_type @Op.3, @Destroy.impl(%array_type.fe4) [concrete] +// CHECK:STDOUT: %Op.type.419: type = fn_type @Op.2, @Destroy.impl(%array_type.fe4) [concrete] // CHECK:STDOUT: %Op.11a: %Op.type.419 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.11a, @Op.3(%array_type.fe4) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.11a, @Op.2(%array_type.fe4) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -1071,14 +1071,14 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc7_26.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc7_26.3: type = converted %int_literal.make_type, %.loc7_26.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc7_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc7_6.2 (constants.%N)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc7_42.2 (%array_type.6a2) = value_param call_param0 -// CHECK:STDOUT: %.loc7_42: type = splice_block %array_type.loc7_42.1 [symbolic = %array_type.loc7_42.2 (constants.%array_type.6a2)] { +// CHECK:STDOUT: %N.loc7_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc7_6.1 (constants.%N)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc7_42.1 (%array_type.6a2) = value_param call_param0 +// CHECK:STDOUT: %.loc7_42: type = splice_block %array_type.loc7_42.2 [symbolic = %array_type.loc7_42.1 (constants.%array_type.6a2)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %N.ref.loc7_41: Core.IntLiteral = name_ref N, %N.loc7_6.1 [symbolic = %N.loc7_6.2 (constants.%N)] -// CHECK:STDOUT: %array_type.loc7_42.1: type = array_type %N.ref.loc7_41, %C.ref [symbolic = %array_type.loc7_42.2 (constants.%array_type.6a2)] +// CHECK:STDOUT: %N.ref.loc7_41: Core.IntLiteral = name_ref N, %N.loc7_6.2 [symbolic = %N.loc7_6.1 (constants.%N)] +// CHECK:STDOUT: %array_type.loc7_42.2: type = array_type %N.ref.loc7_41, %C.ref [symbolic = %array_type.loc7_42.1 (constants.%array_type.6a2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc7_42.2 (%array_type.6a2) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc7_42.1 (%array_type.6a2) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -1111,23 +1111,23 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc7_6.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc7_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc7_6.2 (constants.%N)] -// CHECK:STDOUT: %array_type.loc7_42.2: type = array_type %N.loc7_6.2, constants.%C [symbolic = %array_type.loc7_42.2 (constants.%array_type.6a2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_42.2 [symbolic = %pattern_type (constants.%pattern_type.9ee)] +// CHECK:STDOUT: generic fn @F(%N.loc7_6.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc7_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc7_6.1 (constants.%N)] +// CHECK:STDOUT: %array_type.loc7_42.1: type = array_type %N.loc7_6.1, constants.%C [symbolic = %array_type.loc7_42.1 (constants.%array_type.6a2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_42.1 [symbolic = %pattern_type (constants.%pattern_type.9ee)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc7_42.2 [symbolic = %require_complete (constants.%require_complete.d82)] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc7_6.2, constants.%Convert.956 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] -// CHECK:STDOUT: %bound_method.loc7_62.3: = bound_method %N.loc7_6.2, constants.%Convert.specific_fn [symbolic = %bound_method.loc7_62.3 (constants.%bound_method.ad4)] -// CHECK:STDOUT: %int.convert_checked.loc7_62.2: init %i32 = call %bound_method.loc7_62.3(%N.loc7_6.2) [symbolic = %int.convert_checked.loc7_62.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc7_42.1 [symbolic = %require_complete (constants.%require_complete.d82)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc7_6.1, constants.%Convert.956 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] +// CHECK:STDOUT: %bound_method.loc7_62.3: = bound_method %N.loc7_6.1, constants.%Convert.specific_fn [symbolic = %bound_method.loc7_62.3 (constants.%bound_method.ad4)] +// CHECK:STDOUT: %int.convert_checked.loc7_62.2: init %i32 = call %bound_method.loc7_62.3(%N.loc7_6.1) [symbolic = %int.convert_checked.loc7_62.2 (constants.%int.convert_checked)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc7_42.2 (%array_type.6a2)) -> %i32 { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc7_42.1 (%array_type.6a2)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc7_61: Core.IntLiteral = name_ref N, %N.loc7_6.1 [symbolic = %N.loc7_6.2 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc7_61: Core.IntLiteral = name_ref N, %N.loc7_6.2 [symbolic = %N.loc7_6.1 (constants.%N)] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_62.1: = bound_method %N.ref.loc7_61, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_62.2: = bound_method %N.ref.loc7_61, %specific_fn [symbolic = %bound_method.loc7_62.3 (constants.%bound_method.ad4)] // CHECK:STDOUT: %int.convert_checked.loc7_62.1: init %i32 = call %bound_method.loc7_62.2(%N.ref.loc7_61) [symbolic = %int.convert_checked.loc7_62.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc7_62.1: %i32 = value_of_initializer %int.convert_checked.loc7_62.1 [symbolic = %int.convert_checked.loc7_62.2 (constants.%int.convert_checked)] @@ -1176,7 +1176,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc22_14.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc22_14.2: %i32 = converted %F.call, %.loc22_14.1 // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.11a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.11a, @Op.3(constants.%array_type.fe4) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.11a, @Op.2(constants.%array_type.fe4) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.af6 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1184,14 +1184,14 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.loc7_6.2 => constants.%N -// CHECK:STDOUT: %array_type.loc7_42.2 => constants.%array_type.6a2 +// CHECK:STDOUT: %N.loc7_6.1 => constants.%N +// CHECK:STDOUT: %array_type.loc7_42.1 => constants.%array_type.6a2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9ee // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_3.1ba) { -// CHECK:STDOUT: %N.loc7_6.2 => constants.%int_3.1ba -// CHECK:STDOUT: %array_type.loc7_42.2 => constants.%array_type.002 +// CHECK:STDOUT: %N.loc7_6.1 => constants.%int_3.1ba +// CHECK:STDOUT: %array_type.loc7_42.1 => constants.%array_type.002 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a63 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1248,9 +1248,9 @@ fn G() -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %array: %array_type.002 = tuple_value (%C.val, %C.val, %C.val) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.3, @Destroy.impl(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.type.85d: type = fn_type @Op.2, @Destroy.impl(%array_type.002) [concrete] // CHECK:STDOUT: %Op.1f9: %Op.type.85d = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1f9, @Op.3(%array_type.002) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1f9, @Op.2(%array_type.002) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1290,21 +1290,21 @@ fn G() -> i32 { // CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %a.param: @F.%array_type.loc6_28.2 (%array_type.b2f) = value_param call_param0 -// CHECK:STDOUT: %.loc6_28: type = splice_block %array_type.loc6_28.1 [symbolic = %array_type.loc6_28.2 (constants.%array_type.b2f)] { +// CHECK:STDOUT: %N.loc6_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.1 (constants.%N.51e)] +// CHECK:STDOUT: %a.param: @F.%array_type.loc6_28.1 (%array_type.b2f) = value_param call_param0 +// CHECK:STDOUT: %.loc6_28: type = splice_block %array_type.loc6_28.2 [symbolic = %array_type.loc6_28.1 (constants.%array_type.b2f)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %N.ref.loc6_27: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.ref.loc6_27: %i32 = name_ref N, %N.loc6_6.2 [symbolic = %N.loc6_6.1 (constants.%N.51e)] // CHECK:STDOUT: %impl.elem0: %.0ea = impl_witness_access constants.%ImplicitAs.impl_witness.a11, element0 [concrete = constants.%Convert.960] -// CHECK:STDOUT: %bound_method.loc6_27.1: = bound_method %N.ref.loc6_27, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] +// CHECK:STDOUT: %bound_method.loc6_27.2: = bound_method %N.ref.loc6_27, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_27.2: = bound_method %N.ref.loc6_27, %specific_fn [symbolic = %bound_method.loc6_27.3 (constants.%bound_method)] -// CHECK:STDOUT: %int.convert_checked.loc6_27.1: init Core.IntLiteral = call %bound_method.loc6_27.2(%N.ref.loc6_27) [symbolic = %int.convert_checked.loc6_27.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %.loc6_27.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc6_27.1 [symbolic = %int.convert_checked.loc6_27.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %.loc6_27.2: Core.IntLiteral = converted %N.ref.loc6_27, %.loc6_27.1 [symbolic = %int.convert_checked.loc6_27.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc6_28.1: type = array_type %.loc6_27.2, %C.ref [symbolic = %array_type.loc6_28.2 (constants.%array_type.b2f)] +// CHECK:STDOUT: %bound_method.loc6_27.3: = bound_method %N.ref.loc6_27, %specific_fn [symbolic = %bound_method.loc6_27.1 (constants.%bound_method)] +// CHECK:STDOUT: %int.convert_checked.loc6_27.2: init Core.IntLiteral = call %bound_method.loc6_27.3(%N.ref.loc6_27) [symbolic = %int.convert_checked.loc6_27.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %.loc6_27.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc6_27.2 [symbolic = %int.convert_checked.loc6_27.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %.loc6_27.2: Core.IntLiteral = converted %N.ref.loc6_27, %.loc6_27.1 [symbolic = %int.convert_checked.loc6_27.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %array_type.loc6_28.2: type = array_type %.loc6_27.2, %C.ref [symbolic = %array_type.loc6_28.1 (constants.%array_type.b2f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%array_type.loc6_28.2 (%array_type.b2f) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%array_type.loc6_28.1 (%array_type.b2f) = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -1328,20 +1328,20 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.51e)] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_6.2, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] -// CHECK:STDOUT: %bound_method.loc6_27.3: = bound_method %N.loc6_6.2, constants.%Convert.specific_fn [symbolic = %bound_method.loc6_27.3 (constants.%bound_method)] -// CHECK:STDOUT: %int.convert_checked.loc6_27.2: init Core.IntLiteral = call %bound_method.loc6_27.3(%N.loc6_6.2) [symbolic = %int.convert_checked.loc6_27.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc6_28.2: type = array_type %int.convert_checked.loc6_27.2, constants.%C [symbolic = %array_type.loc6_28.2 (constants.%array_type.b2f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_28.2 [symbolic = %pattern_type (constants.%pattern_type.ac2)] +// CHECK:STDOUT: generic fn @F(%N.loc6_6.2: %i32) { +// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.1 (constants.%N.51e)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc6_6.1, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] +// CHECK:STDOUT: %bound_method.loc6_27.1: = bound_method %N.loc6_6.1, constants.%Convert.specific_fn [symbolic = %bound_method.loc6_27.1 (constants.%bound_method)] +// CHECK:STDOUT: %int.convert_checked.loc6_27.1: init Core.IntLiteral = call %bound_method.loc6_27.1(%N.loc6_6.1) [symbolic = %int.convert_checked.loc6_27.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %array_type.loc6_28.1: type = array_type %int.convert_checked.loc6_27.1, constants.%C [symbolic = %array_type.loc6_28.1 (constants.%array_type.b2f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_28.1 [symbolic = %pattern_type (constants.%pattern_type.ac2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_28.2 [symbolic = %require_complete (constants.%require_complete.cde)] +// CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_28.1 [symbolic = %require_complete (constants.%require_complete.cde)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_28.2 (%array_type.b2f)) -> %i32 { +// CHECK:STDOUT: fn(%a.param: @F.%array_type.loc6_28.1 (%array_type.b2f)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_47: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.ref.loc6_47: %i32 = name_ref N, %N.loc6_6.2 [symbolic = %N.loc6_6.1 (constants.%N.51e)] // CHECK:STDOUT: return %N.ref.loc6_47 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1381,7 +1381,7 @@ fn G() -> i32 { // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %a.ref: ref %array_type.002 = name_ref a, %a // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.1f9 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1f9, @Op.3(constants.%array_type.002) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1f9, @Op.2(constants.%array_type.002) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1389,11 +1389,11 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N.51e) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc6_6.1 => constants.%N.51e // CHECK:STDOUT: %Convert.bound => constants.%Convert.bound -// CHECK:STDOUT: %bound_method.loc6_27.3 => constants.%bound_method -// CHECK:STDOUT: %int.convert_checked.loc6_27.2 => constants.%int.convert_checked -// CHECK:STDOUT: %array_type.loc6_28.2 => constants.%array_type.b2f +// CHECK:STDOUT: %bound_method.loc6_27.1 => constants.%bound_method +// CHECK:STDOUT: %int.convert_checked.loc6_27.1 => constants.%int.convert_checked +// CHECK:STDOUT: %array_type.loc6_28.1 => constants.%array_type.b2f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ac2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/binding_pattern.carbon b/toolchain/check/testdata/deduce/binding_pattern.carbon index 230045517577..1eb11be67265 100644 --- a/toolchain/check/testdata/deduce/binding_pattern.carbon +++ b/toolchain/check/testdata/deduce/binding_pattern.carbon @@ -118,22 +118,22 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc8_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_6.2 (constants.%U)] -// CHECK:STDOUT: %V.loc8_16.1: type = bind_symbolic_name V, 1 [symbolic = %V.loc8_16.2 (constants.%V)] +// CHECK:STDOUT: %U.loc8_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_6.1 (constants.%U)] +// CHECK:STDOUT: %V.loc8_16.2: type = bind_symbolic_name V, 1 [symbolic = %V.loc8_16.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Create.type: type = fn_type @Create, @C(%T.loc4_9.2) [symbolic = %Create.type (constants.%Create.type.f31)] +// CHECK:STDOUT: %Create.type: type = fn_type @Create, @C(%T.loc4_9.1) [symbolic = %Create.type (constants.%Create.type.f31)] // CHECK:STDOUT: %Create: @C.%Create.type (%Create.type.f31) = struct_value () [symbolic = %Create (constants.%Create.cc8)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -142,7 +142,7 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %value.param_patt: @Create.%pattern_type (%pattern_type.7dcd0a.1) = value_param_pattern %value.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: @Create.%T (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %value: @Create.%T (%T) = bind_name value, %value.param // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] @@ -156,7 +156,7 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Create(@C.%T.loc4_9.1: type) { +// CHECK:STDOUT: generic fn @Create(@C.%T.loc4_9.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: @@ -169,26 +169,26 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%U.loc8_6.1: type, %V.loc8_16.1: type) { -// CHECK:STDOUT: %U.loc8_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_6.2 (constants.%U)] -// CHECK:STDOUT: %V.loc8_16.2: type = bind_symbolic_name V, 1 [symbolic = %V.loc8_16.2 (constants.%V)] +// CHECK:STDOUT: generic fn @F(%U.loc8_6.2: type, %V.loc8_16.2: type) { +// CHECK:STDOUT: %U.loc8_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_6.1 (constants.%U)] +// CHECK:STDOUT: %V.loc8_16.1: type = bind_symbolic_name V, 1 [symbolic = %V.loc8_16.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.loc19_6.2: type = class_type @C, @C(%V.loc8_16.2) [symbolic = %C.loc19_6.2 (constants.%C.5e5)] +// CHECK:STDOUT: %C.loc19_6.2: type = class_type @C, @C(%V.loc8_16.1) [symbolic = %C.loc19_6.2 (constants.%C.5e5)] // CHECK:STDOUT: %require_complete.loc19_7: = require_complete_type %C.loc19_6.2 [symbolic = %require_complete.loc19_7 (constants.%require_complete.d93)] -// CHECK:STDOUT: %Create.type: type = fn_type @Create, @C(%V.loc8_16.2) [symbolic = %Create.type (constants.%Create.type.beb)] +// CHECK:STDOUT: %Create.type: type = fn_type @Create, @C(%V.loc8_16.1) [symbolic = %Create.type (constants.%Create.type.beb)] // CHECK:STDOUT: %Create: @F.%Create.type (%Create.type.beb) = struct_value () [symbolic = %Create (constants.%Create.dca)] -// CHECK:STDOUT: %Create.specific_fn.loc19_7.2: = specific_function %Create, @Create(%V.loc8_16.2) [symbolic = %Create.specific_fn.loc19_7.2 (constants.%Create.specific_fn)] -// CHECK:STDOUT: %require_complete.loc19_16.1: = require_complete_type %V.loc8_16.2 [symbolic = %require_complete.loc19_16.1 (constants.%require_complete.b54)] -// CHECK:STDOUT: %ImplicitAs.type.loc19_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.loc8_16.2)> [symbolic = %ImplicitAs.type.loc19_16.2 (constants.%ImplicitAs.type.d88)] +// CHECK:STDOUT: %Create.specific_fn.loc19_7.2: = specific_function %Create, @Create(%V.loc8_16.1) [symbolic = %Create.specific_fn.loc19_7.2 (constants.%Create.specific_fn)] +// CHECK:STDOUT: %require_complete.loc19_16.1: = require_complete_type %V.loc8_16.1 [symbolic = %require_complete.loc19_16.1 (constants.%require_complete.b54)] +// CHECK:STDOUT: %ImplicitAs.type.loc19_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.loc8_16.1)> [symbolic = %ImplicitAs.type.loc19_16.2 (constants.%ImplicitAs.type.d88)] // CHECK:STDOUT: %require_complete.loc19_16.2: = require_complete_type %ImplicitAs.type.loc19_16.2 [symbolic = %require_complete.loc19_16.2 (constants.%require_complete.6c8)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.loc8_16.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.5fe)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.loc8_16.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.5fe)] // CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.5fe) = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic = %assoc0 (constants.%assoc0.a0b)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %V.ref: type = name_ref V, %V.loc8_16.1 [symbolic = %V.loc8_16.2 (constants.%V)] +// CHECK:STDOUT: %V.ref: type = name_ref V, %V.loc8_16.2 [symbolic = %V.loc8_16.1 (constants.%V)] // CHECK:STDOUT: %C.loc19_6.1: type = class_type @C, @C(constants.%V) [symbolic = %C.loc19_6.2 (constants.%C.5e5)] // CHECK:STDOUT: %.loc19_7: @F.%Create.type (%Create.type.beb) = specific_constant @C.%Create.decl, @C(constants.%V) [symbolic = %Create (constants.%Create.dca)] // CHECK:STDOUT: %Create.ref: @F.%Create.type (%Create.type.beb) = name_ref Create, %.loc19_7 [symbolic = %Create (constants.%Create.dca)] @@ -197,14 +197,14 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %ImplicitAs.type.loc19_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%V)> [symbolic = %ImplicitAs.type.loc19_16.2 (constants.%ImplicitAs.type.d88)] // CHECK:STDOUT: %.loc19_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.5fe) = specific_constant imports.%Core.import_ref.492, @ImplicitAs(constants.%V) [symbolic = %assoc0 (constants.%assoc0.a0b)] // CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.5fe) = name_ref Convert, %.loc19_16.2 [symbolic = %assoc0 (constants.%assoc0.a0b)] -// CHECK:STDOUT: %.loc19_16.3: @F.%V.loc8_16.2 (%V) = converted %.loc19_16.1, [concrete = ] +// CHECK:STDOUT: %.loc19_16.3: @F.%V.loc8_16.1 (%V) = converted %.loc19_16.1, [concrete = ] // CHECK:STDOUT: %Create.call: init %empty_tuple.type = call %Create.specific_fn.loc19_7.1() // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Create.type => constants.%Create.type.f31 @@ -217,12 +217,12 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%U, constants.%V) { -// CHECK:STDOUT: %U.loc8_6.2 => constants.%U -// CHECK:STDOUT: %V.loc8_16.2 => constants.%V +// CHECK:STDOUT: %U.loc8_6.1 => constants.%U +// CHECK:STDOUT: %V.loc8_16.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%V) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%V +// CHECK:STDOUT: %T.loc4_9.1 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Create.type => constants.%Create.type.beb @@ -303,13 +303,13 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %V.patt: %pattern_type.344 = symbolic_binding_pattern V, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc9_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_6.2 (constants.%U)] +// CHECK:STDOUT: %U.loc9_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_6.1 (constants.%U)] // CHECK:STDOUT: %.loc9_25.1: type = splice_block %.loc9_25.2 [concrete = constants.%type_where] { // CHECK:STDOUT: %.Self: type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc9_32.1: %empty_struct_type = struct_literal () @@ -322,15 +322,15 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: requirement_impls %.loc9_32.2, %ImplicitAs.type.loc9 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc9_16.1: %type_where = bind_symbolic_name V, 1 [symbolic = %V.loc9_16.2 (constants.%V)] +// CHECK:STDOUT: %V.loc9_16.2: %type_where = bind_symbolic_name V, 1 [symbolic = %V.loc9_16.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Create.type: type = fn_type @Create, @C(%T.loc4_9.2) [symbolic = %Create.type (constants.%Create.type.f31)] +// CHECK:STDOUT: %Create.type: type = fn_type @Create, @C(%T.loc4_9.1) [symbolic = %Create.type (constants.%Create.type.f31)] // CHECK:STDOUT: %Create: @C.%Create.type (%Create.type.f31) = struct_value () [symbolic = %Create (constants.%Create.cc8)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -339,7 +339,7 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %value.param_patt: @Create.%pattern_type (%pattern_type.7dcd0a.1) = value_param_pattern %value.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %value.param: @Create.%T (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @C.%T.loc4_9.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %value: @Create.%T (%T) = bind_name value, %value.param // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] @@ -353,7 +353,7 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Create(@C.%T.loc4_9.1: type) { +// CHECK:STDOUT: generic fn @Create(@C.%T.loc4_9.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: @@ -366,12 +366,12 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%U.loc9_6.1: type, %V.loc9_16.1: %type_where) { -// CHECK:STDOUT: %U.loc9_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_6.2 (constants.%U)] -// CHECK:STDOUT: %V.loc9_16.2: %type_where = bind_symbolic_name V, 1 [symbolic = %V.loc9_16.2 (constants.%V)] +// CHECK:STDOUT: generic fn @F(%U.loc9_6.2: type, %V.loc9_16.2: %type_where) { +// CHECK:STDOUT: %U.loc9_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_6.1 (constants.%U)] +// CHECK:STDOUT: %V.loc9_16.1: %type_where = bind_symbolic_name V, 1 [symbolic = %V.loc9_16.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %V.as_type.loc20_6.2: type = facet_access_type %V.loc9_16.2 [symbolic = %V.as_type.loc20_6.2 (constants.%V.as_type)] +// CHECK:STDOUT: %V.as_type.loc20_6.2: type = facet_access_type %V.loc9_16.1 [symbolic = %V.as_type.loc20_6.2 (constants.%V.as_type)] // CHECK:STDOUT: %C.loc20_6.2: type = class_type @C, @C(%V.as_type.loc20_6.2) [symbolic = %C.loc20_6.2 (constants.%C.cd6)] // CHECK:STDOUT: %require_complete.loc20_7: = require_complete_type %C.loc20_6.2 [symbolic = %require_complete.loc20_7 (constants.%require_complete.558)] // CHECK:STDOUT: %Create.type: type = fn_type @Create, @C(%V.as_type.loc20_6.2) [symbolic = %Create.type (constants.%Create.type.ff1)] @@ -386,7 +386,7 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %V.ref: %type_where = name_ref V, %V.loc9_16.1 [symbolic = %V.loc9_16.2 (constants.%V)] +// CHECK:STDOUT: %V.ref: %type_where = name_ref V, %V.loc9_16.2 [symbolic = %V.loc9_16.1 (constants.%V)] // CHECK:STDOUT: %V.as_type.loc20_6.1: type = facet_access_type %V.ref [symbolic = %V.as_type.loc20_6.2 (constants.%V.as_type)] // CHECK:STDOUT: %.loc20_6: type = converted %V.ref, %V.as_type.loc20_6.1 [symbolic = %V.as_type.loc20_6.2 (constants.%V.as_type)] // CHECK:STDOUT: %C.loc20_6.1: type = class_type @C, @C(constants.%V.as_type) [symbolic = %C.loc20_6.2 (constants.%C.cd6)] @@ -404,7 +404,7 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Create.type => constants.%Create.type.f31 @@ -417,12 +417,12 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%U, constants.%V) { -// CHECK:STDOUT: %U.loc9_6.2 => constants.%U -// CHECK:STDOUT: %V.loc9_16.2 => constants.%V +// CHECK:STDOUT: %U.loc9_6.1 => constants.%U +// CHECK:STDOUT: %V.loc9_16.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%V.as_type) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%V.as_type +// CHECK:STDOUT: %T.loc4_9.1 => constants.%V.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Create.type => constants.%Create.type.ff1 diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index 215dda2b95f6..621fb1e43ef2 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -95,10 +95,10 @@ fn G() -> i32 { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn.c4a: = specific_function %F, @F(%D) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.2, @Destroy.impl(%D) [concrete] +// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.1, @Destroy.impl(%D) [concrete] // CHECK:STDOUT: %Op.2d4: %Op.type.548 = struct_value () [concrete] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.2(%D) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.1(%D) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -122,7 +122,7 @@ fn G() -> i32 { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { @@ -132,17 +132,17 @@ fn G() -> i32 { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_25 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_25 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc7_28: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%C.loc7_22.2 (%C.f2e) = value_param call_param0 -// CHECK:STDOUT: %.loc7_22: type = splice_block %C.loc7_22.1 [symbolic = %C.loc7_22.2 (constants.%C.f2e)] { +// CHECK:STDOUT: %T.ref.loc7_28: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %p.param: @F.%C.loc7_22.1 (%C.f2e) = value_param call_param0 +// CHECK:STDOUT: %.loc7_22: type = splice_block %C.loc7_22.2 [symbolic = %C.loc7_22.1 (constants.%C.f2e)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// 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_22.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_22.2 (constants.%C.f2e)] +// CHECK:STDOUT: %T.ref.loc7_21: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %C.loc7_22.2: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_22.1 (constants.%C.f2e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%C.loc7_22.2 (%C.f2e) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc7_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc7_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%C.loc7_22.1 (%C.f2e) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc7_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc7_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %p.patt: %pattern_type.7f8 = binding_pattern p [concrete] @@ -163,8 +163,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -187,25 +187,25 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// 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_22.2: type = class_type @C, @C(%T.loc7_6.2) [symbolic = %C.loc7_22.2 (constants.%C.f2e)] -// CHECK:STDOUT: %pattern_type.loc7_16: type = pattern_type %C.loc7_22.2 [symbolic = %pattern_type.loc7_16 (constants.%pattern_type.e5e)] -// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.loc7_6.2 [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.2: type) { +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %C.loc7_22.1: type = class_type @C, @C(%T.loc7_6.1) [symbolic = %C.loc7_22.1 (constants.%C.f2e)] +// CHECK:STDOUT: %pattern_type.loc7_16: type = pattern_type %C.loc7_22.1 [symbolic = %pattern_type.loc7_16 (constants.%pattern_type.e5e)] +// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.loc7_6.1 [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_25: = require_complete_type %T.loc7_6.2 [symbolic = %require_complete.loc7_25 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type %C.loc7_22.2 [symbolic = %require_complete.loc7_17 (constants.%require_complete.389)] -// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] +// CHECK:STDOUT: %require_complete.loc7_25: = require_complete_type %T.loc7_6.1 [symbolic = %require_complete.loc7_25 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type %C.loc7_22.1 [symbolic = %require_complete.loc7_17 (constants.%require_complete.389)] +// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.1) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%C.loc7_22.2 (%C.f2e)) -> @F.%T.loc7_6.2 (%T) { +// CHECK:STDOUT: fn(%p.param: @F.%C.loc7_22.1 (%C.f2e)) -> @F.%T.loc7_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%C.loc7_22.2 (%C.f2e) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%C.loc7_22.1 (%C.f2e) = name_ref p, %p // CHECK:STDOUT: %F.specific_fn.loc7_39.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] -// CHECK:STDOUT: %F.call: init @F.%T.loc7_6.2 (%T) = call %F.specific_fn.loc7_39.1(%p.ref) -// CHECK:STDOUT: %.loc7_43.1: @F.%T.loc7_6.2 (%T) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc7_43.2: @F.%T.loc7_6.2 (%T) = converted %F.call, %.loc7_43.1 +// CHECK:STDOUT: %F.call: init @F.%T.loc7_6.1 (%T) = call %F.specific_fn.loc7_39.1(%p.ref) +// CHECK:STDOUT: %.loc7_43.1: @F.%T.loc7_6.1 (%T) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc7_43.2: @F.%T.loc7_6.1 (%T) = converted %F.call, %.loc7_43.1 // CHECK:STDOUT: return %.loc7_43.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -218,7 +218,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc9_15: ref %D = splice_block %return {} // CHECK:STDOUT: %F.call: init %D = call %F.specific_fn(%p.ref) to %.loc9_15 // CHECK:STDOUT: %Op.bound: = bound_method %.loc9_15, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc9_15, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc9_15 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -226,14 +226,14 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%T -// CHECK:STDOUT: %C.loc7_22.2 => constants.%C.f2e +// CHECK:STDOUT: %T.loc7_6.1 => constants.%T +// CHECK:STDOUT: %C.loc7_22.1 => constants.%C.f2e // CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.e5e // CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.7dc // CHECK:STDOUT: @@ -244,14 +244,14 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%D) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%D +// CHECK:STDOUT: %T.loc4_9.1 => constants.%D // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%D) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%D -// CHECK:STDOUT: %C.loc7_22.2 => constants.%C.131 +// CHECK:STDOUT: %T.loc7_6.1 => constants.%D +// CHECK:STDOUT: %C.loc7_22.1 => constants.%C.131 // CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.7f8 // CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.510 // CHECK:STDOUT: @@ -280,10 +280,10 @@ fn G() -> i32 { // CHECK:STDOUT: %require_complete.1c8: = require_complete_type %I.ff1 [symbolic] // CHECK:STDOUT: %F.specific_fn.ef1: = specific_function %F, @F(%T) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: %I.ed8: type = class_type @I, @I(%C) [concrete] // CHECK:STDOUT: %pattern_type.917: type = pattern_type %I.ed8 [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -312,7 +312,7 @@ fn G() -> i32 { // CHECK:STDOUT: %I.decl: %I.type = class_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { @@ -323,14 +323,14 @@ fn G() -> i32 { // CHECK:STDOUT: %return.param_patt: %pattern_type.c48 = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%I.loc7_22.2 (%I.ff1) = value_param call_param0 -// CHECK:STDOUT: %.loc7_22: type = splice_block %I.loc7_22.1 [symbolic = %I.loc7_22.2 (constants.%I.ff1)] { +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %p.param: @F.%I.loc7_22.1 (%I.ff1) = value_param call_param0 +// CHECK:STDOUT: %.loc7_22: type = splice_block %I.loc7_22.2 [symbolic = %I.loc7_22.1 (constants.%I.ff1)] { // CHECK:STDOUT: %I.ref: %I.type = name_ref I, file.%I.decl [concrete = constants.%I.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %I.loc7_22.1: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_22.2 (constants.%I.ff1)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %I.loc7_22.2: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_22.1 (constants.%I.ff1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%I.loc7_22.2 (%I.ff1) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%I.loc7_22.1 (%I.ff1) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref %C = out_param call_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param // CHECK:STDOUT: } @@ -353,8 +353,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @I(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -377,24 +377,24 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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_22.2: type = class_type @I, @I(%T.loc7_6.2) [symbolic = %I.loc7_22.2 (constants.%I.ff1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %I.loc7_22.2 [symbolic = %pattern_type (constants.%pattern_type.576)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.2: type) { +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %I.loc7_22.1: type = class_type @I, @I(%T.loc7_6.1) [symbolic = %I.loc7_22.1 (constants.%I.ff1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %I.loc7_22.1 [symbolic = %pattern_type (constants.%pattern_type.576)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %I.loc7_22.2 [symbolic = %require_complete (constants.%require_complete.1c8)] -// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %I.loc7_22.1 [symbolic = %require_complete (constants.%require_complete.1c8)] +// CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.1) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%I.loc7_22.2 (%I.ff1)) -> %return.param: %C { +// CHECK:STDOUT: fn(%p.param: @F.%I.loc7_22.1 (%I.ff1)) -> %return.param: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%I.loc7_22.2 (%I.ff1) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%I.loc7_22.1 (%I.ff1) = name_ref p, %p // CHECK:STDOUT: %F.specific_fn.loc7_39.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: %.loc7_25: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn.loc7_39.1(%p.ref) to %.loc7_25 // CHECK:STDOUT: %Op.bound: = bound_method %.loc7_25, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc7_25, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc7_25 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -410,7 +410,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc9_15: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc9_15 // CHECK:STDOUT: %Op.bound: = bound_method %.loc9_15, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc9_15, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc9_15 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -418,14 +418,14 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%T -// CHECK:STDOUT: %I.loc7_22.2 => constants.%I.ff1 +// CHECK:STDOUT: %T.loc7_6.1 => constants.%T +// CHECK:STDOUT: %I.loc7_22.1 => constants.%I.ff1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.576 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -434,14 +434,14 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%C) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%C +// CHECK:STDOUT: %T.loc4_9.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%C -// CHECK:STDOUT: %I.loc7_22.2 => constants.%I.ed8 +// CHECK:STDOUT: %T.loc7_6.1 => constants.%C +// CHECK:STDOUT: %I.loc7_22.1 => constants.%I.ed8 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.917 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -532,7 +532,7 @@ fn G() -> i32 { // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} @@ -544,23 +544,23 @@ fn G() -> i32 { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc13_48 (%pattern_type.65c) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc13_48 (%pattern_type.65c) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// 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: %T.ref.loc13_52: type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T)] +// CHECK:STDOUT: %U.ref.loc13_55: type = name_ref U, %U.loc13_16.2 [symbolic = %U.loc13_16.1 (constants.%U)] // CHECK:STDOUT: %.loc13_56.1: %tuple.type.24b = tuple_literal (%T.ref.loc13_52, %U.ref.loc13_55) // CHECK:STDOUT: %.loc13_56.2: type = converted %.loc13_56.1, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] -// CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] -// CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %p.param: @F.%Inner.loc13_45.2 (%Inner.c71) = value_param call_param0 -// CHECK:STDOUT: %.loc13_45: type = splice_block %Inner.loc13_45.1 [symbolic = %Inner.loc13_45.2 (constants.%Inner.c71)] { +// CHECK:STDOUT: %T.loc13_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc13_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.1 (constants.%U)] +// CHECK:STDOUT: %p.param: @F.%Inner.loc13_45.1 (%Inner.c71) = value_param call_param0 +// CHECK:STDOUT: %.loc13_45: type = splice_block %Inner.loc13_45.2 [symbolic = %Inner.loc13_45.1 (constants.%Inner.c71)] { // CHECK:STDOUT: %Outer.ref: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic] -// 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_36.1: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc13_36.2 (constants.%Outer.9d6)] +// CHECK:STDOUT: %T.ref.loc13_35: type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T)] +// CHECK:STDOUT: %Outer.loc13_36.2: type = class_type @Outer, @Outer(constants.%T) [symbolic = %Outer.loc13_36.1 (constants.%Outer.9d6)] // CHECK:STDOUT: %.loc13_37: @F.%Inner.type (%Inner.type.eae) = specific_constant @Outer.%Inner.decl, @Outer(constants.%T) [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: %Inner.ref: @F.%Inner.type (%Inner.type.eae) = name_ref Inner, %.loc13_37 [symbolic = %Inner.generic (constants.%Inner.generic.137)] -// 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_45.1: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_45.2 (constants.%Inner.c71)] +// CHECK:STDOUT: %U.ref.loc13_44: type = name_ref U, %U.loc13_16.2 [symbolic = %U.loc13_16.1 (constants.%U)] +// CHECK:STDOUT: %Inner.loc13_45.2: type = class_type @Inner, @Inner(constants.%T, constants.%U) [symbolic = %Inner.loc13_45.1 (constants.%Inner.c71)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%Inner.loc13_45.2 (%Inner.c71) = bind_name p, %p.param +// CHECK:STDOUT: %p: @F.%Inner.loc13_45.1 (%Inner.c71) = bind_name p, %p.param // CHECK:STDOUT: %return.param: ref @F.%tuple.type (%tuple.type.30b) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%tuple.type (%tuple.type.30b) = return_slot %return.param // CHECK:STDOUT: } @@ -590,11 +590,11 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Outer(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.1) [symbolic = %Inner.type (constants.%Inner.type.eae)] // CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -613,7 +613,7 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.1: type, %U.loc5_15.1: type) { +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.2: 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: @@ -646,22 +646,22 @@ fn G() -> i32 { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// 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_36.2: type = class_type @Outer, @Outer(%T.loc13_6.2) [symbolic = %Outer.loc13_36.2 (constants.%Outer.9d6)] -// CHECK:STDOUT: %require_complete.loc13_37: = require_complete_type %Outer.loc13_36.2 [symbolic = %require_complete.loc13_37 (constants.%require_complete.127)] -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_6.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: generic fn @F(%T.loc13_6.2: type, %U.loc13_16.2: type) { +// CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.1 (constants.%U)] +// CHECK:STDOUT: %Outer.loc13_36.1: type = class_type @Outer, @Outer(%T.loc13_6.1) [symbolic = %Outer.loc13_36.1 (constants.%Outer.9d6)] +// CHECK:STDOUT: %require_complete.loc13_37: = require_complete_type %Outer.loc13_36.1 [symbolic = %require_complete.loc13_37 (constants.%require_complete.127)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc13_6.1) [symbolic = %Inner.type (constants.%Inner.type.eae)] // CHECK:STDOUT: %Inner.generic: @F.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] -// CHECK:STDOUT: %Inner.loc13_45.2: type = class_type @Inner, @Inner(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %Inner.loc13_45.2 (constants.%Inner.c71)] -// CHECK:STDOUT: %pattern_type.loc13_26: type = pattern_type %Inner.loc13_45.2 [symbolic = %pattern_type.loc13_26 (constants.%pattern_type.372)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc13_6.2, %U.loc13_16.2) [symbolic = %tuple.type (constants.%tuple.type.30b)] +// CHECK:STDOUT: %Inner.loc13_45.1: type = class_type @Inner, @Inner(%T.loc13_6.1, %U.loc13_16.1) [symbolic = %Inner.loc13_45.1 (constants.%Inner.c71)] +// CHECK:STDOUT: %pattern_type.loc13_26: type = pattern_type %Inner.loc13_45.1 [symbolic = %pattern_type.loc13_26 (constants.%pattern_type.372)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc13_6.1, %U.loc13_16.1) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %pattern_type.loc13_48: type = pattern_type %tuple.type [symbolic = %pattern_type.loc13_48 (constants.%pattern_type.65c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_48.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc13_48.1 (constants.%require_complete.fe1)] -// CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type %Inner.loc13_45.2 [symbolic = %require_complete.loc13_27 (constants.%require_complete.e7e)] -// CHECK:STDOUT: %F.specific_fn.loc13_67.2: = specific_function constants.%F, @F(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.dd9)] +// CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type %Inner.loc13_45.1 [symbolic = %require_complete.loc13_27 (constants.%require_complete.e7e)] +// CHECK:STDOUT: %F.specific_fn.loc13_67.2: = specific_function constants.%F, @F(%T.loc13_6.1, %U.loc13_16.1) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.dd9)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.1c6)] // CHECK:STDOUT: %.loc13_48.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc13_48.3 (constants.%.1e9)] @@ -670,10 +670,10 @@ fn G() -> i32 { // CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.937)] // CHECK:STDOUT: %require_complete.loc13_48.2: = require_complete_type %ptr [symbolic = %require_complete.loc13_48.2 (constants.%require_complete.8fa)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%Inner.loc13_45.2 (%Inner.c71)) -> %return.param: @F.%tuple.type (%tuple.type.30b) { +// CHECK:STDOUT: fn(%p.param: @F.%Inner.loc13_45.1 (%Inner.c71)) -> %return.param: @F.%tuple.type (%tuple.type.30b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%Inner.loc13_45.2 (%Inner.c71) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%Inner.loc13_45.1 (%Inner.c71) = name_ref p, %p // CHECK:STDOUT: %F.specific_fn.loc13_67.1: = specific_function %F.ref, @F(constants.%T, constants.%U) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.dd9)] // CHECK:STDOUT: %.loc13_48.1: ref @F.%tuple.type (%tuple.type.30b) = splice_block %return {} // CHECK:STDOUT: %F.call: init @F.%tuple.type (%tuple.type.30b) = call %F.specific_fn.loc13_67.1(%p.ref) to %.loc13_48.1 @@ -703,7 +703,7 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae @@ -717,13 +717,13 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc13_6.2 => constants.%T -// CHECK:STDOUT: %U.loc13_16.2 => constants.%U -// CHECK:STDOUT: %Outer.loc13_36.2 => constants.%Outer.9d6 +// CHECK:STDOUT: %T.loc13_6.1 => constants.%T +// CHECK:STDOUT: %U.loc13_16.1 => constants.%U +// CHECK:STDOUT: %Outer.loc13_36.1 => constants.%Outer.9d6 // CHECK:STDOUT: %require_complete.loc13_37 => constants.%require_complete.127 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.137 -// CHECK:STDOUT: %Inner.loc13_45.2 => constants.%Inner.c71 +// CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.c71 // CHECK:STDOUT: %pattern_type.loc13_26 => constants.%pattern_type.372 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.65c @@ -742,7 +742,7 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%C) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%C +// CHECK:STDOUT: %T.loc4_13.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.181 @@ -756,13 +756,13 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C, constants.%D) { -// CHECK:STDOUT: %T.loc13_6.2 => constants.%C -// CHECK:STDOUT: %U.loc13_16.2 => constants.%D -// CHECK:STDOUT: %Outer.loc13_36.2 => constants.%Outer.7c4 +// CHECK:STDOUT: %T.loc13_6.1 => constants.%C +// CHECK:STDOUT: %U.loc13_16.1 => constants.%D +// CHECK:STDOUT: %Outer.loc13_36.1 => constants.%Outer.7c4 // CHECK:STDOUT: %require_complete.loc13_37 => constants.%complete_type.357 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.181 // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.205 -// CHECK:STDOUT: %Inner.loc13_45.2 => constants.%Inner.d70 +// CHECK:STDOUT: %Inner.loc13_45.1 => constants.%Inner.d70 // CHECK:STDOUT: %pattern_type.loc13_26 => constants.%pattern_type.057 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.e8a // CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.9ec @@ -805,17 +805,17 @@ fn G() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %WithNontype.b82: type = class_type @WithNontype, @WithNontype(%int_0.6a9) [concrete] @@ -823,10 +823,10 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.b66: type = pattern_type %WithNontype.b82 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%int_0.6a9) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.68d: type = fn_type @Op.3, @Destroy.impl(%WithNontype.b82) [concrete] +// CHECK:STDOUT: %Op.type.68d: type = fn_type @Op.1, @Destroy.impl(%WithNontype.b82) [concrete] // CHECK:STDOUT: %Op.6ee: %Op.type.68d = struct_value () [concrete] // CHECK:STDOUT: %ptr.791: type = ptr_type %WithNontype.b82 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.6ee, @Op.3(%WithNontype.b82) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.6ee, @Op.1(%WithNontype.b82) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -859,7 +859,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_19.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.loc4_19.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.1 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete] @@ -874,14 +874,14 @@ fn G() -> i32 { // CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %x.param: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6) = value_param call_param0 -// CHECK:STDOUT: %.loc6_31: type = splice_block %WithNontype.loc6_31.1 [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.8a6)] { +// CHECK:STDOUT: %N.loc6_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.1 (constants.%N.51e)] +// CHECK:STDOUT: %x.param: @F.%WithNontype.loc6_31.1 (%WithNontype.8a6) = value_param call_param0 +// CHECK:STDOUT: %.loc6_31: type = splice_block %WithNontype.loc6_31.2 [symbolic = %WithNontype.loc6_31.1 (constants.%WithNontype.8a6)] { // CHECK:STDOUT: %WithNontype.ref: %WithNontype.type = name_ref WithNontype, file.%WithNontype.decl [concrete = constants.%WithNontype.generic] -// CHECK:STDOUT: %N.ref.loc6_30: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %WithNontype.loc6_31.1: type = class_type @WithNontype, @WithNontype(constants.%N.51e) [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.8a6)] +// CHECK:STDOUT: %N.ref.loc6_30: %i32 = name_ref N, %N.loc6_6.2 [symbolic = %N.loc6_6.1 (constants.%N.51e)] +// CHECK:STDOUT: %WithNontype.loc6_31.2: type = class_type @WithNontype, @WithNontype(constants.%N.51e) [symbolic = %WithNontype.loc6_31.1 (constants.%WithNontype.8a6)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6) = bind_name x, %x.param +// CHECK:STDOUT: %x: @F.%WithNontype.loc6_31.1 (%WithNontype.8a6) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -896,8 +896,8 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.51e)] +// CHECK:STDOUT: generic class @WithNontype(%N.loc4_19.2: %i32) { +// CHECK:STDOUT: %N.loc4_19.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.1 (constants.%N.51e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -911,17 +911,17 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.51e)] -// CHECK:STDOUT: %WithNontype.loc6_31.2: type = class_type @WithNontype, @WithNontype(%N.loc6_6.2) [symbolic = %WithNontype.loc6_31.2 (constants.%WithNontype.8a6)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %WithNontype.loc6_31.2 [symbolic = %pattern_type (constants.%pattern_type.48f)] +// CHECK:STDOUT: generic fn @F(%N.loc6_6.2: %i32) { +// CHECK:STDOUT: %N.loc6_6.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc6_6.1 (constants.%N.51e)] +// CHECK:STDOUT: %WithNontype.loc6_31.1: type = class_type @WithNontype, @WithNontype(%N.loc6_6.1) [symbolic = %WithNontype.loc6_31.1 (constants.%WithNontype.8a6)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %WithNontype.loc6_31.1 [symbolic = %pattern_type (constants.%pattern_type.48f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %WithNontype.loc6_31.2 [symbolic = %require_complete (constants.%require_complete.9c5)] +// CHECK:STDOUT: %require_complete: = require_complete_type %WithNontype.loc6_31.1 [symbolic = %require_complete (constants.%require_complete.9c5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%WithNontype.loc6_31.2 (%WithNontype.8a6)) -> %i32 { +// CHECK:STDOUT: fn(%x.param: @F.%WithNontype.loc6_31.1 (%WithNontype.8a6)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc6_50: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.ref.loc6_50: %i32 = name_ref N, %N.loc6_6.2 [symbolic = %N.loc6_6.1 (constants.%N.51e)] // CHECK:STDOUT: return %N.ref.loc6_50 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -934,7 +934,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_31.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_31.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc9_31.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc9_31.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -950,7 +950,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc9_33.1: %i32 = value_of_initializer %F.call // CHECK:STDOUT: %.loc9_33.2: %i32 = converted %F.call, %.loc9_33.1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc9_13.2, constants.%Op.6ee -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.6ee, @Op.3(constants.%WithNontype.b82) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.6ee, @Op.1(constants.%WithNontype.b82) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_13: = bound_method %.loc9_13.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.791 = addr_of %.loc9_13.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc9_13(%addr) @@ -958,26 +958,26 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithNontype(constants.%N.51e) { -// CHECK:STDOUT: %N.loc4_19.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc4_19.1 => constants.%N.51e // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N.51e) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%N.51e -// CHECK:STDOUT: %WithNontype.loc6_31.2 => constants.%WithNontype.8a6 +// CHECK:STDOUT: %N.loc6_6.1 => constants.%N.51e +// CHECK:STDOUT: %WithNontype.loc6_31.1 => constants.%WithNontype.8a6 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.48f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithNontype(constants.%int_0.6a9) { -// CHECK:STDOUT: %N.loc4_19.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %N.loc4_19.1 => constants.%int_0.6a9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_0.6a9) { -// CHECK:STDOUT: %N.loc6_6.2 => constants.%int_0.6a9 -// CHECK:STDOUT: %WithNontype.loc6_31.2 => constants.%WithNontype.b82 +// CHECK:STDOUT: %N.loc6_6.1 => constants.%int_0.6a9 +// CHECK:STDOUT: %WithNontype.loc6_31.1 => constants.%WithNontype.b82 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b66 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/deduce/int_float.carbon b/toolchain/check/testdata/deduce/int_float.carbon index 3d7398952e79..0b7f47e5e84f 100644 --- a/toolchain/check/testdata/deduce/int_float.carbon +++ b/toolchain/check/testdata/deduce/int_float.carbon @@ -102,15 +102,15 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %.loc4_26.2: type = value_of_initializer %int_literal.make_type.loc4_26 [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc4_26.3: type = converted %int_literal.make_type.loc4_26, %.loc4_26.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_6.2 (constants.%N)] -// CHECK:STDOUT: %n.param: @F.%Int.loc4_42.2 (%Int) = value_param call_param0 -// CHECK:STDOUT: %.loc4_42: type = splice_block %Int.loc4_42.1 [symbolic = %Int.loc4_42.2 (constants.%Int)] { +// CHECK:STDOUT: %N.loc4_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_6.1 (constants.%N)] +// CHECK:STDOUT: %n.param: @F.%Int.loc4_42.1 (%Int) = value_param call_param0 +// CHECK:STDOUT: %.loc4_42: type = splice_block %Int.loc4_42.2 [symbolic = %Int.loc4_42.1 (constants.%Int)] { // CHECK:STDOUT: %Core.ref.loc4_32: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc4: Core.IntLiteral = name_ref N, %N.loc4_6.1 [symbolic = %N.loc4_6.2 (constants.%N)] -// CHECK:STDOUT: %Int.loc4_42.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc4_42.2 (constants.%Int)] +// CHECK:STDOUT: %N.ref.loc4: Core.IntLiteral = name_ref N, %N.loc4_6.2 [symbolic = %N.loc4_6.1 (constants.%N)] +// CHECK:STDOUT: %Int.loc4_42.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc4_42.1 (constants.%Int)] // CHECK:STDOUT: } -// CHECK:STDOUT: %n: @F.%Int.loc4_42.2 (%Int) = bind_name n, %n.param +// CHECK:STDOUT: %n: @F.%Int.loc4_42.1 (%Int) = bind_name n, %n.param // CHECK:STDOUT: %return.param: ref Core.IntLiteral = out_param call_param1 // CHECK:STDOUT: %return: ref Core.IntLiteral = return_slot %return.param // CHECK:STDOUT: } @@ -136,17 +136,17 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc4_6.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc4_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_6.2 (constants.%N)] -// CHECK:STDOUT: %Int.loc4_42.2: type = class_type @Int, @Int(%N.loc4_6.2) [symbolic = %Int.loc4_42.2 (constants.%Int)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc4_42.2 [symbolic = %pattern_type (constants.%pattern_type.896)] +// CHECK:STDOUT: generic fn @F(%N.loc4_6.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc4_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_6.1 (constants.%N)] +// CHECK:STDOUT: %Int.loc4_42.1: type = class_type @Int, @Int(%N.loc4_6.1) [symbolic = %Int.loc4_42.1 (constants.%Int)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc4_42.1 [symbolic = %pattern_type (constants.%pattern_type.896)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Int.loc4_42.2 [symbolic = %require_complete (constants.%require_complete.b4f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Int.loc4_42.1 [symbolic = %require_complete (constants.%require_complete.b4f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param: @F.%Int.loc4_42.2 (%Int)) -> Core.IntLiteral { +// CHECK:STDOUT: fn(%n.param: @F.%Int.loc4_42.1 (%Int)) -> Core.IntLiteral { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc5: Core.IntLiteral = name_ref N, %N.loc4_6.1 [symbolic = %N.loc4_6.2 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc5: Core.IntLiteral = name_ref N, %N.loc4_6.2 [symbolic = %N.loc4_6.1 (constants.%N)] // CHECK:STDOUT: return %N.ref.loc5 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -163,14 +163,14 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.loc4_6.2 => constants.%N -// CHECK:STDOUT: %Int.loc4_42.2 => constants.%Int +// CHECK:STDOUT: %N.loc4_6.1 => constants.%N +// CHECK:STDOUT: %Int.loc4_42.1 => constants.%Int // CHECK:STDOUT: %pattern_type => constants.%pattern_type.896 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_64) { -// CHECK:STDOUT: %N.loc4_6.2 => constants.%int_64 -// CHECK:STDOUT: %Int.loc4_42.2 => constants.%i64 +// CHECK:STDOUT: %N.loc4_6.1 => constants.%int_64 +// CHECK:STDOUT: %Int.loc4_42.1 => constants.%i64 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.95b // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -231,12 +231,12 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: %.loc9_26.2: type = value_of_initializer %int_literal.make_type.loc9_26 [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc9_26.3: type = converted %int_literal.make_type.loc9_26, %.loc9_26.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc9_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc9_6.2 (constants.%N)] +// CHECK:STDOUT: %N.loc9_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc9_6.1 (constants.%N)] // CHECK:STDOUT: %n.param: = value_param call_param0 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { // CHECK:STDOUT: %Core.ref.loc9_32: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Float.ref: %Float.type = name_ref Float, imports.%Core.Float [concrete = constants.%Float] -// CHECK:STDOUT: %N.ref.loc9: Core.IntLiteral = name_ref N, %N.loc9_6.1 [symbolic = %N.loc9_6.2 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc9: Core.IntLiteral = name_ref N, %N.loc9_6.2 [symbolic = %N.loc9_6.1 (constants.%N)] // CHECK:STDOUT: %float.make_type: init type = call %Float.ref(%N.ref.loc9) // CHECK:STDOUT: %.loc9_44.1: type = value_of_initializer %float.make_type // CHECK:STDOUT: %.loc9_44.2: type = converted %float.make_type, %.loc9_44.1 @@ -269,14 +269,14 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc9_6.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc9_6.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc9_6.2 (constants.%N)] +// CHECK:STDOUT: generic fn @F(%N.loc9_6.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc9_6.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc9_6.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn(%n.param: ) -> Core.IntLiteral { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %N.ref.loc10: Core.IntLiteral = name_ref N, %N.loc9_6.1 [symbolic = %N.loc9_6.2 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc10: Core.IntLiteral = name_ref N, %N.loc9_6.2 [symbolic = %N.loc9_6.1 (constants.%N)] // CHECK:STDOUT: return %N.ref.loc10 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -289,6 +289,6 @@ fn G(a: f64) -> Core.IntLiteral() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N) { -// CHECK:STDOUT: %N.loc9_6.2 => constants.%N +// CHECK:STDOUT: %N.loc9_6.1 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index 2a0e0be3932f..8742d97793b9 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -84,10 +84,10 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn.4a7: = specific_function %F, @F(%C, %D) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.2, @Destroy.impl(%D) [concrete] +// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.1, @Destroy.impl(%D) [concrete] // CHECK:STDOUT: %Op.2d4: %Op.type.548 = struct_value () [concrete] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.2(%D) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.1(%D) [concrete] // CHECK:STDOUT: %complete_type.53b: = complete_type_witness %tuple.type.e8a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -119,19 +119,19 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_40 (%pattern_type.a32) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_40 (%pattern_type.a32) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref.loc7_43: type = name_ref U, %U.loc7_16.1 [symbolic = %U.loc7_16.2 (constants.%U)] -// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %U.loc7_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc7_16.2 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc7_43: type = name_ref U, %U.loc7_16.2 [symbolic = %U.loc7_16.1 (constants.%U)] +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc7_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc7_16.1 (constants.%U)] // CHECK:STDOUT: %pair.param: @F.%tuple.type (%tuple.type.30b) = value_param call_param0 // CHECK:STDOUT: %.loc7_37.1: type = splice_block %.loc7_37.3 [symbolic = %tuple.type (constants.%tuple.type.30b)] { -// 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: %T.ref: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %U.ref.loc7_36: type = name_ref U, %U.loc7_16.2 [symbolic = %U.loc7_16.1 (constants.%U)] // CHECK:STDOUT: %.loc7_37.2: %tuple.type.24b = tuple_literal (%T.ref, %U.ref.loc7_36) // CHECK:STDOUT: %.loc7_37.3: type = converted %.loc7_37.2, constants.%tuple.type.30b [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: } // CHECK:STDOUT: %pair: @F.%tuple.type (%tuple.type.30b) = bind_name pair, %pair.param -// CHECK:STDOUT: %return.param: ref @F.%U.loc7_16.2 (%U) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%U.loc7_16.2 (%U) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.%U.loc7_16.1 (%U) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%U.loc7_16.1 (%U) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %pair.patt: %pattern_type.9ec = binding_pattern pair [concrete] @@ -171,26 +171,26 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %tuple.type: type = tuple_type (%T.loc7_6.2, %U.loc7_16.2) [symbolic = %tuple.type (constants.%tuple.type.30b)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.2: type, %U.loc7_16.2: type) { +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc7_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc7_16.1 (constants.%U)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc7_6.1, %U.loc7_16.1) [symbolic = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %pattern_type.loc7_26: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_26 (constants.%pattern_type.65c)] -// CHECK:STDOUT: %pattern_type.loc7_40: type = pattern_type %U.loc7_16.2 [symbolic = %pattern_type.loc7_40 (constants.%pattern_type.a32)] +// CHECK:STDOUT: %pattern_type.loc7_40: type = pattern_type %U.loc7_16.1 [symbolic = %pattern_type.loc7_40 (constants.%pattern_type.a32)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_40: = require_complete_type %U.loc7_16.2 [symbolic = %require_complete.loc7_40 (constants.%require_complete.b54)] +// CHECK:STDOUT: %require_complete.loc7_40: = require_complete_type %U.loc7_16.1 [symbolic = %require_complete.loc7_40 (constants.%require_complete.b54)] // CHECK:STDOUT: %require_complete.loc7_30: = require_complete_type %tuple.type [symbolic = %require_complete.loc7_30 (constants.%require_complete.fe1)] -// CHECK:STDOUT: %F.specific_fn.loc7_54.2: = specific_function constants.%F, @F(%T.loc7_6.2, %U.loc7_16.2) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.dd9)] +// CHECK:STDOUT: %F.specific_fn.loc7_54.2: = specific_function constants.%F, @F(%T.loc7_6.1, %U.loc7_16.1) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.dd9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%pair.param: @F.%tuple.type (%tuple.type.30b)) -> @F.%U.loc7_16.2 (%U) { +// CHECK:STDOUT: fn(%pair.param: @F.%tuple.type (%tuple.type.30b)) -> @F.%U.loc7_16.1 (%U) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %pair.ref: @F.%tuple.type (%tuple.type.30b) = name_ref pair, %pair // CHECK:STDOUT: %F.specific_fn.loc7_54.1: = specific_function %F.ref, @F(constants.%T, constants.%U) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.dd9)] -// CHECK:STDOUT: %F.call: init @F.%U.loc7_16.2 (%U) = call %F.specific_fn.loc7_54.1(%pair.ref) -// CHECK:STDOUT: %.loc7_61.1: @F.%U.loc7_16.2 (%U) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc7_61.2: @F.%U.loc7_16.2 (%U) = converted %F.call, %.loc7_61.1 +// CHECK:STDOUT: %F.call: init @F.%U.loc7_16.1 (%U) = call %F.specific_fn.loc7_54.1(%pair.ref) +// CHECK:STDOUT: %.loc7_61.1: @F.%U.loc7_16.1 (%U) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc7_61.2: @F.%U.loc7_16.1 (%U) = converted %F.call, %.loc7_61.1 // CHECK:STDOUT: return %.loc7_61.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -203,7 +203,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %.loc9_20: ref %D = splice_block %return {} // CHECK:STDOUT: %F.call: init %D = call %F.specific_fn(%pair.ref) to %.loc9_20 // CHECK:STDOUT: %Op.bound: = bound_method %.loc9_20, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc9_20, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc9_20 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -211,8 +211,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%T -// CHECK:STDOUT: %U.loc7_16.2 => constants.%U +// CHECK:STDOUT: %T.loc7_6.1 => constants.%T +// CHECK:STDOUT: %U.loc7_16.1 => constants.%U // CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: %pattern_type.loc7_26 => constants.%pattern_type.65c // CHECK:STDOUT: %pattern_type.loc7_40 => constants.%pattern_type.a32 @@ -224,8 +224,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C, constants.%D) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%C -// CHECK:STDOUT: %U.loc7_16.2 => constants.%D +// CHECK:STDOUT: %T.loc7_6.1 => constants.%C +// CHECK:STDOUT: %U.loc7_16.1 => constants.%D // CHECK:STDOUT: %tuple.type => constants.%tuple.type.e8a // CHECK:STDOUT: %pattern_type.loc7_26 => constants.%pattern_type.9ec // CHECK:STDOUT: %pattern_type.loc7_40 => constants.%pattern_type.510 @@ -323,7 +323,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %.loc4_31.2: %tuple.type.24b = tuple_literal (%i32.loc4_23, %i32.loc4_28) // CHECK:STDOUT: %.loc4_31.3: type = converted %.loc4_31.2, constants.%tuple.type.d07 [concrete = constants.%tuple.type.d07] // CHECK:STDOUT: } -// CHECK:STDOUT: %Pair.loc4_15.1: %tuple.type.d07 = bind_symbolic_name Pair, 0 [symbolic = %Pair.loc4_15.2 (constants.%Pair)] +// CHECK:STDOUT: %Pair.loc4_15.2: %tuple.type.d07 = bind_symbolic_name Pair, 0 [symbolic = %Pair.loc4_15.1 (constants.%Pair)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %A.patt: %pattern_type.7ce = symbolic_binding_pattern A, 0 [concrete] @@ -339,23 +339,23 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %A.loc6_6.1: %i32 = bind_symbolic_name A, 0 [symbolic = %A.loc6_6.2 (constants.%A)] +// CHECK:STDOUT: %A.loc6_6.2: %i32 = bind_symbolic_name A, 0 [symbolic = %A.loc6_6.1 (constants.%A)] // CHECK:STDOUT: %.loc6_19: type = splice_block %i32.loc6_19 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32.loc6_19: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc6_19: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %B.loc6_15.1: %i32 = bind_symbolic_name B, 1 [symbolic = %B.loc6_15.2 (constants.%B)] -// CHECK:STDOUT: %h.param: @F.%HasPair.loc6_41.2 (%HasPair.568) = value_param call_param0 -// CHECK:STDOUT: %.loc6_41.1: type = splice_block %HasPair.loc6_41.1 [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.568)] { +// CHECK:STDOUT: %B.loc6_15.2: %i32 = bind_symbolic_name B, 1 [symbolic = %B.loc6_15.1 (constants.%B)] +// CHECK:STDOUT: %h.param: @F.%HasPair.loc6_41.1 (%HasPair.568) = value_param call_param0 +// CHECK:STDOUT: %.loc6_41.1: type = splice_block %HasPair.loc6_41.2 [symbolic = %HasPair.loc6_41.1 (constants.%HasPair.568)] { // CHECK:STDOUT: %HasPair.ref: %HasPair.type = name_ref HasPair, file.%HasPair.decl [concrete = constants.%HasPair.generic] -// 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: %A.ref: %i32 = name_ref A, %A.loc6_6.2 [symbolic = %A.loc6_6.1 (constants.%A)] +// CHECK:STDOUT: %B.ref.loc6_39: %i32 = name_ref B, %B.loc6_15.2 [symbolic = %B.loc6_15.1 (constants.%B)] // CHECK:STDOUT: %.loc6_40: %tuple.type.d07 = tuple_literal (%A.ref, %B.ref.loc6_39) -// CHECK:STDOUT: %tuple.loc6_40.1: %tuple.type.d07 = tuple_value (%A.ref, %B.ref.loc6_39) [symbolic = %tuple.loc6_40.2 (constants.%tuple.159)] -// CHECK:STDOUT: %.loc6_41.2: %tuple.type.d07 = converted %.loc6_40, %tuple.loc6_40.1 [symbolic = %tuple.loc6_40.2 (constants.%tuple.159)] -// CHECK:STDOUT: %HasPair.loc6_41.1: type = class_type @HasPair, @HasPair(constants.%tuple.159) [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.568)] +// CHECK:STDOUT: %tuple.loc6_40.2: %tuple.type.d07 = tuple_value (%A.ref, %B.ref.loc6_39) [symbolic = %tuple.loc6_40.1 (constants.%tuple.159)] +// CHECK:STDOUT: %.loc6_41.2: %tuple.type.d07 = converted %.loc6_40, %tuple.loc6_40.2 [symbolic = %tuple.loc6_40.1 (constants.%tuple.159)] +// CHECK:STDOUT: %HasPair.loc6_41.2: type = class_type @HasPair, @HasPair(constants.%tuple.159) [symbolic = %HasPair.loc6_41.1 (constants.%HasPair.568)] // CHECK:STDOUT: } -// CHECK:STDOUT: %h: @F.%HasPair.loc6_41.2 (%HasPair.568) = bind_name h, %h.param +// CHECK:STDOUT: %h: @F.%HasPair.loc6_41.1 (%HasPair.568) = bind_name h, %h.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -397,8 +397,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HasPair(%Pair.loc4_15.1: %tuple.type.d07) { -// CHECK:STDOUT: %Pair.loc4_15.2: %tuple.type.d07 = bind_symbolic_name Pair, 0 [symbolic = %Pair.loc4_15.2 (constants.%Pair)] +// CHECK:STDOUT: generic class @HasPair(%Pair.loc4_15.2: %tuple.type.d07) { +// CHECK:STDOUT: %Pair.loc4_15.1: %tuple.type.d07 = bind_symbolic_name Pair, 0 [symbolic = %Pair.loc4_15.1 (constants.%Pair)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -412,19 +412,19 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %tuple.type.d07 = tuple_value (%A.loc6_6.2, %B.loc6_15.2) [symbolic = %tuple.loc6_40.2 (constants.%tuple.159)] -// CHECK:STDOUT: %HasPair.loc6_41.2: type = class_type @HasPair, @HasPair(%tuple.loc6_40.2) [symbolic = %HasPair.loc6_41.2 (constants.%HasPair.568)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %HasPair.loc6_41.2 [symbolic = %pattern_type (constants.%pattern_type.88c)] +// CHECK:STDOUT: generic fn @F(%A.loc6_6.2: %i32, %B.loc6_15.2: %i32) { +// CHECK:STDOUT: %A.loc6_6.1: %i32 = bind_symbolic_name A, 0 [symbolic = %A.loc6_6.1 (constants.%A)] +// CHECK:STDOUT: %B.loc6_15.1: %i32 = bind_symbolic_name B, 1 [symbolic = %B.loc6_15.1 (constants.%B)] +// CHECK:STDOUT: %tuple.loc6_40.1: %tuple.type.d07 = tuple_value (%A.loc6_6.1, %B.loc6_15.1) [symbolic = %tuple.loc6_40.1 (constants.%tuple.159)] +// CHECK:STDOUT: %HasPair.loc6_41.1: type = class_type @HasPair, @HasPair(%tuple.loc6_40.1) [symbolic = %HasPair.loc6_41.1 (constants.%HasPair.568)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %HasPair.loc6_41.1 [symbolic = %pattern_type (constants.%pattern_type.88c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HasPair.loc6_41.2 [symbolic = %require_complete (constants.%require_complete.6bc)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HasPair.loc6_41.1 [symbolic = %require_complete (constants.%require_complete.6bc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%h.param: @F.%HasPair.loc6_41.2 (%HasPair.568)) -> %i32 { +// CHECK:STDOUT: fn(%h.param: @F.%HasPair.loc6_41.1 (%HasPair.568)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %B.ref.loc6_60: %i32 = name_ref B, %B.loc6_15.1 [symbolic = %B.loc6_15.2 (constants.%B)] +// CHECK:STDOUT: %B.ref.loc6_60: %i32 = name_ref B, %B.loc6_15.2 [symbolic = %B.loc6_15.1 (constants.%B)] // CHECK:STDOUT: return %B.ref.loc6_60 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -441,34 +441,34 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasPair(constants.%Pair) { -// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%Pair +// CHECK:STDOUT: %Pair.loc4_15.1 => constants.%Pair // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasPair(constants.%tuple.159) { -// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.159 +// CHECK:STDOUT: %Pair.loc4_15.1 => constants.%tuple.159 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%A, constants.%B) { -// CHECK:STDOUT: %A.loc6_6.2 => constants.%A -// CHECK:STDOUT: %B.loc6_15.2 => constants.%B -// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.159 -// CHECK:STDOUT: %HasPair.loc6_41.2 => constants.%HasPair.568 +// CHECK:STDOUT: %A.loc6_6.1 => constants.%A +// CHECK:STDOUT: %B.loc6_15.1 => constants.%B +// CHECK:STDOUT: %tuple.loc6_40.1 => constants.%tuple.159 +// CHECK:STDOUT: %HasPair.loc6_41.1 => constants.%HasPair.568 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.88c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasPair(constants.%tuple.21c) { -// CHECK:STDOUT: %Pair.loc4_15.2 => constants.%tuple.21c +// CHECK:STDOUT: %Pair.loc4_15.1 => constants.%tuple.21c // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%int_1.5d2, constants.%int_2.ef8) { -// CHECK:STDOUT: %A.loc6_6.2 => constants.%int_1.5d2 -// CHECK:STDOUT: %B.loc6_15.2 => constants.%int_2.ef8 -// CHECK:STDOUT: %tuple.loc6_40.2 => constants.%tuple.21c -// CHECK:STDOUT: %HasPair.loc6_41.2 => constants.%HasPair.369 +// CHECK:STDOUT: %A.loc6_6.1 => constants.%int_1.5d2 +// CHECK:STDOUT: %B.loc6_15.1 => constants.%int_2.ef8 +// CHECK:STDOUT: %tuple.loc6_40.1 => constants.%tuple.21c +// CHECK:STDOUT: %HasPair.loc6_41.1 => constants.%HasPair.369 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.93e // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -522,18 +522,18 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc7_30 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc7_30 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc7_33: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc7_33: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: %pair.param: @F.%tuple.type (%tuple.type.d00) = value_param call_param0 // CHECK:STDOUT: %.loc7_27.1: type = splice_block %.loc7_27.3 [symbolic = %tuple.type (constants.%tuple.type.d00)] { -// 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: %T.ref.loc7_23: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc7_26: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: %.loc7_27.2: %tuple.type.24b = tuple_literal (%T.ref.loc7_23, %T.ref.loc7_26) // CHECK:STDOUT: %.loc7_27.3: type = converted %.loc7_27.2, constants.%tuple.type.d00 [symbolic = %tuple.type (constants.%tuple.type.d00)] // CHECK:STDOUT: } // CHECK:STDOUT: %pair: @F.%tuple.type (%tuple.type.d00) = bind_name pair, %pair.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc7_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc7_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc7_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc7_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %pair.patt: %pattern_type.9ec = binding_pattern pair [concrete] @@ -573,13 +573,13 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %tuple.type: type = tuple_type (%T.loc7_6.2, %T.loc7_6.2) [symbolic = %tuple.type (constants.%tuple.type.d00)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.2: type) { +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc7_6.1, %T.loc7_6.1) [symbolic = %tuple.type (constants.%tuple.type.d00)] // CHECK:STDOUT: %pattern_type.loc7_16: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_16 (constants.%pattern_type.9a5)] -// CHECK:STDOUT: %pattern_type.loc7_30: type = pattern_type %T.loc7_6.2 [symbolic = %pattern_type.loc7_30 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %pattern_type.loc7_30: type = pattern_type %T.loc7_6.1 [symbolic = %pattern_type.loc7_30 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%pair.param: @F.%tuple.type (%tuple.type.d00)) -> @F.%T.loc7_6.2 (%T); +// CHECK:STDOUT: fn(%pair.param: @F.%tuple.type (%tuple.type.d00)) -> @F.%T.loc7_6.1 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G(%pair.param: %tuple.type.e8a) -> %return.param: %D { @@ -590,7 +590,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%T +// CHECK:STDOUT: %T.loc7_6.1 => constants.%T // CHECK:STDOUT: %tuple.type => constants.%tuple.type.d00 // CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.9a5 // CHECK:STDOUT: %pattern_type.loc7_30 => constants.%pattern_type.7dc diff --git a/toolchain/check/testdata/deduce/type_operator.carbon b/toolchain/check/testdata/deduce/type_operator.carbon index 7984be774b58..30c42cf6eb57 100644 --- a/toolchain/check/testdata/deduce/type_operator.carbon +++ b/toolchain/check/testdata/deduce/type_operator.carbon @@ -91,10 +91,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn.04a: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.d05: = complete_type_witness %ptr.019 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -122,16 +122,16 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_23 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.2 (%ptr.79f) = value_param call_param0 -// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.1 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] { -// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T.ref.loc6_19 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.1 (%ptr.79f) = value_param call_param0 +// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.2 [symbolic = %ptr.loc6_20.1 (constants.%ptr.79f)] { +// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc6_20.2: type = ptr_type %T.ref.loc6_19 [symbolic = %ptr.loc6_20.1 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_20.2 (%ptr.79f) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_20.1 (%ptr.79f) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %p.patt: %pattern_type.44a = binding_pattern p [concrete] @@ -160,25 +160,25 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %ptr.loc6_20.2: type = ptr_type %T.loc6_6.2 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_20.2 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.afe)] -// CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc6_20.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_20.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.afe)] +// CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc6_23 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.2 [symbolic = %require_complete.loc6_17 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] +// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_20.2 (%ptr.79f)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_20.1 (%ptr.79f)) -> @F.%T.loc6_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.2 (%ptr.79f) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.1 (%ptr.79f) = name_ref p, %p // CHECK:STDOUT: %F.specific_fn.loc6_37.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] -// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_37.1(%p.ref) -// CHECK:STDOUT: %.loc6_41.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc6_41.2: @F.%T.loc6_6.2 (%T) = converted %F.call, %.loc6_41.1 +// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.1 (%T) = call %F.specific_fn.loc6_37.1(%p.ref) +// CHECK:STDOUT: %.loc6_41.1: @F.%T.loc6_6.1 (%T) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc6_41.2: @F.%T.loc6_6.1 (%T) = converted %F.call, %.loc6_41.1 // CHECK:STDOUT: return %.loc6_41.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -191,7 +191,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %.loc8_13: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8_13 // CHECK:STDOUT: %Op.bound: = bound_method %.loc8_13, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc8_13, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc8_13 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -199,8 +199,8 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T -// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.afe // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.7dc // CHECK:STDOUT: @@ -211,8 +211,8 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%C -// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.019 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%C +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.019 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.44a // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.c48 // CHECK:STDOUT: @@ -248,10 +248,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn.04a: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: %complete_type.247: = complete_type_witness %ptr.801 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -280,17 +280,17 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_29 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.2 (%ptr.6d4) = value_param call_param0 -// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] { -// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T.ref.loc6_25 [symbolic = %const.loc6_19.2 (constants.%const.a1a)] -// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.loc6_19.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] +// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.1 (%ptr.6d4) = value_param call_param0 +// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.2 [symbolic = %ptr.loc6_26.1 (constants.%ptr.6d4)] { +// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %const.loc6_19.2: type = const_type %T.ref.loc6_25 [symbolic = %const.loc6_19.1 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type %const.loc6_19.2 [symbolic = %ptr.loc6_26.1 (constants.%ptr.6d4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_26.2 (%ptr.6d4) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_26.1 (%ptr.6d4) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %p.patt: %pattern_type.c0d = binding_pattern p [concrete] @@ -320,26 +320,26 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %const.loc6_19.2: type = const_type %T.loc6_6.2 [symbolic = %const.loc6_19.2 (constants.%const.a1a)] -// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type %const.loc6_19.2 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_26.2 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.fa5)] -// CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T.loc6_6.1 [symbolic = %const.loc6_19.1 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.loc6_19.1 [symbolic = %ptr.loc6_26.1 (constants.%ptr.6d4)] +// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_26.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.fa5)] +// CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc6_29 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.2 [symbolic = %require_complete.loc6_17 (constants.%require_complete.20b)] -// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.ef1)] +// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_29 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.20b)] +// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_26.2 (%ptr.6d4)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_26.1 (%ptr.6d4)) -> @F.%T.loc6_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.2 (%ptr.6d4) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.1 (%ptr.6d4) = name_ref p, %p // CHECK:STDOUT: %F.specific_fn.loc6_43.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.ef1)] -// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_43.1(%p.ref) -// CHECK:STDOUT: %.loc6_47.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc6_47.2: @F.%T.loc6_6.2 (%T) = converted %F.call, %.loc6_47.1 +// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.1 (%T) = call %F.specific_fn.loc6_43.1(%p.ref) +// CHECK:STDOUT: %.loc6_47.1: @F.%T.loc6_6.1 (%T) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc6_47.2: @F.%T.loc6_6.1 (%T) = converted %F.call, %.loc6_47.1 // CHECK:STDOUT: return %.loc6_47.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -352,7 +352,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %.loc8_19: ref %C = splice_block %return {} // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8_19 // CHECK:STDOUT: %Op.bound: = bound_method %.loc8_19, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc8_19, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc8_19 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -360,9 +360,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T -// CHECK:STDOUT: %const.loc6_19.2 => constants.%const.a1a -// CHECK:STDOUT: %ptr.loc6_26.2 => constants.%ptr.6d4 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T +// CHECK:STDOUT: %const.loc6_19.1 => constants.%const.a1a +// CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.6d4 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.fa5 // CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.7dc // CHECK:STDOUT: @@ -373,9 +373,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%C -// CHECK:STDOUT: %const.loc6_19.2 => constants.%const.668 -// CHECK:STDOUT: %ptr.loc6_26.2 => constants.%ptr.801 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%C +// CHECK:STDOUT: %const.loc6_19.1 => constants.%const.668 +// CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.801 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.c0d // CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.c48 // CHECK:STDOUT: @@ -410,10 +410,10 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn.486: = specific_function %F, @F(%const) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.dff: type = fn_type @Op.2, @Destroy.impl(%const) [concrete] +// CHECK:STDOUT: %Op.type.dff: type = fn_type @Op.1, @Destroy.impl(%const) [concrete] // CHECK:STDOUT: %Op.206: %Op.type.dff = struct_value () [concrete] // CHECK:STDOUT: %complete_type.247: = complete_type_witness %ptr.801 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.206, @Op.2(%const) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.206, @Op.1(%const) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -441,16 +441,16 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_23 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_23 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.2 (%ptr.79f) = value_param call_param0 -// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.1 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] { -// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T.ref.loc6_19 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.ref.loc6_26: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_20.1 (%ptr.79f) = value_param call_param0 +// CHECK:STDOUT: %.loc6_20: type = splice_block %ptr.loc6_20.2 [symbolic = %ptr.loc6_20.1 (constants.%ptr.79f)] { +// CHECK:STDOUT: %T.ref.loc6_19: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc6_20.2: type = ptr_type %T.ref.loc6_19 [symbolic = %ptr.loc6_20.1 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_20.2 (%ptr.79f) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_20.1 (%ptr.79f) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %p.patt: %pattern_type.c0d = binding_pattern p [concrete] @@ -481,25 +481,25 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %ptr.loc6_20.2: type = ptr_type %T.loc6_6.2 [symbolic = %ptr.loc6_20.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_20.2 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.afe)] -// CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc6_20.1: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc6_20.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_20.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.afe)] +// CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc6_23 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.2 [symbolic = %require_complete.loc6_17 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] +// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_20.2 (%ptr.79f)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_20.1 (%ptr.79f)) -> @F.%T.loc6_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.2 (%ptr.79f) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_20.1 (%ptr.79f) = name_ref p, %p // CHECK:STDOUT: %F.specific_fn.loc6_37.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.ef1)] -// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_37.1(%p.ref) -// CHECK:STDOUT: %.loc6_41.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc6_41.2: @F.%T.loc6_6.2 (%T) = converted %F.call, %.loc6_41.1 +// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.1 (%T) = call %F.specific_fn.loc6_37.1(%p.ref) +// CHECK:STDOUT: %.loc6_41.1: @F.%T.loc6_6.1 (%T) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc6_41.2: @F.%T.loc6_6.1 (%T) = converted %F.call, %.loc6_41.1 // CHECK:STDOUT: return %.loc6_41.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -512,7 +512,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %.loc8_19: ref %const = splice_block %return {} // CHECK:STDOUT: %F.call: init %const = call %F.specific_fn(%p.ref) to %.loc8_19 // CHECK:STDOUT: %Op.bound: = bound_method %.loc8_19, constants.%Op.206 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.206, @Op.2(constants.%const) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.206, @Op.1(constants.%const) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc8_19, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.801 = addr_of %.loc8_19 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -520,8 +520,8 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T -// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.afe // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.7dc // CHECK:STDOUT: @@ -532,8 +532,8 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%const) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%const -// CHECK:STDOUT: %ptr.loc6_20.2 => constants.%ptr.801 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%const +// CHECK:STDOUT: %ptr.loc6_20.1 => constants.%ptr.801 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.c0d // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.6af // CHECK:STDOUT: @@ -591,17 +591,17 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc6_29 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc6_29 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.2 (%ptr.6d4) = value_param call_param0 -// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] { -// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T.ref.loc6_25 [symbolic = %const.loc6_19.2 (constants.%const.a1a)] -// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.loc6_19.1 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] +// CHECK:STDOUT: %T.ref.loc6_32: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %p.param: @F.%ptr.loc6_26.1 (%ptr.6d4) = value_param call_param0 +// CHECK:STDOUT: %.loc6_26: type = splice_block %ptr.loc6_26.2 [symbolic = %ptr.loc6_26.1 (constants.%ptr.6d4)] { +// CHECK:STDOUT: %T.ref.loc6_25: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %const.loc6_19.2: type = const_type %T.ref.loc6_25 [symbolic = %const.loc6_19.1 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type %const.loc6_19.2 [symbolic = %ptr.loc6_26.1 (constants.%ptr.6d4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc6_26.2 (%ptr.6d4) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc6_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%ptr.loc6_26.1 (%ptr.6d4) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc6_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc6_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %p.patt: %pattern_type.44a = binding_pattern p [concrete] @@ -631,26 +631,26 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %const.loc6_19.2: type = const_type %T.loc6_6.2 [symbolic = %const.loc6_19.2 (constants.%const.a1a)] -// CHECK:STDOUT: %ptr.loc6_26.2: type = ptr_type %const.loc6_19.2 [symbolic = %ptr.loc6_26.2 (constants.%ptr.6d4)] -// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_26.2 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.fa5)] -// CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %const.loc6_19.1: type = const_type %T.loc6_6.1 [symbolic = %const.loc6_19.1 (constants.%const.a1a)] +// CHECK:STDOUT: %ptr.loc6_26.1: type = ptr_type %const.loc6_19.1 [symbolic = %ptr.loc6_26.1 (constants.%ptr.6d4)] +// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_26.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.fa5)] +// CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc6_29 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.2 [symbolic = %require_complete.loc6_17 (constants.%require_complete.20b)] -// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.2) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_29 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.20b)] +// CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_26.2 (%ptr.6d4)) -> @F.%T.loc6_6.2 (%T) { +// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc6_26.1 (%ptr.6d4)) -> @F.%T.loc6_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.2 (%ptr.6d4) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @F.%ptr.loc6_26.1 (%ptr.6d4) = name_ref p, %p // CHECK:STDOUT: %F.specific_fn.loc6_43.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn)] -// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.2 (%T) = call %F.specific_fn.loc6_43.1(%p.ref) -// CHECK:STDOUT: %.loc6_47.1: @F.%T.loc6_6.2 (%T) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc6_47.2: @F.%T.loc6_6.2 (%T) = converted %F.call, %.loc6_47.1 +// CHECK:STDOUT: %F.call: init @F.%T.loc6_6.1 (%T) = call %F.specific_fn.loc6_43.1(%p.ref) +// CHECK:STDOUT: %.loc6_47.1: @F.%T.loc6_6.1 (%T) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc6_47.2: @F.%T.loc6_6.1 (%T) = converted %F.call, %.loc6_47.1 // CHECK:STDOUT: return %.loc6_47.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -663,9 +663,9 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T -// CHECK:STDOUT: %const.loc6_19.2 => constants.%const.a1a -// CHECK:STDOUT: %ptr.loc6_26.2 => constants.%ptr.6d4 +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T +// CHECK:STDOUT: %const.loc6_19.1 => constants.%const.a1a +// CHECK:STDOUT: %ptr.loc6_26.1 => constants.%ptr.6d4 // CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.fa5 // CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.7dc // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon index 138f1e2a5072..22f1990dca0a 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -133,14 +133,14 @@ fn G() { // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%tuple) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.2(%C) [concrete] -// CHECK:STDOUT: %Op.type.431: type = fn_type @Op.2, @Destroy.impl(%HoldsType.c09) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.1(%C) [concrete] +// CHECK:STDOUT: %Op.type.431: type = fn_type @Op.1, @Destroy.impl(%HoldsType.c09) [concrete] // CHECK:STDOUT: %Op.f20: %Op.type.431 = struct_value () [concrete] // CHECK:STDOUT: %ptr.79a: type = ptr_type %HoldsType.c09 [concrete] -// CHECK:STDOUT: %Op.specific_fn.58d: = specific_function %Op.f20, @Op.2(%HoldsType.c09) [concrete] +// CHECK:STDOUT: %Op.specific_fn.58d: = specific_function %Op.f20, @Op.1(%HoldsType.c09) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -168,7 +168,7 @@ fn G() { // CHECK:STDOUT: %.loc4_28.2: %tuple.type = tuple_literal (type) // CHECK:STDOUT: %.loc4_28.3: type = converted %.loc4_28.2, constants.%tuple.type [concrete = constants.%tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc4_17.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T.6eb)] +// CHECK:STDOUT: %T.loc4_17.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T.6eb)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.f1e = symbolic_binding_pattern T, 0 [concrete] @@ -181,28 +181,28 @@ fn G() { // CHECK:STDOUT: %.loc8_17.2: %tuple.type = tuple_literal (type) // CHECK:STDOUT: %.loc8_17.3: type = converted %.loc8_17.2, constants.%tuple.type [concrete = constants.%tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc8_6.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.2 (constants.%T.6eb)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_34.2 (%HoldsType.cc9) = value_param call_param0 -// CHECK:STDOUT: %.loc8_34: type = splice_block %HoldsType.loc8_34.1 [symbolic = %HoldsType.loc8_34.2 (constants.%HoldsType.cc9)] { +// CHECK:STDOUT: %T.loc8_6.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.1 (constants.%T.6eb)] +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_34.1 (%HoldsType.cc9) = value_param call_param0 +// CHECK:STDOUT: %.loc8_34: type = splice_block %HoldsType.loc8_34.2 [symbolic = %HoldsType.loc8_34.1 (constants.%HoldsType.cc9)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] -// CHECK:STDOUT: %T.ref.loc8_33: %tuple.type = name_ref T, %T.loc8_6.1 [symbolic = %T.loc8_6.2 (constants.%T.6eb)] -// CHECK:STDOUT: %HoldsType.loc8_34.1: type = class_type @HoldsType, @HoldsType(constants.%T.6eb) [symbolic = %HoldsType.loc8_34.2 (constants.%HoldsType.cc9)] +// CHECK:STDOUT: %T.ref.loc8_33: %tuple.type = name_ref T, %T.loc8_6.2 [symbolic = %T.loc8_6.1 (constants.%T.6eb)] +// CHECK:STDOUT: %HoldsType.loc8_34.2: type = class_type @HoldsType, @HoldsType(constants.%T.6eb) [symbolic = %HoldsType.loc8_34.1 (constants.%HoldsType.cc9)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc8_34.2 (%HoldsType.cc9) = bind_name x, %x.param -// CHECK:STDOUT: %a.param: @F.%tuple.elem0.loc8_41.2 (%tuple.elem0) = value_param call_param1 -// CHECK:STDOUT: %.loc8_41: type = splice_block %tuple.elem0.loc8_41.1 [symbolic = %tuple.elem0.loc8_41.2 (constants.%tuple.elem0)] { -// CHECK:STDOUT: %T.ref.loc8_40: %tuple.type = name_ref T, %T.loc8_6.1 [symbolic = %T.loc8_6.2 (constants.%T.6eb)] +// CHECK:STDOUT: %x: @F.%HoldsType.loc8_34.1 (%HoldsType.cc9) = bind_name x, %x.param +// CHECK:STDOUT: %a.param: @F.%tuple.elem0.loc8_41.1 (%tuple.elem0) = value_param call_param1 +// CHECK:STDOUT: %.loc8_41: type = splice_block %tuple.elem0.loc8_41.2 [symbolic = %tuple.elem0.loc8_41.1 (constants.%tuple.elem0)] { +// CHECK:STDOUT: %T.ref.loc8_40: %tuple.type = name_ref T, %T.loc8_6.2 [symbolic = %T.loc8_6.1 (constants.%T.6eb)] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %tuple.elem0.loc8_41.1: type = tuple_access %T.ref.loc8_40, element0 [symbolic = %tuple.elem0.loc8_41.2 (constants.%tuple.elem0)] +// CHECK:STDOUT: %tuple.elem0.loc8_41.2: type = tuple_access %T.ref.loc8_40, element0 [symbolic = %tuple.elem0.loc8_41.1 (constants.%tuple.elem0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%tuple.elem0.loc8_41.2 (%tuple.elem0) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%tuple.elem0.loc8_41.1 (%tuple.elem0) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HoldsType(%T.loc4_17.1: %tuple.type) { -// CHECK:STDOUT: %T.loc4_17.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T.6eb)] +// CHECK:STDOUT: generic class @HoldsType(%T.loc4_17.2: %tuple.type) { +// CHECK:STDOUT: %T.loc4_17.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T.6eb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -225,18 +225,18 @@ fn G() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc8_6.1: %tuple.type) { -// CHECK:STDOUT: %T.loc8_6.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.2 (constants.%T.6eb)] -// CHECK:STDOUT: %HoldsType.loc8_34.2: type = class_type @HoldsType, @HoldsType(%T.loc8_6.2) [symbolic = %HoldsType.loc8_34.2 (constants.%HoldsType.cc9)] -// CHECK:STDOUT: %pattern_type.loc8_20: type = pattern_type %HoldsType.loc8_34.2 [symbolic = %pattern_type.loc8_20 (constants.%pattern_type.ec6)] -// CHECK:STDOUT: %tuple.elem0.loc8_41.2: type = tuple_access %T.loc8_6.2, element0 [symbolic = %tuple.elem0.loc8_41.2 (constants.%tuple.elem0)] -// CHECK:STDOUT: %pattern_type.loc8_37: type = pattern_type %tuple.elem0.loc8_41.2 [symbolic = %pattern_type.loc8_37 (constants.%pattern_type.08e)] +// CHECK:STDOUT: generic fn @F(%T.loc8_6.2: %tuple.type) { +// CHECK:STDOUT: %T.loc8_6.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.1 (constants.%T.6eb)] +// CHECK:STDOUT: %HoldsType.loc8_34.1: type = class_type @HoldsType, @HoldsType(%T.loc8_6.1) [symbolic = %HoldsType.loc8_34.1 (constants.%HoldsType.cc9)] +// CHECK:STDOUT: %pattern_type.loc8_20: type = pattern_type %HoldsType.loc8_34.1 [symbolic = %pattern_type.loc8_20 (constants.%pattern_type.ec6)] +// CHECK:STDOUT: %tuple.elem0.loc8_41.1: type = tuple_access %T.loc8_6.1, element0 [symbolic = %tuple.elem0.loc8_41.1 (constants.%tuple.elem0)] +// CHECK:STDOUT: %pattern_type.loc8_37: type = pattern_type %tuple.elem0.loc8_41.1 [symbolic = %pattern_type.loc8_37 (constants.%pattern_type.08e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8_21: = require_complete_type %HoldsType.loc8_34.2 [symbolic = %require_complete.loc8_21 (constants.%require_complete.514)] -// CHECK:STDOUT: %require_complete.loc8_38: = require_complete_type %tuple.elem0.loc8_41.2 [symbolic = %require_complete.loc8_38 (constants.%require_complete.fec)] +// CHECK:STDOUT: %require_complete.loc8_21: = require_complete_type %HoldsType.loc8_34.1 [symbolic = %require_complete.loc8_21 (constants.%require_complete.514)] +// CHECK:STDOUT: %require_complete.loc8_38: = require_complete_type %tuple.elem0.loc8_41.1 [symbolic = %require_complete.loc8_38 (constants.%require_complete.fec)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_34.2 (%HoldsType.cc9), %a.param: @F.%tuple.elem0.loc8_41.2 (%tuple.elem0)) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_34.1 (%HoldsType.cc9), %a.param: @F.%tuple.elem0.loc8_41.1 (%tuple.elem0)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -266,12 +266,12 @@ fn G() { // CHECK:STDOUT: %.loc13_30.6: %C = bind_value %.loc13_30.5 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.2, %.loc13_30.6) // CHECK:STDOUT: %Op.bound.loc13_30: = bound_method %.loc13_30.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc13_30: = bound_method %.loc13_30.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_30: %ptr.019 = addr_of %.loc13_30.2 // CHECK:STDOUT: %no_op.loc13_30: init %empty_tuple.type = call %bound_method.loc13_30(%addr.loc13_30) // CHECK:STDOUT: %Op.bound.loc13_6: = bound_method %.loc13_6.2, constants.%Op.f20 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f20, @Op.2(constants.%HoldsType.c09) [concrete = constants.%Op.specific_fn.58d] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f20, @Op.1(constants.%HoldsType.c09) [concrete = constants.%Op.specific_fn.58d] // CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_6: %ptr.79a = addr_of %.loc13_6.2 // CHECK:STDOUT: %no_op.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) @@ -279,30 +279,30 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%T.6eb) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T.6eb +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T.6eb // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.6eb) { -// CHECK:STDOUT: %T.loc8_6.2 => constants.%T.6eb -// CHECK:STDOUT: %HoldsType.loc8_34.2 => constants.%HoldsType.cc9 +// CHECK:STDOUT: %T.loc8_6.1 => constants.%T.6eb +// CHECK:STDOUT: %HoldsType.loc8_34.1 => constants.%HoldsType.cc9 // CHECK:STDOUT: %pattern_type.loc8_20 => constants.%pattern_type.ec6 -// CHECK:STDOUT: %tuple.elem0.loc8_41.2 => constants.%tuple.elem0 +// CHECK:STDOUT: %tuple.elem0.loc8_41.1 => constants.%tuple.elem0 // CHECK:STDOUT: %pattern_type.loc8_37 => constants.%pattern_type.08e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%tuple) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%tuple +// CHECK:STDOUT: %T.loc4_17.1 => constants.%tuple // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%tuple) { -// CHECK:STDOUT: %T.loc8_6.2 => constants.%tuple -// CHECK:STDOUT: %HoldsType.loc8_34.2 => constants.%HoldsType.c09 +// CHECK:STDOUT: %T.loc8_6.1 => constants.%tuple +// CHECK:STDOUT: %HoldsType.loc8_34.1 => constants.%HoldsType.c09 // CHECK:STDOUT: %pattern_type.loc8_20 => constants.%pattern_type.8e0 -// CHECK:STDOUT: %tuple.elem0.loc8_41.2 => constants.%C +// CHECK:STDOUT: %tuple.elem0.loc8_41.1 => constants.%C // CHECK:STDOUT: %pattern_type.loc8_37 => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -340,14 +340,14 @@ fn G() { // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%struct) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.2(%C) [concrete] -// CHECK:STDOUT: %Op.type.8ea: type = fn_type @Op.2, @Destroy.impl(%HoldsType.705) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.1(%C) [concrete] +// CHECK:STDOUT: %Op.type.8ea: type = fn_type @Op.1, @Destroy.impl(%HoldsType.705) [concrete] // CHECK:STDOUT: %Op.180: %Op.type.8ea = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d1: type = ptr_type %HoldsType.705 [concrete] -// CHECK:STDOUT: %Op.specific_fn.fde: = specific_function %Op.180, @Op.2(%HoldsType.705) [concrete] +// CHECK:STDOUT: %Op.specific_fn.fde: = specific_function %Op.180, @Op.1(%HoldsType.705) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -372,7 +372,7 @@ fn G() { // CHECK:STDOUT: %T.patt: %pattern_type.7f2 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %struct_type.t: type = struct_type {.t: type} [concrete = constants.%struct_type.t] -// CHECK:STDOUT: %T.loc4_17.1: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T.08d)] +// CHECK:STDOUT: %T.loc4_17.2: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T.08d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.7f2 = symbolic_binding_pattern T, 0 [concrete] @@ -382,27 +382,27 @@ fn G() { // CHECK:STDOUT: %a.param_patt: @F.%pattern_type.loc8_39 (%pattern_type.9f0) = value_param_pattern %a.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %struct_type.t: type = struct_type {.t: type} [concrete = constants.%struct_type.t] -// CHECK:STDOUT: %T.loc8_6.1: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.2 (constants.%T.08d)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_36.2 (%HoldsType.843) = value_param call_param0 -// CHECK:STDOUT: %.loc8_36: type = splice_block %HoldsType.loc8_36.1 [symbolic = %HoldsType.loc8_36.2 (constants.%HoldsType.843)] { +// CHECK:STDOUT: %T.loc8_6.2: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.1 (constants.%T.08d)] +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc8_36.1 (%HoldsType.843) = value_param call_param0 +// CHECK:STDOUT: %.loc8_36: type = splice_block %HoldsType.loc8_36.2 [symbolic = %HoldsType.loc8_36.1 (constants.%HoldsType.843)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] -// CHECK:STDOUT: %T.ref.loc8_35: %struct_type.t = name_ref T, %T.loc8_6.1 [symbolic = %T.loc8_6.2 (constants.%T.08d)] -// CHECK:STDOUT: %HoldsType.loc8_36.1: type = class_type @HoldsType, @HoldsType(constants.%T.08d) [symbolic = %HoldsType.loc8_36.2 (constants.%HoldsType.843)] +// CHECK:STDOUT: %T.ref.loc8_35: %struct_type.t = name_ref T, %T.loc8_6.2 [symbolic = %T.loc8_6.1 (constants.%T.08d)] +// CHECK:STDOUT: %HoldsType.loc8_36.2: type = class_type @HoldsType, @HoldsType(constants.%T.08d) [symbolic = %HoldsType.loc8_36.1 (constants.%HoldsType.843)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc8_36.2 (%HoldsType.843) = bind_name x, %x.param -// CHECK:STDOUT: %a.param: @F.%.loc8_43.3 (%.20a) = value_param call_param1 -// CHECK:STDOUT: %.loc8_43.1: type = splice_block %.loc8_43.2 [symbolic = %.loc8_43.3 (constants.%.20a)] { -// CHECK:STDOUT: %T.ref.loc8_42: %struct_type.t = name_ref T, %T.loc8_6.1 [symbolic = %T.loc8_6.2 (constants.%T.08d)] -// CHECK:STDOUT: %.loc8_43.2: type = struct_access %T.ref.loc8_42, element0 [symbolic = %.loc8_43.3 (constants.%.20a)] +// CHECK:STDOUT: %x: @F.%HoldsType.loc8_36.1 (%HoldsType.843) = bind_name x, %x.param +// CHECK:STDOUT: %a.param: @F.%.loc8_43.1 (%.20a) = value_param call_param1 +// CHECK:STDOUT: %.loc8_43.2: type = splice_block %.loc8_43.3 [symbolic = %.loc8_43.1 (constants.%.20a)] { +// CHECK:STDOUT: %T.ref.loc8_42: %struct_type.t = name_ref T, %T.loc8_6.2 [symbolic = %T.loc8_6.1 (constants.%T.08d)] +// CHECK:STDOUT: %.loc8_43.3: type = struct_access %T.ref.loc8_42, element0 [symbolic = %.loc8_43.1 (constants.%.20a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%.loc8_43.3 (%.20a) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%.loc8_43.1 (%.20a) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HoldsType(%T.loc4_17.1: %struct_type.t) { -// CHECK:STDOUT: %T.loc4_17.2: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T.08d)] +// CHECK:STDOUT: generic class @HoldsType(%T.loc4_17.2: %struct_type.t) { +// CHECK:STDOUT: %T.loc4_17.1: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T.08d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -425,18 +425,18 @@ fn G() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc8_6.1: %struct_type.t) { -// CHECK:STDOUT: %T.loc8_6.2: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.2 (constants.%T.08d)] -// CHECK:STDOUT: %HoldsType.loc8_36.2: type = class_type @HoldsType, @HoldsType(%T.loc8_6.2) [symbolic = %HoldsType.loc8_36.2 (constants.%HoldsType.843)] -// CHECK:STDOUT: %pattern_type.loc8_22: type = pattern_type %HoldsType.loc8_36.2 [symbolic = %pattern_type.loc8_22 (constants.%pattern_type.aa4)] -// CHECK:STDOUT: %.loc8_43.3: type = struct_access %T.loc8_6.2, element0 [symbolic = %.loc8_43.3 (constants.%.20a)] -// CHECK:STDOUT: %pattern_type.loc8_39: type = pattern_type %.loc8_43.3 [symbolic = %pattern_type.loc8_39 (constants.%pattern_type.9f0)] +// CHECK:STDOUT: generic fn @F(%T.loc8_6.2: %struct_type.t) { +// CHECK:STDOUT: %T.loc8_6.1: %struct_type.t = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.1 (constants.%T.08d)] +// CHECK:STDOUT: %HoldsType.loc8_36.1: type = class_type @HoldsType, @HoldsType(%T.loc8_6.1) [symbolic = %HoldsType.loc8_36.1 (constants.%HoldsType.843)] +// CHECK:STDOUT: %pattern_type.loc8_22: type = pattern_type %HoldsType.loc8_36.1 [symbolic = %pattern_type.loc8_22 (constants.%pattern_type.aa4)] +// CHECK:STDOUT: %.loc8_43.1: type = struct_access %T.loc8_6.1, element0 [symbolic = %.loc8_43.1 (constants.%.20a)] +// CHECK:STDOUT: %pattern_type.loc8_39: type = pattern_type %.loc8_43.1 [symbolic = %pattern_type.loc8_39 (constants.%pattern_type.9f0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8_23: = require_complete_type %HoldsType.loc8_36.2 [symbolic = %require_complete.loc8_23 (constants.%require_complete.b19)] -// CHECK:STDOUT: %require_complete.loc8_40: = require_complete_type %.loc8_43.3 [symbolic = %require_complete.loc8_40 (constants.%require_complete.1b9)] +// CHECK:STDOUT: %require_complete.loc8_23: = require_complete_type %HoldsType.loc8_36.1 [symbolic = %require_complete.loc8_23 (constants.%require_complete.b19)] +// CHECK:STDOUT: %require_complete.loc8_40: = require_complete_type %.loc8_43.1 [symbolic = %require_complete.loc8_40 (constants.%require_complete.1b9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_36.2 (%HoldsType.843), %a.param: @F.%.loc8_43.3 (%.20a)) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc8_36.1 (%HoldsType.843), %a.param: @F.%.loc8_43.1 (%.20a)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -466,12 +466,12 @@ fn G() { // CHECK:STDOUT: %.loc13_33.6: %C = bind_value %.loc13_33.5 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.2, %.loc13_33.6) // CHECK:STDOUT: %Op.bound.loc13_33: = bound_method %.loc13_33.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_33: %ptr.019 = addr_of %.loc13_33.2 // CHECK:STDOUT: %no_op.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) // CHECK:STDOUT: %Op.bound.loc13_6: = bound_method %.loc13_6.2, constants.%Op.180 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.180, @Op.2(constants.%HoldsType.705) [concrete = constants.%Op.specific_fn.fde] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.180, @Op.1(constants.%HoldsType.705) [concrete = constants.%Op.specific_fn.fde] // CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_6: %ptr.5d1 = addr_of %.loc13_6.2 // CHECK:STDOUT: %no_op.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) @@ -479,30 +479,30 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%T.08d) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T.08d +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T.08d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.08d) { -// CHECK:STDOUT: %T.loc8_6.2 => constants.%T.08d -// CHECK:STDOUT: %HoldsType.loc8_36.2 => constants.%HoldsType.843 +// CHECK:STDOUT: %T.loc8_6.1 => constants.%T.08d +// CHECK:STDOUT: %HoldsType.loc8_36.1 => constants.%HoldsType.843 // CHECK:STDOUT: %pattern_type.loc8_22 => constants.%pattern_type.aa4 -// CHECK:STDOUT: %.loc8_43.3 => constants.%.20a +// CHECK:STDOUT: %.loc8_43.1 => constants.%.20a // CHECK:STDOUT: %pattern_type.loc8_39 => constants.%pattern_type.9f0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%struct) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%struct +// CHECK:STDOUT: %T.loc4_17.1 => constants.%struct // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%struct) { -// CHECK:STDOUT: %T.loc8_6.2 => constants.%struct -// CHECK:STDOUT: %HoldsType.loc8_36.2 => constants.%HoldsType.705 +// CHECK:STDOUT: %T.loc8_6.1 => constants.%struct +// CHECK:STDOUT: %HoldsType.loc8_36.1 => constants.%HoldsType.705 // CHECK:STDOUT: %pattern_type.loc8_22 => constants.%pattern_type.50b -// CHECK:STDOUT: %.loc8_43.3 => constants.%C +// CHECK:STDOUT: %.loc8_43.1 => constants.%C // CHECK:STDOUT: %pattern_type.loc8_39 => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -538,17 +538,17 @@ fn G() { // CHECK:STDOUT: %HoldsType.f95cf2.2: type = class_type @HoldsType, @HoldsType(%c) [symbolic] // CHECK:STDOUT: %HoldsType.val: %HoldsType.f95cf2.2 = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %ptr.deb: type = ptr_type %HoldsType.f95cf2.2 [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %HoldsType.f95cf2.2, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.088: %Destroy.type = facet_value %HoldsType.f95cf2.2, (%Destroy.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %.da6: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.088 [symbolic] // CHECK:STDOUT: %impl.elem0: %.da6 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.1(%Destroy.facet.088) [symbolic] -// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.2, @Destroy.impl(%Class) [concrete] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.2(%Destroy.facet.088) [symbolic] +// CHECK:STDOUT: %Op.type.7de: type = fn_type @Op.1, @Destroy.impl(%Class) [concrete] // CHECK:STDOUT: %Op.d64: %Op.type.7de = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.2(%Class) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d64, @Op.1(%Class) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -575,7 +575,7 @@ fn G() { // CHECK:STDOUT: %T.patt: %pattern_type.761 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %T.loc8_17.1: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc8_17.2 (constants.%T.0de)] +// CHECK:STDOUT: %T.loc8_17.2: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc8_17.1 (constants.%T.0de)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.761 = symbolic_binding_pattern T, 0 [concrete] @@ -585,20 +585,20 @@ fn G() { // CHECK:STDOUT: %a.param_patt: = value_param_pattern %a.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %T.loc21_6.1: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.2 (constants.%T.0de)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc21_31.2 (%HoldsType.f95cf2.1) = value_param call_param0 -// CHECK:STDOUT: %.loc21_31: type = splice_block %HoldsType.loc21_31.1 [symbolic = %HoldsType.loc21_31.2 (constants.%HoldsType.f95cf2.1)] { +// CHECK:STDOUT: %T.loc21_6.2: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.1 (constants.%T.0de)] +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc21_31.1 (%HoldsType.f95cf2.1) = value_param call_param0 +// CHECK:STDOUT: %.loc21_31: type = splice_block %HoldsType.loc21_31.2 [symbolic = %HoldsType.loc21_31.1 (constants.%HoldsType.f95cf2.1)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] -// CHECK:STDOUT: %T.ref.loc21_30: %Class = name_ref T, %T.loc21_6.1 [symbolic = %T.loc21_6.2 (constants.%T.0de)] -// CHECK:STDOUT: %HoldsType.loc21_31.1: type = class_type @HoldsType, @HoldsType(constants.%T.0de) [symbolic = %HoldsType.loc21_31.2 (constants.%HoldsType.f95cf2.1)] +// CHECK:STDOUT: %T.ref.loc21_30: %Class = name_ref T, %T.loc21_6.2 [symbolic = %T.loc21_6.1 (constants.%T.0de)] +// CHECK:STDOUT: %HoldsType.loc21_31.2: type = class_type @HoldsType, @HoldsType(constants.%T.0de) [symbolic = %HoldsType.loc21_31.1 (constants.%HoldsType.f95cf2.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc21_31.2 (%HoldsType.f95cf2.1) = bind_name x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc21_31.1 (%HoldsType.f95cf2.1) = bind_name x, %x.param // CHECK:STDOUT: %a.param: = value_param call_param1 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { -// CHECK:STDOUT: %T.ref.loc21_37: %Class = name_ref T, %T.loc21_6.1 [symbolic = %T.loc21_6.2 (constants.%T.0de)] +// CHECK:STDOUT: %T.ref.loc21_37: %Class = name_ref T, %T.loc21_6.2 [symbolic = %T.loc21_6.1 (constants.%T.0de)] // CHECK:STDOUT: %t.ref: %Class.elem = name_ref t, @Class.%.loc5 [concrete = @Class.%.loc5] -// CHECK:STDOUT: %.loc21_38.1: ref type = class_element_access %T.ref.loc21_37, element0 [symbolic = %.loc21_38.3 (constants.%.2fe)] -// CHECK:STDOUT: %.loc21_38.2: type = bind_value %.loc21_38.1 +// CHECK:STDOUT: %.loc21_38.2: ref type = class_element_access %T.ref.loc21_37, element0 [symbolic = %.loc21_38.1 (constants.%.2fe)] +// CHECK:STDOUT: %.loc21_38.3: type = bind_value %.loc21_38.2 // CHECK:STDOUT: } // CHECK:STDOUT: %a: = bind_name a, %a.param // CHECK:STDOUT: } @@ -617,8 +617,8 @@ fn G() { // CHECK:STDOUT: .t = %.loc5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HoldsType(%T.loc8_17.1: %Class) { -// CHECK:STDOUT: %T.loc8_17.2: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc8_17.2 (constants.%T.0de)] +// CHECK:STDOUT: generic class @HoldsType(%T.loc8_17.2: %Class) { +// CHECK:STDOUT: %T.loc8_17.1: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc8_17.1 (constants.%T.0de)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -641,16 +641,16 @@ fn G() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc21_6.1: %Class) { -// CHECK:STDOUT: %T.loc21_6.2: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.2 (constants.%T.0de)] -// CHECK:STDOUT: %HoldsType.loc21_31.2: type = class_type @HoldsType, @HoldsType(%T.loc21_6.2) [symbolic = %HoldsType.loc21_31.2 (constants.%HoldsType.f95cf2.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc21_31.2 [symbolic = %pattern_type (constants.%pattern_type.937)] -// CHECK:STDOUT: %.loc21_38.3: ref type = class_element_access %T.loc21_6.2, element0 [symbolic = %.loc21_38.3 (constants.%.2fe)] +// CHECK:STDOUT: generic fn @F(%T.loc21_6.2: %Class) { +// CHECK:STDOUT: %T.loc21_6.1: %Class = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.1 (constants.%T.0de)] +// CHECK:STDOUT: %HoldsType.loc21_31.1: type = class_type @HoldsType, @HoldsType(%T.loc21_6.1) [symbolic = %HoldsType.loc21_31.1 (constants.%HoldsType.f95cf2.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc21_31.1 [symbolic = %pattern_type (constants.%pattern_type.937)] +// CHECK:STDOUT: %.loc21_38.1: ref type = class_element_access %T.loc21_6.1, element0 [symbolic = %.loc21_38.1 (constants.%.2fe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc21_31.2 [symbolic = %require_complete (constants.%require_complete.8fa644.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc21_31.1 [symbolic = %require_complete (constants.%require_complete.8fa644.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc21_31.2 (%HoldsType.f95cf2.1), %a.param: ) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc21_31.1 (%HoldsType.f95cf2.1), %a.param: ) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -685,12 +685,12 @@ fn G() { // CHECK:STDOUT: %.loc27_26: %empty_struct_type = struct_literal () // CHECK:STDOUT: %impl.elem0: %.da6 = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = constants.%impl.elem0] // CHECK:STDOUT: %bound_method.loc27_6.1: = bound_method %.loc27_6.2, %impl.elem0 -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.1(constants.%Destroy.facet.088) [symbolic = constants.%specific_impl_fn] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.2(constants.%Destroy.facet.088) [symbolic = constants.%specific_impl_fn] // CHECK:STDOUT: %bound_method.loc27_6.2: = bound_method %.loc27_6.2, %specific_impl_fn // CHECK:STDOUT: %addr.loc27: %ptr.deb = addr_of %.loc27_6.2 // CHECK:STDOUT: %.loc27_6.5: init %empty_tuple.type = call %bound_method.loc27_6.2(%addr.loc27) // CHECK:STDOUT: %Op.bound: = bound_method %.loc26_26.2, constants.%Op.d64 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.2(constants.%Class) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d64, @Op.1(constants.%Class) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_26.2, %Op.specific_fn // CHECK:STDOUT: %addr.loc26: %ptr.e71 = addr_of %.loc26_26.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) @@ -698,20 +698,20 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%T.0de) { -// CHECK:STDOUT: %T.loc8_17.2 => constants.%T.0de +// CHECK:STDOUT: %T.loc8_17.1 => constants.%T.0de // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.0de) { -// CHECK:STDOUT: %T.loc21_6.2 => constants.%T.0de -// CHECK:STDOUT: %HoldsType.loc21_31.2 => constants.%HoldsType.f95cf2.1 +// CHECK:STDOUT: %T.loc21_6.1 => constants.%T.0de +// CHECK:STDOUT: %HoldsType.loc21_31.1 => constants.%HoldsType.f95cf2.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.937 -// CHECK:STDOUT: %.loc21_38.3 => constants.%.2fe +// CHECK:STDOUT: %.loc21_38.1 => constants.%.2fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%c) { -// CHECK:STDOUT: %T.loc8_17.2 => constants.%c +// CHECK:STDOUT: %T.loc8_17.1 => constants.%c // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -761,9 +761,9 @@ fn G() { // CHECK:STDOUT: %tuple.type: type = tuple_type (type) [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.8a7: type = fn_type @Op.3, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.8a7: type = fn_type @Op.2, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.246: %Op.type.8a7 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.246, @Op.3(%array_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.246, @Op.2(%array_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -797,7 +797,7 @@ fn G() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %array_type: type = array_type %int_1, type [concrete = constants.%array_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc4_17.1: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T.eb6)] +// CHECK:STDOUT: %T.loc4_17.2: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T.eb6)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.dcb = symbolic_binding_pattern T, 0 [concrete] @@ -810,17 +810,17 @@ fn G() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %array_type: type = array_type %int_1, type [concrete = constants.%array_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc12_6.1: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc12_6.2 (constants.%T.eb6)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc12_40.2 (%HoldsType) = value_param call_param0 -// CHECK:STDOUT: %.loc12_40: type = splice_block %HoldsType.loc12_40.1 [symbolic = %HoldsType.loc12_40.2 (constants.%HoldsType)] { +// CHECK:STDOUT: %T.loc12_6.2: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc12_6.1 (constants.%T.eb6)] +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc12_40.1 (%HoldsType) = value_param call_param0 +// CHECK:STDOUT: %.loc12_40: type = splice_block %HoldsType.loc12_40.2 [symbolic = %HoldsType.loc12_40.1 (constants.%HoldsType)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] -// CHECK:STDOUT: %T.ref.loc12_39: %array_type = name_ref T, %T.loc12_6.1 [symbolic = %T.loc12_6.2 (constants.%T.eb6)] -// CHECK:STDOUT: %HoldsType.loc12_40.1: type = class_type @HoldsType, @HoldsType(constants.%T.eb6) [symbolic = %HoldsType.loc12_40.2 (constants.%HoldsType)] +// CHECK:STDOUT: %T.ref.loc12_39: %array_type = name_ref T, %T.loc12_6.2 [symbolic = %T.loc12_6.1 (constants.%T.eb6)] +// CHECK:STDOUT: %HoldsType.loc12_40.2: type = class_type @HoldsType, @HoldsType(constants.%T.eb6) [symbolic = %HoldsType.loc12_40.1 (constants.%HoldsType)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc12_40.2 (%HoldsType) = bind_name x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc12_40.1 (%HoldsType) = bind_name x, %x.param // CHECK:STDOUT: %a.param: = value_param call_param1 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { -// CHECK:STDOUT: %T.ref.loc12_46: %array_type = name_ref T, %T.loc12_6.1 [symbolic = %T.loc12_6.2 (constants.%T.eb6)] +// CHECK:STDOUT: %T.ref.loc12_46: %array_type = name_ref T, %T.loc12_6.2 [symbolic = %T.loc12_6.1 (constants.%T.eb6)] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -841,8 +841,8 @@ fn G() { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HoldsType(%T.loc4_17.1: %array_type) { -// CHECK:STDOUT: %T.loc4_17.2: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.2 (constants.%T.eb6)] +// CHECK:STDOUT: generic class @HoldsType(%T.loc4_17.2: %array_type) { +// CHECK:STDOUT: %T.loc4_17.1: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc4_17.1 (constants.%T.eb6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -865,15 +865,15 @@ fn G() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc12_6.1: %array_type) { -// CHECK:STDOUT: %T.loc12_6.2: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc12_6.2 (constants.%T.eb6)] -// CHECK:STDOUT: %HoldsType.loc12_40.2: type = class_type @HoldsType, @HoldsType(%T.loc12_6.2) [symbolic = %HoldsType.loc12_40.2 (constants.%HoldsType)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc12_40.2 [symbolic = %pattern_type (constants.%pattern_type.142)] +// CHECK:STDOUT: generic fn @F(%T.loc12_6.2: %array_type) { +// CHECK:STDOUT: %T.loc12_6.1: %array_type = bind_symbolic_name T, 0 [symbolic = %T.loc12_6.1 (constants.%T.eb6)] +// CHECK:STDOUT: %HoldsType.loc12_40.1: type = class_type @HoldsType, @HoldsType(%T.loc12_6.1) [symbolic = %HoldsType.loc12_40.1 (constants.%HoldsType)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc12_40.1 [symbolic = %pattern_type (constants.%pattern_type.142)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc12_40.2 [symbolic = %require_complete (constants.%require_complete.640)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc12_40.1 [symbolic = %require_complete (constants.%require_complete.640)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc12_40.2 (%HoldsType), %a.param: ) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc12_40.1 (%HoldsType), %a.param: ) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -898,7 +898,7 @@ fn G() { // CHECK:STDOUT: %.loc24_27.3: %array_type = bind_value %.loc24_27.2 // CHECK:STDOUT: %.loc24_48: %empty_struct_type = struct_literal () // CHECK:STDOUT: %Op.bound: = bound_method %.loc24_25.2, constants.%Op.246 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.246, @Op.3(constants.%array_type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.246, @Op.2(constants.%array_type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc24_25.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ea3 = addr_of %.loc24_25.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -906,14 +906,14 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%T.eb6) { -// CHECK:STDOUT: %T.loc4_17.2 => constants.%T.eb6 +// CHECK:STDOUT: %T.loc4_17.1 => constants.%T.eb6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.eb6) { -// CHECK:STDOUT: %T.loc12_6.2 => constants.%T.eb6 -// CHECK:STDOUT: %HoldsType.loc12_40.2 => constants.%HoldsType +// CHECK:STDOUT: %T.loc12_6.1 => constants.%T.eb6 +// CHECK:STDOUT: %HoldsType.loc12_40.1 => constants.%HoldsType // CHECK:STDOUT: %pattern_type => constants.%pattern_type.142 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/aggregates.carbon b/toolchain/check/testdata/eval/aggregates.carbon index e282674a910b..0edd2ba6e05f 100644 --- a/toolchain/check/testdata/eval/aggregates.carbon +++ b/toolchain/check/testdata/eval/aggregates.carbon @@ -494,17 +494,17 @@ fn G(N:! i32) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.2fd: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [concrete] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = bind_symbolic_name From, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.708: type = fn_type @Convert.3, @ImplicitAs.impl.971(%From) [symbolic] +// CHECK:STDOUT: %Convert.type.708: type = fn_type @Convert.1, @ImplicitAs.impl.971(%From) [symbolic] // CHECK:STDOUT: %Convert.c68: %Convert.type.708 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.a11: = impl_witness imports.%ImplicitAs.impl_witness_table.1d9, @ImplicitAs.impl.971(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @ImplicitAs.impl.971(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.1, @ImplicitAs.impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, (%ImplicitAs.impl_witness.a11) [concrete] // CHECK:STDOUT: %.0ea: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.960, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %N.51e, %Convert.specific_fn [symbolic] // CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %bound_method(%N.51e) [symbolic] // CHECK:STDOUT: %array_type.c7c: type = array_type %int.convert_checked, %i32 [symbolic] @@ -524,19 +524,19 @@ fn G(N:! i32) { // CHECK:STDOUT: %ImplicitAs.impl_witness_table.1d9 = impl_witness_table (%Core.import_ref.85c), @ImplicitAs.impl.971 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_6.1: type) { +// CHECK:STDOUT: generic fn @F(%T.loc4_6.2: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr.loc6_12.2: type = ptr_type %T.loc4_6.2 [symbolic = %ptr.loc6_12.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %const.loc6_15.2: type = const_type %T.loc4_6.2 [symbolic = %const.loc6_15.2 (constants.%const)] +// CHECK:STDOUT: %ptr.loc6_12.2: type = ptr_type %T.loc4_6.1 [symbolic = %ptr.loc6_12.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %const.loc6_15.2: type = const_type %T.loc4_6.1 [symbolic = %const.loc6_15.2 (constants.%const)] // CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc6_12.2, %const.loc6_15.2) [symbolic = %tuple.type (constants.%tuple.type.4f2)] // CHECK:STDOUT: %require_complete.loc6_22: = require_complete_type %tuple.type [symbolic = %require_complete.loc6_22 (constants.%require_complete.155)] // CHECK:STDOUT: %pattern_type.loc6: type = pattern_type %tuple.type [symbolic = %pattern_type.loc6 (constants.%pattern_type.973)] -// CHECK:STDOUT: %struct_type.a.loc7_16.2: type = struct_type {.a: @F.%T.loc4_6.2 (%T)} [symbolic = %struct_type.a.loc7_16.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %struct_type.a.loc7_16.2: type = struct_type {.a: @F.%T.loc4_6.1 (%T)} [symbolic = %struct_type.a.loc7_16.2 (constants.%struct_type.a)] // CHECK:STDOUT: %require_complete.loc7_16: = require_complete_type %struct_type.a.loc7_16.2 [symbolic = %require_complete.loc7_16 (constants.%require_complete.28a)] // CHECK:STDOUT: %pattern_type.loc7: type = pattern_type %struct_type.a.loc7_16.2 [symbolic = %pattern_type.loc7 (constants.%pattern_type.95a)] -// CHECK:STDOUT: %array_type.loc8_20.2: type = array_type constants.%int_5, %T.loc4_6.2 [symbolic = %array_type.loc8_20.2 (constants.%array_type.ec2)] +// CHECK:STDOUT: %array_type.loc8_20.2: type = array_type constants.%int_5, %T.loc4_6.1 [symbolic = %array_type.loc8_20.2 (constants.%array_type.ec2)] // CHECK:STDOUT: %require_complete.loc8_20: = require_complete_type %array_type.loc8_20.2 [symbolic = %require_complete.loc8_20 (constants.%require_complete.fe1)] // CHECK:STDOUT: %pattern_type.loc8: type = pattern_type %array_type.loc8_20.2 [symbolic = %pattern_type.loc8 (constants.%pattern_type.035)] // CHECK:STDOUT: %Destroy.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_20.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc8 (constants.%Destroy.lookup_impl_witness.b45)] @@ -569,9 +569,9 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.4f2) = var %u.var_patt // CHECK:STDOUT: %.loc6_22.1: type = splice_block %.loc6_22.3 [symbolic = %tuple.type (constants.%tuple.type.4f2)] { -// CHECK:STDOUT: %T.ref.loc6_11: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_11: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc6_12.1: type = ptr_type %T.ref.loc6_11 [symbolic = %ptr.loc6_12.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.ref.loc6_21: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc6_21: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %const.loc6_15.1: type = const_type %T.ref.loc6_21 [symbolic = %const.loc6_15.2 (constants.%const)] // CHECK:STDOUT: %.loc6_22.2: %tuple.type.24b = tuple_literal (%ptr.loc6_12.1, %const.loc6_15.1) // CHECK:STDOUT: %.loc6_22.3: type = converted %.loc6_22.2, constants.%tuple.type.4f2 [symbolic = %tuple.type (constants.%tuple.type.4f2)] @@ -583,8 +583,8 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref @F.%struct_type.a.loc7_16.2 (%struct_type.a) = var %v.var_patt // CHECK:STDOUT: %.loc7_16: type = splice_block %struct_type.a.loc7_16.1 [symbolic = %struct_type.a.loc7_16.2 (constants.%struct_type.a)] { -// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %struct_type.a.loc7_16.1: type = struct_type {.a: @F.%T.loc4_6.2 (%T)} [symbolic = %struct_type.a.loc7_16.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.a.loc7_16.1: type = struct_type {.a: @F.%T.loc4_6.1 (%T)} [symbolic = %struct_type.a.loc7_16.2 (constants.%struct_type.a)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @F.%struct_type.a.loc7_16.2 (%struct_type.a) = bind_name v, %v.var // CHECK:STDOUT: name_binding_decl { @@ -593,7 +593,7 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref @F.%array_type.loc8_20.2 (%array_type.ec2) = var %w.var_patt // CHECK:STDOUT: %.loc8_20: type = splice_block %array_type.loc8_20.1 [symbolic = %array_type.loc8_20.2 (constants.%array_type.ec2)] { -// CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc8: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5] // CHECK:STDOUT: %array_type.loc8_20.1: type = array_type %int_5, %T.ref.loc8 [symbolic = %array_type.loc8_20.2 (constants.%array_type.ec2)] // CHECK:STDOUT: } @@ -620,13 +620,13 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%N.loc12_6.1: %i32) { +// CHECK:STDOUT: generic fn @G(%N.loc12_6.2: %i32) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc12_6.2, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] -// CHECK:STDOUT: %bound_method.loc14_21.3: = bound_method %N.loc12_6.2, constants.%Convert.specific_fn [symbolic = %bound_method.loc14_21.3 (constants.%bound_method)] -// CHECK:STDOUT: %int.convert_checked.loc14_21.2: init Core.IntLiteral = call %bound_method.loc14_21.3(%N.loc12_6.2) [symbolic = %int.convert_checked.loc14_21.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc12_6.1, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] +// CHECK:STDOUT: %bound_method.loc14_21.3: = bound_method %N.loc12_6.1, constants.%Convert.specific_fn [symbolic = %bound_method.loc14_21.3 (constants.%bound_method)] +// CHECK:STDOUT: %int.convert_checked.loc14_21.2: init Core.IntLiteral = call %bound_method.loc14_21.3(%N.loc12_6.1) [symbolic = %int.convert_checked.loc14_21.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %array_type.loc14_22.2: type = array_type %int.convert_checked.loc14_21.2, constants.%i32 [symbolic = %array_type.loc14_22.2 (constants.%array_type.c7c)] // CHECK:STDOUT: %require_complete.loc14_22: = require_complete_type %array_type.loc14_22.2 [symbolic = %require_complete.loc14_22 (constants.%require_complete.7cb)] // CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc14_22.2 [symbolic = %pattern_type (constants.%pattern_type.ccc)] @@ -648,10 +648,10 @@ fn G(N:! i32) { // CHECK:STDOUT: %.loc14_22: type = splice_block %array_type.loc14_22.1 [symbolic = %array_type.loc14_22.2 (constants.%array_type.c7c)] { // CHECK:STDOUT: %int_32.loc14: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc14: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc12_6.1 [symbolic = %N.loc12_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc12_6.2 [symbolic = %N.loc12_6.1 (constants.%N.51e)] // CHECK:STDOUT: %impl.elem0.loc14_21: %.0ea = impl_witness_access constants.%ImplicitAs.impl_witness.a11, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc14_21.1: = bound_method %N.ref, %impl.elem0.loc14_21 [symbolic = %Convert.bound (constants.%Convert.bound)] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc14_21, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc14_21, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_21.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc14_21.3 (constants.%bound_method)] // CHECK:STDOUT: %int.convert_checked.loc14_21.1: init Core.IntLiteral = call %bound_method.loc14_21.2(%N.ref) [symbolic = %int.convert_checked.loc14_21.2 (constants.%int.convert_checked)] // CHECK:STDOUT: %.loc14_21.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc14_21.1 [symbolic = %int.convert_checked.loc14_21.2 (constants.%int.convert_checked)] @@ -670,10 +670,10 @@ fn G(N:! i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%N.51e) { -// CHECK:STDOUT: %N.loc12_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc12_6.1 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/access.carbon b/toolchain/check/testdata/facet/access.carbon index d0fc6d342aea..857ffb7fbb7c 100644 --- a/toolchain/check/testdata/facet/access.carbon +++ b/toolchain/check/testdata/facet/access.carbon @@ -206,12 +206,12 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: imports { // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Use(%T.loc8_8.1: %I.type) { +// CHECK:STDOUT: generic fn @Use(%T.loc8_8.2: %I.type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc10_4.2: type = facet_access_type %T.loc8_8.2 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %T.as_type.loc10_4.2: type = facet_access_type %T.loc8_8.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc10_4.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] // CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%DoIt.type, %I.facet [symbolic = %.loc10_4.2 (constants.%.ded)] // CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.ded) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] @@ -219,7 +219,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_8.1 [symbolic = %T.loc8_8.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_8.2 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: %DoIt.ref: %I.assoc_type = name_ref DoIt, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc10_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc10_4.1: type = converted %T.ref, %T.as_type.loc10_4.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] @@ -231,7 +231,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { -// CHECK:STDOUT: %T.loc8_8.2 => constants.%T +// CHECK:STDOUT: %T.loc8_8.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- assoc_fn_using_self.carbon @@ -254,35 +254,35 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: imports { // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Use(%T.loc8_8.1: %I.type) { +// CHECK:STDOUT: generic fn @Use(%T.loc8_8.2: %I.type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] // CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type constants.%Make.type, %I.facet [symbolic = %.loc10_11.2 (constants.%.44c)] // CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.44c) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @Make(%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @Use.%T.as_type.loc8_18.2 (%T.as_type) { +// CHECK:STDOUT: fn() -> @Use.%T.as_type.loc8_18.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_8.1 [symbolic = %T.loc8_8.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_8.2 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: %Make.ref: %I.assoc_type = name_ref Make, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_11.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_11.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.44c) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @Make(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc8_18.2 (%T.as_type) = call %specific_impl_fn.loc10_11.1() -// CHECK:STDOUT: %.loc10_18.1: @Use.%T.as_type.loc8_18.2 (%T.as_type) = value_of_initializer %.loc10_17 -// CHECK:STDOUT: %.loc10_18.2: @Use.%T.as_type.loc8_18.2 (%T.as_type) = converted %.loc10_17, %.loc10_18.1 +// CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc8_18.1 (%T.as_type) = call %specific_impl_fn.loc10_11.1() +// CHECK:STDOUT: %.loc10_18.1: @Use.%T.as_type.loc8_18.1 (%T.as_type) = value_of_initializer %.loc10_17 +// CHECK:STDOUT: %.loc10_18.2: @Use.%T.as_type.loc8_18.1 (%T.as_type) = converted %.loc10_17, %.loc10_18.1 // CHECK:STDOUT: return %.loc10_18.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { -// CHECK:STDOUT: %T.loc8_8.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_18.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc8_8.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de4e4.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -318,56 +318,56 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.6de4e4.2) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.6de4e4.2) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_24: %I.type = name_ref T, %T.loc9_8.1 [symbolic = %T.loc9_8.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_24: type = facet_access_type %T.ref.loc9_24 [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_24: type = converted %T.ref.loc9_24, %T.as_type.loc9_24 [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.ref.loc9_24: %I.type = name_ref T, %T.loc9_8.2 [symbolic = %T.loc9_8.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc9_24: type = facet_access_type %T.ref.loc9_24 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_24: type = converted %T.ref.loc9_24, %T.as_type.loc9_24 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %T.loc9_8.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_8.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @Use.%T.as_type.loc9_18.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_18.1: type = splice_block %.loc9_18.2 [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc9_18: %I.type = name_ref T, %T.loc9_8.1 [symbolic = %T.loc9_8.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_18.1: type = facet_access_type %T.ref.loc9_18 [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_18.2: type = converted %T.ref.loc9_18, %T.as_type.loc9_18.1 [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc9_8.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_8.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @Use.%T.as_type.loc9_18.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_18.1: type = splice_block %.loc9_18.2 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc9_18: %I.type = name_ref T, %T.loc9_8.2 [symbolic = %T.loc9_8.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc9_18.2: type = facet_access_type %T.ref.loc9_18 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_18.2: type = converted %T.ref.loc9_18, %T.as_type.loc9_18.2 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Use.%T.as_type.loc9_18.2 (%T.as_type) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @Use.%T.as_type.loc9_18.2 (%T.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Use.%T.as_type.loc9_18.2 (%T.as_type) = return_slot %return.param +// CHECK:STDOUT: %x: @Use.%T.as_type.loc9_18.1 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @Use.%T.as_type.loc9_18.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Use.%T.as_type.loc9_18.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Use(%T.loc9_8.1: %I.type) { -// CHECK:STDOUT: %T.loc9_8.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_8.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_18.2: type = facet_access_type %T.loc9_8.2 [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_18.2 [symbolic = %pattern_type (constants.%pattern_type.6de4e4.2)] +// CHECK:STDOUT: generic fn @Use(%T.loc9_8.2: %I.type) { +// CHECK:STDOUT: %T.loc9_8.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_8.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc9_18.1: type = facet_access_type %T.loc9_8.1 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_18.1 [symbolic = %pattern_type (constants.%pattern_type.6de4e4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_18.2 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc9_8.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc9_18.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_18.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc9_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc9_18.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] // CHECK:STDOUT: %.loc10_11.2: type = fn_type_with_self_type constants.%Copy.type, %I.facet [symbolic = %.loc10_11.2 (constants.%.e3b)] // CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.e3b) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @Copy(%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc9_18.2 (%T.as_type)) -> @Use.%T.as_type.loc9_18.2 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc9_18.1 (%T.as_type)) -> @Use.%T.as_type.loc9_18.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc9_18.2 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc9_18.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_11.1: type = converted constants.%T, %T.as_type.loc10 [symbolic = %T.as_type.loc9_18.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_11.1: type = converted constants.%T, %T.as_type.loc10 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.e3b) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_11.1 // CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @Copy(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_17: = bound_method %x.ref, %specific_impl_fn.loc10_11.1 -// CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc9_18.2 (%T.as_type) = call %bound_method.loc10_17(%x.ref) -// CHECK:STDOUT: %.loc10_18.1: @Use.%T.as_type.loc9_18.2 (%T.as_type) = value_of_initializer %.loc10_17 -// CHECK:STDOUT: %.loc10_18.2: @Use.%T.as_type.loc9_18.2 (%T.as_type) = converted %.loc10_17, %.loc10_18.1 +// CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc9_18.1 (%T.as_type) = call %bound_method.loc10_17(%x.ref) +// CHECK:STDOUT: %.loc10_18.1: @Use.%T.as_type.loc9_18.1 (%T.as_type) = value_of_initializer %.loc10_17 +// CHECK:STDOUT: %.loc10_18.2: @Use.%T.as_type.loc9_18.1 (%T.as_type) = converted %.loc10_17, %.loc10_18.1 // CHECK:STDOUT: return %.loc10_18.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { -// CHECK:STDOUT: %T.loc9_8.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc9_18.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc9_8.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc9_18.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de4e4.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -392,23 +392,23 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: imports { // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Use(%T.loc8_8.1: %I.type) { +// CHECK:STDOUT: generic fn @Use(%T.loc8_8.2: %I.type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] // CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%Hello.type, %I.facet [symbolic = %.loc10_4.2 (constants.%.e1d)] // CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.e1d) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @Hello(%I.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc8_18.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc8_18.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc8_18.2 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc8_18.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Hello.ref: %I.assoc_type = name_ref Hello, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_4.1: type = converted constants.%T, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_4.1: type = converted constants.%T, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.e1d) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @Hello(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc10_11: init %empty_tuple.type = call %specific_impl_fn.loc10_4.1() @@ -417,8 +417,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { -// CHECK:STDOUT: %T.loc8_8.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_18.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc8_8.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: @@ -442,38 +442,38 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: imports { // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @UseIndirect(%T.loc8_16.1: %I.type) { +// CHECK:STDOUT: generic fn @UseIndirect(%T.loc8_16.2: %I.type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_16.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_26.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_16.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_26.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] // CHECK:STDOUT: %.loc10_14.2: type = fn_type_with_self_type constants.%Copy.type, %I.facet [symbolic = %.loc10_14.2 (constants.%.e3b)] // CHECK:STDOUT: %impl.elem0.loc10_14.2: @UseIndirect.%.loc10_14.2 (%.e3b) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_14.2: = specific_impl_function %impl.elem0.loc10_14.2, @Copy(%I.facet) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type)) -> @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type)) -> @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] +// CHECK:STDOUT: %x.ref: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_16.2 [symbolic = %T.loc8_16.1 (constants.%T)] // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_26.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_14.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_26.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_14.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc10_14.1: @UseIndirect.%.loc10_14.2 (%.e3b) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_14.1 // CHECK:STDOUT: %specific_impl_fn.loc10_14.1: = specific_impl_function %impl.elem0.loc10_14.1, @Copy(constants.%I.facet) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_21: = bound_method %x.ref, %specific_impl_fn.loc10_14.1 -// CHECK:STDOUT: %.loc10_21: init @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type) = call %bound_method.loc10_21(%x.ref) -// CHECK:STDOUT: %.loc10_22.1: @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type) = value_of_initializer %.loc10_21 -// CHECK:STDOUT: %.loc10_22.2: @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type) = converted %.loc10_21, %.loc10_22.1 +// CHECK:STDOUT: %.loc10_21: init @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = call %bound_method.loc10_21(%x.ref) +// CHECK:STDOUT: %.loc10_22.1: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = value_of_initializer %.loc10_21 +// CHECK:STDOUT: %.loc10_22.2: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = converted %.loc10_21, %.loc10_22.1 // CHECK:STDOUT: return %.loc10_22.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseIndirect(constants.%T) { -// CHECK:STDOUT: %T.loc8_16.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_26.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc8_16.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc8_26.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de4e4.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -508,10 +508,10 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %AA.ref: %A_where.type = name_ref AA, %AA.loc6_6.1 [symbolic = %AA.loc6_6.2 (constants.%AA)] +// CHECK:STDOUT: %AA.ref: %A_where.type = name_ref AA, %AA.loc6_6.2 [symbolic = %AA.loc6_6.1 (constants.%AA)] // CHECK:STDOUT: %X.ref.loc6_33: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %AA.as_type.loc6_33.1: type = facet_access_type %AA.ref [symbolic = %AA.as_type.loc6_33.2 (constants.%AA.as_type)] -// CHECK:STDOUT: %.loc6_33: type = converted %AA.ref, %AA.as_type.loc6_33.1 [symbolic = %AA.as_type.loc6_33.2 (constants.%AA.as_type)] +// CHECK:STDOUT: %AA.as_type.loc6_33.2: type = facet_access_type %AA.ref [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] +// CHECK:STDOUT: %.loc6_33: type = converted %AA.ref, %AA.as_type.loc6_33.2 [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] // CHECK:STDOUT: %impl.elem0.loc6_33: type = impl_witness_access constants.%A.lookup_impl_witness.c50, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = constants.%A_where.type] { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] @@ -527,16 +527,16 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc6_19, %.loc6_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %AA.loc6_6.1: %A_where.type = bind_symbolic_name AA, 0 [symbolic = %AA.loc6_6.2 (constants.%AA)] +// CHECK:STDOUT: %AA.loc6_6.2: %A_where.type = bind_symbolic_name AA, 0 [symbolic = %AA.loc6_6.1 (constants.%AA)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%AA.loc6_6.1: %A_where.type) { -// CHECK:STDOUT: %AA.loc6_6.2: %A_where.type = bind_symbolic_name AA, 0 [symbolic = %AA.loc6_6.2 (constants.%AA)] -// CHECK:STDOUT: %AA.as_type.loc6_33.2: type = facet_access_type %AA.loc6_6.2 [symbolic = %AA.as_type.loc6_33.2 (constants.%AA.as_type)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %AA.loc6_6.2, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.c50)] +// CHECK:STDOUT: generic fn @F(%AA.loc6_6.2: %A_where.type) { +// CHECK:STDOUT: %AA.loc6_6.1: %A_where.type = bind_symbolic_name AA, 0 [symbolic = %AA.loc6_6.1 (constants.%AA)] +// CHECK:STDOUT: %AA.as_type.loc6_33.1: type = facet_access_type %AA.loc6_6.1 [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %AA.loc6_6.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.c50)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -550,8 +550,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%AA) { -// CHECK:STDOUT: %AA.loc6_6.2 => constants.%AA -// CHECK:STDOUT: %AA.as_type.loc6_33.2 => constants.%AA.as_type +// CHECK:STDOUT: %AA.loc6_6.1 => constants.%AA +// CHECK:STDOUT: %AA.as_type.loc6_33.1 => constants.%AA.as_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.c50 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -608,10 +608,10 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %AB.ref: %facet_type.6d1 = name_ref AB, %AB.loc14_6.1 [symbolic = %AB.loc14_6.2 (constants.%AB)] +// CHECK:STDOUT: %AB.ref: %facet_type.6d1 = name_ref AB, %AB.loc14_6.2 [symbolic = %AB.loc14_6.1 (constants.%AB)] // CHECK:STDOUT: %X.ref.loc14_49: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.752] -// CHECK:STDOUT: %AB.as_type.loc14_49.1: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc14_49.2 (constants.%AB.as_type)] -// CHECK:STDOUT: %.loc14_49: type = converted %AB.ref, %AB.as_type.loc14_49.1 [symbolic = %AB.as_type.loc14_49.2 (constants.%AB.as_type)] +// CHECK:STDOUT: %AB.as_type.loc14_49.2: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %.loc14_49: type = converted %AB.ref, %AB.as_type.loc14_49.2 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: %impl.elem0.loc14_49: type = impl_witness_access constants.%A.lookup_impl_witness.d31, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [concrete = constants.%facet_type.6d1] { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] @@ -641,7 +641,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc14_35, %.loc14_41.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %AB.loc14_6.1: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc14_6.2 (constants.%AB)] +// CHECK:STDOUT: %AB.loc14_6.2: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc14_6.1 (constants.%AB)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } @@ -650,10 +650,10 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %AB.ref: %facet_type.6d1 = name_ref AB, %AB.loc18_6.1 [symbolic = %AB.loc18_6.2 (constants.%AB)] +// CHECK:STDOUT: %AB.ref: %facet_type.6d1 = name_ref AB, %AB.loc18_6.2 [symbolic = %AB.loc18_6.1 (constants.%AB)] // CHECK:STDOUT: %Y.ref.loc18_49: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.081] -// CHECK:STDOUT: %AB.as_type.loc18_49.1: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc18_49.2 (constants.%AB.as_type)] -// CHECK:STDOUT: %.loc18_49: type = converted %AB.ref, %AB.as_type.loc18_49.1 [symbolic = %AB.as_type.loc18_49.2 (constants.%AB.as_type)] +// CHECK:STDOUT: %AB.as_type.loc18_49.2: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %.loc18_49: type = converted %AB.ref, %AB.as_type.loc18_49.2 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: %impl.elem0.loc18_49: type = impl_witness_access constants.%B.lookup_impl_witness.fc8, element0 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc18_17.1: type = splice_block %.loc18_17.2 [concrete = constants.%facet_type.6d1] { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] @@ -683,16 +683,16 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_35, %.loc18_41.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %AB.loc18_6.1: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc18_6.2 (constants.%AB)] +// CHECK:STDOUT: %AB.loc18_6.2: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc18_6.1 (constants.%AB)] // CHECK:STDOUT: %return.param: ref %empty_struct_type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_struct_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%AB.loc14_6.1: %facet_type.6d1) { -// CHECK:STDOUT: %AB.loc14_6.2: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc14_6.2 (constants.%AB)] -// CHECK:STDOUT: %AB.as_type.loc14_49.2: type = facet_access_type %AB.loc14_6.2 [symbolic = %AB.as_type.loc14_49.2 (constants.%AB.as_type)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %AB.loc14_6.2, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.d31)] +// CHECK:STDOUT: generic fn @F(%AB.loc14_6.2: %facet_type.6d1) { +// CHECK:STDOUT: %AB.loc14_6.1: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc14_6.1 (constants.%AB)] +// CHECK:STDOUT: %AB.as_type.loc14_49.1: type = facet_access_type %AB.loc14_6.1 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %AB.loc14_6.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.d31)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -705,10 +705,10 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%AB.loc18_6.1: %facet_type.6d1) { -// CHECK:STDOUT: %AB.loc18_6.2: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc18_6.2 (constants.%AB)] -// CHECK:STDOUT: %AB.as_type.loc18_49.2: type = facet_access_type %AB.loc18_6.2 [symbolic = %AB.as_type.loc18_49.2 (constants.%AB.as_type)] -// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %AB.loc18_6.2, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness.fc8)] +// CHECK:STDOUT: generic fn @G(%AB.loc18_6.2: %facet_type.6d1) { +// CHECK:STDOUT: %AB.loc18_6.1: %facet_type.6d1 = bind_symbolic_name AB, 0 [symbolic = %AB.loc18_6.1 (constants.%AB)] +// CHECK:STDOUT: %AB.as_type.loc18_49.1: type = facet_access_type %AB.loc18_6.1 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %AB.loc18_6.1, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness.fc8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -722,14 +722,14 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%AB) { -// CHECK:STDOUT: %AB.loc14_6.2 => constants.%AB -// CHECK:STDOUT: %AB.as_type.loc14_49.2 => constants.%AB.as_type +// CHECK:STDOUT: %AB.loc14_6.1 => constants.%AB +// CHECK:STDOUT: %AB.as_type.loc14_49.1 => constants.%AB.as_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.d31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%AB) { -// CHECK:STDOUT: %AB.loc18_6.2 => constants.%AB -// CHECK:STDOUT: %AB.as_type.loc18_49.2 => constants.%AB.as_type +// CHECK:STDOUT: %AB.loc18_6.1 => constants.%AB +// CHECK:STDOUT: %AB.as_type.loc18_49.1 => constants.%AB.as_type // CHECK:STDOUT: %B.lookup_impl_witness => constants.%B.lookup_impl_witness.fc8 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon index 0834e2f2bb8d..8dc78074e07d 100644 --- a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon @@ -112,10 +112,10 @@ fn F() { // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%facet_value) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.4, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.3, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.4(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.3(%C) [concrete] // CHECK:STDOUT: %.7ab: type = fn_type_with_self_type %AA.type.b97, %A.facet.66c [concrete] // CHECK:STDOUT: %.b43: type = fn_type_with_self_type %BB.type.64d, %B.facet.82f [concrete] // CHECK:STDOUT: } @@ -186,14 +186,14 @@ fn F() { // CHECK:STDOUT: %.loc33_20.2: type = value_of_initializer %type.and.loc33_20 [concrete = constants.%facet_type.242] // CHECK:STDOUT: %.loc33_20.3: type = converted %type.and.loc33_20, %.loc33_20.2 [concrete = constants.%facet_type.242] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc33_6.1: %facet_type.242 = bind_symbolic_name T, 0 [symbolic = %T.loc33_6.2 (constants.%T.2df)] -// CHECK:STDOUT: %t.param: @G.%T.as_type.loc33_28.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc33_28.1: type = splice_block %.loc33_28.2 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc33: %facet_type.242 = name_ref T, %T.loc33_6.1 [symbolic = %T.loc33_6.2 (constants.%T.2df)] -// CHECK:STDOUT: %T.as_type.loc33_28.1: type = facet_access_type %T.ref.loc33 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc33_28.2: type = converted %T.ref.loc33, %T.as_type.loc33_28.1 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc33_6.2: %facet_type.242 = bind_symbolic_name T, 0 [symbolic = %T.loc33_6.1 (constants.%T.2df)] +// CHECK:STDOUT: %t.param: @G.%T.as_type.loc33_28.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc33_28.1: type = splice_block %.loc33_28.2 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc33: %facet_type.242 = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T.2df)] +// CHECK:STDOUT: %T.as_type.loc33_28.2: type = facet_access_type %T.ref.loc33 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc33_28.2: type = converted %T.ref.loc33, %T.as_type.loc33_28.2 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @G.%T.as_type.loc33_28.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @G.%T.as_type.loc33_28.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -280,67 +280,67 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc33_6.1: %facet_type.242) { -// CHECK:STDOUT: %T.loc33_6.2: %facet_type.242 = bind_symbolic_name T, 0 [symbolic = %T.loc33_6.2 (constants.%T.2df)] -// CHECK:STDOUT: %T.as_type.loc33_28.2: type = facet_access_type %T.loc33_6.2 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc33_28.2 [symbolic = %pattern_type (constants.%pattern_type.9a0)] +// CHECK:STDOUT: generic fn @G(%T.loc33_6.2: %facet_type.242) { +// CHECK:STDOUT: %T.loc33_6.1: %facet_type.242 = bind_symbolic_name T, 0 [symbolic = %T.loc33_6.1 (constants.%T.2df)] +// CHECK:STDOUT: %T.as_type.loc33_28.1: type = facet_access_type %T.loc33_6.1 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc33_28.1 [symbolic = %pattern_type (constants.%pattern_type.9a0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc33_28.2 [symbolic = %require_complete (constants.%require_complete.383)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc33_6.2, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet.loc34: %A.type = facet_value %T.as_type.loc33_28.2, (%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.487)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc33_28.1 [symbolic = %require_complete (constants.%require_complete.383)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc33_6.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] +// CHECK:STDOUT: %A.facet.loc34: %A.type = facet_value %T.as_type.loc33_28.1, (%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.487)] // CHECK:STDOUT: %.loc34_4.2: type = fn_type_with_self_type constants.%AA.type.b97, %A.facet.loc34 [symbolic = %.loc34_4.2 (constants.%.fde)] // CHECK:STDOUT: %impl.elem0.loc34_4.2: @G.%.loc34_4.2 (%.fde) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.de2)] // CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @AA.loc18(%A.facet.loc34) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.086)] -// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc33_6.2, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness)] -// CHECK:STDOUT: %B.facet.loc35: %B.type = facet_value %T.as_type.loc33_28.2, (%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.8d1)] +// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc33_6.1, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness)] +// CHECK:STDOUT: %B.facet.loc35: %B.type = facet_value %T.as_type.loc33_28.1, (%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.8d1)] // CHECK:STDOUT: %.loc35_4.2: type = fn_type_with_self_type constants.%BB.type.64d, %B.facet.loc35 [symbolic = %.loc35_4.2 (constants.%.368)] // CHECK:STDOUT: %impl.elem0.loc35_4.2: @G.%.loc35_4.2 (%.368) = impl_witness_access %B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.43b)] // CHECK:STDOUT: %specific_impl_fn.loc35_4.2: = specific_impl_function %impl.elem0.loc35_4.2, @BB.loc21(%B.facet.loc35) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.573)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @G.%T.as_type.loc33_28.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @G.%T.as_type.loc33_28.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref.loc34: @G.%T.as_type.loc33_28.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref.loc34: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %AA.ref.loc34: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.6e7] -// CHECK:STDOUT: %T.as_type.loc34: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc34_4.1: type = converted constants.%T.2df, %T.as_type.loc34 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc34: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc34_4.1: type = converted constants.%T.2df, %T.as_type.loc34 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc34_4.1: @G.%.loc34_4.2 (%.fde) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.de2)] // CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @AA.loc18(constants.%A.facet.487) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.086)] // CHECK:STDOUT: %.loc34_8: init %empty_tuple.type = call %specific_impl_fn.loc34_4.1() -// CHECK:STDOUT: %t.ref.loc35: @G.%T.as_type.loc33_28.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref.loc35: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %BB.ref.loc35: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.a29] -// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc35_4.1: type = converted constants.%T.2df, %T.as_type.loc35 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc35_4.1: type = converted constants.%T.2df, %T.as_type.loc35 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc35_4.1: @G.%.loc35_4.2 (%.368) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.43b)] // CHECK:STDOUT: %specific_impl_fn.loc35_4.1: = specific_impl_function %impl.elem0.loc35_4.1, @BB.loc21(constants.%B.facet.8d1) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.573)] // CHECK:STDOUT: %.loc35_8: init %empty_tuple.type = call %specific_impl_fn.loc35_4.1() -// CHECK:STDOUT: %T.ref.loc37: %facet_type.242 = name_ref T, %T.loc33_6.1 [symbolic = %T.loc33_6.2 (constants.%T.2df)] +// CHECK:STDOUT: %T.ref.loc37: %facet_type.242 = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T.2df)] // CHECK:STDOUT: %AA.ref.loc37: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.6e7] -// CHECK:STDOUT: %T.as_type.loc37: type = facet_access_type %T.ref.loc37 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc37_4: type = converted %T.ref.loc37, %T.as_type.loc37 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc37: type = facet_access_type %T.ref.loc37 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc37_4: type = converted %T.ref.loc37, %T.as_type.loc37 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc37: @G.%.loc34_4.2 (%.fde) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.de2)] // CHECK:STDOUT: %specific_impl_fn.loc37: = specific_impl_function %impl.elem0.loc37, @AA.loc18(constants.%A.facet.487) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.086)] // CHECK:STDOUT: %.loc37_8: init %empty_tuple.type = call %specific_impl_fn.loc37() -// CHECK:STDOUT: %T.ref.loc38: %facet_type.242 = name_ref T, %T.loc33_6.1 [symbolic = %T.loc33_6.2 (constants.%T.2df)] +// CHECK:STDOUT: %T.ref.loc38: %facet_type.242 = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T.2df)] // CHECK:STDOUT: %BB.ref.loc38: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.a29] -// CHECK:STDOUT: %T.as_type.loc38: type = facet_access_type %T.ref.loc38 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc38_4: type = converted %T.ref.loc38, %T.as_type.loc38 [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc38: type = facet_access_type %T.ref.loc38 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc38_4: type = converted %T.ref.loc38, %T.as_type.loc38 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc38: @G.%.loc35_4.2 (%.368) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.43b)] // CHECK:STDOUT: %specific_impl_fn.loc38: = specific_impl_function %impl.elem0.loc38, @BB.loc21(constants.%B.facet.8d1) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.573)] // CHECK:STDOUT: %.loc38_8: init %empty_tuple.type = call %specific_impl_fn.loc38() -// CHECK:STDOUT: %T.ref.loc40: %facet_type.242 = name_ref T, %T.loc33_6.1 [symbolic = %T.loc33_6.2 (constants.%T.2df)] +// CHECK:STDOUT: %T.ref.loc40: %facet_type.242 = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T.2df)] // CHECK:STDOUT: %A.ref.loc40: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %AA.ref.loc40: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.6e7] -// CHECK:STDOUT: %T.as_type.loc40: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc40: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %A.facet.loc40: %A.type = facet_value %T.as_type.loc40, (constants.%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.487)] // CHECK:STDOUT: %.loc40_4: %A.type = converted %T.ref.loc40, %A.facet.loc40 [symbolic = %A.facet.loc34 (constants.%A.facet.487)] // CHECK:STDOUT: %impl.elem0.loc40: @G.%.loc34_4.2 (%.fde) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.de2)] // CHECK:STDOUT: %specific_impl_fn.loc40: = specific_impl_function %impl.elem0.loc40, @AA.loc18(constants.%A.facet.487) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.086)] // CHECK:STDOUT: %.loc40_12: init %empty_tuple.type = call %specific_impl_fn.loc40() -// CHECK:STDOUT: %T.ref.loc41: %facet_type.242 = name_ref T, %T.loc33_6.1 [symbolic = %T.loc33_6.2 (constants.%T.2df)] +// CHECK:STDOUT: %T.ref.loc41: %facet_type.242 = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T.2df)] // CHECK:STDOUT: %B.ref.loc41: type = name_ref B, file.%B.decl [concrete = constants.%B.type] // CHECK:STDOUT: %BB.ref.loc41: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.a29] -// CHECK:STDOUT: %T.as_type.loc41: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc41: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %B.facet.loc41: %B.type = facet_value %T.as_type.loc41, (constants.%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.8d1)] // CHECK:STDOUT: %.loc41_4: %B.type = converted %T.ref.loc41, %B.facet.loc41 [symbolic = %B.facet.loc35 (constants.%B.facet.8d1)] // CHECK:STDOUT: %impl.elem0.loc41: @G.%.loc35_4.2 (%.368) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.43b)] @@ -367,7 +367,7 @@ fn F() { // CHECK:STDOUT: %.loc45_8.2: %C = bind_value %.loc45_8.1 // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn(%.loc45_8.2) // CHECK:STDOUT: %Op.bound: = bound_method %.loc45_6.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.4(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc45_6.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc45_6.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -383,8 +383,8 @@ fn F() { // CHECK:STDOUT: specific @BB.loc21(constants.%B.facet.82f) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T.2df) { -// CHECK:STDOUT: %T.loc33_6.2 => constants.%T.2df -// CHECK:STDOUT: %T.as_type.loc33_28.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc33_6.1 => constants.%T.2df +// CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a0 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -393,8 +393,8 @@ fn F() { // CHECK:STDOUT: specific @BB.loc21(constants.%B.facet.8d1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%facet_value) { -// CHECK:STDOUT: %T.loc33_6.2 => constants.%facet_value -// CHECK:STDOUT: %T.as_type.loc33_28.2 => constants.%C +// CHECK:STDOUT: %T.loc33_6.1 => constants.%facet_value +// CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/convert_class_type_to_facet_type.carbon b/toolchain/check/testdata/facet/convert_class_type_to_facet_type.carbon index 0ca869d93032..798f5902c255 100644 --- a/toolchain/check/testdata/facet/convert_class_type_to_facet_type.carbon +++ b/toolchain/check/testdata/facet/convert_class_type_to_facet_type.carbon @@ -71,7 +71,7 @@ fn F() { // CHECK:STDOUT: %A.patt: %pattern_type = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %A.loc20_15.1: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc20_15.2 (constants.%A)] +// CHECK:STDOUT: %A.loc20_15.2: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc20_15.1 (constants.%A)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -98,8 +98,8 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WalkAnimal(%A.loc20_15.1: %Animal.type) { -// CHECK:STDOUT: %A.loc20_15.2: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc20_15.2 (constants.%A)] +// CHECK:STDOUT: generic fn @WalkAnimal(%A.loc20_15.2: %Animal.type) { +// CHECK:STDOUT: %A.loc20_15.1: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc20_15.1 (constants.%A)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -121,11 +121,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%A) { -// CHECK:STDOUT: %A.loc20_15.2 => constants.%A +// CHECK:STDOUT: %A.loc20_15.1 => constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%Animal.facet) { -// CHECK:STDOUT: %A.loc20_15.2 => constants.%Animal.facet +// CHECK:STDOUT: %A.loc20_15.1 => constants.%Animal.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon index 029bdf43a6d3..9f079fec4999 100644 --- a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon @@ -130,7 +130,7 @@ fn G() { // CHECK:STDOUT: %Generic.decl: %Generic.type.c21 = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Scalar.loc4_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.2 (constants.%Scalar)] +// CHECK:STDOUT: %Scalar.loc4_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.1 (constants.%Scalar)] // CHECK:STDOUT: } // CHECK:STDOUT: %GenericParam.decl: type = class_decl @GenericParam [concrete = constants.%GenericParam] {} {} // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} @@ -146,39 +146,39 @@ fn G() { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.80f) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %.loc15: type = splice_block %Generic.type.loc15_45.1 [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] { +// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %.loc15: type = splice_block %Generic.type.loc15_45.2 [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_22.1 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_22.2 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.2 (constants.%U)] +// CHECK:STDOUT: %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: %PassThroughToGenericMethod.decl: %PassThroughToGenericMethod.type = fn_decl @PassThroughToGenericMethod [concrete = constants.%PassThroughToGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @PassThroughToGenericMethod.%pattern_type (%pattern_type.80f) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc21_31.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_31.2 (constants.%T)] -// CHECK:STDOUT: %.loc21: type = splice_block %Generic.type.loc21_54.1 [symbolic = %Generic.type.loc21_54.2 (constants.%Generic.type.91ccba.2)] { +// CHECK:STDOUT: %T.loc21_31.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_31.1 (constants.%T)] +// CHECK:STDOUT: %.loc21: type = splice_block %Generic.type.loc21_54.2 [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.91ccba.2)] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] -// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc21_31.1 [symbolic = %T.loc21_31.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc21_54.1: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc21_54.2 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc21_31.2 [symbolic = %T.loc21_31.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc21_54.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.91ccba.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc21_41.1: @PassThroughToGenericMethod.%Generic.type.loc21_54.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc21_41.2 (constants.%U)] +// CHECK:STDOUT: %U.loc21_41.2: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc21_41.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%Scalar.loc4_19.1: type) { -// CHECK:STDOUT: %Scalar.loc4_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.2 (constants.%Scalar)] +// CHECK:STDOUT: generic interface @Generic(%Scalar.loc4_19.2: type) { +// CHECK:STDOUT: %Scalar.loc4_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_19.2)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_19.1)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] // CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.91ccba.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.dee)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%Scalar.loc4_19.2) [symbolic = %F.type (constants.%F.type.f43)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%Scalar.loc4_19.1) [symbolic = %F.type (constants.%F.type.f43)] // CHECK:STDOUT: %F: @Generic.%F.type (%F.type.f43) = struct_value () [symbolic = %F (constants.%F.8a2)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc4_19.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc4_19.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd)] // CHECK:STDOUT: %assoc0.loc5_9.2: @Generic.%Generic.assoc_type (%Generic.assoc_type.0fd) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.296)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -219,7 +219,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc5(@Generic.%Scalar.loc4_19.1: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { +// CHECK:STDOUT: generic fn @F.loc5(@Generic.%Scalar.loc4_19.2: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -228,11 +228,11 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_22.1: type, %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2)) { -// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(%T.loc15_22.2)> [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] -// CHECK:STDOUT: %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.2 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc15_45.2 [symbolic = %pattern_type (constants.%pattern_type.80f)] +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_22.2: type, %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2)) { +// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(%T.loc15_22.1)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type (constants.%pattern_type.80f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -254,20 +254,20 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @PassThroughToGenericMethod(%T.loc21_31.1: type, %U.loc21_41.1: @PassThroughToGenericMethod.%Generic.type.loc21_54.2 (%Generic.type.91ccba.2)) { -// CHECK:STDOUT: %T.loc21_31.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_31.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc21_54.2: type = facet_type <@Generic, @Generic(%T.loc21_31.2)> [symbolic = %Generic.type.loc21_54.2 (constants.%Generic.type.91ccba.2)] -// CHECK:STDOUT: %U.loc21_41.2: @PassThroughToGenericMethod.%Generic.type.loc21_54.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc21_41.2 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc21_54.2 [symbolic = %pattern_type (constants.%pattern_type.80f)] +// CHECK:STDOUT: generic fn @PassThroughToGenericMethod(%T.loc21_31.2: type, %U.loc21_41.2: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.91ccba.2)) { +// CHECK:STDOUT: %T.loc21_31.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_31.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc21_54.1: type = facet_type <@Generic, @Generic(%T.loc21_31.1)> [symbolic = %Generic.type.loc21_54.1 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %U.loc21_41.1: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc21_41.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc21_54.1 [symbolic = %pattern_type (constants.%pattern_type.80f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.2: = specific_function constants.%CallGenericMethod, @CallGenericMethod(%T.loc21_31.2, %U.loc21_41.2) [symbolic = %CallGenericMethod.specific_fn.loc22_3.2 (constants.%CallGenericMethod.specific_fn.a24)] +// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.2: = specific_function constants.%CallGenericMethod, @CallGenericMethod(%T.loc21_31.1, %U.loc21_41.1) [symbolic = %CallGenericMethod.specific_fn.loc22_3.2 (constants.%CallGenericMethod.specific_fn.a24)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %CallGenericMethod.ref: %CallGenericMethod.type = name_ref CallGenericMethod, file.%CallGenericMethod.decl [concrete = constants.%CallGenericMethod] -// CHECK:STDOUT: %T.ref.loc22: type = name_ref T, %T.loc21_31.1 [symbolic = %T.loc21_31.2 (constants.%T)] -// CHECK:STDOUT: %U.ref: @PassThroughToGenericMethod.%Generic.type.loc21_54.2 (%Generic.type.91ccba.2) = name_ref U, %U.loc21_41.1 [symbolic = %U.loc21_41.2 (constants.%U)] +// CHECK:STDOUT: %T.ref.loc22: type = name_ref T, %T.loc21_31.2 [symbolic = %T.loc21_31.1 (constants.%T)] +// CHECK:STDOUT: %U.ref: @PassThroughToGenericMethod.%Generic.type.loc21_54.1 (%Generic.type.91ccba.2) = name_ref U, %U.loc21_41.2 [symbolic = %U.loc21_41.1 (constants.%U)] // CHECK:STDOUT: %CallGenericMethod.specific_fn.loc22_3.1: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%T, constants.%U) [symbolic = %CallGenericMethod.specific_fn.loc22_3.2 (constants.%CallGenericMethod.specific_fn.a24)] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn.loc22_3.1() // CHECK:STDOUT: return @@ -287,13 +287,13 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%Scalar) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%Scalar +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Scalar, constants.%Self.dee) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%GenericParam +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Generic.type => constants.%Generic.type.769 @@ -307,38 +307,38 @@ fn G() { // CHECK:STDOUT: specific @F.loc5(constants.%GenericParam, constants.%Generic.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%T +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%T -// CHECK:STDOUT: %Generic.type.loc15_45.2 => constants.%Generic.type.91ccba.2 -// CHECK:STDOUT: %U.loc15_32.2 => constants.%U +// CHECK:STDOUT: %T.loc15_22.1 => constants.%T +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.91ccba.2 +// CHECK:STDOUT: %U.loc15_32.1 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.80f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc15_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc15_32.2 => constants.%Generic.facet +// CHECK:STDOUT: %T.loc15_22.1 => constants.%GenericParam +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.769 +// CHECK:STDOUT: %U.loc15_32.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ded // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PassThroughToGenericMethod(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc21_31.2 => constants.%T -// CHECK:STDOUT: %Generic.type.loc21_54.2 => constants.%Generic.type.91ccba.2 -// CHECK:STDOUT: %U.loc21_41.2 => constants.%U +// CHECK:STDOUT: %T.loc21_31.1 => constants.%T +// CHECK:STDOUT: %Generic.type.loc21_54.1 => constants.%Generic.type.91ccba.2 +// CHECK:STDOUT: %U.loc21_41.1 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.80f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PassThroughToGenericMethod(constants.%GenericParam, constants.%Generic.facet) { -// CHECK:STDOUT: %T.loc21_31.2 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc21_54.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc21_41.2 => constants.%Generic.facet +// CHECK:STDOUT: %T.loc21_31.1 => constants.%GenericParam +// CHECK:STDOUT: %Generic.type.loc21_54.1 => constants.%Generic.type.769 +// CHECK:STDOUT: %U.loc21_41.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ded // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -388,10 +388,10 @@ fn G() { // CHECK:STDOUT: %pattern_type.589: type = pattern_type %GenericParam [concrete] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ae1: type = fn_type @Op.2, @Destroy.impl(%GenericParam) [concrete] +// CHECK:STDOUT: %Op.type.ae1: type = fn_type @Op.1, @Destroy.impl(%GenericParam) [concrete] // CHECK:STDOUT: %Op.0cc: %Op.type.ae1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f73: type = ptr_type %GenericParam [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.0cc, @Op.2(%GenericParam) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.0cc, @Op.1(%GenericParam) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -416,7 +416,7 @@ fn G() { // CHECK:STDOUT: %Generic.decl: %Generic.type.c21 = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Scalar.loc4_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.2 (constants.%Scalar)] +// CHECK:STDOUT: %Scalar.loc4_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.1 (constants.%Scalar)] // CHECK:STDOUT: } // CHECK:STDOUT: %GenericParam.decl: type = class_decl @GenericParam [concrete = constants.%GenericParam] {} {} // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} @@ -434,29 +434,29 @@ fn G() { // CHECK:STDOUT: %t.patt: @CallGenericMethod.%pattern_type.loc15_48 (%pattern_type.7dc) = binding_pattern t [concrete] // CHECK:STDOUT: %t.param_patt: @CallGenericMethod.%pattern_type.loc15_48 (%pattern_type.7dc) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %.loc15: type = splice_block %Generic.type.loc15_45.1 [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] { +// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %.loc15: type = splice_block %Generic.type.loc15_45.2 [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] -// CHECK:STDOUT: %T.ref.loc15_44: type = name_ref T, %T.loc15_22.1 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %T.ref.loc15_44: type = name_ref T, %T.loc15_22.2 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.2 (constants.%U)] -// CHECK:STDOUT: %t.param: @CallGenericMethod.%T.loc15_22.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc15_51: type = name_ref T, %T.loc15_22.1 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %t: @CallGenericMethod.%T.loc15_22.2 (%T) = bind_name t, %t.param +// CHECK:STDOUT: %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] +// CHECK:STDOUT: %t.param: @CallGenericMethod.%T.loc15_22.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc15_51: type = name_ref T, %T.loc15_22.2 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %t: @CallGenericMethod.%T.loc15_22.1 (%T) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%Scalar.loc4_19.1: type) { -// CHECK:STDOUT: %Scalar.loc4_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.2 (constants.%Scalar)] +// CHECK:STDOUT: generic interface @Generic(%Scalar.loc4_19.2: type) { +// CHECK:STDOUT: %Scalar.loc4_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_19.2)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_19.1)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] // CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.91ccba.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.dee)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%Scalar.loc4_19.2) [symbolic = %F.type (constants.%F.type.f43)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%Scalar.loc4_19.1) [symbolic = %F.type (constants.%F.type.f43)] // CHECK:STDOUT: %F: @Generic.%F.type (%F.type.f43) = struct_value () [symbolic = %F (constants.%F.8a2)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc4_19.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc4_19.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd)] // CHECK:STDOUT: %assoc0.loc5_9.2: @Generic.%Generic.assoc_type (%Generic.assoc_type.0fd) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.296)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -497,7 +497,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc5(@Generic.%Scalar.loc4_19.1: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { +// CHECK:STDOUT: generic fn @F.loc5(@Generic.%Scalar.loc4_19.2: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -506,17 +506,17 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_22.1: type, %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2)) { -// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(%T.loc15_22.2)> [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] -// CHECK:STDOUT: %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.2 (constants.%U)] -// CHECK:STDOUT: %pattern_type.loc15_32: type = pattern_type %Generic.type.loc15_45.2 [symbolic = %pattern_type.loc15_32 (constants.%pattern_type.80f)] -// CHECK:STDOUT: %pattern_type.loc15_48: type = pattern_type %T.loc15_22.2 [symbolic = %pattern_type.loc15_48 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_22.2: type, %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2)) { +// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(%T.loc15_22.1)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type.loc15_32: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type.loc15_32 (constants.%pattern_type.80f)] +// CHECK:STDOUT: %pattern_type.loc15_48: type = pattern_type %T.loc15_22.1 [symbolic = %pattern_type.loc15_48 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_22.2 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_22.1 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @CallGenericMethod.%T.loc15_22.2 (%T)) { +// CHECK:STDOUT: fn(%t.param: @CallGenericMethod.%T.loc15_22.1 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -538,7 +538,7 @@ fn G() { // CHECK:STDOUT: %.loc18_38.2: %GenericParam = bind_value %.loc18_38.1 // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc18_38.2) // CHECK:STDOUT: %Op.bound: = bound_method %.loc18_36.2, constants.%Op.0cc -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.0cc, @Op.2(constants.%GenericParam) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.0cc, @Op.1(constants.%GenericParam) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f73 = addr_of %.loc18_36.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -546,13 +546,13 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%Scalar) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%Scalar +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Scalar, constants.%Self.dee) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%GenericParam +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Generic.type => constants.%Generic.type.769 @@ -566,21 +566,21 @@ fn G() { // CHECK:STDOUT: specific @F.loc5(constants.%GenericParam, constants.%Generic.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%T +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%T -// CHECK:STDOUT: %Generic.type.loc15_45.2 => constants.%Generic.type.91ccba.2 -// CHECK:STDOUT: %U.loc15_32.2 => constants.%U +// CHECK:STDOUT: %T.loc15_22.1 => constants.%T +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.91ccba.2 +// CHECK:STDOUT: %U.loc15_32.1 => constants.%U // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.80f // CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc15_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc15_32.2 => constants.%Generic.facet +// CHECK:STDOUT: %T.loc15_22.1 => constants.%GenericParam +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.769 +// CHECK:STDOUT: %U.loc15_32.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.ded // CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.589 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon index a2c502240d70..f11acac0d1ad 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon @@ -47,10 +47,10 @@ fn F() { // CHECK:STDOUT: %pattern_type.ab7: type = pattern_type %Goat [concrete] // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal, @WalkAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.2, @Destroy.impl(%Goat) [concrete] +// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.1, @Destroy.impl(%Goat) [concrete] // CHECK:STDOUT: %Op.55a: %Op.type.e7a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.55a, @Op.2(%Goat) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.55a, @Op.1(%Goat) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -78,14 +78,14 @@ fn F() { // CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.36a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T.fd4)] -// CHECK:STDOUT: %a.param: @WalkAnimal.%T.as_type.loc17_30.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_15.1 [symbolic = %T.loc17_15.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc17_30.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type.loc17_30.1 [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc17_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T.fd4)] +// CHECK:STDOUT: %a.param: @WalkAnimal.%T.as_type.loc17_30.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_15.2 [symbolic = %T.loc17_15.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc17_30.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @WalkAnimal.%T.as_type.loc17_30.2 (%T.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @WalkAnimal.%T.as_type.loc17_30.1 (%T.as_type) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} // CHECK:STDOUT: impl_decl @Animal.impl [concrete] {} { @@ -119,15 +119,15 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WalkAnimal(%T.loc17_15.1: %Animal.type) { -// CHECK:STDOUT: %T.loc17_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc17_30.2: type = facet_access_type %T.loc17_15.2 [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_30.2 [symbolic = %pattern_type (constants.%pattern_type.36a)] +// CHECK:STDOUT: generic fn @WalkAnimal(%T.loc17_15.2: %Animal.type) { +// CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc17_30.1: type = facet_access_type %T.loc17_15.1 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_30.1 [symbolic = %pattern_type (constants.%pattern_type.36a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_30.2 [symbolic = %require_complete (constants.%require_complete.234)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_30.1 [symbolic = %require_complete (constants.%require_complete.234)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @WalkAnimal.%T.as_type.loc17_30.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%a.param: @WalkAnimal.%T.as_type.loc17_30.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -150,7 +150,7 @@ fn F() { // CHECK:STDOUT: %.loc23_17.2: %Goat = bind_value %.loc23_17.1 // CHECK:STDOUT: %WalkAnimal.call: init %empty_tuple.type = call %WalkAnimal.specific_fn(%.loc23_17.2) // CHECK:STDOUT: %Op.bound: = bound_method %.loc23_15.2, constants.%Op.55a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.55a, @Op.2(constants.%Goat) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.55a, @Op.1(constants.%Goat) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc23_15.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.940 = addr_of %.loc23_15.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -158,14 +158,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%T.fd4) { -// CHECK:STDOUT: %T.loc17_15.2 => constants.%T.fd4 -// CHECK:STDOUT: %T.as_type.loc17_30.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc17_15.1 => constants.%T.fd4 +// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.36a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%Animal.facet) { -// CHECK:STDOUT: %T.loc17_15.2 => constants.%Animal.facet -// CHECK:STDOUT: %T.as_type.loc17_30.2 => constants.%Goat +// CHECK:STDOUT: %T.loc17_15.1 => constants.%Animal.facet +// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ab7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon index ce4d4de8e66e..8754b381faea 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon @@ -153,14 +153,14 @@ fn B() { // CHECK:STDOUT: %pattern_type.589: type = pattern_type %GenericParam [concrete] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet.8ff) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ae1: type = fn_type @Op.2, @Destroy.impl(%GenericParam) [concrete] +// CHECK:STDOUT: %Op.type.ae1: type = fn_type @Op.1, @Destroy.impl(%GenericParam) [concrete] // CHECK:STDOUT: %Op.0cc: %Op.type.ae1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f73: type = ptr_type %GenericParam [concrete] -// CHECK:STDOUT: %Op.specific_fn.934: = specific_function %Op.0cc, @Op.2(%GenericParam) [concrete] -// CHECK:STDOUT: %Op.type.e98: type = fn_type @Op.2, @Destroy.impl(%ImplsGeneric) [concrete] +// CHECK:STDOUT: %Op.specific_fn.934: = specific_function %Op.0cc, @Op.1(%GenericParam) [concrete] +// CHECK:STDOUT: %Op.type.e98: type = fn_type @Op.1, @Destroy.impl(%ImplsGeneric) [concrete] // CHECK:STDOUT: %Op.51a: %Op.type.e98 = struct_value () [concrete] // CHECK:STDOUT: %ptr.011: type = ptr_type %ImplsGeneric [concrete] -// CHECK:STDOUT: %Op.specific_fn.7b0: = specific_function %Op.51a, @Op.2(%ImplsGeneric) [concrete] +// CHECK:STDOUT: %Op.specific_fn.7b0: = specific_function %Op.51a, @Op.1(%ImplsGeneric) [concrete] // CHECK:STDOUT: %complete_type.997: = complete_type_witness %Generic.type.769 [concrete] // CHECK:STDOUT: %.3e6: type = fn_type_with_self_type %F.type.4cf, %Generic.facet.8ff [concrete] // CHECK:STDOUT: } @@ -187,7 +187,7 @@ fn B() { // CHECK:STDOUT: %Generic.decl: %Generic.type.c21 = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Scalar.loc4_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.2 (constants.%Scalar)] +// CHECK:STDOUT: %Scalar.loc4_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.1 (constants.%Scalar)] // CHECK:STDOUT: } // CHECK:STDOUT: %GenericParam.decl: type = class_decl @GenericParam [concrete = constants.%GenericParam] {} {} // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} @@ -207,36 +207,36 @@ fn B() { // CHECK:STDOUT: %s.patt: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.7dc) = binding_pattern s [concrete] // CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.7dc) = value_param_pattern %s.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %.loc15_45: type = splice_block %Generic.type.loc15_45.1 [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] { +// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %.loc15_45: type = splice_block %Generic.type.loc15_45.2 [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] -// CHECK:STDOUT: %T.ref.loc15_44: type = name_ref T, %T.loc15_22.1 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %T.ref.loc15_44: type = name_ref T, %T.loc15_22.2 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.2 (constants.%U)] -// CHECK:STDOUT: %a.param: @CallGenericMethod.%U.as_type.loc15_51.2 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc15_51.1: type = splice_block %.loc15_51.2 [symbolic = %U.as_type.loc15_51.2 (constants.%U.as_type)] { -// CHECK:STDOUT: %U.ref.loc15: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = name_ref U, %U.loc15_32.1 [symbolic = %U.loc15_32.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc15_51.1: type = facet_access_type %U.ref.loc15 [symbolic = %U.as_type.loc15_51.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc15_51.2: type = converted %U.ref.loc15, %U.as_type.loc15_51.1 [symbolic = %U.as_type.loc15_51.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] +// CHECK:STDOUT: %a.param: @CallGenericMethod.%U.as_type.loc15_51.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc15_51.1: type = splice_block %.loc15_51.2 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %U.ref.loc15: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = name_ref U, %U.loc15_32.2 [symbolic = %U.loc15_32.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc15_51.2: type = facet_access_type %U.ref.loc15 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc15_51.2: type = converted %U.ref.loc15, %U.as_type.loc15_51.2 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @CallGenericMethod.%U.as_type.loc15_51.2 (%U.as_type) = bind_name a, %a.param -// CHECK:STDOUT: %s.param: @CallGenericMethod.%T.loc15_22.2 (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref.loc15_57: type = name_ref T, %T.loc15_22.1 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %s: @CallGenericMethod.%T.loc15_22.2 (%T) = bind_name s, %s.param +// CHECK:STDOUT: %a: @CallGenericMethod.%U.as_type.loc15_51.1 (%U.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %s.param: @CallGenericMethod.%T.loc15_22.1 (%T) = value_param call_param1 +// CHECK:STDOUT: %T.ref.loc15_57: type = name_ref T, %T.loc15_22.2 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %s: @CallGenericMethod.%T.loc15_22.1 (%T) = bind_name s, %s.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%Scalar.loc4_19.1: type) { -// CHECK:STDOUT: %Scalar.loc4_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.2 (constants.%Scalar)] +// CHECK:STDOUT: generic interface @Generic(%Scalar.loc4_19.2: type) { +// CHECK:STDOUT: %Scalar.loc4_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc4_19.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_19.2)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc4_19.1)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] // CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.91ccba.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.dee8d8.1)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%Scalar.loc4_19.2) [symbolic = %F.type (constants.%F.type.f439a9.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%Scalar.loc4_19.1) [symbolic = %F.type (constants.%F.type.f439a9.1)] // CHECK:STDOUT: %F: @Generic.%F.type (%F.type.f439a9.1) = struct_value () [symbolic = %F (constants.%F.8a2d67.1)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc4_19.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.1)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc4_19.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.1)] // CHECK:STDOUT: %assoc0.loc5_9.2: @Generic.%Generic.assoc_type (%Generic.assoc_type.0fd877.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0.2966cb.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -277,7 +277,7 @@ fn B() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc5(@Generic.%Scalar.loc4_19.1: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { +// CHECK:STDOUT: generic fn @F.loc5(@Generic.%Scalar.loc4_19.2: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -286,35 +286,35 @@ fn B() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_22.1: type, %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2)) { -// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(%T.loc15_22.2)> [symbolic = %Generic.type.loc15_45.2 (constants.%Generic.type.91ccba.2)] -// CHECK:STDOUT: %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.2 (constants.%U)] -// CHECK:STDOUT: %pattern_type.loc15_32: type = pattern_type %Generic.type.loc15_45.2 [symbolic = %pattern_type.loc15_32 (constants.%pattern_type.80f)] -// CHECK:STDOUT: %U.as_type.loc15_51.2: type = facet_access_type %U.loc15_32.2 [symbolic = %U.as_type.loc15_51.2 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_48: type = pattern_type %U.as_type.loc15_51.2 [symbolic = %pattern_type.loc15_48 (constants.%pattern_type.f48)] -// CHECK:STDOUT: %pattern_type.loc15_54: type = pattern_type %T.loc15_22.2 [symbolic = %pattern_type.loc15_54 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc15_22.2: type, %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2)) { +// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(%T.loc15_22.1)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type.loc15_32: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type.loc15_32 (constants.%pattern_type.80f)] +// CHECK:STDOUT: %U.as_type.loc15_51.1: type = facet_access_type %U.loc15_32.1 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type.loc15_48: type = pattern_type %U.as_type.loc15_51.1 [symbolic = %pattern_type.loc15_48 (constants.%pattern_type.f48)] +// CHECK:STDOUT: %pattern_type.loc15_54: type = pattern_type %T.loc15_22.1 [symbolic = %pattern_type.loc15_54 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_49: = require_complete_type %U.as_type.loc15_51.2 [symbolic = %require_complete.loc15_49 (constants.%require_complete.7b2)] -// CHECK:STDOUT: %require_complete.loc15_55: = require_complete_type %T.loc15_22.2 [symbolic = %require_complete.loc15_55 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Generic.type.loc15_45.2 [symbolic = %require_complete.loc16 (constants.%require_complete.02a)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc15_22.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.2)] +// CHECK:STDOUT: %require_complete.loc15_49: = require_complete_type %U.as_type.loc15_51.1 [symbolic = %require_complete.loc15_49 (constants.%require_complete.7b2)] +// CHECK:STDOUT: %require_complete.loc15_55: = require_complete_type %T.loc15_22.1 [symbolic = %require_complete.loc15_55 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Generic.type.loc15_45.1 [symbolic = %require_complete.loc16 (constants.%require_complete.02a)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc15_22.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.2)] // CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = assoc_entity element0, @Generic.%F.decl [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] -// CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc15_32.2, @Generic, @Generic(%T.loc15_22.2) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%T.loc15_22.2) [symbolic = %F.type (constants.%F.type.f439a9.2)] -// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc15_51.2, (%Generic.lookup_impl_witness) [symbolic = %Generic.facet (constants.%Generic.facet.680)] +// CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc15_32.1, @Generic, @Generic(%T.loc15_22.1) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @Generic(%T.loc15_22.1) [symbolic = %F.type (constants.%F.type.f439a9.2)] +// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc15_51.1, (%Generic.lookup_impl_witness) [symbolic = %Generic.facet (constants.%Generic.facet.680)] // CHECK:STDOUT: %.loc16_4.3: type = fn_type_with_self_type %F.type, %Generic.facet [symbolic = %.loc16_4.3 (constants.%.177)] // CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.177) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @F.loc5(%T.loc15_22.2, %Generic.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @F.loc5(%T.loc15_22.1, %Generic.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.as_type.loc15_51.2 (%U.as_type), %s.param: @CallGenericMethod.%T.loc15_22.2 (%T)) { +// CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.as_type.loc15_51.1 (%U.as_type), %s.param: @CallGenericMethod.%T.loc15_22.1 (%T)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref.loc16: @CallGenericMethod.%Generic.type.loc15_45.2 (%Generic.type.91ccba.2) = name_ref U, %U.loc15_32.1 [symbolic = %U.loc15_32.2 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc16: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.91ccba.2) = name_ref U, %U.loc15_32.2 [symbolic = %U.loc15_32.1 (constants.%U)] // CHECK:STDOUT: %.loc16_4.1: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = specific_constant @Generic.%assoc0.loc5_9.1, @Generic(constants.%T) [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = name_ref F, %.loc16_4.1 [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] -// CHECK:STDOUT: %U.as_type.loc16: type = facet_access_type %U.ref.loc16 [symbolic = %U.as_type.loc15_51.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc16_4.2: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.as_type.loc15_51.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.as_type.loc16: type = facet_access_type %U.ref.loc16 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc16_4.2: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] // CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.177) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @F.loc5(constants.%T, constants.%Generic.facet.680) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc16_7: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() @@ -344,12 +344,12 @@ fn B() { // CHECK:STDOUT: %.loc20_44.2: %GenericParam = bind_value %.loc20_44.1 // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc20_24.2, %.loc20_44.2) // CHECK:STDOUT: %Op.bound.loc20_42: = bound_method %.loc20_42.2, constants.%Op.0cc -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.0cc, @Op.2(constants.%GenericParam) [concrete = constants.%Op.specific_fn.934] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.0cc, @Op.1(constants.%GenericParam) [concrete = constants.%Op.specific_fn.934] // CHECK:STDOUT: %bound_method.loc20_42: = bound_method %.loc20_42.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20_42: %ptr.f73 = addr_of %.loc20_42.2 // CHECK:STDOUT: %no_op.loc20_42: init %empty_tuple.type = call %bound_method.loc20_42(%addr.loc20_42) // CHECK:STDOUT: %Op.bound.loc20_22: = bound_method %.loc20_22.2, constants.%Op.51a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.51a, @Op.2(constants.%ImplsGeneric) [concrete = constants.%Op.specific_fn.7b0] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.51a, @Op.1(constants.%ImplsGeneric) [concrete = constants.%Op.specific_fn.7b0] // CHECK:STDOUT: %bound_method.loc20_22: = bound_method %.loc20_22.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20_22: %ptr.011 = addr_of %.loc20_22.2 // CHECK:STDOUT: %no_op.loc20_22: init %empty_tuple.type = call %bound_method.loc20_22(%addr.loc20_22) @@ -357,13 +357,13 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%Scalar) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%Scalar +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Scalar, constants.%Self.dee8d8.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%GenericParam +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Generic.type => constants.%Generic.type.769 @@ -377,7 +377,7 @@ fn B() { // CHECK:STDOUT: specific @F.loc5(constants.%GenericParam, constants.%Generic.facet.8ff) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %Scalar.loc4_19.2 => constants.%T +// CHECK:STDOUT: %Scalar.loc4_19.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Generic.type => constants.%Generic.type.91ccba.2 @@ -389,11 +389,11 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%T -// CHECK:STDOUT: %Generic.type.loc15_45.2 => constants.%Generic.type.91ccba.2 -// CHECK:STDOUT: %U.loc15_32.2 => constants.%U +// CHECK:STDOUT: %T.loc15_22.1 => constants.%T +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.91ccba.2 +// CHECK:STDOUT: %U.loc15_32.1 => constants.%U // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.80f -// CHECK:STDOUT: %U.as_type.loc15_51.2 => constants.%U.as_type +// CHECK:STDOUT: %U.as_type.loc15_51.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.f48 // CHECK:STDOUT: %pattern_type.loc15_54 => constants.%pattern_type.7dc // CHECK:STDOUT: } @@ -401,11 +401,11 @@ fn B() { // CHECK:STDOUT: specific @F.loc5(constants.%T, constants.%Generic.facet.680) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.8ff) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc15_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc15_32.2 => constants.%Generic.facet.8ff +// CHECK:STDOUT: %T.loc15_22.1 => constants.%GenericParam +// CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.769 +// CHECK:STDOUT: %U.loc15_32.1 => constants.%Generic.facet.8ff // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.ded -// CHECK:STDOUT: %U.as_type.loc15_51.2 => constants.%ImplsGeneric +// CHECK:STDOUT: %U.as_type.loc15_51.1 => constants.%ImplsGeneric // CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.c8d // CHECK:STDOUT: %pattern_type.loc15_54 => constants.%pattern_type.589 // CHECK:STDOUT: @@ -460,10 +460,10 @@ fn B() { // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %A.specific_fn: = specific_function %A, @A(%I.facet) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -488,8 +488,8 @@ fn B() { // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: %W.patt: %pattern_type.98f = symbolic_binding_pattern W, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %V.loc3_13.1: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.2 (constants.%V)] -// CHECK:STDOUT: %W.loc3_23.1: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.2 (constants.%W)] +// CHECK:STDOUT: %V.loc3_13.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.1 (constants.%V)] +// CHECK:STDOUT: %W.loc3_23.2: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @I.impl [concrete] { @@ -518,24 +518,24 @@ fn B() { // CHECK:STDOUT: %.loc9_18.3: type = converted %.loc9_17, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_tuple.type)> [concrete = constants.%I.type.202] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_6.1: %I.type.202 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.e96)] -// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_24.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %I.type.202 = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T.e96)] -// CHECK:STDOUT: %T.as_type.loc9_24.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type.loc9_24.1 [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc9_6.2: %I.type.202 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.e96)] +// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_24.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %I.type.202 = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.e96)] +// CHECK:STDOUT: %T.as_type.loc9_24.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.as_type.loc9_24.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @A.%T.as_type.loc9_24.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%V.loc3_13.1: type, %W.loc3_23.1: type) { -// CHECK:STDOUT: %V.loc3_13.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.2 (constants.%V)] -// CHECK:STDOUT: %W.loc3_23.2: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.2 (constants.%W)] +// CHECK:STDOUT: generic interface @I(%V.loc3_13.2: type, %W.loc3_23.2: type) { +// CHECK:STDOUT: %V.loc3_13.1: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.1 (constants.%V)] +// CHECK:STDOUT: %W.loc3_23.1: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_13.2, %W.loc3_23.2)> [symbolic = %I.type (constants.%I.type.f76)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_13.1, %W.loc3_23.1)> [symbolic = %I.type (constants.%I.type.f76)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.f76) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.770)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -570,15 +570,15 @@ fn B() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(%T.loc9_6.1: %I.type.202) { -// CHECK:STDOUT: %T.loc9_6.2: %I.type.202 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.e96)] -// CHECK:STDOUT: %T.as_type.loc9_24.2: type = facet_access_type %T.loc9_6.2 [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_24.2 [symbolic = %pattern_type (constants.%pattern_type.3ff)] +// CHECK:STDOUT: generic fn @A(%T.loc9_6.2: %I.type.202) { +// CHECK:STDOUT: %T.loc9_6.1: %I.type.202 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.e96)] +// CHECK:STDOUT: %T.as_type.loc9_24.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_24.1 [symbolic = %pattern_type (constants.%pattern_type.3ff)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_24.2 [symbolic = %require_complete (constants.%require_complete.c8b)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_24.1 [symbolic = %require_complete (constants.%require_complete.c8b)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_24.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_24.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -601,7 +601,7 @@ fn B() { // CHECK:STDOUT: %.loc12_8.2: %C = bind_value %.loc12_8.1 // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.specific_fn(%.loc12_8.2) // CHECK:STDOUT: %Op.bound: = bound_method %.loc12_6.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc12_6.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc12_6.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -609,13 +609,13 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%V, constants.%W) { -// CHECK:STDOUT: %V.loc3_13.2 => constants.%V -// CHECK:STDOUT: %W.loc3_23.2 => constants.%W +// CHECK:STDOUT: %V.loc3_13.1 => constants.%V +// CHECK:STDOUT: %W.loc3_23.1 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T.8b3, constants.%empty_tuple.type) { -// CHECK:STDOUT: %V.loc3_13.2 => constants.%T.8b3 -// CHECK:STDOUT: %W.loc3_23.2 => constants.%empty_tuple.type +// CHECK:STDOUT: %V.loc3_13.1 => constants.%T.8b3 +// CHECK:STDOUT: %W.loc3_23.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.bea @@ -630,8 +630,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%empty_struct_type, constants.%empty_tuple.type) { -// CHECK:STDOUT: %V.loc3_13.2 => constants.%empty_struct_type -// CHECK:STDOUT: %W.loc3_23.2 => constants.%empty_tuple.type +// CHECK:STDOUT: %V.loc3_13.1 => constants.%empty_struct_type +// CHECK:STDOUT: %W.loc3_23.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.202 @@ -639,8 +639,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.e96) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T.e96 -// CHECK:STDOUT: %T.as_type.loc9_24.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc9_6.1 => constants.%T.e96 +// CHECK:STDOUT: %T.as_type.loc9_24.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.3ff // CHECK:STDOUT: } // CHECK:STDOUT: @@ -654,8 +654,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%I.facet) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%I.facet -// CHECK:STDOUT: %T.as_type.loc9_24.2 => constants.%C +// CHECK:STDOUT: %T.loc9_6.1 => constants.%I.facet +// CHECK:STDOUT: %T.as_type.loc9_24.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -693,10 +693,10 @@ fn B() { // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -721,8 +721,8 @@ fn B() { // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: %W.patt: %pattern_type.98f = symbolic_binding_pattern W, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %V.loc3_13.1: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.2 (constants.%V)] -// CHECK:STDOUT: %W.loc3_23.1: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.2 (constants.%W)] +// CHECK:STDOUT: %V.loc3_13.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.1 (constants.%V)] +// CHECK:STDOUT: %W.loc3_23.2: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @I.impl [concrete] { @@ -751,24 +751,24 @@ fn B() { // CHECK:STDOUT: %.loc9_18.3: type = converted %.loc9_17, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_struct_type)> [concrete = constants.%I.type.906] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_6.1: %I.type.906 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.4b2)] -// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_24.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %I.type.906 = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T.4b2)] -// CHECK:STDOUT: %T.as_type.loc9_24.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type.loc9_24.1 [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc9_6.2: %I.type.906 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.4b2)] +// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_24.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %I.type.906 = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.4b2)] +// CHECK:STDOUT: %T.as_type.loc9_24.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.as_type.loc9_24.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @A.%T.as_type.loc9_24.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%V.loc3_13.1: type, %W.loc3_23.1: type) { -// CHECK:STDOUT: %V.loc3_13.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.2 (constants.%V)] -// CHECK:STDOUT: %W.loc3_23.2: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.2 (constants.%W)] +// CHECK:STDOUT: generic interface @I(%V.loc3_13.2: type, %W.loc3_23.2: type) { +// CHECK:STDOUT: %V.loc3_13.1: type = bind_symbolic_name V, 0 [symbolic = %V.loc3_13.1 (constants.%V)] +// CHECK:STDOUT: %W.loc3_23.1: type = bind_symbolic_name W, 1 [symbolic = %W.loc3_23.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_13.2, %W.loc3_23.2)> [symbolic = %I.type (constants.%I.type.f76)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%V.loc3_13.1, %W.loc3_23.1)> [symbolic = %I.type (constants.%I.type.f76)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.f76) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.770)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -803,15 +803,15 @@ fn B() { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(%T.loc9_6.1: %I.type.906) { -// CHECK:STDOUT: %T.loc9_6.2: %I.type.906 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.4b2)] -// CHECK:STDOUT: %T.as_type.loc9_24.2: type = facet_access_type %T.loc9_6.2 [symbolic = %T.as_type.loc9_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_24.2 [symbolic = %pattern_type (constants.%pattern_type.f1c)] +// CHECK:STDOUT: generic fn @A(%T.loc9_6.2: %I.type.906) { +// CHECK:STDOUT: %T.loc9_6.1: %I.type.906 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.4b2)] +// CHECK:STDOUT: %T.as_type.loc9_24.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_24.1 [symbolic = %pattern_type (constants.%pattern_type.f1c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_24.2 [symbolic = %require_complete (constants.%require_complete.d5b)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_24.1 [symbolic = %require_complete (constants.%require_complete.d5b)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_24.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_24.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -827,7 +827,7 @@ fn B() { // CHECK:STDOUT: %.loc19_6.4: ref %C = temporary %.loc19_6.2, %.loc19_6.3 // CHECK:STDOUT: %.loc19_8: ref %C = converted %.loc19_6.1, %.loc19_6.4 // CHECK:STDOUT: %Op.bound: = bound_method %.loc19_6.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc19_6.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -835,13 +835,13 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%V, constants.%W) { -// CHECK:STDOUT: %V.loc3_13.2 => constants.%V -// CHECK:STDOUT: %W.loc3_23.2 => constants.%W +// CHECK:STDOUT: %V.loc3_13.1 => constants.%V +// CHECK:STDOUT: %W.loc3_23.1 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T.8b3, constants.%empty_tuple.type) { -// CHECK:STDOUT: %V.loc3_13.2 => constants.%T.8b3 -// CHECK:STDOUT: %W.loc3_23.2 => constants.%empty_tuple.type +// CHECK:STDOUT: %V.loc3_13.1 => constants.%T.8b3 +// CHECK:STDOUT: %W.loc3_23.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.bea @@ -856,13 +856,13 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%empty_struct_type, constants.%empty_struct_type) { -// CHECK:STDOUT: %V.loc3_13.2 => constants.%empty_struct_type -// CHECK:STDOUT: %W.loc3_23.2 => constants.%empty_struct_type +// CHECK:STDOUT: %V.loc3_13.1 => constants.%empty_struct_type +// CHECK:STDOUT: %W.loc3_23.1 => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.4b2) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T.4b2 -// CHECK:STDOUT: %T.as_type.loc9_24.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc9_6.1 => constants.%T.4b2 +// CHECK:STDOUT: %T.as_type.loc9_24.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f1c // CHECK:STDOUT: } // CHECK:STDOUT: @@ -895,10 +895,10 @@ fn B() { // CHECK:STDOUT: %C.c74: type = class_type @C, @C(%empty_struct_type, %empty_struct_type) [concrete] // CHECK:STDOUT: %C.val: %C.c74 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.53e: type = fn_type @Op.2, @Destroy.impl(%C.c74) [concrete] +// CHECK:STDOUT: %Op.type.53e: type = fn_type @Op.1, @Destroy.impl(%C.c74) [concrete] // CHECK:STDOUT: %Op.2b8: %Op.type.53e = struct_value () [concrete] // CHECK:STDOUT: %ptr.128: type = ptr_type %C.c74 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2b8, @Op.2(%C.c74) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2b8, @Op.1(%C.c74) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -924,8 +924,8 @@ fn B() { // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: %W.patt: %pattern_type.98f = symbolic_binding_pattern W, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %V.loc5_9.1: type = bind_symbolic_name V, 0 [symbolic = %V.loc5_9.2 (constants.%V)] -// CHECK:STDOUT: %W.loc5_19.1: type = bind_symbolic_name W, 1 [symbolic = %W.loc5_19.2 (constants.%W)] +// CHECK:STDOUT: %V.loc5_9.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc5_9.1 (constants.%V)] +// CHECK:STDOUT: %W.loc5_19.2: type = bind_symbolic_name W, 1 [symbolic = %W.loc5_19.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @I.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -946,14 +946,14 @@ fn B() { // CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.6de) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %T.loc9_6.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.826)] -// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_16.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [symbolic = %T.as_type.loc9_16.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T.826)] -// CHECK:STDOUT: %T.as_type.loc9_16.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_16.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_16.2: type = converted %T.ref, %T.as_type.loc9_16.1 [symbolic = %T.as_type.loc9_16.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc9_6.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.826)] +// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_16.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.826)] +// CHECK:STDOUT: %T.as_type.loc9_16.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_16.2: type = converted %T.ref, %T.as_type.loc9_16.2 [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.as_type.loc9_16.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @A.%T.as_type.loc9_16.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -979,9 +979,9 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%V.loc5_9.1: type, %W.loc5_19.1: type) { -// CHECK:STDOUT: %V.loc5_9.2: type = bind_symbolic_name V, 0 [symbolic = %V.loc5_9.2 (constants.%V)] -// CHECK:STDOUT: %W.loc5_19.2: type = bind_symbolic_name W, 1 [symbolic = %W.loc5_19.2 (constants.%W)] +// CHECK:STDOUT: generic class @C(%V.loc5_9.2: type, %W.loc5_19.2: type) { +// CHECK:STDOUT: %V.loc5_9.1: type = bind_symbolic_name V, 0 [symbolic = %V.loc5_9.1 (constants.%V)] +// CHECK:STDOUT: %W.loc5_19.1: type = bind_symbolic_name W, 1 [symbolic = %W.loc5_19.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -995,15 +995,15 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(%T.loc9_6.1: %I.type) { -// CHECK:STDOUT: %T.loc9_6.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.826)] -// CHECK:STDOUT: %T.as_type.loc9_16.2: type = facet_access_type %T.loc9_6.2 [symbolic = %T.as_type.loc9_16.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_16.2 [symbolic = %pattern_type (constants.%pattern_type.6de)] +// CHECK:STDOUT: generic fn @A(%T.loc9_6.2: %I.type) { +// CHECK:STDOUT: %T.loc9_6.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.826)] +// CHECK:STDOUT: %T.as_type.loc9_16.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_16.1 [symbolic = %pattern_type (constants.%pattern_type.6de)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_16.2 [symbolic = %require_complete (constants.%require_complete.9b1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_16.1 [symbolic = %require_complete (constants.%require_complete.9b1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_16.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_16.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1024,7 +1024,7 @@ fn B() { // CHECK:STDOUT: %.loc19_6.4: ref %C.c74 = temporary %.loc19_6.2, %.loc19_6.3 // CHECK:STDOUT: %.loc19_8: ref %C.c74 = converted %.loc19_6.1, %.loc19_6.4 // CHECK:STDOUT: %Op.bound: = bound_method %.loc19_6.2, constants.%Op.2b8 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2b8, @Op.2(constants.%C.c74) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2b8, @Op.1(constants.%C.c74) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.128 = addr_of %.loc19_6.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1032,13 +1032,13 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%V, constants.%W) { -// CHECK:STDOUT: %V.loc5_9.2 => constants.%V -// CHECK:STDOUT: %W.loc5_19.2 => constants.%W +// CHECK:STDOUT: %V.loc5_9.1 => constants.%V +// CHECK:STDOUT: %W.loc5_19.1 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T.8b3, constants.%empty_tuple.type) { -// CHECK:STDOUT: %V.loc5_9.2 => constants.%T.8b3 -// CHECK:STDOUT: %W.loc5_19.2 => constants.%empty_tuple.type +// CHECK:STDOUT: %V.loc5_9.1 => constants.%T.8b3 +// CHECK:STDOUT: %W.loc5_19.1 => constants.%empty_tuple.type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.impl(constants.%T.8b3) { @@ -1048,14 +1048,14 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.826) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T.826 -// CHECK:STDOUT: %T.as_type.loc9_16.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc9_6.1 => constants.%T.826 +// CHECK:STDOUT: %T.as_type.loc9_16.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type, constants.%empty_struct_type) { -// CHECK:STDOUT: %V.loc5_9.2 => constants.%empty_struct_type -// CHECK:STDOUT: %W.loc5_19.2 => constants.%empty_struct_type +// CHECK:STDOUT: %V.loc5_9.1 => constants.%empty_struct_type +// CHECK:STDOUT: %W.loc5_19.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon index d6f4e15dff7b..a5abccd1226b 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon @@ -119,7 +119,7 @@ fn F() { // CHECK:STDOUT: %e.patt: %pattern_type = symbolic_binding_pattern e, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %e.loc11_9.1: %Eats.type = bind_symbolic_name e, 0 [symbolic = %e.loc11_9.2 (constants.%e)] +// CHECK:STDOUT: %e.loc11_9.2: %Eats.type = bind_symbolic_name e, 0 [symbolic = %e.loc11_9.1 (constants.%e)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -159,8 +159,8 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%e.loc11_9.1: %Eats.type) { -// CHECK:STDOUT: %e.loc11_9.2: %Eats.type = bind_symbolic_name e, 0 [symbolic = %e.loc11_9.2 (constants.%e)] +// CHECK:STDOUT: generic fn @Feed(%e.loc11_9.2: %Eats.type) { +// CHECK:STDOUT: %e.loc11_9.1: %Eats.type = bind_symbolic_name e, 0 [symbolic = %e.loc11_9.1 (constants.%e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -187,11 +187,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%e) { -// CHECK:STDOUT: %e.loc11_9.2 => constants.%e +// CHECK:STDOUT: %e.loc11_9.1 => constants.%e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { -// CHECK:STDOUT: %e.loc11_9.2 => constants.%Eats.facet +// CHECK:STDOUT: %e.loc11_9.1 => constants.%Eats.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -225,10 +225,10 @@ fn F() { // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] // CHECK:STDOUT: %.f6e: type = fn_type_with_self_type %Eat.type.e5d, %Eats.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.2, @Destroy.impl(%Goat) [concrete] +// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.1, @Destroy.impl(%Goat) [concrete] // CHECK:STDOUT: %Op.55a: %Op.type.e7a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.55a, @Op.2(%Goat) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.55a, @Op.1(%Goat) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -386,17 +386,17 @@ fn F() { // CHECK:STDOUT: %impl.elem0.loc27: %.f6e = impl_witness_access constants.%Eats.impl_witness, element0 [concrete = constants.%Eat.73e] // CHECK:STDOUT: %Eat.call.loc27: init %empty_tuple.type = call %impl.elem0.loc27() // CHECK:STDOUT: %Op.bound.loc27: = bound_method %.loc27_6.2, constants.%Op.55a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.55a, @Op.2(constants.%Goat) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.55a, @Op.1(constants.%Goat) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27: %ptr.940 = addr_of %.loc27_6.2 // CHECK:STDOUT: %no_op.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) // CHECK:STDOUT: %Op.bound.loc26: = bound_method %.loc26_6.2, constants.%Op.55a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.55a, @Op.2(constants.%Goat) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.55a, @Op.1(constants.%Goat) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.940 = addr_of %.loc26_6.2 // CHECK:STDOUT: %no_op.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %Op.bound.loc22: = bound_method %.loc22_28.2, constants.%Op.55a -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.55a, @Op.2(constants.%Goat) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.55a, @Op.1(constants.%Goat) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc22: = bound_method %.loc22_28.2, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.940 = addr_of %.loc22_28.2 // CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) diff --git a/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon b/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon index a7573d5f424c..2923bf3fae5c 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_to_itself.carbon @@ -71,13 +71,13 @@ fn F() { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc17_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc19_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.2 (constants.%T)] +// CHECK:STDOUT: %T.loc19_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} // CHECK:STDOUT: impl_decl @Animal.impl [concrete] {} { @@ -111,8 +111,8 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_15.1: %Animal.type) { -// CHECK:STDOUT: %T.loc17_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T)] +// CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_15.2: %Animal.type) { +// CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -122,16 +122,16 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_17.1: %Animal.type) { -// CHECK:STDOUT: %T.loc19_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.2 (constants.%T)] +// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_17.2: %Animal.type) { +// CHECK:STDOUT: %T.loc19_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_17.2) [symbolic = %FeedAnimal.specific_fn.loc19_31.2 (constants.%FeedAnimal.specific_fn.ec8)] +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_17.1) [symbolic = %FeedAnimal.specific_fn.loc19_31.2 (constants.%FeedAnimal.specific_fn.ec8)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedAnimal.ref: %FeedAnimal.type = name_ref FeedAnimal, file.%FeedAnimal.decl [concrete = constants.%FeedAnimal] -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc19_17.1 [symbolic = %T.loc19_17.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc19_17.2 [symbolic = %T.loc19_17.1 (constants.%T)] // CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.1: = specific_function %FeedAnimal.ref, @FeedAnimal(constants.%T) [symbolic = %FeedAnimal.specific_fn.loc19_31.2 (constants.%FeedAnimal.specific_fn.ec8)] // CHECK:STDOUT: %FeedAnimal.call: init %empty_tuple.type = call %FeedAnimal.specific_fn.loc19_31.1() // CHECK:STDOUT: return @@ -150,24 +150,24 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%T) { -// CHECK:STDOUT: %T.loc17_15.2 => constants.%T +// CHECK:STDOUT: %T.loc17_15.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T) { -// CHECK:STDOUT: %T.loc19_17.2 => constants.%T +// CHECK:STDOUT: %T.loc19_17.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet) { -// CHECK:STDOUT: %T.loc19_17.2 => constants.%Animal.facet +// CHECK:STDOUT: %T.loc19_17.1 => constants.%Animal.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_31.2 => constants.%FeedAnimal.specific_fn.82e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { -// CHECK:STDOUT: %T.loc17_15.2 => constants.%Animal.facet +// CHECK:STDOUT: %T.loc17_15.1 => constants.%Animal.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon index 424a17b2448b..f373f43ec337 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon @@ -155,14 +155,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.2b4) = value_param_pattern %e.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %T.loc6_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc6_22.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc6_22.1: type = splice_block %.loc6_22.2 [symbolic = %T.as_type.loc6_22.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc6_9.1 [symbolic = %T.loc6_9.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc6_22.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc6_22.2: type = converted %T.ref, %T.as_type.loc6_22.1 [symbolic = %T.as_type.loc6_22.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc6_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc6_22.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc6_22.1: type = splice_block %.loc6_22.2 [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc6_9.2 [symbolic = %T.loc6_9.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc6_22.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_22.2: type = converted %T.ref, %T.as_type.loc6_22.2 [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc6_22.2 (%T.as_type) = bind_name e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc6_22.1 (%T.as_type) = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %U.patt: %pattern_type.787 = symbolic_binding_pattern U, 0 [concrete] @@ -178,14 +178,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc8_28.2: type = value_of_initializer %type.and [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc8_28.3: type = converted %type.and, %.loc8_28.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc8_17.1: %facet_type = bind_symbolic_name U, 0 [symbolic = %U.loc8_17.2 (constants.%U)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%U.as_type.loc8_39.2 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_39.1: type = splice_block %.loc8_39.2 [symbolic = %U.as_type.loc8_39.2 (constants.%U.as_type)] { -// CHECK:STDOUT: %U.ref: %facet_type = name_ref U, %U.loc8_17.1 [symbolic = %U.loc8_17.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc8_39.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc8_39.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc8_39.2: type = converted %U.ref, %U.as_type.loc8_39.1 [symbolic = %U.as_type.loc8_39.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.loc8_17.2: %facet_type = bind_symbolic_name U, 0 [symbolic = %U.loc8_17.1 (constants.%U)] +// CHECK:STDOUT: %a.param: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_39.1: type = splice_block %.loc8_39.2 [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %U.ref: %facet_type = name_ref U, %U.loc8_17.2 [symbolic = %U.loc8_17.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc8_39.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc8_39.2: type = converted %U.ref, %U.as_type.loc8_39.2 [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%U.as_type.loc8_39.2 (%U.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -205,35 +205,35 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%T.loc6_9.1: %Eats.type) { -// CHECK:STDOUT: %T.loc6_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc6_22.2: type = facet_access_type %T.loc6_9.2 [symbolic = %T.as_type.loc6_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_22.2 [symbolic = %pattern_type (constants.%pattern_type.2b4)] +// CHECK:STDOUT: generic fn @Feed(%T.loc6_9.2: %Eats.type) { +// CHECK:STDOUT: %T.loc6_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc6_22.1: type = facet_access_type %T.loc6_9.1 [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_22.1 [symbolic = %pattern_type (constants.%pattern_type.2b4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_22.2 [symbolic = %require_complete (constants.%require_complete.c75)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_22.1 [symbolic = %require_complete (constants.%require_complete.c75)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc6_22.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc6_22.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleAnimal(%U.loc8_17.1: %facet_type) { -// CHECK:STDOUT: %U.loc8_17.2: %facet_type = bind_symbolic_name U, 0 [symbolic = %U.loc8_17.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc8_39.2: type = facet_access_type %U.loc8_17.2 [symbolic = %U.as_type.loc8_39.2 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc8_39.2 [symbolic = %pattern_type (constants.%pattern_type.56f)] +// CHECK:STDOUT: generic fn @HandleAnimal(%U.loc8_17.2: %facet_type) { +// CHECK:STDOUT: %U.loc8_17.1: %facet_type = bind_symbolic_name U, 0 [symbolic = %U.loc8_17.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc8_39.1: type = facet_access_type %U.loc8_17.1 [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc8_39.1 [symbolic = %pattern_type (constants.%pattern_type.56f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc8_39.2 [symbolic = %require_complete (constants.%require_complete.680)] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U.loc8_17.2, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc8_50.3: %Eats.type = facet_value %U.as_type.loc8_39.2, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc8_39.1 [symbolic = %require_complete (constants.%require_complete.680)] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U.loc8_17.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] +// CHECK:STDOUT: %Eats.facet.loc8_50.3: %Eats.type = facet_value %U.as_type.loc8_39.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc8_44.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc8_50.3) [symbolic = %Feed.specific_fn.loc8_44.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%U.as_type.loc8_39.2 (%U.as_type)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%U.as_type.loc8_39.2 (%U.as_type) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type) = name_ref a, %a // CHECK:STDOUT: %Eats.facet.loc8_50.1: %Eats.type = facet_value constants.%U.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %.loc8_50.1: %Eats.type = converted constants.%U.as_type, %Eats.facet.loc8_50.1 [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Eats.facet.loc8_50.2: %Eats.type = facet_value constants.%U.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] @@ -245,20 +245,20 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc6_22.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc6_9.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc6_22.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%U) { -// CHECK:STDOUT: %U.loc8_17.2 => constants.%U -// CHECK:STDOUT: %U.as_type.loc8_39.2 => constants.%U.as_type +// CHECK:STDOUT: %U.loc8_17.1 => constants.%U +// CHECK:STDOUT: %U.as_type.loc8_39.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.56f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%Eats.facet -// CHECK:STDOUT: %T.as_type.loc6_22.2 => constants.%U.as_type +// CHECK:STDOUT: %T.loc6_9.1 => constants.%Eats.facet +// CHECK:STDOUT: %T.as_type.loc6_22.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.56f // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -348,14 +348,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc7_22.2: type = value_of_initializer %type.and [concrete = constants.%facet_type.6ff] // CHECK:STDOUT: %.loc7_22.3: type = converted %type.and, %.loc7_22.2 [concrete = constants.%facet_type.6ff] // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc7_13.1: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc7_13.2 (constants.%V)] -// CHECK:STDOUT: %v.param: @FeedTame.%V.as_type.loc7_33.2 (%V.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_33.1: type = splice_block %.loc7_33.2 [symbolic = %V.as_type.loc7_33.2 (constants.%V.as_type)] { -// CHECK:STDOUT: %V.ref: %facet_type.6ff = name_ref V, %V.loc7_13.1 [symbolic = %V.loc7_13.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc7_33.1: type = facet_access_type %V.ref [symbolic = %V.as_type.loc7_33.2 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc7_33.2: type = converted %V.ref, %V.as_type.loc7_33.1 [symbolic = %V.as_type.loc7_33.2 (constants.%V.as_type)] +// CHECK:STDOUT: %V.loc7_13.2: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc7_13.1 (constants.%V)] +// CHECK:STDOUT: %v.param: @FeedTame.%V.as_type.loc7_33.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_33.1: type = splice_block %.loc7_33.2 [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] { +// CHECK:STDOUT: %V.ref: %facet_type.6ff = name_ref V, %V.loc7_13.2 [symbolic = %V.loc7_13.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc7_33.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc7_33.2: type = converted %V.ref, %V.as_type.loc7_33.2 [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @FeedTame.%V.as_type.loc7_33.2 (%V.as_type) = bind_name v, %v.param +// CHECK:STDOUT: %v: @FeedTame.%V.as_type.loc7_33.1 (%V.as_type) = bind_name v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal.decl: %HandleTameAnimal.type = fn_decl @HandleTameAnimal [concrete = constants.%HandleTameAnimal] { // CHECK:STDOUT: %W.patt: %pattern_type.f1b = symbolic_binding_pattern W, 0 [concrete] @@ -377,14 +377,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc9_39.2: type = value_of_initializer %type.and.loc9_39 [concrete = constants.%facet_type.a95] // CHECK:STDOUT: %.loc9_39.3: type = converted %type.and.loc9_39, %.loc9_39.2 [concrete = constants.%facet_type.a95] // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc9_21.1: %facet_type.a95 = bind_symbolic_name W, 0 [symbolic = %W.loc9_21.2 (constants.%W)] -// CHECK:STDOUT: %w.param: @HandleTameAnimal.%W.as_type.loc9_50.2 (%W.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_50.1: type = splice_block %.loc9_50.2 [symbolic = %W.as_type.loc9_50.2 (constants.%W.as_type)] { -// CHECK:STDOUT: %W.ref: %facet_type.a95 = name_ref W, %W.loc9_21.1 [symbolic = %W.loc9_21.2 (constants.%W)] -// CHECK:STDOUT: %W.as_type.loc9_50.1: type = facet_access_type %W.ref [symbolic = %W.as_type.loc9_50.2 (constants.%W.as_type)] -// CHECK:STDOUT: %.loc9_50.2: type = converted %W.ref, %W.as_type.loc9_50.1 [symbolic = %W.as_type.loc9_50.2 (constants.%W.as_type)] +// CHECK:STDOUT: %W.loc9_21.2: %facet_type.a95 = bind_symbolic_name W, 0 [symbolic = %W.loc9_21.1 (constants.%W)] +// CHECK:STDOUT: %w.param: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_50.1: type = splice_block %.loc9_50.2 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] { +// CHECK:STDOUT: %W.ref: %facet_type.a95 = name_ref W, %W.loc9_21.2 [symbolic = %W.loc9_21.1 (constants.%W)] +// CHECK:STDOUT: %W.as_type.loc9_50.2: type = facet_access_type %W.ref [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] +// CHECK:STDOUT: %.loc9_50.2: type = converted %W.ref, %W.as_type.loc9_50.2 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: @HandleTameAnimal.%W.as_type.loc9_50.2 (%W.as_type) = bind_name w, %w.param +// CHECK:STDOUT: %w: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = bind_name w, %w.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -412,36 +412,36 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @FeedTame(%V.loc7_13.1: %facet_type.6ff) { -// CHECK:STDOUT: %V.loc7_13.2: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc7_13.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc7_33.2: type = facet_access_type %V.loc7_13.2 [symbolic = %V.as_type.loc7_33.2 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc7_33.2 [symbolic = %pattern_type (constants.%pattern_type.760)] +// CHECK:STDOUT: generic fn @FeedTame(%V.loc7_13.2: %facet_type.6ff) { +// CHECK:STDOUT: %V.loc7_13.1: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc7_13.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc7_33.1: type = facet_access_type %V.loc7_13.1 [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc7_33.1 [symbolic = %pattern_type (constants.%pattern_type.760)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc7_33.2 [symbolic = %require_complete (constants.%require_complete.940)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc7_33.1 [symbolic = %require_complete (constants.%require_complete.940)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%v.param: @FeedTame.%V.as_type.loc7_33.2 (%V.as_type)) { +// CHECK:STDOUT: fn(%v.param: @FeedTame.%V.as_type.loc7_33.1 (%V.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleTameAnimal(%W.loc9_21.1: %facet_type.a95) { -// CHECK:STDOUT: %W.loc9_21.2: %facet_type.a95 = bind_symbolic_name W, 0 [symbolic = %W.loc9_21.2 (constants.%W)] -// CHECK:STDOUT: %W.as_type.loc9_50.2: type = facet_access_type %W.loc9_21.2 [symbolic = %W.as_type.loc9_50.2 (constants.%W.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc9_50.2 [symbolic = %pattern_type (constants.%pattern_type.002)] +// CHECK:STDOUT: generic fn @HandleTameAnimal(%W.loc9_21.2: %facet_type.a95) { +// CHECK:STDOUT: %W.loc9_21.1: %facet_type.a95 = bind_symbolic_name W, 0 [symbolic = %W.loc9_21.1 (constants.%W)] +// CHECK:STDOUT: %W.as_type.loc9_50.1: type = facet_access_type %W.loc9_21.1 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc9_50.1 [symbolic = %pattern_type (constants.%pattern_type.002)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc9_50.2 [symbolic = %require_complete (constants.%require_complete.40f)] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc9_21.2, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc9_21.2, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc10_13.3: %facet_type.6ff = facet_value %W.as_type.loc9_50.2, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc9_50.1 [symbolic = %require_complete (constants.%require_complete.40f)] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc9_21.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] +// CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc9_21.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] +// CHECK:STDOUT: %facet_value.loc10_13.3: %facet_type.6ff = facet_value %W.as_type.loc9_50.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc10_3.2: = specific_function constants.%FeedTame, @FeedTame(%facet_value.loc10_13.3) [symbolic = %FeedTame.specific_fn.loc10_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal.%W.as_type.loc9_50.2 (%W.as_type)) { +// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedTame.ref: %FeedTame.type = name_ref FeedTame, file.%FeedTame.decl [concrete = constants.%FeedTame] -// CHECK:STDOUT: %w.ref: @HandleTameAnimal.%W.as_type.loc9_50.2 (%W.as_type) = name_ref w, %w +// CHECK:STDOUT: %w.ref: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = name_ref w, %w // CHECK:STDOUT: %facet_value.loc10_13.1: %facet_type.6ff = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc10_13.1: %facet_type.6ff = converted constants.%W.as_type, %facet_value.loc10_13.1 [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] // CHECK:STDOUT: %facet_value.loc10_13.2: %facet_type.6ff = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] @@ -453,20 +453,20 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%V) { -// CHECK:STDOUT: %V.loc7_13.2 => constants.%V -// CHECK:STDOUT: %V.as_type.loc7_33.2 => constants.%V.as_type +// CHECK:STDOUT: %V.loc7_13.1 => constants.%V +// CHECK:STDOUT: %V.as_type.loc7_33.1 => constants.%V.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.760 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal(constants.%W) { -// CHECK:STDOUT: %W.loc9_21.2 => constants.%W -// CHECK:STDOUT: %W.as_type.loc9_50.2 => constants.%W.as_type +// CHECK:STDOUT: %W.loc9_21.1 => constants.%W +// CHECK:STDOUT: %W.as_type.loc9_50.1 => constants.%W.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.002 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%facet_value) { -// CHECK:STDOUT: %V.loc7_13.2 => constants.%facet_value -// CHECK:STDOUT: %V.as_type.loc7_33.2 => constants.%W.as_type +// CHECK:STDOUT: %V.loc7_13.1 => constants.%facet_value +// CHECK:STDOUT: %V.as_type.loc7_33.1 => constants.%W.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.002 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -573,14 +573,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc9_23.2: type = value_of_initializer %type.and [concrete = constants.%facet_type.6ff] // CHECK:STDOUT: %.loc9_23.3: type = converted %type.and, %.loc9_23.2 [concrete = constants.%facet_type.6ff] // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc9_14.1: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc9_14.2 (constants.%V)] -// CHECK:STDOUT: %v.param: @FeedTame2.%V.as_type.loc9_34.2 (%V.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_34.1: type = splice_block %.loc9_34.2 [symbolic = %V.as_type.loc9_34.2 (constants.%V.as_type)] { -// CHECK:STDOUT: %V.ref: %facet_type.6ff = name_ref V, %V.loc9_14.1 [symbolic = %V.loc9_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc9_34.1: type = facet_access_type %V.ref [symbolic = %V.as_type.loc9_34.2 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc9_34.2: type = converted %V.ref, %V.as_type.loc9_34.1 [symbolic = %V.as_type.loc9_34.2 (constants.%V.as_type)] +// CHECK:STDOUT: %V.loc9_14.2: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc9_14.1 (constants.%V)] +// CHECK:STDOUT: %v.param: @FeedTame2.%V.as_type.loc9_34.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_34.1: type = splice_block %.loc9_34.2 [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] { +// CHECK:STDOUT: %V.ref: %facet_type.6ff = name_ref V, %V.loc9_14.2 [symbolic = %V.loc9_14.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc9_34.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc9_34.2: type = converted %V.ref, %V.as_type.loc9_34.2 [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @FeedTame2.%V.as_type.loc9_34.2 (%V.as_type) = bind_name v, %v.param +// CHECK:STDOUT: %v: @FeedTame2.%V.as_type.loc9_34.1 (%V.as_type) = bind_name v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal2.decl: %HandleTameAnimal2.type = fn_decl @HandleTameAnimal2 [concrete = constants.%HandleTameAnimal2] { // CHECK:STDOUT: %W.patt: %pattern_type.6e8 = symbolic_binding_pattern W, 0 [concrete] @@ -596,14 +596,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc11_33.2: type = value_of_initializer %type.and [concrete = constants.%facet_type.65c] // CHECK:STDOUT: %.loc11_33.3: type = converted %type.and, %.loc11_33.2 [concrete = constants.%facet_type.65c] // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc11_22.1: %facet_type.65c = bind_symbolic_name W, 0 [symbolic = %W.loc11_22.2 (constants.%W)] -// CHECK:STDOUT: %w.param: @HandleTameAnimal2.%W.as_type.loc11_44.2 (%W.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc11_44.1: type = splice_block %.loc11_44.2 [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] { -// CHECK:STDOUT: %W.ref: %facet_type.65c = name_ref W, %W.loc11_22.1 [symbolic = %W.loc11_22.2 (constants.%W)] -// CHECK:STDOUT: %W.as_type.loc11_44.1: type = facet_access_type %W.ref [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] -// CHECK:STDOUT: %.loc11_44.2: type = converted %W.ref, %W.as_type.loc11_44.1 [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] +// CHECK:STDOUT: %W.loc11_22.2: %facet_type.65c = bind_symbolic_name W, 0 [symbolic = %W.loc11_22.1 (constants.%W)] +// CHECK:STDOUT: %w.param: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc11_44.1: type = splice_block %.loc11_44.2 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] { +// CHECK:STDOUT: %W.ref: %facet_type.65c = name_ref W, %W.loc11_22.2 [symbolic = %W.loc11_22.1 (constants.%W)] +// CHECK:STDOUT: %W.as_type.loc11_44.2: type = facet_access_type %W.ref [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] +// CHECK:STDOUT: %.loc11_44.2: type = converted %W.ref, %W.as_type.loc11_44.2 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: @HandleTameAnimal2.%W.as_type.loc11_44.2 (%W.as_type) = bind_name w, %w.param +// CHECK:STDOUT: %w: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = bind_name w, %w.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -644,46 +644,46 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @FeedTame2(%V.loc9_14.1: %facet_type.6ff) { -// CHECK:STDOUT: %V.loc9_14.2: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc9_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc9_34.2: type = facet_access_type %V.loc9_14.2 [symbolic = %V.as_type.loc9_34.2 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc9_34.2 [symbolic = %pattern_type (constants.%pattern_type.760)] +// CHECK:STDOUT: generic fn @FeedTame2(%V.loc9_14.2: %facet_type.6ff) { +// CHECK:STDOUT: %V.loc9_14.1: %facet_type.6ff = bind_symbolic_name V, 0 [symbolic = %V.loc9_14.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc9_34.1: type = facet_access_type %V.loc9_14.1 [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc9_34.1 [symbolic = %pattern_type (constants.%pattern_type.760)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc9_34.2 [symbolic = %require_complete (constants.%require_complete.940)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc9_34.1 [symbolic = %require_complete (constants.%require_complete.940)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%v.param: @FeedTame2.%V.as_type.loc9_34.2 (%V.as_type)) { +// CHECK:STDOUT: fn(%v.param: @FeedTame2.%V.as_type.loc9_34.1 (%V.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleTameAnimal2(%W.loc11_22.1: %facet_type.65c) { -// CHECK:STDOUT: %W.loc11_22.2: %facet_type.65c = bind_symbolic_name W, 0 [symbolic = %W.loc11_22.2 (constants.%W)] -// CHECK:STDOUT: %W.as_type.loc11_44.2: type = facet_access_type %W.loc11_22.2 [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc11_44.2 [symbolic = %pattern_type (constants.%pattern_type.5d1)] +// CHECK:STDOUT: generic fn @HandleTameAnimal2(%W.loc11_22.2: %facet_type.65c) { +// CHECK:STDOUT: %W.loc11_22.1: %facet_type.65c = bind_symbolic_name W, 0 [symbolic = %W.loc11_22.1 (constants.%W)] +// CHECK:STDOUT: %W.as_type.loc11_44.1: type = facet_access_type %W.loc11_22.1 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc11_44.1 [symbolic = %pattern_type (constants.%pattern_type.5d1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc11_44.2 [symbolic = %require_complete (constants.%require_complete.ba9)] -// CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.2, @Animal [symbolic = %Animal.lookup_impl_witness (constants.%Animal.lookup_impl_witness)] -// CHECK:STDOUT: %Animal.facet.loc12_14.3: %Animal.type = facet_value %W.as_type.loc11_44.2, (%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.2, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.2, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc12_14.3: %facet_type.6ff = facet_value %W.as_type.loc11_44.2, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc11_44.1 [symbolic = %require_complete (constants.%require_complete.ba9)] +// CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.1, @Animal [symbolic = %Animal.lookup_impl_witness (constants.%Animal.lookup_impl_witness)] +// CHECK:STDOUT: %Animal.facet.loc12_14.3: %Animal.type = facet_value %W.as_type.loc11_44.1, (%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] +// CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] +// CHECK:STDOUT: %facet_value.loc12_14.3: %facet_type.6ff = facet_value %W.as_type.loc11_44.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame2.specific_fn.loc12_3.2: = specific_function constants.%FeedTame2, @FeedTame2(%facet_value.loc12_14.3) [symbolic = %FeedTame2.specific_fn.loc12_3.2 (constants.%FeedTame2.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal2.%W.as_type.loc11_44.2 (%W.as_type)) { +// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedTame2.ref: %FeedTame2.type = name_ref FeedTame2, file.%FeedTame2.decl [concrete = constants.%FeedTame2] -// CHECK:STDOUT: %w.ref: @HandleTameAnimal2.%W.as_type.loc11_44.2 (%W.as_type) = name_ref w, %w -// CHECK:STDOUT: %W.as_type.loc12_14.1: type = facet_access_type constants.%W [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] -// CHECK:STDOUT: %.loc12_14.1: type = converted constants.%W, %W.as_type.loc12_14.1 [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] +// CHECK:STDOUT: %w.ref: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = name_ref w, %w +// CHECK:STDOUT: %W.as_type.loc12_14.1: type = facet_access_type constants.%W [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] +// CHECK:STDOUT: %.loc12_14.1: type = converted constants.%W, %W.as_type.loc12_14.1 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] // CHECK:STDOUT: %Animal.facet.loc12_14.1: %Animal.type = facet_value constants.%W.as_type, (constants.%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %.loc12_14.2: %Animal.type = converted %.loc12_14.1, %Animal.facet.loc12_14.1 [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %facet_value.loc12_14.1: %facet_type.6ff = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc12_14.3: %facet_type.6ff = converted constants.%W.as_type, %facet_value.loc12_14.1 [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] -// CHECK:STDOUT: %W.as_type.loc12_14.2: type = facet_access_type constants.%W [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] -// CHECK:STDOUT: %.loc12_14.4: type = converted constants.%W, %W.as_type.loc12_14.2 [symbolic = %W.as_type.loc11_44.2 (constants.%W.as_type)] +// CHECK:STDOUT: %W.as_type.loc12_14.2: type = facet_access_type constants.%W [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] +// CHECK:STDOUT: %.loc12_14.4: type = converted constants.%W, %W.as_type.loc12_14.2 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] // CHECK:STDOUT: %Animal.facet.loc12_14.2: %Animal.type = facet_value constants.%W.as_type, (constants.%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %.loc12_14.5: %Animal.type = converted %.loc12_14.4, %Animal.facet.loc12_14.2 [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %facet_value.loc12_14.2: %facet_type.6ff = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] @@ -701,14 +701,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame2(constants.%V) { -// CHECK:STDOUT: %V.loc9_14.2 => constants.%V -// CHECK:STDOUT: %V.as_type.loc9_34.2 => constants.%V.as_type +// CHECK:STDOUT: %V.loc9_14.1 => constants.%V +// CHECK:STDOUT: %V.as_type.loc9_34.1 => constants.%V.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.760 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal2(constants.%W) { -// CHECK:STDOUT: %W.loc11_22.2 => constants.%W -// CHECK:STDOUT: %W.as_type.loc11_44.2 => constants.%W.as_type +// CHECK:STDOUT: %W.loc11_22.1 => constants.%W +// CHECK:STDOUT: %W.as_type.loc11_44.1 => constants.%W.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.5d1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -721,8 +721,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame2(constants.%facet_value) { -// CHECK:STDOUT: %V.loc9_14.2 => constants.%facet_value -// CHECK:STDOUT: %V.as_type.loc9_34.2 => constants.%W.as_type +// CHECK:STDOUT: %V.loc9_14.1 => constants.%facet_value +// CHECK:STDOUT: %V.as_type.loc9_34.1 => constants.%W.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.5d1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -775,14 +775,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.f9844e.1) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %T.loc7_11.1: %A.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_11.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @TakesA.%T.as_type.loc7_21.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %A.type = name_ref T, %T.loc7_11.1 [symbolic = %T.loc7_11.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc7_21.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc7_21.2: type = converted %T.ref, %T.as_type.loc7_21.1 [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc7_11.2: %A.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_11.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @TakesA.%T.as_type.loc7_21.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %A.type = name_ref T, %T.loc7_11.2 [symbolic = %T.loc7_11.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc7_21.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_21.2: type = converted %T.ref, %T.as_type.loc7_21.2 [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TakesA.%T.as_type.loc7_21.2 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %x: @TakesA.%T.as_type.loc7_21.1 (%T.as_type) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %WithExtraWhere.decl: %WithExtraWhere.type = fn_decl @WithExtraWhere [concrete = constants.%WithExtraWhere] { // CHECK:STDOUT: %U.patt: %pattern_type.a2b = symbolic_binding_pattern U, 0 [concrete] @@ -799,14 +799,14 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: requirement_impls %.loc9_31, type // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc9_19.1: %A.type = bind_symbolic_name U, 0 [symbolic = %U.loc9_19.2 (constants.%U)] -// CHECK:STDOUT: %y.param: @WithExtraWhere.%U.as_type.loc9_52.2 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_52.1: type = splice_block %.loc9_52.2 [symbolic = %U.as_type.loc9_52.2 (constants.%U.as_type)] { -// CHECK:STDOUT: %U.ref: %A.type = name_ref U, %U.loc9_19.1 [symbolic = %U.loc9_19.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc9_52.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc9_52.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc9_52.2: type = converted %U.ref, %U.as_type.loc9_52.1 [symbolic = %U.as_type.loc9_52.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.loc9_19.2: %A.type = bind_symbolic_name U, 0 [symbolic = %U.loc9_19.1 (constants.%U)] +// CHECK:STDOUT: %y.param: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_52.1: type = splice_block %.loc9_52.2 [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %U.ref: %A.type = name_ref U, %U.loc9_19.2 [symbolic = %U.loc9_19.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc9_52.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc9_52.2: type = converted %U.ref, %U.as_type.loc9_52.2 [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @WithExtraWhere.%U.as_type.loc9_52.2 (%U.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %y: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type) = bind_name y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -818,35 +818,35 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TakesA(%T.loc7_11.1: %A.type) { -// CHECK:STDOUT: %T.loc7_11.2: %A.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_11.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc7_21.2: type = facet_access_type %T.loc7_11.2 [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_21.2 [symbolic = %pattern_type (constants.%pattern_type.f9844e.1)] +// CHECK:STDOUT: generic fn @TakesA(%T.loc7_11.2: %A.type) { +// CHECK:STDOUT: %T.loc7_11.1: %A.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_11.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc7_21.1: type = facet_access_type %T.loc7_11.1 [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_21.1 [symbolic = %pattern_type (constants.%pattern_type.f9844e.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_21.2 [symbolic = %require_complete (constants.%require_complete.cf45b7.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_21.1 [symbolic = %require_complete (constants.%require_complete.cf45b7.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TakesA.%T.as_type.loc7_21.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @TakesA.%T.as_type.loc7_21.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WithExtraWhere(%U.loc9_19.1: %A.type) { -// CHECK:STDOUT: %U.loc9_19.2: %A.type = bind_symbolic_name U, 0 [symbolic = %U.loc9_19.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc9_52.2: type = facet_access_type %U.loc9_19.2 [symbolic = %U.as_type.loc9_52.2 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_52.2 [symbolic = %pattern_type (constants.%pattern_type.f9844e.2)] +// CHECK:STDOUT: generic fn @WithExtraWhere(%U.loc9_19.2: %A.type) { +// CHECK:STDOUT: %U.loc9_19.1: %A.type = bind_symbolic_name U, 0 [symbolic = %U.loc9_19.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc9_52.1: type = facet_access_type %U.loc9_19.1 [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_52.1 [symbolic = %pattern_type (constants.%pattern_type.f9844e.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_52.2 [symbolic = %require_complete (constants.%require_complete.cf45b7.2)] -// CHECK:STDOUT: %TakesA.specific_fn.loc10_3.2: = specific_function constants.%TakesA, @TakesA(%U.loc9_19.2) [symbolic = %TakesA.specific_fn.loc10_3.2 (constants.%TakesA.specific_fn)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_52.1 [symbolic = %require_complete (constants.%require_complete.cf45b7.2)] +// CHECK:STDOUT: %TakesA.specific_fn.loc10_3.2: = specific_function constants.%TakesA, @TakesA(%U.loc9_19.1) [symbolic = %TakesA.specific_fn.loc10_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @WithExtraWhere.%U.as_type.loc9_52.2 (%U.as_type)) { +// CHECK:STDOUT: fn(%y.param: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesA.ref: %TakesA.type = name_ref TakesA, file.%TakesA.decl [concrete = constants.%TakesA] -// CHECK:STDOUT: %y.ref: @WithExtraWhere.%U.as_type.loc9_52.2 (%U.as_type) = name_ref y, %y -// CHECK:STDOUT: %.loc10_11.1: %A.type = converted constants.%U.as_type, constants.%U [symbolic = %U.loc9_19.2 (constants.%U)] -// CHECK:STDOUT: %.loc10_11.2: %A.type = converted constants.%U.as_type, constants.%U [symbolic = %U.loc9_19.2 (constants.%U)] +// CHECK:STDOUT: %y.ref: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type) = name_ref y, %y +// CHECK:STDOUT: %.loc10_11.1: %A.type = converted constants.%U.as_type, constants.%U [symbolic = %U.loc9_19.1 (constants.%U)] +// CHECK:STDOUT: %.loc10_11.2: %A.type = converted constants.%U.as_type, constants.%U [symbolic = %U.loc9_19.1 (constants.%U)] // CHECK:STDOUT: %TakesA.specific_fn.loc10_3.1: = specific_function %TakesA.ref, @TakesA(constants.%U) [symbolic = %TakesA.specific_fn.loc10_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: %TakesA.call: init %empty_tuple.type = call %TakesA.specific_fn.loc10_3.1(%y.ref) // CHECK:STDOUT: return @@ -854,20 +854,20 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesA(constants.%T) { -// CHECK:STDOUT: %T.loc7_11.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc7_21.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc7_11.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc7_21.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f9844e.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithExtraWhere(constants.%U) { -// CHECK:STDOUT: %U.loc9_19.2 => constants.%U -// CHECK:STDOUT: %U.as_type.loc9_52.2 => constants.%U.as_type +// CHECK:STDOUT: %U.loc9_19.1 => constants.%U +// CHECK:STDOUT: %U.as_type.loc9_52.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f9844e.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesA(constants.%U) { -// CHECK:STDOUT: %T.loc7_11.2 => constants.%U -// CHECK:STDOUT: %T.as_type.loc7_21.2 => constants.%U.as_type +// CHECK:STDOUT: %T.loc7_11.1 => constants.%U +// CHECK:STDOUT: %T.as_type.loc7_21.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f9844e.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -922,10 +922,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %x.patt: @TakesTypeDeduced.%pattern_type (%pattern_type.7dc) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @TakesTypeDeduced.%pattern_type (%pattern_type.7dc) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc3_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_21.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @TakesTypeDeduced.%T.loc3_21.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc3_21.1 [symbolic = %T.loc3_21.2 (constants.%T)] -// CHECK:STDOUT: %x: @TakesTypeDeduced.%T.loc3_21.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc3_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_21.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @TakesTypeDeduced.%T.loc3_21.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc3_21.2 [symbolic = %T.loc3_21.1 (constants.%T)] +// CHECK:STDOUT: %x: @TakesTypeDeduced.%T.loc3_21.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithExtraWhere.decl: %CallsWithExtraWhere.type = fn_decl @CallsWithExtraWhere [concrete = constants.%CallsWithExtraWhere] { // CHECK:STDOUT: %U.patt: %pattern_type.d06 = symbolic_binding_pattern U, 0 [concrete] @@ -939,19 +939,19 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: requirement_impls %.Self.ref, type // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc4_24.1: %type = bind_symbolic_name U, 0 [symbolic = %U.loc4_24.2 (constants.%U)] -// CHECK:STDOUT: %y.param: @CallsWithExtraWhere.%U.as_type.loc4_60.2 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_60.1: type = splice_block %.loc4_60.2 [symbolic = %U.as_type.loc4_60.2 (constants.%U.as_type)] { -// CHECK:STDOUT: %U.ref: %type = name_ref U, %U.loc4_24.1 [symbolic = %U.loc4_24.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc4_60.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc4_60.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc4_60.2: type = converted %U.ref, %U.as_type.loc4_60.1 [symbolic = %U.as_type.loc4_60.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.loc4_24.2: %type = bind_symbolic_name U, 0 [symbolic = %U.loc4_24.1 (constants.%U)] +// CHECK:STDOUT: %y.param: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_60.1: type = splice_block %.loc4_60.2 [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %U.ref: %type = name_ref U, %U.loc4_24.2 [symbolic = %U.loc4_24.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc4_60.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc4_60.2: type = converted %U.ref, %U.as_type.loc4_60.2 [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @CallsWithExtraWhere.%U.as_type.loc4_60.2 (%U.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %y: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type) = bind_name y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: %TakesTypeExplicit.decl: %TakesTypeExplicit.type = fn_decl @TakesTypeExplicit [concrete = constants.%TakesTypeExplicit] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_22.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_22.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithExtraWhereExplicit.decl: %CallsWithExtraWhereExplicit.type = fn_decl @CallsWithExtraWhereExplicit [concrete = constants.%CallsWithExtraWhereExplicit] { // CHECK:STDOUT: %U.patt: %pattern_type.d06 = symbolic_binding_pattern U, 0 [concrete] @@ -963,44 +963,44 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: requirement_impls %.Self.ref, type // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc9_32.1: %type = bind_symbolic_name U, 0 [symbolic = %U.loc9_32.2 (constants.%U)] +// CHECK:STDOUT: %U.loc9_32.2: %type = bind_symbolic_name U, 0 [symbolic = %U.loc9_32.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TakesTypeDeduced(%T.loc3_21.1: type) { -// CHECK:STDOUT: %T.loc3_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_21.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc3_21.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @TakesTypeDeduced(%T.loc3_21.2: type) { +// CHECK:STDOUT: %T.loc3_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_21.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc3_21.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc3_21.2 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc3_21.1 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TakesTypeDeduced.%T.loc3_21.2 (%T)) { +// CHECK:STDOUT: fn(%x.param: @TakesTypeDeduced.%T.loc3_21.1 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallsWithExtraWhere(%U.loc4_24.1: %type) { -// CHECK:STDOUT: %U.loc4_24.2: %type = bind_symbolic_name U, 0 [symbolic = %U.loc4_24.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc4_60.2: type = facet_access_type %U.loc4_24.2 [symbolic = %U.as_type.loc4_60.2 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc4_60.2 [symbolic = %pattern_type (constants.%pattern_type.772)] +// CHECK:STDOUT: generic fn @CallsWithExtraWhere(%U.loc4_24.2: %type) { +// CHECK:STDOUT: %U.loc4_24.1: %type = bind_symbolic_name U, 0 [symbolic = %U.loc4_24.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc4_60.1: type = facet_access_type %U.loc4_24.1 [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc4_60.1 [symbolic = %pattern_type (constants.%pattern_type.772)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc4_60.2 [symbolic = %require_complete (constants.%require_complete.5eb)] -// CHECK:STDOUT: %TakesTypeDeduced.specific_fn.loc5_3.2: = specific_function constants.%TakesTypeDeduced, @TakesTypeDeduced(%U.as_type.loc4_60.2) [symbolic = %TakesTypeDeduced.specific_fn.loc5_3.2 (constants.%TakesTypeDeduced.specific_fn)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc4_60.1 [symbolic = %require_complete (constants.%require_complete.5eb)] +// CHECK:STDOUT: %TakesTypeDeduced.specific_fn.loc5_3.2: = specific_function constants.%TakesTypeDeduced, @TakesTypeDeduced(%U.as_type.loc4_60.1) [symbolic = %TakesTypeDeduced.specific_fn.loc5_3.2 (constants.%TakesTypeDeduced.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @CallsWithExtraWhere.%U.as_type.loc4_60.2 (%U.as_type)) { +// CHECK:STDOUT: fn(%y.param: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesTypeDeduced.ref: %TakesTypeDeduced.type = name_ref TakesTypeDeduced, file.%TakesTypeDeduced.decl [concrete = constants.%TakesTypeDeduced] -// CHECK:STDOUT: %y.ref: @CallsWithExtraWhere.%U.as_type.loc4_60.2 (%U.as_type) = name_ref y, %y +// CHECK:STDOUT: %y.ref: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type) = name_ref y, %y // CHECK:STDOUT: %TakesTypeDeduced.specific_fn.loc5_3.1: = specific_function %TakesTypeDeduced.ref, @TakesTypeDeduced(constants.%U.as_type) [symbolic = %TakesTypeDeduced.specific_fn.loc5_3.2 (constants.%TakesTypeDeduced.specific_fn)] // CHECK:STDOUT: %TakesTypeDeduced.call: init %empty_tuple.type = call %TakesTypeDeduced.specific_fn.loc5_3.1(%y.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TakesTypeExplicit(%T.loc8_22.1: type) { -// CHECK:STDOUT: %T.loc8_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_22.2 (constants.%T)] +// CHECK:STDOUT: generic fn @TakesTypeExplicit(%T.loc8_22.2: type) { +// CHECK:STDOUT: %T.loc8_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_22.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1010,17 +1010,17 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallsWithExtraWhereExplicit(%U.loc9_32.1: %type) { -// CHECK:STDOUT: %U.loc9_32.2: %type = bind_symbolic_name U, 0 [symbolic = %U.loc9_32.2 (constants.%U)] +// CHECK:STDOUT: generic fn @CallsWithExtraWhereExplicit(%U.loc9_32.2: %type) { +// CHECK:STDOUT: %U.loc9_32.1: %type = bind_symbolic_name U, 0 [symbolic = %U.loc9_32.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %U.as_type.loc10_22.2: type = facet_access_type %U.loc9_32.2 [symbolic = %U.as_type.loc10_22.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.as_type.loc10_22.2: type = facet_access_type %U.loc9_32.1 [symbolic = %U.as_type.loc10_22.2 (constants.%U.as_type)] // CHECK:STDOUT: %TakesTypeExplicit.specific_fn.loc10_3.2: = specific_function constants.%TakesTypeExplicit, @TakesTypeExplicit(%U.as_type.loc10_22.2) [symbolic = %TakesTypeExplicit.specific_fn.loc10_3.2 (constants.%TakesTypeExplicit.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesTypeExplicit.ref: %TakesTypeExplicit.type = name_ref TakesTypeExplicit, file.%TakesTypeExplicit.decl [concrete = constants.%TakesTypeExplicit] -// CHECK:STDOUT: %U.ref: %type = name_ref U, %U.loc9_32.1 [symbolic = %U.loc9_32.2 (constants.%U)] +// CHECK:STDOUT: %U.ref: %type = name_ref U, %U.loc9_32.2 [symbolic = %U.loc9_32.1 (constants.%U)] // CHECK:STDOUT: %U.as_type.loc10_22.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc10_22.2 (constants.%U.as_type)] // CHECK:STDOUT: %.loc10: type = converted %U.ref, %U.as_type.loc10_22.1 [symbolic = %U.as_type.loc10_22.2 (constants.%U.as_type)] // CHECK:STDOUT: %TakesTypeExplicit.specific_fn.loc10_3.1: = specific_function %TakesTypeExplicit.ref, @TakesTypeExplicit(constants.%U.as_type) [symbolic = %TakesTypeExplicit.specific_fn.loc10_3.2 (constants.%TakesTypeExplicit.specific_fn)] @@ -1030,18 +1030,18 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesTypeDeduced(constants.%T) { -// CHECK:STDOUT: %T.loc3_21.2 => constants.%T +// CHECK:STDOUT: %T.loc3_21.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithExtraWhere(constants.%U) { -// CHECK:STDOUT: %U.loc4_24.2 => constants.%U -// CHECK:STDOUT: %U.as_type.loc4_60.2 => constants.%U.as_type +// CHECK:STDOUT: %U.loc4_24.1 => constants.%U +// CHECK:STDOUT: %U.as_type.loc4_60.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.772 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesTypeDeduced(constants.%U.as_type) { -// CHECK:STDOUT: %T.loc3_21.2 => constants.%U.as_type +// CHECK:STDOUT: %T.loc3_21.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.772 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1049,15 +1049,15 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesTypeExplicit(constants.%T) { -// CHECK:STDOUT: %T.loc8_22.2 => constants.%T +// CHECK:STDOUT: %T.loc8_22.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithExtraWhereExplicit(constants.%U) { -// CHECK:STDOUT: %U.loc9_32.2 => constants.%U +// CHECK:STDOUT: %U.loc9_32.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesTypeExplicit(constants.%U.as_type) { -// CHECK:STDOUT: %T.loc8_22.2 => constants.%U.as_type +// CHECK:STDOUT: %T.loc8_22.1 => constants.%U.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -1118,24 +1118,24 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: requirement_impls %.Self.ref, type // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc3_27.1: %type = bind_symbolic_name T, 0 [symbolic = %T.loc3_27.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_63.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc3_63.1: type = splice_block %.loc3_63.2 [symbolic = %T.as_type.loc3_63.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %type = name_ref T, %T.loc3_27.1 [symbolic = %T.loc3_27.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc3_63.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc3_63.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc3_63.2: type = converted %T.ref, %T.as_type.loc3_63.1 [symbolic = %T.as_type.loc3_63.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc3_27.2: %type = bind_symbolic_name T, 0 [symbolic = %T.loc3_27.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_63.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc3_63.1: type = splice_block %.loc3_63.2 [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %type = name_ref T, %T.loc3_27.2 [symbolic = %T.loc3_27.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc3_63.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc3_63.2: type = converted %T.ref, %T.as_type.loc3_63.2 [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TakesExtraWhereDeduced.%T.as_type.loc3_63.2 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %x: @TakesExtraWhereDeduced.%T.as_type.loc3_63.1 (%T.as_type) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithType.decl: %CallsWithType.type = fn_decl @CallsWithType [concrete = constants.%CallsWithType] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: %y.patt: @CallsWithType.%pattern_type (%pattern_type.7dc) = binding_pattern y [concrete] // CHECK:STDOUT: %y.param_patt: @CallsWithType.%pattern_type (%pattern_type.7dc) = value_param_pattern %y.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc4_18.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_18.2 (constants.%U)] -// CHECK:STDOUT: %y.param: @CallsWithType.%U.loc4_18.2 (%U) = value_param call_param0 -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc4_18.1 [symbolic = %U.loc4_18.2 (constants.%U)] -// CHECK:STDOUT: %y: @CallsWithType.%U.loc4_18.2 (%U) = bind_name y, %y.param +// CHECK:STDOUT: %U.loc4_18.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_18.1 (constants.%U)] +// CHECK:STDOUT: %y.param: @CallsWithType.%U.loc4_18.1 (%U) = value_param call_param0 +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc4_18.2 [symbolic = %U.loc4_18.1 (constants.%U)] +// CHECK:STDOUT: %y: @CallsWithType.%U.loc4_18.1 (%U) = bind_name y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: %TakesExtraWhereExplicit.decl: %TakesExtraWhereExplicit.type = fn_decl @TakesExtraWhereExplicit [concrete = constants.%TakesExtraWhereExplicit] { // CHECK:STDOUT: %T.patt: %pattern_type.d06 = symbolic_binding_pattern T, 0 [concrete] @@ -1147,42 +1147,42 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: requirement_impls %.Self.ref, type // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc8_28.1: %type = bind_symbolic_name T, 0 [symbolic = %T.loc8_28.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_28.2: %type = bind_symbolic_name T, 0 [symbolic = %T.loc8_28.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithTypeExplicit.decl: %CallsWithTypeExplicit.type = fn_decl @CallsWithTypeExplicit [concrete = constants.%CallsWithTypeExplicit] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc9_26.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_26.2 (constants.%U)] +// CHECK:STDOUT: %U.loc9_26.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_26.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TakesExtraWhereDeduced(%T.loc3_27.1: %type) { -// CHECK:STDOUT: %T.loc3_27.2: %type = bind_symbolic_name T, 0 [symbolic = %T.loc3_27.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc3_63.2: type = facet_access_type %T.loc3_27.2 [symbolic = %T.as_type.loc3_63.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc3_63.2 [symbolic = %pattern_type (constants.%pattern_type.772)] +// CHECK:STDOUT: generic fn @TakesExtraWhereDeduced(%T.loc3_27.2: %type) { +// CHECK:STDOUT: %T.loc3_27.1: %type = bind_symbolic_name T, 0 [symbolic = %T.loc3_27.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc3_63.1: type = facet_access_type %T.loc3_27.1 [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc3_63.1 [symbolic = %pattern_type (constants.%pattern_type.772)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc3_63.2 [symbolic = %require_complete (constants.%require_complete.5eb)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc3_63.1 [symbolic = %require_complete (constants.%require_complete.5eb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_63.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_63.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallsWithType(%U.loc4_18.1: type) { -// CHECK:STDOUT: %U.loc4_18.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_18.2 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.loc4_18.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @CallsWithType(%U.loc4_18.2: type) { +// CHECK:STDOUT: %U.loc4_18.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc4_18.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.loc4_18.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.loc4_18.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %facet_value.loc5_27.3: %type = facet_value %U.loc4_18.2, () [symbolic = %facet_value.loc5_27.3 (constants.%facet_value)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.loc4_18.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %facet_value.loc5_27.3: %type = facet_value %U.loc4_18.1, () [symbolic = %facet_value.loc5_27.3 (constants.%facet_value)] // CHECK:STDOUT: %TakesExtraWhereDeduced.specific_fn.loc5_3.2: = specific_function constants.%TakesExtraWhereDeduced, @TakesExtraWhereDeduced(%facet_value.loc5_27.3) [symbolic = %TakesExtraWhereDeduced.specific_fn.loc5_3.2 (constants.%TakesExtraWhereDeduced.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @CallsWithType.%U.loc4_18.2 (%U)) { +// CHECK:STDOUT: fn(%y.param: @CallsWithType.%U.loc4_18.1 (%U)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesExtraWhereDeduced.ref: %TakesExtraWhereDeduced.type = name_ref TakesExtraWhereDeduced, file.%TakesExtraWhereDeduced.decl [concrete = constants.%TakesExtraWhereDeduced] -// CHECK:STDOUT: %y.ref: @CallsWithType.%U.loc4_18.2 (%U) = name_ref y, %y +// CHECK:STDOUT: %y.ref: @CallsWithType.%U.loc4_18.1 (%U) = name_ref y, %y // CHECK:STDOUT: %facet_value.loc5_27.1: %type = facet_value constants.%U, () [symbolic = %facet_value.loc5_27.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc5_27.1: %type = converted constants.%U, %facet_value.loc5_27.1 [symbolic = %facet_value.loc5_27.3 (constants.%facet_value)] // CHECK:STDOUT: %facet_value.loc5_27.2: %type = facet_value constants.%U, () [symbolic = %facet_value.loc5_27.3 (constants.%facet_value)] @@ -1193,8 +1193,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TakesExtraWhereExplicit(%T.loc8_28.1: %type) { -// CHECK:STDOUT: %T.loc8_28.2: %type = bind_symbolic_name T, 0 [symbolic = %T.loc8_28.2 (constants.%T)] +// CHECK:STDOUT: generic fn @TakesExtraWhereExplicit(%T.loc8_28.2: %type) { +// CHECK:STDOUT: %T.loc8_28.1: %type = bind_symbolic_name T, 0 [symbolic = %T.loc8_28.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1204,17 +1204,17 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallsWithTypeExplicit(%U.loc9_26.1: type) { -// CHECK:STDOUT: %U.loc9_26.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_26.2 (constants.%U)] +// CHECK:STDOUT: generic fn @CallsWithTypeExplicit(%U.loc9_26.2: type) { +// CHECK:STDOUT: %U.loc9_26.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc9_26.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %facet_value.loc10_28.2: %type = facet_value %U.loc9_26.2, () [symbolic = %facet_value.loc10_28.2 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc10_28.2: %type = facet_value %U.loc9_26.1, () [symbolic = %facet_value.loc10_28.2 (constants.%facet_value)] // CHECK:STDOUT: %TakesExtraWhereExplicit.specific_fn.loc10_3.2: = specific_function constants.%TakesExtraWhereExplicit, @TakesExtraWhereExplicit(%facet_value.loc10_28.2) [symbolic = %TakesExtraWhereExplicit.specific_fn.loc10_3.2 (constants.%TakesExtraWhereExplicit.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesExtraWhereExplicit.ref: %TakesExtraWhereExplicit.type = name_ref TakesExtraWhereExplicit, file.%TakesExtraWhereExplicit.decl [concrete = constants.%TakesExtraWhereExplicit] -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc9_26.1 [symbolic = %U.loc9_26.2 (constants.%U)] +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc9_26.2 [symbolic = %U.loc9_26.1 (constants.%U)] // CHECK:STDOUT: %facet_value.loc10_28.1: %type = facet_value constants.%U, () [symbolic = %facet_value.loc10_28.2 (constants.%facet_value)] // CHECK:STDOUT: %.loc10: %type = converted %U.ref, %facet_value.loc10_28.1 [symbolic = %facet_value.loc10_28.2 (constants.%facet_value)] // CHECK:STDOUT: %TakesExtraWhereExplicit.specific_fn.loc10_3.1: = specific_function %TakesExtraWhereExplicit.ref, @TakesExtraWhereExplicit(constants.%facet_value) [symbolic = %TakesExtraWhereExplicit.specific_fn.loc10_3.2 (constants.%TakesExtraWhereExplicit.specific_fn)] @@ -1224,19 +1224,19 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereDeduced(constants.%T) { -// CHECK:STDOUT: %T.loc3_27.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc3_63.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc3_27.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc3_63.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.772 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithType(constants.%U) { -// CHECK:STDOUT: %U.loc4_18.2 => constants.%U +// CHECK:STDOUT: %U.loc4_18.1 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereDeduced(constants.%facet_value) { -// CHECK:STDOUT: %T.loc3_27.2 => constants.%facet_value -// CHECK:STDOUT: %T.as_type.loc3_63.2 => constants.%U +// CHECK:STDOUT: %T.loc3_27.1 => constants.%facet_value +// CHECK:STDOUT: %T.as_type.loc3_63.1 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1244,15 +1244,15 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereExplicit(constants.%T) { -// CHECK:STDOUT: %T.loc8_28.2 => constants.%T +// CHECK:STDOUT: %T.loc8_28.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithTypeExplicit(constants.%U) { -// CHECK:STDOUT: %U.loc9_26.2 => constants.%U +// CHECK:STDOUT: %U.loc9_26.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereExplicit(constants.%facet_value) { -// CHECK:STDOUT: %T.loc8_28.2 => constants.%facet_value +// CHECK:STDOUT: %T.loc8_28.1 => constants.%facet_value // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon index 5e81c6f31fb6..a7a824c3a1d1 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon @@ -88,14 +88,14 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.2b4) = value_param_pattern %e.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %T.loc20_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc20_9.2 (constants.%T.1b5)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc20_22.2 (%T.as_type.27d) = value_param call_param0 -// CHECK:STDOUT: %.loc20_22.1: type = splice_block %.loc20_22.2 [symbolic = %T.as_type.loc20_22.2 (constants.%T.as_type.27d)] { -// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc20_9.1 [symbolic = %T.loc20_9.2 (constants.%T.1b5)] -// CHECK:STDOUT: %T.as_type.loc20_22.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc20_22.2 (constants.%T.as_type.27d)] -// CHECK:STDOUT: %.loc20_22.2: type = converted %T.ref, %T.as_type.loc20_22.1 [symbolic = %T.as_type.loc20_22.2 (constants.%T.as_type.27d)] +// CHECK:STDOUT: %T.loc20_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc20_9.1 (constants.%T.1b5)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc20_22.1 (%T.as_type.27d) = value_param call_param0 +// CHECK:STDOUT: %.loc20_22.1: type = splice_block %.loc20_22.2 [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.27d)] { +// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc20_9.2 [symbolic = %T.loc20_9.1 (constants.%T.1b5)] +// CHECK:STDOUT: %T.as_type.loc20_22.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.27d)] +// CHECK:STDOUT: %.loc20_22.2: type = converted %T.ref, %T.as_type.loc20_22.2 [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.27d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc20_22.2 (%T.as_type.27d) = bind_name e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc20_22.1 (%T.as_type.27d) = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.3b0 = symbolic_binding_pattern T, 0 [concrete] @@ -103,14 +103,14 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.36a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc22_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc22_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc22_32.2 (%T.as_type.2ad) = value_param call_param0 -// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc22_17.1 [symbolic = %T.loc22_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.1 [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %T.loc22_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc22_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.2ad) = value_param call_param0 +// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc22_17.2 [symbolic = %T.loc22_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc22_32.2 (%T.as_type.2ad) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.2ad) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -143,43 +143,43 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%T.loc20_9.1: %Eats.type) { -// CHECK:STDOUT: %T.loc20_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc20_9.2 (constants.%T.1b5)] -// CHECK:STDOUT: %T.as_type.loc20_22.2: type = facet_access_type %T.loc20_9.2 [symbolic = %T.as_type.loc20_22.2 (constants.%T.as_type.27d)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc20_22.2 [symbolic = %pattern_type (constants.%pattern_type.2b4)] +// CHECK:STDOUT: generic fn @Feed(%T.loc20_9.2: %Eats.type) { +// CHECK:STDOUT: %T.loc20_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc20_9.1 (constants.%T.1b5)] +// CHECK:STDOUT: %T.as_type.loc20_22.1: type = facet_access_type %T.loc20_9.1 [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.27d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc20_22.1 [symbolic = %pattern_type (constants.%pattern_type.2b4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc20_22.2 [symbolic = %require_complete (constants.%require_complete.c75)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc20_22.1 [symbolic = %require_complete (constants.%require_complete.c75)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc20_22.2 (%T.as_type.27d)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc20_22.1 (%T.as_type.27d)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc22_17.1: %Animal.type) { -// CHECK:STDOUT: %T.loc22_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc22_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.loc22_17.2 [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.2 [symbolic = %pattern_type (constants.%pattern_type.36a)] +// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc22_17.2: %Animal.type) { +// CHECK:STDOUT: %T.loc22_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc22_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_17.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.36a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.2 [symbolic = %require_complete (constants.%require_complete.234)] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc22_17.2, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc22_43.3: %Eats.type = facet_value %T.as_type.loc22_32.2, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.234)] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc22_17.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] +// CHECK:STDOUT: %Eats.facet.loc22_43.3: %Eats.type = facet_value %T.as_type.loc22_32.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc22_37.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc22_43.3) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc22_32.2 (%T.as_type.2ad)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.2ad)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc22_32.2 (%T.as_type.2ad) = name_ref a, %a -// CHECK:STDOUT: %T.as_type.loc22_43.1: type = facet_access_type constants.%T.fd4 [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc22_43.1: type = converted constants.%T.fd4, %T.as_type.loc22_43.1 [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc22_43.2: %Animal.type = converted %.loc22_43.1, constants.%T.fd4 [symbolic = %T.loc22_17.2 (constants.%T.fd4)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.2ad) = name_ref a, %a +// CHECK:STDOUT: %T.as_type.loc22_43.1: type = facet_access_type constants.%T.fd4 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc22_43.1: type = converted constants.%T.fd4, %T.as_type.loc22_43.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc22_43.2: %Animal.type = converted %.loc22_43.1, constants.%T.fd4 [symbolic = %T.loc22_17.1 (constants.%T.fd4)] // CHECK:STDOUT: %Eats.facet.loc22_43.1: %Eats.type = facet_value constants.%T.as_type.2ad, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %.loc22_43.3: %Eats.type = converted constants.%T.as_type.2ad, %Eats.facet.loc22_43.1 [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %T.as_type.loc22_43.2: type = facet_access_type constants.%T.fd4 [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc22_43.4: type = converted constants.%T.fd4, %T.as_type.loc22_43.2 [symbolic = %T.as_type.loc22_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc22_43.5: %Animal.type = converted %.loc22_43.4, constants.%T.fd4 [symbolic = %T.loc22_17.2 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc22_43.2: type = facet_access_type constants.%T.fd4 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc22_43.4: type = converted constants.%T.fd4, %T.as_type.loc22_43.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc22_43.5: %Animal.type = converted %.loc22_43.4, constants.%T.fd4 [symbolic = %T.loc22_17.1 (constants.%T.fd4)] // CHECK:STDOUT: %Eats.facet.loc22_43.2: %Eats.type = facet_value constants.%T.as_type.2ad, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %.loc22_43.6: %Eats.type = converted constants.%T.as_type.2ad, %Eats.facet.loc22_43.2 [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc22_37.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] @@ -195,14 +195,14 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T.1b5) { -// CHECK:STDOUT: %T.loc20_9.2 => constants.%T.1b5 -// CHECK:STDOUT: %T.as_type.loc20_22.2 => constants.%T.as_type.27d +// CHECK:STDOUT: %T.loc20_9.1 => constants.%T.1b5 +// CHECK:STDOUT: %T.as_type.loc20_22.1 => constants.%T.as_type.27d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.fd4) { -// CHECK:STDOUT: %T.loc22_17.2 => constants.%T.fd4 -// CHECK:STDOUT: %T.as_type.loc22_32.2 => constants.%T.as_type.2ad +// CHECK:STDOUT: %T.loc22_17.1 => constants.%T.fd4 +// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.2ad // CHECK:STDOUT: %pattern_type => constants.%pattern_type.36a // CHECK:STDOUT: } // CHECK:STDOUT: @@ -215,8 +215,8 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { -// CHECK:STDOUT: %T.loc20_9.2 => constants.%Eats.facet -// CHECK:STDOUT: %T.as_type.loc20_22.2 => constants.%T.as_type.2ad +// CHECK:STDOUT: %T.loc20_9.1 => constants.%Eats.facet +// CHECK:STDOUT: %T.as_type.loc20_22.1 => constants.%T.as_type.2ad // CHECK:STDOUT: %pattern_type => constants.%pattern_type.36a // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon index 24c74e7c011d..8b0321630100 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon @@ -102,14 +102,14 @@ fn F() { // CHECK:STDOUT: %pattern_type.aff: type = pattern_type %Grass [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet, %Edible.facet) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7fb: type = fn_type @Op.2, @Destroy.impl(%Grass) [concrete] +// CHECK:STDOUT: %Op.type.7fb: type = fn_type @Op.1, @Destroy.impl(%Grass) [concrete] // CHECK:STDOUT: %Op.d66: %Op.type.7fb = struct_value () [concrete] // CHECK:STDOUT: %ptr.2bd: type = ptr_type %Grass [concrete] -// CHECK:STDOUT: %Op.specific_fn.9e2: = specific_function %Op.d66, @Op.2(%Grass) [concrete] -// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.2, @Destroy.impl(%Goat) [concrete] +// CHECK:STDOUT: %Op.specific_fn.9e2: = specific_function %Op.d66, @Op.1(%Grass) [concrete] +// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.1, @Destroy.impl(%Goat) [concrete] // CHECK:STDOUT: %Op.55a: %Op.type.e7a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %Op.specific_fn.d9f: = specific_function %Op.55a, @Op.2(%Goat) [concrete] +// CHECK:STDOUT: %Op.specific_fn.d9f: = specific_function %Op.55a, @Op.1(%Goat) [concrete] // CHECK:STDOUT: %Eats.type.1ae: type = facet_type <@Eats, @Eats(%Grass)> [concrete] // CHECK:STDOUT: %Self.016: %Eats.type.1ae = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %complete_type.004: = complete_type_witness %Eats.type.1ae [concrete] @@ -153,7 +153,7 @@ fn F() { // CHECK:STDOUT: %Eats.decl: %Eats.type.ba2 = interface_decl @Eats [concrete = constants.%Eats.generic] { // CHECK:STDOUT: %Food.patt: %pattern_type.98f = symbolic_binding_pattern Food, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Food.loc21_16.1: type = bind_symbolic_name Food, 0 [symbolic = %Food.loc21_16.2 (constants.%Food.8b3)] +// CHECK:STDOUT: %Food.loc21_16.2: type = bind_symbolic_name Food, 0 [symbolic = %Food.loc21_16.1 (constants.%Food.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Eats.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.3b0 = symbolic_binding_pattern T, 0 [concrete] @@ -190,29 +190,29 @@ fn F() { // CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_46 (%pattern_type.54f) = value_param_pattern %food.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] -// CHECK:STDOUT: %Food.loc31_9.1: %Edible.type = bind_symbolic_name Food, 0 [symbolic = %Food.loc31_9.2 (constants.%Food.9af)] -// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.1 [symbolic = %Eats.type.loc31_37.2 (constants.%Eats.type.b39)] { +// CHECK:STDOUT: %Food.loc31_9.2: %Edible.type = bind_symbolic_name Food, 0 [symbolic = %Food.loc31_9.1 (constants.%Food.9af)] +// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.2 [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.b39)] { // CHECK:STDOUT: %Eats.ref: %Eats.type.ba2 = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] -// CHECK:STDOUT: %Food.ref.loc31_33: %Edible.type = name_ref Food, %Food.loc31_9.1 [symbolic = %Food.loc31_9.2 (constants.%Food.9af)] -// CHECK:STDOUT: %Food.as_type.loc31_37.1: type = facet_access_type %Food.ref.loc31_33 [symbolic = %Food.as_type.loc31_37.2 (constants.%Food.as_type.952)] -// CHECK:STDOUT: %.loc31_37.2: type = converted %Food.ref.loc31_33, %Food.as_type.loc31_37.1 [symbolic = %Food.as_type.loc31_37.2 (constants.%Food.as_type.952)] -// CHECK:STDOUT: %Eats.type.loc31_37.1: type = facet_type <@Eats, @Eats(constants.%Food.as_type.952)> [symbolic = %Eats.type.loc31_37.2 (constants.%Eats.type.b39)] +// CHECK:STDOUT: %Food.ref.loc31_33: %Edible.type = name_ref Food, %Food.loc31_9.2 [symbolic = %Food.loc31_9.1 (constants.%Food.9af)] +// CHECK:STDOUT: %Food.as_type.loc31_37.2: type = facet_access_type %Food.ref.loc31_33 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.952)] +// CHECK:STDOUT: %.loc31_37.2: type = converted %Food.ref.loc31_33, %Food.as_type.loc31_37.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.952)] +// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(constants.%Food.as_type.952)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.b39)] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc31_24.1: @Feed.%Eats.type.loc31_37.2 (%Eats.type.b39) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.2 (constants.%T.223)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc31_43.2 (%T.as_type.212) = value_param call_param0 -// CHECK:STDOUT: %.loc31_43.1: type = splice_block %.loc31_43.2 [symbolic = %T.as_type.loc31_43.2 (constants.%T.as_type.212)] { -// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.2 (%Eats.type.b39) = name_ref T, %T.loc31_24.1 [symbolic = %T.loc31_24.2 (constants.%T.223)] -// CHECK:STDOUT: %T.as_type.loc31_43.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc31_43.2 (constants.%T.as_type.212)] -// CHECK:STDOUT: %.loc31_43.2: type = converted %T.ref, %T.as_type.loc31_43.1 [symbolic = %T.as_type.loc31_43.2 (constants.%T.as_type.212)] +// CHECK:STDOUT: %T.loc31_24.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.b39) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.1 (constants.%T.223)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc31_43.1 (%T.as_type.212) = value_param call_param0 +// CHECK:STDOUT: %.loc31_43.1: type = splice_block %.loc31_43.2 [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.212)] { +// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.1 (%Eats.type.b39) = name_ref T, %T.loc31_24.2 [symbolic = %T.loc31_24.1 (constants.%T.223)] +// CHECK:STDOUT: %T.as_type.loc31_43.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.212)] +// CHECK:STDOUT: %.loc31_43.2: type = converted %T.ref, %T.as_type.loc31_43.2 [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.212)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc31_43.2 (%T.as_type.212) = bind_name e, %e.param -// CHECK:STDOUT: %food.param: @Feed.%Food.as_type.loc31_37.2 (%Food.as_type.952) = value_param call_param1 -// CHECK:STDOUT: %.loc31_52.1: type = splice_block %.loc31_52.2 [symbolic = %Food.as_type.loc31_37.2 (constants.%Food.as_type.952)] { -// CHECK:STDOUT: %Food.ref.loc31_52: %Edible.type = name_ref Food, %Food.loc31_9.1 [symbolic = %Food.loc31_9.2 (constants.%Food.9af)] -// CHECK:STDOUT: %Food.as_type.loc31_52: type = facet_access_type %Food.ref.loc31_52 [symbolic = %Food.as_type.loc31_37.2 (constants.%Food.as_type.952)] -// CHECK:STDOUT: %.loc31_52.2: type = converted %Food.ref.loc31_52, %Food.as_type.loc31_52 [symbolic = %Food.as_type.loc31_37.2 (constants.%Food.as_type.952)] +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc31_43.1 (%T.as_type.212) = bind_name e, %e.param +// CHECK:STDOUT: %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.952) = value_param call_param1 +// CHECK:STDOUT: %.loc31_52.1: type = splice_block %.loc31_52.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.952)] { +// CHECK:STDOUT: %Food.ref.loc31_52: %Edible.type = name_ref Food, %Food.loc31_9.2 [symbolic = %Food.loc31_9.1 (constants.%Food.9af)] +// CHECK:STDOUT: %Food.as_type.loc31_52: type = facet_access_type %Food.ref.loc31_52 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.952)] +// CHECK:STDOUT: %.loc31_52.2: type = converted %Food.ref.loc31_52, %Food.as_type.loc31_52 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.952)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @Feed.%Food.as_type.loc31_37.2 (%Food.as_type.952) = bind_name food, %food.param +// CHECK:STDOUT: %food: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.952) = bind_name food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.3b0 = symbolic_binding_pattern T, 0 [concrete] @@ -223,23 +223,23 @@ fn F() { // CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.f86) = value_param_pattern %food.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc32_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc32_17.2 (constants.%T.fd4)] +// CHECK:STDOUT: %T.loc32_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc32_17.1 (constants.%T.fd4)] // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] -// CHECK:STDOUT: %Food.loc32_29.1: %Edible.type = bind_symbolic_name Food, 1 [symbolic = %Food.loc32_29.2 (constants.%Food.5fe)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc32_47.2 (%T.as_type.2ad) = value_param call_param0 -// CHECK:STDOUT: %.loc32_47.1: type = splice_block %.loc32_47.2 [symbolic = %T.as_type.loc32_47.2 (constants.%T.as_type.2ad)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc32_17.1 [symbolic = %T.loc32_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc32_47.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc32_47.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc32_47.2: type = converted %T.ref, %T.as_type.loc32_47.1 [symbolic = %T.as_type.loc32_47.2 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %Food.loc32_29.2: %Edible.type = bind_symbolic_name Food, 1 [symbolic = %Food.loc32_29.1 (constants.%Food.5fe)] +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.2ad) = value_param call_param0 +// CHECK:STDOUT: %.loc32_47.1: type = splice_block %.loc32_47.2 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.2ad)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc32_17.2 [symbolic = %T.loc32_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc32_47.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc32_47.2: type = converted %T.ref, %T.as_type.loc32_47.2 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.2ad)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc32_47.2 (%T.as_type.2ad) = bind_name a, %a.param -// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.as_type.loc32_56.2 (%Food.as_type.fae) = value_param call_param1 -// CHECK:STDOUT: %.loc32_56.1: type = splice_block %.loc32_56.2 [symbolic = %Food.as_type.loc32_56.2 (constants.%Food.as_type.fae)] { -// CHECK:STDOUT: %Food.ref: %Edible.type = name_ref Food, %Food.loc32_29.1 [symbolic = %Food.loc32_29.2 (constants.%Food.5fe)] -// CHECK:STDOUT: %Food.as_type.loc32_56.1: type = facet_access_type %Food.ref [symbolic = %Food.as_type.loc32_56.2 (constants.%Food.as_type.fae)] -// CHECK:STDOUT: %.loc32_56.2: type = converted %Food.ref, %Food.as_type.loc32_56.1 [symbolic = %Food.as_type.loc32_56.2 (constants.%Food.as_type.fae)] +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.2ad) = bind_name a, %a.param +// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.fae) = value_param call_param1 +// CHECK:STDOUT: %.loc32_56.1: type = splice_block %.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.fae)] { +// CHECK:STDOUT: %Food.ref: %Edible.type = name_ref Food, %Food.loc32_29.2 [symbolic = %Food.loc32_29.1 (constants.%Food.5fe)] +// CHECK:STDOUT: %Food.as_type.loc32_56.2: type = facet_access_type %Food.ref [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.fae)] +// CHECK:STDOUT: %.loc32_56.2: type = converted %Food.ref, %Food.as_type.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.fae)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @HandleAnimal.%Food.as_type.loc32_56.2 (%Food.as_type.fae) = bind_name food, %food.param +// CHECK:STDOUT: %food: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.fae) = bind_name food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %Edible.facet: %Edible.type = facet_value constants.%Grass, (constants.%Edible.impl_witness) [concrete = constants.%Edible.facet] @@ -264,11 +264,11 @@ fn F() { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Eats(%Food.loc21_16.1: type) { -// CHECK:STDOUT: %Food.loc21_16.2: type = bind_symbolic_name Food, 0 [symbolic = %Food.loc21_16.2 (constants.%Food.8b3)] +// CHECK:STDOUT: generic interface @Eats(%Food.loc21_16.2: type) { +// CHECK:STDOUT: %Food.loc21_16.1: type = bind_symbolic_name Food, 0 [symbolic = %Food.loc21_16.1 (constants.%Food.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.loc21_16.2)> [symbolic = %Eats.type (constants.%Eats.type.6c0)] +// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.loc21_16.1)> [symbolic = %Eats.type (constants.%Eats.type.6c0)] // CHECK:STDOUT: %Self.2: @Eats.%Eats.type (%Eats.type.6c0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.4eb)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -325,53 +325,53 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%Food.loc31_9.1: %Edible.type, %T.loc31_24.1: @Feed.%Eats.type.loc31_37.2 (%Eats.type.b39)) { -// CHECK:STDOUT: %Food.loc31_9.2: %Edible.type = bind_symbolic_name Food, 0 [symbolic = %Food.loc31_9.2 (constants.%Food.9af)] -// CHECK:STDOUT: %Food.as_type.loc31_37.2: type = facet_access_type %Food.loc31_9.2 [symbolic = %Food.as_type.loc31_37.2 (constants.%Food.as_type.952)] -// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(%Food.as_type.loc31_37.2)> [symbolic = %Eats.type.loc31_37.2 (constants.%Eats.type.b39)] -// CHECK:STDOUT: %T.loc31_24.2: @Feed.%Eats.type.loc31_37.2 (%Eats.type.b39) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.2 (constants.%T.223)] -// CHECK:STDOUT: %pattern_type.loc31_24: type = pattern_type %Eats.type.loc31_37.2 [symbolic = %pattern_type.loc31_24 (constants.%pattern_type.ed7)] -// CHECK:STDOUT: %T.as_type.loc31_43.2: type = facet_access_type %T.loc31_24.2 [symbolic = %T.as_type.loc31_43.2 (constants.%T.as_type.212)] -// CHECK:STDOUT: %pattern_type.loc31_40: type = pattern_type %T.as_type.loc31_43.2 [symbolic = %pattern_type.loc31_40 (constants.%pattern_type.1a1)] -// CHECK:STDOUT: %pattern_type.loc31_46: type = pattern_type %Food.as_type.loc31_37.2 [symbolic = %pattern_type.loc31_46 (constants.%pattern_type.54f)] +// CHECK:STDOUT: generic fn @Feed(%Food.loc31_9.2: %Edible.type, %T.loc31_24.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.b39)) { +// CHECK:STDOUT: %Food.loc31_9.1: %Edible.type = bind_symbolic_name Food, 0 [symbolic = %Food.loc31_9.1 (constants.%Food.9af)] +// CHECK:STDOUT: %Food.as_type.loc31_37.1: type = facet_access_type %Food.loc31_9.1 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.952)] +// CHECK:STDOUT: %Eats.type.loc31_37.1: type = facet_type <@Eats, @Eats(%Food.as_type.loc31_37.1)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.b39)] +// CHECK:STDOUT: %T.loc31_24.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.b39) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.1 (constants.%T.223)] +// CHECK:STDOUT: %pattern_type.loc31_24: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_24 (constants.%pattern_type.ed7)] +// CHECK:STDOUT: %T.as_type.loc31_43.1: type = facet_access_type %T.loc31_24.1 [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.212)] +// CHECK:STDOUT: %pattern_type.loc31_40: type = pattern_type %T.as_type.loc31_43.1 [symbolic = %pattern_type.loc31_40 (constants.%pattern_type.1a1)] +// CHECK:STDOUT: %pattern_type.loc31_46: type = pattern_type %Food.as_type.loc31_37.1 [symbolic = %pattern_type.loc31_46 (constants.%pattern_type.54f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc31_41: = require_complete_type %T.as_type.loc31_43.2 [symbolic = %require_complete.loc31_41 (constants.%require_complete.fe6)] -// CHECK:STDOUT: %require_complete.loc31_50: = require_complete_type %Food.as_type.loc31_37.2 [symbolic = %require_complete.loc31_50 (constants.%require_complete.005)] +// CHECK:STDOUT: %require_complete.loc31_41: = require_complete_type %T.as_type.loc31_43.1 [symbolic = %require_complete.loc31_41 (constants.%require_complete.fe6)] +// CHECK:STDOUT: %require_complete.loc31_50: = require_complete_type %Food.as_type.loc31_37.1 [symbolic = %require_complete.loc31_50 (constants.%require_complete.005)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc31_43.2 (%T.as_type.212), %food.param: @Feed.%Food.as_type.loc31_37.2 (%Food.as_type.952)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc31_43.1 (%T.as_type.212), %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.952)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc32_17.1: %Animal.type, %Food.loc32_29.1: %Edible.type) { -// CHECK:STDOUT: %T.loc32_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc32_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %Food.loc32_29.2: %Edible.type = bind_symbolic_name Food, 1 [symbolic = %Food.loc32_29.2 (constants.%Food.5fe)] -// CHECK:STDOUT: %T.as_type.loc32_47.2: type = facet_access_type %T.loc32_17.2 [symbolic = %T.as_type.loc32_47.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %pattern_type.loc32_44: type = pattern_type %T.as_type.loc32_47.2 [symbolic = %pattern_type.loc32_44 (constants.%pattern_type.36a)] -// CHECK:STDOUT: %Food.as_type.loc32_56.2: type = facet_access_type %Food.loc32_29.2 [symbolic = %Food.as_type.loc32_56.2 (constants.%Food.as_type.fae)] -// CHECK:STDOUT: %pattern_type.loc32_50: type = pattern_type %Food.as_type.loc32_56.2 [symbolic = %pattern_type.loc32_50 (constants.%pattern_type.f86)] +// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc32_17.2: %Animal.type, %Food.loc32_29.2: %Edible.type) { +// CHECK:STDOUT: %T.loc32_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc32_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %Food.loc32_29.1: %Edible.type = bind_symbolic_name Food, 1 [symbolic = %Food.loc32_29.1 (constants.%Food.5fe)] +// CHECK:STDOUT: %T.as_type.loc32_47.1: type = facet_access_type %T.loc32_17.1 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %pattern_type.loc32_44: type = pattern_type %T.as_type.loc32_47.1 [symbolic = %pattern_type.loc32_44 (constants.%pattern_type.36a)] +// CHECK:STDOUT: %Food.as_type.loc32_56.1: type = facet_access_type %Food.loc32_29.1 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.fae)] +// CHECK:STDOUT: %pattern_type.loc32_50: type = pattern_type %Food.as_type.loc32_56.1 [symbolic = %pattern_type.loc32_50 (constants.%pattern_type.f86)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %T.as_type.loc32_47.2 [symbolic = %require_complete.loc32_45 (constants.%require_complete.234)] -// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.as_type.loc32_56.2 [symbolic = %require_complete.loc32_54 (constants.%require_complete.444)] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc32_17.2, @Eats, @Eats(%Food.as_type.loc32_56.2) [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.as_type.loc32_56.2)> [symbolic = %Eats.type (constants.%Eats.type.f54c3d.2)] -// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = facet_value %T.as_type.loc32_47.2, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.512)] -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_29.2, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.ea3)] +// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %T.as_type.loc32_47.1 [symbolic = %require_complete.loc32_45 (constants.%require_complete.234)] +// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.as_type.loc32_56.1 [symbolic = %require_complete.loc32_54 (constants.%require_complete.444)] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc32_17.1, @Eats, @Eats(%Food.as_type.loc32_56.1) [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] +// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.as_type.loc32_56.1)> [symbolic = %Eats.type (constants.%Eats.type.f54c3d.2)] +// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = facet_value %T.as_type.loc32_47.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.512)] +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_29.1, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.ea3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc32_47.2 (%T.as_type.2ad), %food.param: @HandleAnimal.%Food.as_type.loc32_56.2 (%Food.as_type.fae)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.2ad), %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.fae)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc32_47.2 (%T.as_type.2ad) = name_ref a, %a -// CHECK:STDOUT: %food.ref: @HandleAnimal.%Food.as_type.loc32_56.2 (%Food.as_type.fae) = name_ref food, %food -// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.as_type.fae, constants.%Food.5fe [symbolic = %Food.loc32_29.2 (constants.%Food.5fe)] -// CHECK:STDOUT: %.loc32_76.2: %Edible.type = converted constants.%Food.as_type.fae, constants.%Food.5fe [symbolic = %Food.loc32_29.2 (constants.%Food.5fe)] -// CHECK:STDOUT: %.loc32_76.3: %Edible.type = converted constants.%Food.as_type.fae, constants.%Food.5fe [symbolic = %Food.loc32_29.2 (constants.%Food.5fe)] -// CHECK:STDOUT: %T.as_type.loc32_76: type = facet_access_type constants.%T.fd4 [symbolic = %T.as_type.loc32_47.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc32_76.4: type = converted constants.%T.fd4, %T.as_type.loc32_76 [symbolic = %T.as_type.loc32_47.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc32_76.5: %Animal.type = converted %.loc32_76.4, constants.%T.fd4 [symbolic = %T.loc32_17.2 (constants.%T.fd4)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.2ad) = name_ref a, %a +// CHECK:STDOUT: %food.ref: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.fae) = name_ref food, %food +// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.as_type.fae, constants.%Food.5fe [symbolic = %Food.loc32_29.1 (constants.%Food.5fe)] +// CHECK:STDOUT: %.loc32_76.2: %Edible.type = converted constants.%Food.as_type.fae, constants.%Food.5fe [symbolic = %Food.loc32_29.1 (constants.%Food.5fe)] +// CHECK:STDOUT: %.loc32_76.3: %Edible.type = converted constants.%Food.as_type.fae, constants.%Food.5fe [symbolic = %Food.loc32_29.1 (constants.%Food.5fe)] +// CHECK:STDOUT: %T.as_type.loc32_76: type = facet_access_type constants.%T.fd4 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc32_76.4: type = converted constants.%T.fd4, %T.as_type.loc32_76 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc32_76.5: %Animal.type = converted %.loc32_76.4, constants.%T.fd4 [symbolic = %T.loc32_17.1 (constants.%T.fd4)] // CHECK:STDOUT: %Eats.facet.loc32_76.1: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = facet_value constants.%T.as_type.2ad, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.512)] // CHECK:STDOUT: %.loc32_76.6: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = converted constants.%T.as_type.2ad, %Eats.facet.loc32_76.1 [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.512)] // CHECK:STDOUT: %Feed.specific_fn.loc32_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.5fe, constants.%Eats.facet.512) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.ea3)] @@ -408,12 +408,12 @@ fn F() { // CHECK:STDOUT: %.loc35_31.2: %Grass = bind_value %.loc35_31.1 // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc35_19.2, %.loc35_31.2) // CHECK:STDOUT: %Op.bound.loc35_29: = bound_method %.loc35_29.2, constants.%Op.d66 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d66, @Op.2(constants.%Grass) [concrete = constants.%Op.specific_fn.9e2] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d66, @Op.1(constants.%Grass) [concrete = constants.%Op.specific_fn.9e2] // CHECK:STDOUT: %bound_method.loc35_29: = bound_method %.loc35_29.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35_29: %ptr.2bd = addr_of %.loc35_29.2 // CHECK:STDOUT: %no_op.loc35_29: init %empty_tuple.type = call %bound_method.loc35_29(%addr.loc35_29) // CHECK:STDOUT: %Op.bound.loc35_17: = bound_method %.loc35_17.2, constants.%Op.55a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.55a, @Op.2(constants.%Goat) [concrete = constants.%Op.specific_fn.d9f] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.55a, @Op.1(constants.%Goat) [concrete = constants.%Op.specific_fn.d9f] // CHECK:STDOUT: %bound_method.loc35_17: = bound_method %.loc35_17.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc35_17: %ptr.940 = addr_of %.loc35_17.2 // CHECK:STDOUT: %no_op.loc35_17: init %empty_tuple.type = call %bound_method.loc35_17(%addr.loc35_17) @@ -421,11 +421,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Food.8b3) { -// CHECK:STDOUT: %Food.loc21_16.2 => constants.%Food.8b3 +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%U.as_type) { -// CHECK:STDOUT: %Food.loc21_16.2 => constants.%U.as_type +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%U.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Eats.type => constants.%Eats.type.f54c3d.1 @@ -443,31 +443,31 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Food.as_type.952) { -// CHECK:STDOUT: %Food.loc21_16.2 => constants.%Food.as_type.952 +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.as_type.952 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Food.9af, constants.%T.223) { -// CHECK:STDOUT: %Food.loc31_9.2 => constants.%Food.9af -// CHECK:STDOUT: %Food.as_type.loc31_37.2 => constants.%Food.as_type.952 -// CHECK:STDOUT: %Eats.type.loc31_37.2 => constants.%Eats.type.b39 -// CHECK:STDOUT: %T.loc31_24.2 => constants.%T.223 +// CHECK:STDOUT: %Food.loc31_9.1 => constants.%Food.9af +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.952 +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.b39 +// CHECK:STDOUT: %T.loc31_24.1 => constants.%T.223 // CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.ed7 -// CHECK:STDOUT: %T.as_type.loc31_43.2 => constants.%T.as_type.212 +// CHECK:STDOUT: %T.as_type.loc31_43.1 => constants.%T.as_type.212 // CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.1a1 // CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.54f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.fd4, constants.%Food.5fe) { -// CHECK:STDOUT: %T.loc32_17.2 => constants.%T.fd4 -// CHECK:STDOUT: %Food.loc32_29.2 => constants.%Food.5fe -// CHECK:STDOUT: %T.as_type.loc32_47.2 => constants.%T.as_type.2ad +// CHECK:STDOUT: %T.loc32_17.1 => constants.%T.fd4 +// CHECK:STDOUT: %Food.loc32_29.1 => constants.%Food.5fe +// CHECK:STDOUT: %T.as_type.loc32_47.1 => constants.%T.as_type.2ad // CHECK:STDOUT: %pattern_type.loc32_44 => constants.%pattern_type.36a -// CHECK:STDOUT: %Food.as_type.loc32_56.2 => constants.%Food.as_type.fae +// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Food.as_type.fae // CHECK:STDOUT: %pattern_type.loc32_50 => constants.%pattern_type.f86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Food.as_type.fae) { -// CHECK:STDOUT: %Food.loc21_16.2 => constants.%Food.as_type.fae +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.as_type.fae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats.impl(constants.%T.fd4, constants.%Food.5fe) { @@ -483,12 +483,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Food.5fe, constants.%Eats.facet.512) { -// CHECK:STDOUT: %Food.loc31_9.2 => constants.%Food.5fe -// CHECK:STDOUT: %Food.as_type.loc31_37.2 => constants.%Food.as_type.fae -// CHECK:STDOUT: %Eats.type.loc31_37.2 => constants.%Eats.type.f54c3d.2 -// CHECK:STDOUT: %T.loc31_24.2 => constants.%Eats.facet.512 +// CHECK:STDOUT: %Food.loc31_9.1 => constants.%Food.5fe +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.fae +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.f54c3d.2 +// CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.512 // CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.bb9 -// CHECK:STDOUT: %T.as_type.loc31_43.2 => constants.%T.as_type.2ad +// CHECK:STDOUT: %T.as_type.loc31_43.1 => constants.%T.as_type.2ad // CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.36a // CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.f86 // CHECK:STDOUT: @@ -498,11 +498,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet, constants.%Edible.facet) { -// CHECK:STDOUT: %T.loc32_17.2 => constants.%Animal.facet -// CHECK:STDOUT: %Food.loc32_29.2 => constants.%Edible.facet -// CHECK:STDOUT: %T.as_type.loc32_47.2 => constants.%Goat +// CHECK:STDOUT: %T.loc32_17.1 => constants.%Animal.facet +// CHECK:STDOUT: %Food.loc32_29.1 => constants.%Edible.facet +// CHECK:STDOUT: %T.as_type.loc32_47.1 => constants.%Goat // CHECK:STDOUT: %pattern_type.loc32_44 => constants.%pattern_type.ab7 -// CHECK:STDOUT: %Food.as_type.loc32_56.2 => constants.%Grass +// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Grass // CHECK:STDOUT: %pattern_type.loc32_50 => constants.%pattern_type.aff // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -515,7 +515,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Grass) { -// CHECK:STDOUT: %Food.loc21_16.2 => constants.%Grass +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Grass // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Eats.type => constants.%Eats.type.1ae @@ -535,12 +535,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.cb1) { -// CHECK:STDOUT: %Food.loc31_9.2 => constants.%Edible.facet -// CHECK:STDOUT: %Food.as_type.loc31_37.2 => constants.%Grass -// CHECK:STDOUT: %Eats.type.loc31_37.2 => constants.%Eats.type.1ae -// CHECK:STDOUT: %T.loc31_24.2 => constants.%Eats.facet.cb1 +// CHECK:STDOUT: %Food.loc31_9.1 => constants.%Edible.facet +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Grass +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.1ae +// CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.cb1 // CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.d77 -// CHECK:STDOUT: %T.as_type.loc31_43.2 => constants.%Goat +// CHECK:STDOUT: %T.as_type.loc31_43.1 => constants.%Goat // CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.ab7 // CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.aff // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon index 93435d7d4852..e7b0514bfee5 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon @@ -52,10 +52,10 @@ fn F() { // CHECK:STDOUT: %pattern_type.ab7: type = pattern_type %Goat [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.2, @Destroy.impl(%Goat) [concrete] +// CHECK:STDOUT: %Op.type.e7a: type = fn_type @Op.1, @Destroy.impl(%Goat) [concrete] // CHECK:STDOUT: %Op.55a: %Op.type.e7a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.55a, @Op.2(%Goat) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.55a, @Op.1(%Goat) [concrete] // CHECK:STDOUT: %FeedAnimal.specific_fn.82e: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -85,14 +85,14 @@ fn F() { // CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.36a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T.fd4)] -// CHECK:STDOUT: %a.param: @FeedAnimal.%T.as_type.loc17_30.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_15.1 [symbolic = %T.loc17_15.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc17_30.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type.loc17_30.1 [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc17_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T.fd4)] +// CHECK:STDOUT: %a.param: @FeedAnimal.%T.as_type.loc17_30.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_15.2 [symbolic = %T.loc17_15.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc17_30.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @FeedAnimal.%T.as_type.loc17_30.2 (%T.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @FeedAnimal.%T.as_type.loc17_30.1 (%T.as_type) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.3b0 = symbolic_binding_pattern T, 0 [concrete] @@ -100,14 +100,14 @@ fn F() { // CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.36a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc19_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc19_32.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc19_32.1: type = splice_block %.loc19_32.2 [symbolic = %T.as_type.loc19_32.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc19_17.1 [symbolic = %T.loc19_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc19_32.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc19_32.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc19_32.2: type = converted %T.ref, %T.as_type.loc19_32.1 [symbolic = %T.as_type.loc19_32.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc19_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc19_32.1: type = splice_block %.loc19_32.2 [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc19_17.2 [symbolic = %T.loc19_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc19_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc19_32.2: type = converted %T.ref, %T.as_type.loc19_32.2 [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc19_32.2 (%T.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} // CHECK:STDOUT: impl_decl @Animal.impl [concrete] {} { @@ -141,35 +141,35 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_15.1: %Animal.type) { -// CHECK:STDOUT: %T.loc17_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc17_30.2: type = facet_access_type %T.loc17_15.2 [symbolic = %T.as_type.loc17_30.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_30.2 [symbolic = %pattern_type (constants.%pattern_type.36a)] +// CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_15.2: %Animal.type) { +// CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc17_30.1: type = facet_access_type %T.loc17_15.1 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_30.1 [symbolic = %pattern_type (constants.%pattern_type.36a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_30.2 [symbolic = %require_complete (constants.%require_complete.234)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_30.1 [symbolic = %require_complete (constants.%require_complete.234)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @FeedAnimal.%T.as_type.loc17_30.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%a.param: @FeedAnimal.%T.as_type.loc17_30.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_17.1: %Animal.type) { -// CHECK:STDOUT: %T.loc19_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc19_32.2: type = facet_access_type %T.loc19_17.2 [symbolic = %T.as_type.loc19_32.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc19_32.2 [symbolic = %pattern_type (constants.%pattern_type.36a)] +// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_17.2: %Animal.type) { +// CHECK:STDOUT: %T.loc19_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc19_32.1: type = facet_access_type %T.loc19_17.1 [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc19_32.1 [symbolic = %pattern_type (constants.%pattern_type.36a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc19_32.2 [symbolic = %require_complete (constants.%require_complete.234)] -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_17.2) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.ec8)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc19_32.1 [symbolic = %require_complete (constants.%require_complete.234)] +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_17.1) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.ec8)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc19_32.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedAnimal.ref: %FeedAnimal.type = name_ref FeedAnimal, file.%FeedAnimal.decl [concrete = constants.%FeedAnimal] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc19_32.2 (%T.as_type) = name_ref a, %a -// CHECK:STDOUT: %.loc19_49.1: %Animal.type = converted constants.%T.as_type, constants.%T.fd4 [symbolic = %T.loc19_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %.loc19_49.2: %Animal.type = converted constants.%T.as_type, constants.%T.fd4 [symbolic = %T.loc19_17.2 (constants.%T.fd4)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = name_ref a, %a +// CHECK:STDOUT: %.loc19_49.1: %Animal.type = converted constants.%T.as_type, constants.%T.fd4 [symbolic = %T.loc19_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %.loc19_49.2: %Animal.type = converted constants.%T.as_type, constants.%T.fd4 [symbolic = %T.loc19_17.1 (constants.%T.fd4)] // CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.1: = specific_function %FeedAnimal.ref, @FeedAnimal(constants.%T.fd4) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.ec8)] // CHECK:STDOUT: %FeedAnimal.call: init %empty_tuple.type = call %FeedAnimal.specific_fn.loc19_37.1(%a.ref) // CHECK:STDOUT: return @@ -193,7 +193,7 @@ fn F() { // CHECK:STDOUT: %.loc25_19.2: %Goat = bind_value %.loc25_19.1 // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc25_19.2) // CHECK:STDOUT: %Op.bound: = bound_method %.loc25_17.2, constants.%Op.55a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.55a, @Op.2(constants.%Goat) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.55a, @Op.1(constants.%Goat) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc25_17.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.940 = addr_of %.loc25_17.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -201,8 +201,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%T.fd4) { -// CHECK:STDOUT: %T.loc17_15.2 => constants.%T.fd4 -// CHECK:STDOUT: %T.as_type.loc17_30.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc17_15.1 => constants.%T.fd4 +// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.36a // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -210,14 +210,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.fd4) { -// CHECK:STDOUT: %T.loc19_17.2 => constants.%T.fd4 -// CHECK:STDOUT: %T.as_type.loc19_32.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc19_17.1 => constants.%T.fd4 +// CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.36a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet) { -// CHECK:STDOUT: %T.loc19_17.2 => constants.%Animal.facet -// CHECK:STDOUT: %T.as_type.loc19_32.2 => constants.%Goat +// CHECK:STDOUT: %T.loc19_17.1 => constants.%Animal.facet +// CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ab7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -226,8 +226,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { -// CHECK:STDOUT: %T.loc17_15.2 => constants.%Animal.facet -// CHECK:STDOUT: %T.as_type.loc17_30.2 => constants.%Goat +// CHECK:STDOUT: %T.loc17_15.1 => constants.%Animal.facet +// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ab7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon index 643acdf88d6c..7eda73719535 100644 --- a/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/facet/fail_convert_class_type_to_generic_facet_value.carbon @@ -96,7 +96,7 @@ fn G() { // CHECK:STDOUT: %Generic.decl: %Generic.type.c21 = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Scalar.loc15_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.2 (constants.%Scalar)] +// CHECK:STDOUT: %Scalar.loc15_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.1 (constants.%Scalar)] // CHECK:STDOUT: } // CHECK:STDOUT: %GenericParam.decl: type = class_decl @GenericParam [concrete = constants.%GenericParam] {} {} // CHECK:STDOUT: %WrongGenericParam.decl: type = class_decl @WrongGenericParam [concrete = constants.%WrongGenericParam] {} {} @@ -113,26 +113,26 @@ fn G() { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.80f) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc27_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc27_22.2 (constants.%T)] -// CHECK:STDOUT: %.loc27: type = splice_block %Generic.type.loc27_45.1 [symbolic = %Generic.type.loc27_45.2 (constants.%Generic.type.91ccba.2)] { +// CHECK:STDOUT: %T.loc27_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc27_22.1 (constants.%T)] +// CHECK:STDOUT: %.loc27: type = splice_block %Generic.type.loc27_45.2 [symbolic = %Generic.type.loc27_45.1 (constants.%Generic.type.91ccba.2)] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc27_22.1 [symbolic = %T.loc27_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc27_45.1: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc27_45.2 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc27_22.2 [symbolic = %T.loc27_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc27_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc27_45.1 (constants.%Generic.type.91ccba.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc27_32.1: @CallGenericMethod.%Generic.type.loc27_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc27_32.2 (constants.%U)] +// CHECK:STDOUT: %U.loc27_32.2: @CallGenericMethod.%Generic.type.loc27_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc27_32.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%Scalar.loc15_19.1: type) { -// CHECK:STDOUT: %Scalar.loc15_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.2 (constants.%Scalar)] +// CHECK:STDOUT: generic interface @Generic(%Scalar.loc15_19.2: type) { +// CHECK:STDOUT: %Scalar.loc15_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_19.2)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_19.1)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] // CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.91ccba.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.dee)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Generic(%Scalar.loc15_19.2) [symbolic = %F.type (constants.%F.type.f43)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Generic(%Scalar.loc15_19.1) [symbolic = %F.type (constants.%F.type.f43)] // CHECK:STDOUT: %F: @Generic.%F.type (%F.type.f43) = struct_value () [symbolic = %F (constants.%F.8a2)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc15_19.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc15_19.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd)] // CHECK:STDOUT: %assoc0.loc16_9.2: @Generic.%Generic.assoc_type (%Generic.assoc_type.0fd) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc16_9.2 (constants.%assoc0.296)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -182,7 +182,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc16(@Generic.%Scalar.loc15_19.1: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { +// CHECK:STDOUT: generic fn @F.loc16(@Generic.%Scalar.loc15_19.2: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -191,11 +191,11 @@ fn G() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc27_22.1: type, %U.loc27_32.1: @CallGenericMethod.%Generic.type.loc27_45.2 (%Generic.type.91ccba.2)) { -// CHECK:STDOUT: %T.loc27_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc27_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc27_45.2: type = facet_type <@Generic, @Generic(%T.loc27_22.2)> [symbolic = %Generic.type.loc27_45.2 (constants.%Generic.type.91ccba.2)] -// CHECK:STDOUT: %U.loc27_32.2: @CallGenericMethod.%Generic.type.loc27_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc27_32.2 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc27_45.2 [symbolic = %pattern_type (constants.%pattern_type.80f)] +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc27_22.2: type, %U.loc27_32.2: @CallGenericMethod.%Generic.type.loc27_45.1 (%Generic.type.91ccba.2)) { +// CHECK:STDOUT: %T.loc27_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc27_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc27_45.1: type = facet_type <@Generic, @Generic(%T.loc27_22.1)> [symbolic = %Generic.type.loc27_45.1 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %U.loc27_32.1: @CallGenericMethod.%Generic.type.loc27_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc27_32.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc27_45.1 [symbolic = %pattern_type (constants.%pattern_type.80f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -214,13 +214,13 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%Scalar) { -// CHECK:STDOUT: %Scalar.loc15_19.2 => constants.%Scalar +// CHECK:STDOUT: %Scalar.loc15_19.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%Scalar, constants.%Self.dee) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { -// CHECK:STDOUT: %Scalar.loc15_19.2 => constants.%GenericParam +// CHECK:STDOUT: %Scalar.loc15_19.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Generic.type => constants.%Generic.type.769 @@ -234,17 +234,17 @@ fn G() { // CHECK:STDOUT: specific @F.loc16(constants.%GenericParam, constants.%Generic.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %Scalar.loc15_19.2 => constants.%T +// CHECK:STDOUT: %Scalar.loc15_19.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc27_22.2 => constants.%T -// CHECK:STDOUT: %Generic.type.loc27_45.2 => constants.%Generic.type.91ccba.2 -// CHECK:STDOUT: %U.loc27_32.2 => constants.%U +// CHECK:STDOUT: %T.loc27_22.1 => constants.%T +// CHECK:STDOUT: %Generic.type.loc27_45.1 => constants.%Generic.type.91ccba.2 +// CHECK:STDOUT: %U.loc27_32.1 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.80f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%WrongGenericParam) { -// CHECK:STDOUT: %Scalar.loc15_19.2 => constants.%WrongGenericParam +// CHECK:STDOUT: %Scalar.loc15_19.1 => constants.%WrongGenericParam // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon index e44d8c0cf718..36f2cf1f7e74 100644 --- a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon +++ b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon @@ -73,14 +73,14 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.2b4) = value_param_pattern %e.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %T.loc18_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_9.2 (constants.%T.1b5)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc18_22.2 (%T.as_type.27d) = value_param call_param0 -// CHECK:STDOUT: %.loc18_22.1: type = splice_block %.loc18_22.2 [symbolic = %T.as_type.loc18_22.2 (constants.%T.as_type.27d)] { -// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc18_9.1 [symbolic = %T.loc18_9.2 (constants.%T.1b5)] -// CHECK:STDOUT: %T.as_type.loc18_22.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_22.2 (constants.%T.as_type.27d)] -// CHECK:STDOUT: %.loc18_22.2: type = converted %T.ref, %T.as_type.loc18_22.1 [symbolic = %T.as_type.loc18_22.2 (constants.%T.as_type.27d)] +// CHECK:STDOUT: %T.loc18_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_9.1 (constants.%T.1b5)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc18_22.1 (%T.as_type.27d) = value_param call_param0 +// CHECK:STDOUT: %.loc18_22.1: type = splice_block %.loc18_22.2 [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.27d)] { +// CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc18_9.2 [symbolic = %T.loc18_9.1 (constants.%T.1b5)] +// CHECK:STDOUT: %T.as_type.loc18_22.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.27d)] +// CHECK:STDOUT: %.loc18_22.2: type = converted %T.ref, %T.as_type.loc18_22.2 [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.27d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc18_22.2 (%T.as_type.27d) = bind_name e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc18_22.1 (%T.as_type.27d) = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.3b0 = symbolic_binding_pattern T, 0 [concrete] @@ -88,14 +88,14 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.36a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %T.loc27_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc27_32.2 (%T.as_type.2ad) = value_param call_param0 -// CHECK:STDOUT: %.loc27_32.1: type = splice_block %.loc27_32.2 [symbolic = %T.as_type.loc27_32.2 (constants.%T.as_type.2ad)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc27_17.1 [symbolic = %T.loc27_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc27_32.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc27_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %.loc27_32.2: type = converted %T.ref, %T.as_type.loc27_32.1 [symbolic = %T.as_type.loc27_32.2 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %T.loc27_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.2ad) = value_param call_param0 +// CHECK:STDOUT: %.loc27_32.1: type = splice_block %.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.2ad)] { +// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc27_17.2 [symbolic = %T.loc27_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc27_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %.loc27_32.2: type = converted %T.ref, %T.as_type.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.2ad)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc27_32.2 (%T.as_type.2ad) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.2ad) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -115,45 +115,45 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%T.loc18_9.1: %Eats.type) { -// CHECK:STDOUT: %T.loc18_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_9.2 (constants.%T.1b5)] -// CHECK:STDOUT: %T.as_type.loc18_22.2: type = facet_access_type %T.loc18_9.2 [symbolic = %T.as_type.loc18_22.2 (constants.%T.as_type.27d)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_22.2 [symbolic = %pattern_type (constants.%pattern_type.2b4)] +// CHECK:STDOUT: generic fn @Feed(%T.loc18_9.2: %Eats.type) { +// CHECK:STDOUT: %T.loc18_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_9.1 (constants.%T.1b5)] +// CHECK:STDOUT: %T.as_type.loc18_22.1: type = facet_access_type %T.loc18_9.1 [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.27d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_22.1 [symbolic = %pattern_type (constants.%pattern_type.2b4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc18_22.2 [symbolic = %require_complete (constants.%require_complete.c75)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc18_22.1 [symbolic = %require_complete (constants.%require_complete.c75)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc18_22.2 (%T.as_type.27d)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc18_22.1 (%T.as_type.27d)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc27_17.1: %Animal.type) { -// CHECK:STDOUT: %T.loc27_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %T.as_type.loc27_32.2: type = facet_access_type %T.loc27_17.2 [symbolic = %T.as_type.loc27_32.2 (constants.%T.as_type.2ad)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc27_32.2 [symbolic = %pattern_type (constants.%pattern_type.36a)] +// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc27_17.2: %Animal.type) { +// CHECK:STDOUT: %T.loc27_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_17.1 (constants.%T.fd4)] +// CHECK:STDOUT: %T.as_type.loc27_32.1: type = facet_access_type %T.loc27_17.1 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.2ad)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc27_32.1 [symbolic = %pattern_type (constants.%pattern_type.36a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc27_32.2 [symbolic = %require_complete (constants.%require_complete.234)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc27_32.1 [symbolic = %require_complete (constants.%require_complete.234)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc27_32.2 (%T.as_type.2ad)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.2ad)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc27_32.2 (%T.as_type.2ad) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.2ad) = name_ref a, %a // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T.1b5) { -// CHECK:STDOUT: %T.loc18_9.2 => constants.%T.1b5 -// CHECK:STDOUT: %T.as_type.loc18_22.2 => constants.%T.as_type.27d +// CHECK:STDOUT: %T.loc18_9.1 => constants.%T.1b5 +// CHECK:STDOUT: %T.as_type.loc18_22.1 => constants.%T.as_type.27d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.fd4) { -// CHECK:STDOUT: %T.loc27_17.2 => constants.%T.fd4 -// CHECK:STDOUT: %T.as_type.loc27_32.2 => constants.%T.as_type.2ad +// CHECK:STDOUT: %T.loc27_17.1 => constants.%T.fd4 +// CHECK:STDOUT: %T.as_type.loc27_32.1 => constants.%T.as_type.2ad // CHECK:STDOUT: %pattern_type => constants.%pattern_type.36a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/fail_convert_type_erased_type_to_facet.carbon b/toolchain/check/testdata/facet/fail_convert_type_erased_type_to_facet.carbon index d2c54a01cbf6..eed8d4371a2c 100644 --- a/toolchain/check/testdata/facet/fail_convert_type_erased_type_to_facet.carbon +++ b/toolchain/check/testdata/facet/fail_convert_type_erased_type_to_facet.carbon @@ -78,7 +78,7 @@ fn F() { // CHECK:STDOUT: %a.patt: %pattern_type.3b0 = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %a.loc20_15.1: %Animal.type = bind_symbolic_name a, 0 [symbolic = %a.loc20_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc20_15.2: %Animal.type = bind_symbolic_name a, 0 [symbolic = %a.loc20_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -105,8 +105,8 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WalkAnimal(%a.loc20_15.1: %Animal.type) { -// CHECK:STDOUT: %a.loc20_15.2: %Animal.type = bind_symbolic_name a, 0 [symbolic = %a.loc20_15.2 (constants.%a)] +// CHECK:STDOUT: generic fn @WalkAnimal(%a.loc20_15.2: %Animal.type) { +// CHECK:STDOUT: %a.loc20_15.1: %Animal.type = bind_symbolic_name a, 0 [symbolic = %a.loc20_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -129,6 +129,6 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%a) { -// CHECK:STDOUT: %a.loc20_15.2 => constants.%a +// CHECK:STDOUT: %a.loc20_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon index 9989fbe96d82..e62f51933f4e 100644 --- a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon +++ b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon @@ -84,14 +84,14 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %.f4e: type = fn_type_with_self_type %Convert.type.50a, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %from, %Convert.e81 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.139: type = fn_type @Op.2, @Destroy.impl(%RuntimeConvertTo) [concrete] +// CHECK:STDOUT: %Op.type.139: type = fn_type @Op.1, @Destroy.impl(%RuntimeConvertTo) [concrete] // CHECK:STDOUT: %Op.d2d: %Op.type.139 = struct_value () [concrete] // CHECK:STDOUT: %ptr.339: type = ptr_type %RuntimeConvertTo [concrete] -// CHECK:STDOUT: %Op.specific_fn.373: = specific_function %Op.d2d, @Op.2(%RuntimeConvertTo) [concrete] -// CHECK:STDOUT: %Op.type.147: type = fn_type @Op.2, @Destroy.impl(%RuntimeConvertFrom) [concrete] +// CHECK:STDOUT: %Op.specific_fn.373: = specific_function %Op.d2d, @Op.1(%RuntimeConvertTo) [concrete] +// CHECK:STDOUT: %Op.type.147: type = fn_type @Op.1, @Destroy.impl(%RuntimeConvertFrom) [concrete] // CHECK:STDOUT: %Op.3f3: %Op.type.147 = struct_value () [concrete] // CHECK:STDOUT: %ptr.415: type = ptr_type %RuntimeConvertFrom [concrete] -// CHECK:STDOUT: %Op.specific_fn.5db: = specific_function %Op.3f3, @Op.2(%RuntimeConvertFrom) [concrete] +// CHECK:STDOUT: %Op.specific_fn.5db: = specific_function %Op.3f3, @Op.1(%RuntimeConvertFrom) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -122,7 +122,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %.loc17_28.2: %tuple.type = tuple_literal (type) // CHECK:STDOUT: %.loc17_28.3: type = converted %.loc17_28.2, constants.%tuple.type [concrete = constants.%tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc17_17.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_17.2 (constants.%T.6eb)] +// CHECK:STDOUT: %T.loc17_17.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_17.1 (constants.%T.6eb)] // CHECK:STDOUT: } // CHECK:STDOUT: %RuntimeConvertFrom.decl: type = class_decl @RuntimeConvertFrom [concrete = constants.%RuntimeConvertFrom] {} {} // CHECK:STDOUT: %RuntimeConvertTo.decl: type = class_decl @RuntimeConvertTo [concrete = constants.%RuntimeConvertTo] {} {} @@ -145,20 +145,20 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %.loc27_17.2: %tuple.type = tuple_literal (type) // CHECK:STDOUT: %.loc27_17.3: type = converted %.loc27_17.2, constants.%tuple.type [concrete = constants.%tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc27_6.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_6.2 (constants.%T.6eb)] -// CHECK:STDOUT: %.loc27_25: type = splice_block %tuple.elem0.loc27_25.1 [symbolic = %tuple.elem0.loc27_25.2 (constants.%tuple.elem0)] { -// CHECK:STDOUT: %T.ref.loc27_24: %tuple.type = name_ref T, %T.loc27_6.1 [symbolic = %T.loc27_6.2 (constants.%T.6eb)] +// CHECK:STDOUT: %T.loc27_6.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_6.1 (constants.%T.6eb)] +// CHECK:STDOUT: %.loc27_25: type = splice_block %tuple.elem0.loc27_25.2 [symbolic = %tuple.elem0.loc27_25.1 (constants.%tuple.elem0)] { +// CHECK:STDOUT: %T.ref.loc27_24: %tuple.type = name_ref T, %T.loc27_6.2 [symbolic = %T.loc27_6.1 (constants.%T.6eb)] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %tuple.elem0.loc27_25.1: type = tuple_access %T.ref.loc27_24, element0 [symbolic = %tuple.elem0.loc27_25.2 (constants.%tuple.elem0)] +// CHECK:STDOUT: %tuple.elem0.loc27_25.2: type = tuple_access %T.ref.loc27_24, element0 [symbolic = %tuple.elem0.loc27_25.1 (constants.%tuple.elem0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %A.loc27_20.1: @F.%tuple.elem0.loc27_25.2 (%tuple.elem0) = bind_symbolic_name A, 1 [symbolic = %A.loc27_20.2 (constants.%A)] -// CHECK:STDOUT: %x.param: @F.%HoldsType.loc27_43.2 (%HoldsType.cc9) = value_param call_param0 -// CHECK:STDOUT: %.loc27_43: type = splice_block %HoldsType.loc27_43.1 [symbolic = %HoldsType.loc27_43.2 (constants.%HoldsType.cc9)] { +// CHECK:STDOUT: %A.loc27_20.2: @F.%tuple.elem0.loc27_25.1 (%tuple.elem0) = bind_symbolic_name A, 1 [symbolic = %A.loc27_20.1 (constants.%A)] +// CHECK:STDOUT: %x.param: @F.%HoldsType.loc27_43.1 (%HoldsType.cc9) = value_param call_param0 +// CHECK:STDOUT: %.loc27_43: type = splice_block %HoldsType.loc27_43.2 [symbolic = %HoldsType.loc27_43.1 (constants.%HoldsType.cc9)] { // CHECK:STDOUT: %HoldsType.ref: %HoldsType.type = name_ref HoldsType, file.%HoldsType.decl [concrete = constants.%HoldsType.generic] -// CHECK:STDOUT: %T.ref.loc27_42: %tuple.type = name_ref T, %T.loc27_6.1 [symbolic = %T.loc27_6.2 (constants.%T.6eb)] -// CHECK:STDOUT: %HoldsType.loc27_43.1: type = class_type @HoldsType, @HoldsType(constants.%T.6eb) [symbolic = %HoldsType.loc27_43.2 (constants.%HoldsType.cc9)] +// CHECK:STDOUT: %T.ref.loc27_42: %tuple.type = name_ref T, %T.loc27_6.2 [symbolic = %T.loc27_6.1 (constants.%T.6eb)] +// CHECK:STDOUT: %HoldsType.loc27_43.2: type = class_type @HoldsType, @HoldsType(constants.%T.6eb) [symbolic = %HoldsType.loc27_43.1 (constants.%HoldsType.cc9)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%HoldsType.loc27_43.2 (%HoldsType.cc9) = bind_name x, %x.param +// CHECK:STDOUT: %x: @F.%HoldsType.loc27_43.1 (%HoldsType.cc9) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %holds_to.patt: %pattern_type.a13 = binding_pattern holds_to [concrete] @@ -198,8 +198,8 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: witness = file.%ImplicitAs.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @HoldsType(%T.loc17_17.1: %tuple.type) { -// CHECK:STDOUT: %T.loc17_17.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_17.2 (constants.%T.6eb)] +// CHECK:STDOUT: generic class @HoldsType(%T.loc17_17.2: %tuple.type) { +// CHECK:STDOUT: %T.loc17_17.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_17.1 (constants.%T.6eb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -239,18 +239,18 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: return %.loc24_59 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc27_6.1: %tuple.type, %A.loc27_20.1: @F.%tuple.elem0.loc27_25.2 (%tuple.elem0)) { -// CHECK:STDOUT: %T.loc27_6.2: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_6.2 (constants.%T.6eb)] -// CHECK:STDOUT: %tuple.elem0.loc27_25.2: type = tuple_access %T.loc27_6.2, element0 [symbolic = %tuple.elem0.loc27_25.2 (constants.%tuple.elem0)] -// CHECK:STDOUT: %A.loc27_20.2: @F.%tuple.elem0.loc27_25.2 (%tuple.elem0) = bind_symbolic_name A, 1 [symbolic = %A.loc27_20.2 (constants.%A)] -// CHECK:STDOUT: %pattern_type.loc27_20: type = pattern_type %tuple.elem0.loc27_25.2 [symbolic = %pattern_type.loc27_20 (constants.%pattern_type.08e)] -// CHECK:STDOUT: %HoldsType.loc27_43.2: type = class_type @HoldsType, @HoldsType(%T.loc27_6.2) [symbolic = %HoldsType.loc27_43.2 (constants.%HoldsType.cc9)] -// CHECK:STDOUT: %pattern_type.loc27_29: type = pattern_type %HoldsType.loc27_43.2 [symbolic = %pattern_type.loc27_29 (constants.%pattern_type.ec6)] +// CHECK:STDOUT: generic fn @F(%T.loc27_6.2: %tuple.type, %A.loc27_20.2: @F.%tuple.elem0.loc27_25.1 (%tuple.elem0)) { +// CHECK:STDOUT: %T.loc27_6.1: %tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_6.1 (constants.%T.6eb)] +// CHECK:STDOUT: %tuple.elem0.loc27_25.1: type = tuple_access %T.loc27_6.1, element0 [symbolic = %tuple.elem0.loc27_25.1 (constants.%tuple.elem0)] +// CHECK:STDOUT: %A.loc27_20.1: @F.%tuple.elem0.loc27_25.1 (%tuple.elem0) = bind_symbolic_name A, 1 [symbolic = %A.loc27_20.1 (constants.%A)] +// CHECK:STDOUT: %pattern_type.loc27_20: type = pattern_type %tuple.elem0.loc27_25.1 [symbolic = %pattern_type.loc27_20 (constants.%pattern_type.08e)] +// CHECK:STDOUT: %HoldsType.loc27_43.1: type = class_type @HoldsType, @HoldsType(%T.loc27_6.1) [symbolic = %HoldsType.loc27_43.1 (constants.%HoldsType.cc9)] +// CHECK:STDOUT: %pattern_type.loc27_29: type = pattern_type %HoldsType.loc27_43.1 [symbolic = %pattern_type.loc27_29 (constants.%pattern_type.ec6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc27_43.2 [symbolic = %require_complete (constants.%require_complete.514)] +// CHECK:STDOUT: %require_complete: = require_complete_type %HoldsType.loc27_43.1 [symbolic = %require_complete (constants.%require_complete.514)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc27_43.2 (%HoldsType.cc9)) { +// CHECK:STDOUT: fn(%x.param: @F.%HoldsType.loc27_43.1 (%HoldsType.cc9)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -283,12 +283,12 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref, @F(constants.%tuple, ) [concrete = ] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%holds_to.ref) // CHECK:STDOUT: %Op.bound.loc41: = bound_method %.loc41_19.1, constants.%Op.d2d -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d2d, @Op.2(constants.%RuntimeConvertTo) [concrete = constants.%Op.specific_fn.373] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d2d, @Op.1(constants.%RuntimeConvertTo) [concrete = constants.%Op.specific_fn.373] // CHECK:STDOUT: %bound_method.loc41_19.2: = bound_method %.loc41_19.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.339 = addr_of %.loc41_19.1 // CHECK:STDOUT: %no_op.loc41: init %empty_tuple.type = call %bound_method.loc41_19.2(%addr.loc41) // CHECK:STDOUT: %Op.bound.loc30: = bound_method %.loc30_36.2, constants.%Op.3f3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.3f3, @Op.2(constants.%RuntimeConvertFrom) [concrete = constants.%Op.specific_fn.5db] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.3f3, @Op.1(constants.%RuntimeConvertFrom) [concrete = constants.%Op.specific_fn.5db] // CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_36.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.415 = addr_of %.loc30_36.2 // CHECK:STDOUT: %no_op.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) @@ -296,32 +296,32 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%T.6eb) { -// CHECK:STDOUT: %T.loc17_17.2 => constants.%T.6eb +// CHECK:STDOUT: %T.loc17_17.1 => constants.%T.6eb // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.6eb, constants.%A) { -// CHECK:STDOUT: %T.loc27_6.2 => constants.%T.6eb -// CHECK:STDOUT: %tuple.elem0.loc27_25.2 => constants.%tuple.elem0 -// CHECK:STDOUT: %A.loc27_20.2 => constants.%A +// CHECK:STDOUT: %T.loc27_6.1 => constants.%T.6eb +// CHECK:STDOUT: %tuple.elem0.loc27_25.1 => constants.%tuple.elem0 +// CHECK:STDOUT: %A.loc27_20.1 => constants.%A // CHECK:STDOUT: %pattern_type.loc27_20 => constants.%pattern_type.08e -// CHECK:STDOUT: %HoldsType.loc27_43.2 => constants.%HoldsType.cc9 +// CHECK:STDOUT: %HoldsType.loc27_43.1 => constants.%HoldsType.cc9 // CHECK:STDOUT: %pattern_type.loc27_29 => constants.%pattern_type.ec6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HoldsType(constants.%tuple) { -// CHECK:STDOUT: %T.loc17_17.2 => constants.%tuple +// CHECK:STDOUT: %T.loc17_17.1 => constants.%tuple // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%tuple, ) { -// CHECK:STDOUT: %T.loc27_6.2 => constants.%tuple -// CHECK:STDOUT: %tuple.elem0.loc27_25.2 => constants.%RuntimeConvertTo -// CHECK:STDOUT: %A.loc27_20.2 => +// CHECK:STDOUT: %T.loc27_6.1 => constants.%tuple +// CHECK:STDOUT: %tuple.elem0.loc27_25.1 => constants.%RuntimeConvertTo +// CHECK:STDOUT: %A.loc27_20.1 => // CHECK:STDOUT: %pattern_type.loc27_20 => constants.%pattern_type.109 -// CHECK:STDOUT: %HoldsType.loc27_43.2 => constants.%HoldsType.066 +// CHECK:STDOUT: %HoldsType.loc27_43.1 => constants.%HoldsType.066 // CHECK:STDOUT: %pattern_type.loc27_29 => constants.%pattern_type.a13 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index de10b0c3b946..0297b20e3c94 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -248,7 +248,7 @@ fn Read() { // CHECK:STDOUT: %.loc4_36.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc4_36.3: type = converted %int_literal.make_type, %.loc4_36.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_16.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_16.2 (constants.%N)] +// CHECK:STDOUT: %N.loc4_16.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_16.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Range.decl: %Range.type = fn_decl @Range [concrete = constants.%Range] { // CHECK:STDOUT: %end.patt: %pattern_type.7ce = binding_pattern end [concrete] @@ -270,7 +270,7 @@ fn Read() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @Iterate.impl(@IntRange.%N.loc4_16.1: Core.IntLiteral) { +// CHECK:STDOUT: generic impl @Iterate.impl(@IntRange.%N.loc4_16.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %Int.loc9_54.2: type = class_type @Int, @Int(%N) [symbolic = %Int.loc9_54.2 (constants.%Int.49d0e6.1)] @@ -293,16 +293,16 @@ fn Read() { // CHECK:STDOUT: } { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc10_45.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc10_45.1 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc10_45.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc10_45.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %self.param: @NewCursor.loc10.%IntRange (%IntRange.349) = value_param call_param0 // CHECK:STDOUT: %.loc10_24.1: type = splice_block %Self.ref [symbolic = %IntRange (constants.%IntRange.349)] { // CHECK:STDOUT: %.loc10_24.2: type = specific_constant constants.%IntRange.349, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc10_24.2 [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @NewCursor.loc10.%IntRange (%IntRange.349) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @NewCursor.loc10.%Int.loc10_45.1 (%Int.49d0e6.1) = out_param call_param1 -// CHECK:STDOUT: %return: ref @NewCursor.loc10.%Int.loc10_45.1 (%Int.49d0e6.1) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @NewCursor.loc10.%Int.loc10_45.2 (%Int.49d0e6.1) = out_param call_param1 +// CHECK:STDOUT: %return: ref @NewCursor.loc10.%Int.loc10_45.2 (%Int.49d0e6.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Next.decl: @Iterate.impl.%Next.type (%Next.type.2c8) = fn_decl @Next.loc11 [symbolic = @Iterate.impl.%Next (constants.%Next.259)] { // CHECK:STDOUT: %self.patt: @Next.loc11.%pattern_type.loc11_13 (%pattern_type.dcd) = binding_pattern self [concrete] @@ -316,26 +316,26 @@ fn Read() { // CHECK:STDOUT: %Optional.ref.loc11: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.ref.loc11_64: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc11_68: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc11_73: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc11_74: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.49d0e6.1)] -// CHECK:STDOUT: %Optional.loc11_75.2: type = class_type @Optional, @Optional(constants.%Int.49d0e6.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.708)] +// CHECK:STDOUT: %N.ref.loc11_73: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc11_74: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %Optional.loc11_75.1: type = class_type @Optional, @Optional(constants.%Int.49d0e6.1) [symbolic = %Optional.loc11_75.2 (constants.%Optional.708)] // CHECK:STDOUT: %self.param: @Next.loc11.%IntRange (%IntRange.349) = value_param call_param0 // CHECK:STDOUT: %.loc11_19.1: type = splice_block %Self.ref [symbolic = %IntRange (constants.%IntRange.349)] { // CHECK:STDOUT: %.loc11_19.2: type = specific_constant constants.%IntRange.349, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc11_19.2 [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Next.loc11.%IntRange (%IntRange.349) = bind_name self, %self.param -// CHECK:STDOUT: %cursor.param: @Next.loc11.%ptr.loc11_44.1 (%ptr.784) = value_param call_param1 -// CHECK:STDOUT: %.loc11_44: type = splice_block %ptr.loc11_44.2 [symbolic = %ptr.loc11_44.1 (constants.%ptr.784)] { +// CHECK:STDOUT: %cursor.param: @Next.loc11.%ptr.loc11_44.2 (%ptr.784) = value_param call_param1 +// CHECK:STDOUT: %.loc11_44: type = splice_block %ptr.loc11_44.1 [symbolic = %ptr.loc11_44.2 (constants.%ptr.784)] { // CHECK:STDOUT: %Core.ref.loc11_33: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc11_37: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc11_42: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc11_43.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.49d0e6.1)] -// CHECK:STDOUT: %ptr.loc11_44.2: type = ptr_type %Int.loc11_43.2 [symbolic = %ptr.loc11_44.1 (constants.%ptr.784)] +// CHECK:STDOUT: %N.ref.loc11_42: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc11_43.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %ptr.loc11_44.1: type = ptr_type %Int.loc11_43.1 [symbolic = %ptr.loc11_44.2 (constants.%ptr.784)] // CHECK:STDOUT: } -// CHECK:STDOUT: %cursor: @Next.loc11.%ptr.loc11_44.1 (%ptr.784) = bind_name cursor, %cursor.param -// CHECK:STDOUT: %return.param: ref @Next.loc11.%Optional.loc11_75.1 (%Optional.708) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Next.loc11.%Optional.loc11_75.1 (%Optional.708) = return_slot %return.param +// CHECK:STDOUT: %cursor: @Next.loc11.%ptr.loc11_44.2 (%ptr.784) = bind_name cursor, %cursor.param +// CHECK:STDOUT: %return.param: ref @Next.loc11.%Optional.loc11_75.2 (%Optional.708) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Next.loc11.%Optional.loc11_75.2 (%Optional.708) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -346,15 +346,15 @@ fn Read() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @IntRange(%N.loc4_16.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc4_16.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_16.2 (constants.%N)] +// CHECK:STDOUT: generic class @IntRange(%N.loc4_16.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc4_16.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_16.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @IntRange(%N.loc4_16.2) [symbolic = %Make.type (constants.%Make.type.51f)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @IntRange(%N.loc4_16.1) [symbolic = %Make.type (constants.%Make.type.51f)] // CHECK:STDOUT: %Make: @IntRange.%Make.type (%Make.type.51f) = struct_value () [symbolic = %Make (constants.%Make.2ec)] -// CHECK:STDOUT: %Int.loc22_32.2: type = class_type @Int, @Int(%N.loc4_16.2) [symbolic = %Int.loc22_32.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %Int.loc22_32.2: type = class_type @Int, @Int(%N.loc4_16.1) [symbolic = %Int.loc22_32.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %require_complete: = require_complete_type %Int.loc22_32.2 [symbolic = %require_complete (constants.%require_complete.b4f426.1)] -// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N.loc4_16.2) [symbolic = %IntRange (constants.%IntRange.349)] +// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N.loc4_16.1) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc22_32.2 [symbolic = %IntRange.elem (constants.%IntRange.elem.e7c)] // CHECK:STDOUT: %struct_type.start.end.loc24_1.2: type = struct_type {.start: @IntRange.%Int.loc22_32.2 (%Int.49d0e6.1), .end: @IntRange.%Int.loc22_32.2 (%Int.49d0e6.1)} [symbolic = %struct_type.start.end.loc24_1.2 (constants.%struct_type.start.end.78d)] // CHECK:STDOUT: %complete_type.loc24_1.2: = complete_type_witness %struct_type.start.end.loc24_1.2 [symbolic = %complete_type.loc24_1.2 (constants.%complete_type.9d5)] @@ -370,22 +370,22 @@ fn Read() { // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_52: type = specific_constant constants.%IntRange.349, @IntRange(constants.%N) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc5_52 [symbolic = %IntRange (constants.%IntRange.349)] -// CHECK:STDOUT: %start.param: @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = value_param call_param0 -// CHECK:STDOUT: %.loc5_28: type = splice_block %Int.loc5_28.2 [symbolic = %Int.loc5_28.1 (constants.%Int.49d0e6.1)] { +// CHECK:STDOUT: %start.param: @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = value_param call_param0 +// CHECK:STDOUT: %.loc5_28: type = splice_block %Int.loc5_28.1 [symbolic = %Int.loc5_28.2 (constants.%Int.49d0e6.1)] { // CHECK:STDOUT: %Core.ref.loc5_18: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc5_22: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc5_27: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc5_28.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.1 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %N.ref.loc5_27: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc5_28.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %start: @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = bind_name start, %start.param -// CHECK:STDOUT: %end.param: @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = value_param call_param1 -// CHECK:STDOUT: %.loc5_46: type = splice_block %Int.loc5_46 [symbolic = %Int.loc5_28.1 (constants.%Int.49d0e6.1)] { +// CHECK:STDOUT: %start: @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = bind_name start, %start.param +// CHECK:STDOUT: %end.param: @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = value_param call_param1 +// CHECK:STDOUT: %.loc5_46: type = splice_block %Int.loc5_46 [symbolic = %Int.loc5_28.2 (constants.%Int.49d0e6.1)] { // CHECK:STDOUT: %Core.ref.loc5_36: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc5_40: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc5_45: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc5_46: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.1 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %N.ref.loc5_45: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc5_46: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc5_28.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %end: @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = bind_name end, %end.param +// CHECK:STDOUT: %end: @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = bind_name end, %end.param // CHECK:STDOUT: %return.param: ref @Make.%IntRange (%IntRange.349) = out_param call_param2 // CHECK:STDOUT: %return: ref @Make.%IntRange (%IntRange.349) = return_slot %return.param // CHECK:STDOUT: } @@ -401,7 +401,7 @@ fn Read() { // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%Iterate.lookup_impl_witness.65a, element1 [symbolic_self = constants.%impl.elem1.164] // CHECK:STDOUT: %Core.ref.loc9_44: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc9_48: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc9_53: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %N.ref.loc9_53: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %Int.loc9_54.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %.Self.ref.loc9_60: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.ef1] // CHECK:STDOUT: %ElementType.ref: %Iterate.assoc_type = name_ref ElementType, imports.%Core.import_ref.1c9 [concrete = constants.%assoc0.724] @@ -410,7 +410,7 @@ fn Read() { // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Iterate.lookup_impl_witness.65a, element0 [symbolic_self = constants.%impl.elem0.19f] // CHECK:STDOUT: %Core.ref.loc9_75: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc9_79: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc9_84: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %N.ref.loc9_84: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %Int.loc9_85: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %.loc9_24: type = where_expr %.Self [symbolic = %Iterate_where.type (constants.%Iterate_where.type)] { // CHECK:STDOUT: requirement_rewrite %impl.elem1, %Int.loc9_54.1 @@ -423,12 +423,12 @@ fn Read() { // CHECK:STDOUT: %impl_witness_assoc_constant.loc9_87.2: type = impl_witness_assoc_constant constants.%Int.49d0e6.1 [symbolic = @Iterate.impl.%Int.loc9_54.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %Core.ref.loc22: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc22: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc22: Core.IntLiteral = name_ref N, %N.loc4_16.1 [symbolic = %N.loc4_16.2 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc22: Core.IntLiteral = name_ref N, %N.loc4_16.2 [symbolic = %N.loc4_16.1 (constants.%N)] // CHECK:STDOUT: %Int.loc22_32.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc22_32.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %.loc22: @IntRange.%IntRange.elem (%IntRange.elem.e7c) = field_decl start, element0 [concrete] // CHECK:STDOUT: %Core.ref.loc23: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc23: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc23: Core.IntLiteral = name_ref N, %N.loc4_16.1 [symbolic = %N.loc4_16.2 (constants.%N)] +// CHECK:STDOUT: %N.ref.loc23: Core.IntLiteral = name_ref N, %N.loc4_16.2 [symbolic = %N.loc4_16.1 (constants.%N)] // CHECK:STDOUT: %Int.loc23: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc22_32.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %.loc23: @IntRange.%IntRange.elem (%IntRange.elem.e7c) = field_decl end, element1 [concrete] // CHECK:STDOUT: %struct_type.start.end.loc24_1.1: type = struct_type {.start: %Int.49d0e6.1, .end: %Int.49d0e6.1} [symbolic = %struct_type.start.end.loc24_1.2 (constants.%struct_type.start.end.78d)] @@ -444,130 +444,130 @@ fn Read() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(@IntRange.%N.loc4_16.1: Core.IntLiteral) { +// CHECK:STDOUT: generic fn @Make(@IntRange.%N.loc4_16.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc5_28.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc5_28.1 (constants.%Int.49d0e6.1)] -// CHECK:STDOUT: %pattern_type.loc5_11: type = pattern_type %Int.loc5_28.1 [symbolic = %pattern_type.loc5_11 (constants.%pattern_type.8963eb.1)] +// CHECK:STDOUT: %Int.loc5_28.2: type = class_type @Int, @Int(%N) [symbolic = %Int.loc5_28.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %pattern_type.loc5_11: type = pattern_type %Int.loc5_28.2 [symbolic = %pattern_type.loc5_11 (constants.%pattern_type.8963eb.1)] // CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %pattern_type.loc5_49: type = pattern_type %IntRange [symbolic = %pattern_type.loc5_49 (constants.%pattern_type.dcd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc5_49: = require_complete_type %IntRange [symbolic = %require_complete.loc5_49 (constants.%require_complete.524)] -// CHECK:STDOUT: %require_complete.loc5_16: = require_complete_type %Int.loc5_28.1 [symbolic = %require_complete.loc5_16 (constants.%require_complete.b4f426.1)] -// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @Make.%Int.loc5_28.1 (%Int.49d0e6.1), .end: @Make.%Int.loc5_28.1 (%Int.49d0e6.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.78d)] +// CHECK:STDOUT: %require_complete.loc5_16: = require_complete_type %Int.loc5_28.2 [symbolic = %require_complete.loc5_16 (constants.%require_complete.b4f426.1)] +// CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @Make.%Int.loc5_28.2 (%Int.49d0e6.1), .end: @Make.%Int.loc5_28.2 (%Int.49d0e6.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.78d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%start.param: @Make.%Int.loc5_28.1 (%Int.49d0e6.1), %end.param: @Make.%Int.loc5_28.1 (%Int.49d0e6.1)) -> %return.param: @Make.%IntRange (%IntRange.349) { +// CHECK:STDOUT: fn(%start.param: @Make.%Int.loc5_28.2 (%Int.49d0e6.1), %end.param: @Make.%Int.loc5_28.2 (%Int.49d0e6.1)) -> %return.param: @Make.%IntRange (%IntRange.349) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %start.ref: @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = name_ref start, %start -// CHECK:STDOUT: %end.ref: @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = name_ref end, %end +// CHECK:STDOUT: %start.ref: @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = name_ref start, %start +// CHECK:STDOUT: %end.ref: @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = name_ref end, %end // CHECK:STDOUT: %.loc6_39.1: @Make.%struct_type.start.end (%struct_type.start.end.78d) = struct_literal (%start.ref, %end.ref) -// CHECK:STDOUT: %.loc6_39.2: ref @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = class_element_access %return, element0 -// CHECK:STDOUT: %.loc6_39.3: init @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = initialize_from %start.ref to %.loc6_39.2 -// CHECK:STDOUT: %.loc6_39.4: ref @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = class_element_access %return, element1 -// CHECK:STDOUT: %.loc6_39.5: init @Make.%Int.loc5_28.1 (%Int.49d0e6.1) = initialize_from %end.ref to %.loc6_39.4 +// CHECK:STDOUT: %.loc6_39.2: ref @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = class_element_access %return, element0 +// CHECK:STDOUT: %.loc6_39.3: init @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = initialize_from %start.ref to %.loc6_39.2 +// CHECK:STDOUT: %.loc6_39.4: ref @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = class_element_access %return, element1 +// CHECK:STDOUT: %.loc6_39.5: init @Make.%Int.loc5_28.2 (%Int.49d0e6.1) = initialize_from %end.ref to %.loc6_39.4 // CHECK:STDOUT: %.loc6_39.6: init @Make.%IntRange (%IntRange.349) = class_init (%.loc6_39.3, %.loc6_39.5), %return // CHECK:STDOUT: %.loc6_40: init @Make.%IntRange (%IntRange.349) = converted %.loc6_39.1, %.loc6_39.6 // CHECK:STDOUT: return %.loc6_40 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NewCursor.loc10(@IntRange.%N.loc4_16.1: Core.IntLiteral) { +// CHECK:STDOUT: generic fn @NewCursor.loc10(@IntRange.%N.loc4_16.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %pattern_type.loc10_18: type = pattern_type %IntRange [symbolic = %pattern_type.loc10_18 (constants.%pattern_type.dcd)] -// CHECK:STDOUT: %Int.loc10_45.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc10_45.1 (constants.%Int.49d0e6.1)] -// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %Int.loc10_45.1 [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.8963eb.1)] +// CHECK:STDOUT: %Int.loc10_45.2: type = class_type @Int, @Int(%N) [symbolic = %Int.loc10_45.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %Int.loc10_45.2 [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.8963eb.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10_22: = require_complete_type %IntRange [symbolic = %require_complete.loc10_22 (constants.%require_complete.524)] -// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc10_45.1 [symbolic = %IntRange.elem (constants.%IntRange.elem.e7c)] -// CHECK:STDOUT: %require_complete.loc10_60: = require_complete_type %Int.loc10_45.1 [symbolic = %require_complete.loc10_60 (constants.%require_complete.b4f426.1)] +// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc10_45.2 [symbolic = %IntRange.elem (constants.%IntRange.elem.e7c)] +// CHECK:STDOUT: %require_complete.loc10_60: = require_complete_type %Int.loc10_45.2 [symbolic = %require_complete.loc10_60 (constants.%require_complete.b4f426.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @NewCursor.loc10.%IntRange (%IntRange.349)) -> @NewCursor.loc10.%Int.loc10_45.1 (%Int.49d0e6.1) { +// CHECK:STDOUT: fn(%self.param: @NewCursor.loc10.%IntRange (%IntRange.349)) -> @NewCursor.loc10.%Int.loc10_45.2 (%Int.49d0e6.1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @NewCursor.loc10.%IntRange (%IntRange.349) = name_ref self, %self // CHECK:STDOUT: %start.ref: @NewCursor.loc10.%IntRange.elem (%IntRange.elem.e7c) = name_ref start, @IntRange.%.loc22 [concrete = @IntRange.%.loc22] -// CHECK:STDOUT: %.loc10_60.1: ref @NewCursor.loc10.%Int.loc10_45.1 (%Int.49d0e6.1) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc10_60.2: @NewCursor.loc10.%Int.loc10_45.1 (%Int.49d0e6.1) = bind_value %.loc10_60.1 +// CHECK:STDOUT: %.loc10_60.1: ref @NewCursor.loc10.%Int.loc10_45.2 (%Int.49d0e6.1) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc10_60.2: @NewCursor.loc10.%Int.loc10_45.2 (%Int.49d0e6.1) = bind_value %.loc10_60.1 // CHECK:STDOUT: return %.loc10_60.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Next.loc11(@IntRange.%N.loc4_16.1: Core.IntLiteral) { +// CHECK:STDOUT: generic fn @Next.loc11(@IntRange.%N.loc4_16.2: Core.IntLiteral) { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.349)] // CHECK:STDOUT: %pattern_type.loc11_13: type = pattern_type %IntRange [symbolic = %pattern_type.loc11_13 (constants.%pattern_type.dcd)] -// CHECK:STDOUT: %Int.loc11_43.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc11_43.1 (constants.%Int.49d0e6.1)] -// CHECK:STDOUT: %ptr.loc11_44.1: type = ptr_type %Int.loc11_43.1 [symbolic = %ptr.loc11_44.1 (constants.%ptr.784)] -// CHECK:STDOUT: %pattern_type.loc11_25: type = pattern_type %ptr.loc11_44.1 [symbolic = %pattern_type.loc11_25 (constants.%pattern_type.4dc)] -// CHECK:STDOUT: %Optional.loc11_75.1: type = class_type @Optional, @Optional(%Int.loc11_43.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.708)] -// CHECK:STDOUT: %pattern_type.loc11_47: type = pattern_type %Optional.loc11_75.1 [symbolic = %pattern_type.loc11_47 (constants.%pattern_type.4b1)] +// CHECK:STDOUT: %Int.loc11_43.2: type = class_type @Int, @Int(%N) [symbolic = %Int.loc11_43.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %ptr.loc11_44.2: type = ptr_type %Int.loc11_43.2 [symbolic = %ptr.loc11_44.2 (constants.%ptr.784)] +// CHECK:STDOUT: %pattern_type.loc11_25: type = pattern_type %ptr.loc11_44.2 [symbolic = %pattern_type.loc11_25 (constants.%pattern_type.4dc)] +// CHECK:STDOUT: %Optional.loc11_75.2: type = class_type @Optional, @Optional(%Int.loc11_43.2) [symbolic = %Optional.loc11_75.2 (constants.%Optional.708)] +// CHECK:STDOUT: %pattern_type.loc11_47: type = pattern_type %Optional.loc11_75.2 [symbolic = %pattern_type.loc11_47 (constants.%pattern_type.4b1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_47.1: = require_complete_type %Optional.loc11_75.1 [symbolic = %require_complete.loc11_47.1 (constants.%require_complete.b74)] +// CHECK:STDOUT: %require_complete.loc11_47.1: = require_complete_type %Optional.loc11_75.2 [symbolic = %require_complete.loc11_47.1 (constants.%require_complete.b74)] // CHECK:STDOUT: %require_complete.loc11_17: = require_complete_type %IntRange [symbolic = %require_complete.loc11_17 (constants.%require_complete.524)] -// CHECK:STDOUT: %require_complete.loc11_31: = require_complete_type %ptr.loc11_44.1 [symbolic = %require_complete.loc11_31 (constants.%require_complete.0f5)] -// CHECK:STDOUT: %require_complete.loc12: = require_complete_type %Int.loc11_43.1 [symbolic = %require_complete.loc12 (constants.%require_complete.b4f426.1)] -// CHECK:STDOUT: %pattern_type.loc12: type = pattern_type %Int.loc11_43.1 [symbolic = %pattern_type.loc12 (constants.%pattern_type.8963eb.1)] -// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc11_43.1 [symbolic = %IntRange.elem (constants.%IntRange.elem.e7c)] -// CHECK:STDOUT: %OrderedWith.type.loc13_17.2: type = facet_type <@OrderedWith, @OrderedWith(%Int.loc11_43.1)> [symbolic = %OrderedWith.type.loc13_17.2 (constants.%OrderedWith.type.872)] +// CHECK:STDOUT: %require_complete.loc11_31: = require_complete_type %ptr.loc11_44.2 [symbolic = %require_complete.loc11_31 (constants.%require_complete.0f5)] +// CHECK:STDOUT: %require_complete.loc12: = require_complete_type %Int.loc11_43.2 [symbolic = %require_complete.loc12 (constants.%require_complete.b4f426.1)] +// CHECK:STDOUT: %pattern_type.loc12: type = pattern_type %Int.loc11_43.2 [symbolic = %pattern_type.loc12 (constants.%pattern_type.8963eb.1)] +// CHECK:STDOUT: %IntRange.elem: type = unbound_element_type %IntRange, %Int.loc11_43.2 [symbolic = %IntRange.elem (constants.%IntRange.elem.e7c)] +// CHECK:STDOUT: %OrderedWith.type.loc13_17.2: type = facet_type <@OrderedWith, @OrderedWith(%Int.loc11_43.2)> [symbolic = %OrderedWith.type.loc13_17.2 (constants.%OrderedWith.type.872)] // CHECK:STDOUT: %require_complete.loc13: = require_complete_type %OrderedWith.type.loc13_17.2 [symbolic = %require_complete.loc13 (constants.%require_complete.66b6)] -// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith, @OrderedWith(%Int.loc11_43.1) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.d92)] +// CHECK:STDOUT: %OrderedWith.assoc_type: type = assoc_entity_type @OrderedWith, @OrderedWith(%Int.loc11_43.2) [symbolic = %OrderedWith.assoc_type (constants.%OrderedWith.assoc_type.d92)] // CHECK:STDOUT: %assoc0: @Next.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.d92) = assoc_entity element0, imports.%Core.import_ref.910 [symbolic = %assoc0 (constants.%assoc0.2ae)] // CHECK:STDOUT: %OrderedWith.impl_witness: = impl_witness imports.%OrderedWith.impl_witness_table.2b2, @OrderedWith.impl.db3(%N, %N) [symbolic = %OrderedWith.impl_witness (constants.%OrderedWith.impl_witness.df5)] -// CHECK:STDOUT: %Less.type.loc13_17.1: type = fn_type @Less.1, @OrderedWith(%Int.loc11_43.1) [symbolic = %Less.type.loc13_17.1 (constants.%Less.type.8fe)] -// CHECK:STDOUT: %OrderedWith.facet: @Next.loc11.%OrderedWith.type.loc13_17.2 (%OrderedWith.type.872) = facet_value %Int.loc11_43.1, (%OrderedWith.impl_witness) [symbolic = %OrderedWith.facet (constants.%OrderedWith.facet)] +// CHECK:STDOUT: %Less.type.loc13_17.1: type = fn_type @Less.1, @OrderedWith(%Int.loc11_43.2) [symbolic = %Less.type.loc13_17.1 (constants.%Less.type.8fe)] +// CHECK:STDOUT: %OrderedWith.facet: @Next.loc11.%OrderedWith.type.loc13_17.2 (%OrderedWith.type.872) = facet_value %Int.loc11_43.2, (%OrderedWith.impl_witness) [symbolic = %OrderedWith.facet (constants.%OrderedWith.facet)] // CHECK:STDOUT: %.loc13_17.2: type = fn_type_with_self_type %Less.type.loc13_17.1, %OrderedWith.facet [symbolic = %.loc13_17.2 (constants.%.99c)] // CHECK:STDOUT: %Less.type.loc13_17.2: type = fn_type @Less.2, @OrderedWith.impl.db3(%N, %N) [symbolic = %Less.type.loc13_17.2 (constants.%Less.type.98c)] // CHECK:STDOUT: %Less: @Next.loc11.%Less.type.loc13_17.2 (%Less.type.98c) = struct_value () [symbolic = %Less (constants.%Less.4be)] // CHECK:STDOUT: %Less.specific_fn: = specific_function %Less, @Less.2(%N, %N) [symbolic = %Less.specific_fn (constants.%Less.specific_fn.bb3)] -// CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Inc [symbolic = %Inc.lookup_impl_witness (constants.%Inc.lookup_impl_witness)] -// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Int.loc11_43.1, (%Inc.lookup_impl_witness) [symbolic = %Inc.facet (constants.%Inc.facet)] +// CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.2, @Inc [symbolic = %Inc.lookup_impl_witness (constants.%Inc.lookup_impl_witness)] +// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Int.loc11_43.2, (%Inc.lookup_impl_witness) [symbolic = %Inc.facet (constants.%Inc.facet)] // CHECK:STDOUT: %.loc14_9.2: type = fn_type_with_self_type constants.%Op.type.e3a, %Inc.facet [symbolic = %.loc14_9.2 (constants.%.a0d)] // CHECK:STDOUT: %impl.elem0.loc14_9.2: @Next.loc11.%.loc14_9.2 (%.a0d) = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_9.2 (constants.%impl.elem0.437)] // CHECK:STDOUT: %specific_impl_fn.loc14_9.2: = specific_impl_function %impl.elem0.loc14_9.2, @Op.95(%Inc.facet) [symbolic = %specific_impl_fn.loc14_9.2 (constants.%specific_impl_fn.a5f)] -// CHECK:STDOUT: %Some.type: type = fn_type @Some, @Optional(%Int.loc11_43.1) [symbolic = %Some.type (constants.%Some.type.185)] +// CHECK:STDOUT: %Some.type: type = fn_type @Some, @Optional(%Int.loc11_43.2) [symbolic = %Some.type (constants.%Some.type.185)] // CHECK:STDOUT: %Some: @Next.loc11.%Some.type (%Some.type.185) = struct_value () [symbolic = %Some (constants.%Some.58a)] -// CHECK:STDOUT: %Some.specific_fn.loc15_42.2: = specific_function %Some, @Some(%Int.loc11_43.1) [symbolic = %Some.specific_fn.loc15_42.2 (constants.%Some.specific_fn)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc11: = lookup_impl_witness %Optional.loc11_75.1, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc11 (constants.%Destroy.lookup_impl_witness.f9d)] -// CHECK:STDOUT: %Destroy.facet.loc11: %Destroy.type = facet_value %Optional.loc11_75.1, (%Destroy.lookup_impl_witness.loc11) [symbolic = %Destroy.facet.loc11 (constants.%Destroy.facet.be9)] +// CHECK:STDOUT: %Some.specific_fn.loc15_42.2: = specific_function %Some, @Some(%Int.loc11_43.2) [symbolic = %Some.specific_fn.loc15_42.2 (constants.%Some.specific_fn)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc11: = lookup_impl_witness %Optional.loc11_75.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc11 (constants.%Destroy.lookup_impl_witness.f9d)] +// CHECK:STDOUT: %Destroy.facet.loc11: %Destroy.type = facet_value %Optional.loc11_75.2, (%Destroy.lookup_impl_witness.loc11) [symbolic = %Destroy.facet.loc11 (constants.%Destroy.facet.be9)] // CHECK:STDOUT: %.loc11_47.6: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet.loc11 [symbolic = %.loc11_47.6 (constants.%.1ee)] // CHECK:STDOUT: %impl.elem0.loc11_47.4: @Next.loc11.%.loc11_47.6 (%.1ee) = impl_witness_access %Destroy.lookup_impl_witness.loc11, element0 [symbolic = %impl.elem0.loc11_47.4 (constants.%impl.elem0.5fd)] // CHECK:STDOUT: %specific_impl_fn.loc11_47.4: = specific_impl_function %impl.elem0.loc11_47.4, @Op.96(%Destroy.facet.loc11) [symbolic = %specific_impl_fn.loc11_47.4 (constants.%specific_impl_fn.79e)] -// CHECK:STDOUT: %ptr.loc11_47: type = ptr_type %Optional.loc11_75.1 [symbolic = %ptr.loc11_47 (constants.%ptr.2aa)] +// CHECK:STDOUT: %ptr.loc11_47: type = ptr_type %Optional.loc11_75.2 [symbolic = %ptr.loc11_47 (constants.%ptr.2aa)] // CHECK:STDOUT: %require_complete.loc11_47.2: = require_complete_type %ptr.loc11_47 [symbolic = %require_complete.loc11_47.2 (constants.%require_complete.a5e)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc12: = lookup_impl_witness %Int.loc11_43.1, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc12 (constants.%Destroy.lookup_impl_witness.34a)] -// CHECK:STDOUT: %Destroy.facet.loc12: %Destroy.type = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness.loc12) [symbolic = %Destroy.facet.loc12 (constants.%Destroy.facet.13d)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc12: = lookup_impl_witness %Int.loc11_43.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc12 (constants.%Destroy.lookup_impl_witness.34a)] +// CHECK:STDOUT: %Destroy.facet.loc12: %Destroy.type = facet_value %Int.loc11_43.2, (%Destroy.lookup_impl_witness.loc12) [symbolic = %Destroy.facet.loc12 (constants.%Destroy.facet.13d)] // CHECK:STDOUT: %.loc12_7.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet.loc12 [symbolic = %.loc12_7.3 (constants.%.bbc)] // CHECK:STDOUT: %impl.elem0.loc12_7.3: @Next.loc11.%.loc12_7.3 (%.bbc) = impl_witness_access %Destroy.lookup_impl_witness.loc12, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.fe8)] // CHECK:STDOUT: %specific_impl_fn.loc12_7.3: = specific_impl_function %impl.elem0.loc12_7.3, @Op.96(%Destroy.facet.loc12) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.f4e)] -// CHECK:STDOUT: %None.type: type = fn_type @None, @Optional(%Int.loc11_43.1) [symbolic = %None.type (constants.%None.type.73a)] +// CHECK:STDOUT: %None.type: type = fn_type @None, @Optional(%Int.loc11_43.2) [symbolic = %None.type (constants.%None.type.73a)] // CHECK:STDOUT: %None: @Next.loc11.%None.type (%None.type.73a) = struct_value () [symbolic = %None (constants.%None.83e)] -// CHECK:STDOUT: %None.specific_fn.loc17_42.2: = specific_function %None, @None(%Int.loc11_43.1) [symbolic = %None.specific_fn.loc17_42.2 (constants.%None.specific_fn)] +// CHECK:STDOUT: %None.specific_fn.loc17_42.2: = specific_function %None, @None(%Int.loc11_43.2) [symbolic = %None.specific_fn.loc17_42.2 (constants.%None.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Next.loc11.%IntRange (%IntRange.349), %cursor.param: @Next.loc11.%ptr.loc11_44.1 (%ptr.784)) -> %return.param: @Next.loc11.%Optional.loc11_75.1 (%Optional.708) { +// CHECK:STDOUT: fn(%self.param: @Next.loc11.%IntRange (%IntRange.349), %cursor.param: @Next.loc11.%ptr.loc11_44.2 (%ptr.784)) -> %return.param: @Next.loc11.%Optional.loc11_75.2 (%Optional.708) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %value.patt: @Next.loc11.%pattern_type.loc12 (%pattern_type.8963eb.1) = binding_pattern value [concrete] // CHECK:STDOUT: %value.var_patt: @Next.loc11.%pattern_type.loc12 (%pattern_type.8963eb.1) = var_pattern %value.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %value.var: ref @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = var %value.var_patt -// CHECK:STDOUT: %cursor.ref.loc12: @Next.loc11.%ptr.loc11_44.1 (%ptr.784) = name_ref cursor, %cursor -// CHECK:STDOUT: %.loc12_32.1: ref @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = deref %cursor.ref.loc12 -// CHECK:STDOUT: %.loc12_32.2: @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = bind_value %.loc12_32.1 +// CHECK:STDOUT: %value.var: ref @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = var %value.var_patt +// CHECK:STDOUT: %cursor.ref.loc12: @Next.loc11.%ptr.loc11_44.2 (%ptr.784) = name_ref cursor, %cursor +// CHECK:STDOUT: %.loc12_32.1: ref @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = deref %cursor.ref.loc12 +// CHECK:STDOUT: %.loc12_32.2: @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = bind_value %.loc12_32.1 // CHECK:STDOUT: assign %value.var, %.loc12_32.2 -// CHECK:STDOUT: %.loc12_28: type = splice_block %Int.loc12 [symbolic = %Int.loc11_43.1 (constants.%Int.49d0e6.1)] { +// CHECK:STDOUT: %.loc12_28: type = splice_block %Int.loc12 [symbolic = %Int.loc11_43.2 (constants.%Int.49d0e6.1)] { // CHECK:STDOUT: %Core.ref.loc12: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc12: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc12: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc12: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %N.ref.loc12: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc12: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %value: ref @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = bind_name value, %value.var -// CHECK:STDOUT: %value.ref.loc13: ref @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = name_ref value, %value +// CHECK:STDOUT: %value: ref @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = bind_name value, %value.var +// CHECK:STDOUT: %value.ref.loc13: ref @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = name_ref value, %value // CHECK:STDOUT: %self.ref: @Next.loc11.%IntRange (%IntRange.349) = name_ref self, %self // CHECK:STDOUT: %end.ref: @Next.loc11.%IntRange.elem (%IntRange.elem.e7c) = name_ref end, @IntRange.%.loc23 [concrete = @IntRange.%.loc23] -// CHECK:STDOUT: %.loc13_23.1: ref @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = class_element_access %self.ref, element1 -// CHECK:STDOUT: %.loc13_23.2: @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = bind_value %.loc13_23.1 +// CHECK:STDOUT: %.loc13_23.1: ref @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = class_element_access %self.ref, element1 +// CHECK:STDOUT: %.loc13_23.2: @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = bind_value %.loc13_23.1 // CHECK:STDOUT: %OrderedWith.type.loc13_17.1: type = facet_type <@OrderedWith, @OrderedWith(constants.%Int.49d0e6.1)> [symbolic = %OrderedWith.type.loc13_17.2 (constants.%OrderedWith.type.872)] // CHECK:STDOUT: %.loc13_17.1: @Next.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.d92) = specific_constant imports.%Core.import_ref.1cc, @OrderedWith(constants.%Int.49d0e6.1) [symbolic = %assoc0 (constants.%assoc0.2ae)] // CHECK:STDOUT: %Less.ref: @Next.loc11.%OrderedWith.assoc_type (%OrderedWith.assoc_type.d92) = name_ref Less, %.loc13_17.1 [symbolic = %assoc0 (constants.%assoc0.2ae)] @@ -575,35 +575,35 @@ fn Read() { // CHECK:STDOUT: %bound_method.loc13_17.1: = bound_method %value.ref.loc13, %impl.elem0.loc13 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc13, @Less.2(constants.%N, constants.%N) [symbolic = %Less.specific_fn (constants.%Less.specific_fn.bb3)] // CHECK:STDOUT: %bound_method.loc13_17.2: = bound_method %value.ref.loc13, %specific_fn -// CHECK:STDOUT: %.loc13_11: @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = bind_value %value.ref.loc13 +// CHECK:STDOUT: %.loc13_11: @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = bind_value %value.ref.loc13 // CHECK:STDOUT: %int.less: init bool = call %bound_method.loc13_17.2(%.loc13_11, %.loc13_23.2) // CHECK:STDOUT: %.loc13_27.1: bool = value_of_initializer %int.less // CHECK:STDOUT: %.loc13_27.2: bool = converted %int.less, %.loc13_27.1 // CHECK:STDOUT: if %.loc13_27.2 br !if.then else br !if.else // CHECK:STDOUT: // CHECK:STDOUT: !if.then: -// CHECK:STDOUT: %cursor.ref.loc14: @Next.loc11.%ptr.loc11_44.1 (%ptr.784) = name_ref cursor, %cursor -// CHECK:STDOUT: %.loc14_11: ref @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = deref %cursor.ref.loc14 +// CHECK:STDOUT: %cursor.ref.loc14: @Next.loc11.%ptr.loc11_44.2 (%ptr.784) = name_ref cursor, %cursor +// CHECK:STDOUT: %.loc14_11: ref @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = deref %cursor.ref.loc14 // CHECK:STDOUT: %impl.elem0.loc14_9.1: @Next.loc11.%.loc14_9.2 (%.a0d) = impl_witness_access constants.%Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_9.2 (constants.%impl.elem0.437)] // CHECK:STDOUT: %bound_method.loc14_9.1: = bound_method %.loc14_11, %impl.elem0.loc14_9.1 // CHECK:STDOUT: %specific_impl_fn.loc14_9.1: = specific_impl_function %impl.elem0.loc14_9.1, @Op.95(constants.%Inc.facet) [symbolic = %specific_impl_fn.loc14_9.2 (constants.%specific_impl_fn.a5f)] // CHECK:STDOUT: %bound_method.loc14_9.2: = bound_method %.loc14_11, %specific_impl_fn.loc14_9.1 -// CHECK:STDOUT: %addr.loc14: @Next.loc11.%ptr.loc11_44.1 (%ptr.784) = addr_of %.loc14_11 +// CHECK:STDOUT: %addr.loc14: @Next.loc11.%ptr.loc11_44.2 (%ptr.784) = addr_of %.loc14_11 // CHECK:STDOUT: %.loc14_9.1: init %empty_tuple.type = call %bound_method.loc14_9.2(%addr.loc14) // CHECK:STDOUT: %Core.ref.loc15_16: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref.loc15: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.ref.loc15_30: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc15: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc15: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc15: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.49d0e6.1)] -// CHECK:STDOUT: %Optional.loc15: type = class_type @Optional, @Optional(constants.%Int.49d0e6.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.708)] +// CHECK:STDOUT: %N.ref.loc15: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc15: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %Optional.loc15: type = class_type @Optional, @Optional(constants.%Int.49d0e6.1) [symbolic = %Optional.loc11_75.2 (constants.%Optional.708)] // CHECK:STDOUT: %.loc15_42: @Next.loc11.%Some.type (%Some.type.185) = specific_constant imports.%Core.import_ref.5c6, @Optional(constants.%Int.49d0e6.1) [symbolic = %Some (constants.%Some.58a)] // CHECK:STDOUT: %Some.ref: @Next.loc11.%Some.type (%Some.type.185) = name_ref Some, %.loc15_42 [symbolic = %Some (constants.%Some.58a)] -// CHECK:STDOUT: %value.ref.loc15: ref @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = name_ref value, %value +// CHECK:STDOUT: %value.ref.loc15: ref @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = name_ref value, %value // CHECK:STDOUT: %Some.specific_fn.loc15_42.1: = specific_function %Some.ref, @Some(constants.%Int.49d0e6.1) [symbolic = %Some.specific_fn.loc15_42.2 (constants.%Some.specific_fn)] -// CHECK:STDOUT: %.loc11_47.1: ref @Next.loc11.%Optional.loc11_75.1 (%Optional.708) = splice_block %return {} -// CHECK:STDOUT: %.loc15_48: @Next.loc11.%Int.loc11_43.1 (%Int.49d0e6.1) = bind_value %value.ref.loc15 -// CHECK:STDOUT: %Some.call: init @Next.loc11.%Optional.loc11_75.1 (%Optional.708) = call %Some.specific_fn.loc15_42.1(%.loc15_48) to %.loc11_47.1 +// CHECK:STDOUT: %.loc11_47.1: ref @Next.loc11.%Optional.loc11_75.2 (%Optional.708) = splice_block %return {} +// CHECK:STDOUT: %.loc15_48: @Next.loc11.%Int.loc11_43.2 (%Int.49d0e6.1) = bind_value %value.ref.loc15 +// CHECK:STDOUT: %Some.call: init @Next.loc11.%Optional.loc11_75.2 (%Optional.708) = call %Some.specific_fn.loc15_42.1(%.loc15_48) to %.loc11_47.1 // CHECK:STDOUT: %impl.elem0.loc11_47.1: @Next.loc11.%.loc11_47.6 (%.1ee) = impl_witness_access constants.%Destroy.lookup_impl_witness.f9d, element0 [symbolic = %impl.elem0.loc11_47.4 (constants.%impl.elem0.5fd)] // CHECK:STDOUT: %bound_method.loc11_47.1: = bound_method %.loc11_47.1, %impl.elem0.loc11_47.1 // CHECK:STDOUT: %specific_impl_fn.loc11_47.1: = specific_impl_function %impl.elem0.loc11_47.1, @Op.96(constants.%Destroy.facet.be9) [symbolic = %specific_impl_fn.loc11_47.4 (constants.%specific_impl_fn.79e)] @@ -614,7 +614,7 @@ fn Read() { // CHECK:STDOUT: %bound_method.loc12_7.1: = bound_method %value.var, %impl.elem0.loc12_7.1 // CHECK:STDOUT: %specific_impl_fn.loc12_7.1: = specific_impl_function %impl.elem0.loc12_7.1, @Op.96(constants.%Destroy.facet.13d) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.f4e)] // CHECK:STDOUT: %bound_method.loc12_7.2: = bound_method %value.var, %specific_impl_fn.loc12_7.1 -// CHECK:STDOUT: %addr.loc12_7.1: @Next.loc11.%ptr.loc11_44.1 (%ptr.784) = addr_of %value.var +// CHECK:STDOUT: %addr.loc12_7.1: @Next.loc11.%ptr.loc11_44.2 (%ptr.784) = addr_of %value.var // CHECK:STDOUT: %.loc12_7.1: init %empty_tuple.type = call %bound_method.loc12_7.2(%addr.loc12_7.1) // CHECK:STDOUT: return %Some.call to %return // CHECK:STDOUT: @@ -623,14 +623,14 @@ fn Read() { // CHECK:STDOUT: %Optional.ref.loc17: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.ref.loc17_30: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc17: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref.loc17: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.1 [symbolic = %N (constants.%N)] -// CHECK:STDOUT: %Int.loc17: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.1 (constants.%Int.49d0e6.1)] -// CHECK:STDOUT: %Optional.loc17: type = class_type @Optional, @Optional(constants.%Int.49d0e6.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.708)] +// CHECK:STDOUT: %N.ref.loc17: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_16.2 [symbolic = %N (constants.%N)] +// CHECK:STDOUT: %Int.loc17: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc11_43.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %Optional.loc17: type = class_type @Optional, @Optional(constants.%Int.49d0e6.1) [symbolic = %Optional.loc11_75.2 (constants.%Optional.708)] // CHECK:STDOUT: %.loc17: @Next.loc11.%None.type (%None.type.73a) = specific_constant imports.%Core.import_ref.2b7, @Optional(constants.%Int.49d0e6.1) [symbolic = %None (constants.%None.83e)] // CHECK:STDOUT: %None.ref: @Next.loc11.%None.type (%None.type.73a) = name_ref None, %.loc17 [symbolic = %None (constants.%None.83e)] // CHECK:STDOUT: %None.specific_fn.loc17_42.1: = specific_function %None.ref, @None(constants.%Int.49d0e6.1) [symbolic = %None.specific_fn.loc17_42.2 (constants.%None.specific_fn)] -// CHECK:STDOUT: %.loc11_47.3: ref @Next.loc11.%Optional.loc11_75.1 (%Optional.708) = splice_block %return {} -// CHECK:STDOUT: %None.call: init @Next.loc11.%Optional.loc11_75.1 (%Optional.708) = call %None.specific_fn.loc17_42.1() to %.loc11_47.3 +// CHECK:STDOUT: %.loc11_47.3: ref @Next.loc11.%Optional.loc11_75.2 (%Optional.708) = splice_block %return {} +// CHECK:STDOUT: %None.call: init @Next.loc11.%Optional.loc11_75.2 (%Optional.708) = call %None.specific_fn.loc17_42.1() to %.loc11_47.3 // CHECK:STDOUT: %impl.elem0.loc11_47.2: @Next.loc11.%.loc11_47.6 (%.1ee) = impl_witness_access constants.%Destroy.lookup_impl_witness.f9d, element0 [symbolic = %impl.elem0.loc11_47.4 (constants.%impl.elem0.5fd)] // CHECK:STDOUT: %bound_method.loc11_47.3: = bound_method %.loc11_47.3, %impl.elem0.loc11_47.2 // CHECK:STDOUT: %specific_impl_fn.loc11_47.2: = specific_impl_function %impl.elem0.loc11_47.2, @Op.96(constants.%Destroy.facet.be9) [symbolic = %specific_impl_fn.loc11_47.4 (constants.%specific_impl_fn.79e)] @@ -647,7 +647,7 @@ fn Read() { // CHECK:STDOUT: %bound_method.loc12_7.3: = bound_method %value.var, %impl.elem0.loc12_7.2 // CHECK:STDOUT: %specific_impl_fn.loc12_7.2: = specific_impl_function %impl.elem0.loc12_7.2, @Op.96(constants.%Destroy.facet.13d) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.f4e)] // CHECK:STDOUT: %bound_method.loc12_7.4: = bound_method %value.var, %specific_impl_fn.loc12_7.2 -// CHECK:STDOUT: %addr.loc12_7.2: @Next.loc11.%ptr.loc11_44.1 (%ptr.784) = addr_of %value.var +// CHECK:STDOUT: %addr.loc12_7.2: @Next.loc11.%ptr.loc11_44.2 (%ptr.784) = addr_of %value.var // CHECK:STDOUT: %.loc12_7.2: init %empty_tuple.type = call %bound_method.loc12_7.4(%addr.loc12_7.2) // CHECK:STDOUT: return %None.call to %return // CHECK:STDOUT: } @@ -681,7 +681,7 @@ fn Read() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange(constants.%N) { -// CHECK:STDOUT: %N.loc4_16.2 => constants.%N +// CHECK:STDOUT: %N.loc4_16.1 => constants.%N // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.51f @@ -696,7 +696,7 @@ fn Read() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%N) { // CHECK:STDOUT: %N => constants.%N -// CHECK:STDOUT: %Int.loc5_28.1 => constants.%Int.49d0e6.1 +// CHECK:STDOUT: %Int.loc5_28.2 => constants.%Int.49d0e6.1 // CHECK:STDOUT: %pattern_type.loc5_11 => constants.%pattern_type.8963eb.1 // CHECK:STDOUT: %IntRange => constants.%IntRange.349 // CHECK:STDOUT: %pattern_type.loc5_49 => constants.%pattern_type.dcd @@ -729,7 +729,7 @@ fn Read() { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %IntRange => constants.%IntRange.349 // CHECK:STDOUT: %pattern_type.loc10_18 => constants.%pattern_type.dcd -// CHECK:STDOUT: %Int.loc10_45.1 => constants.%Int.49d0e6.1 +// CHECK:STDOUT: %Int.loc10_45.2 => constants.%Int.49d0e6.1 // CHECK:STDOUT: %pattern_type.loc10_32 => constants.%pattern_type.8963eb.1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -737,15 +737,15 @@ fn Read() { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %IntRange => constants.%IntRange.349 // CHECK:STDOUT: %pattern_type.loc11_13 => constants.%pattern_type.dcd -// CHECK:STDOUT: %Int.loc11_43.1 => constants.%Int.49d0e6.1 -// CHECK:STDOUT: %ptr.loc11_44.1 => constants.%ptr.784 +// CHECK:STDOUT: %Int.loc11_43.2 => constants.%Int.49d0e6.1 +// CHECK:STDOUT: %ptr.loc11_44.2 => constants.%ptr.784 // CHECK:STDOUT: %pattern_type.loc11_25 => constants.%pattern_type.4dc -// CHECK:STDOUT: %Optional.loc11_75.1 => constants.%Optional.708 +// CHECK:STDOUT: %Optional.loc11_75.2 => constants.%Optional.708 // CHECK:STDOUT: %pattern_type.loc11_47 => constants.%pattern_type.4b1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IntRange(constants.%int_32) { -// CHECK:STDOUT: %N.loc4_16.2 => constants.%int_32 +// CHECK:STDOUT: %N.loc4_16.1 => constants.%int_32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.cef @@ -760,7 +760,7 @@ fn Read() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%int_32) { // CHECK:STDOUT: %N => constants.%int_32 -// CHECK:STDOUT: %Int.loc5_28.1 => constants.%i32 +// CHECK:STDOUT: %Int.loc5_28.2 => constants.%i32 // CHECK:STDOUT: %pattern_type.loc5_11 => constants.%pattern_type.7ce // CHECK:STDOUT: %IntRange => constants.%IntRange.365 // CHECK:STDOUT: %pattern_type.loc5_49 => constants.%pattern_type.d16 @@ -812,9 +812,9 @@ fn Read() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.9ba: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.6da: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To.c80: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0b2: type = fn_type @Convert.3, @ImplicitAs.impl.c81(%To.c80) [symbolic] +// CHECK:STDOUT: %Convert.type.0b2: type = fn_type @Convert.1, @ImplicitAs.impl.c81(%To.c80) [symbolic] // CHECK:STDOUT: %Convert.6d7: %Convert.type.0b2 = struct_value () [symbolic] // CHECK:STDOUT: %OrderedWith.type.256: type = facet_type <@OrderedWith, @OrderedWith(%Int.7ff11f.1)> [symbolic] // CHECK:STDOUT: %require_complete.10b: = require_complete_type %OrderedWith.type.256 [symbolic] @@ -825,16 +825,16 @@ fn Read() { // CHECK:STDOUT: %require_complete.656: = require_complete_type %ptr.58a [symbolic] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.e34: = impl_witness imports.%ImplicitAs.impl_witness_table.e36, @ImplicitAs.impl.c81(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.3, @ImplicitAs.impl.c81(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.1, @ImplicitAs.impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.2e7: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.e34) [concrete] // CHECK:STDOUT: %.d6a: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet.2e7 [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %y, %Convert.16d [symbolic] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.3(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %y, %Convert.specific_fn [symbolic] // CHECK:STDOUT: %int.convert_checked.58b: init %i32 = call %bound_method(%y) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.95 [concrete] +// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.96 [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %.Self.36d: %Iterate.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %Iterate.lookup_impl_witness: = lookup_impl_witness %.Self.36d, @Iterate [symbolic_self] @@ -859,10 +859,10 @@ fn Read() { // CHECK:STDOUT: %Less.specific_fn.5e2: = specific_function %Less.3b5, @Less.2(%N, %N) [symbolic] // CHECK:STDOUT: %Inc.lookup_impl_witness: = lookup_impl_witness %Int.7ff11f.1, @Inc [symbolic] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Int.7ff11f.1, (%Inc.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Op.type.e3a: type = fn_type @Op.96 [concrete] +// CHECK:STDOUT: %Op.type.e3a: type = fn_type @Op.97 [concrete] // CHECK:STDOUT: %.15d: type = fn_type_with_self_type %Op.type.e3a, %Inc.facet [symbolic] // CHECK:STDOUT: %impl.elem0.181: %.15d = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.be7: = specific_impl_function %impl.elem0.181, @Op.96(%Inc.facet) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.be7: = specific_impl_function %impl.elem0.181, @Op.97(%Inc.facet) [symbolic] // CHECK:STDOUT: %Some.type.fe1: type = fn_type @Some, @Optional(%Int.7ff11f.1) [symbolic] // CHECK:STDOUT: %Some.aae: %Some.type.fe1 = struct_value () [symbolic] // CHECK:STDOUT: %Some.specific_fn: = specific_function %Some.aae, @Some(%Int.7ff11f.1) [symbolic] @@ -870,21 +870,21 @@ fn Read() { // CHECK:STDOUT: %Destroy.facet.82c: %Destroy.type = facet_value %Optional.e9f, (%Destroy.lookup_impl_witness.f0d) [symbolic] // CHECK:STDOUT: %.485: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.82c [symbolic] // CHECK:STDOUT: %impl.elem0.c7c: %.485 = impl_witness_access %Destroy.lookup_impl_witness.f0d, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.ebe: = specific_impl_function %impl.elem0.c7c, @Op.95(%Destroy.facet.82c) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.ebe: = specific_impl_function %impl.elem0.c7c, @Op.96(%Destroy.facet.82c) [symbolic] // CHECK:STDOUT: %ptr.d1d: type = ptr_type %Optional.e9f [symbolic] // CHECK:STDOUT: %require_complete.c68: = require_complete_type %ptr.d1d [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.f03: = lookup_impl_witness %Int.7ff11f.1, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.96a: %Destroy.type = facet_value %Int.7ff11f.1, (%Destroy.lookup_impl_witness.f03) [symbolic] // CHECK:STDOUT: %.f67: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.96a [symbolic] // CHECK:STDOUT: %impl.elem0.4dc: %.f67 = impl_witness_access %Destroy.lookup_impl_witness.f03, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.f8f: = specific_impl_function %impl.elem0.4dc, @Op.95(%Destroy.facet.96a) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.f8f: = specific_impl_function %impl.elem0.4dc, @Op.96(%Destroy.facet.96a) [symbolic] // CHECK:STDOUT: %None.type.8c4: type = fn_type @None, @Optional(%Int.7ff11f.1) [symbolic] // CHECK:STDOUT: %None.7a7: %None.type.8c4 = struct_value () [symbolic] // CHECK:STDOUT: %None.specific_fn: = specific_function %None.7a7, @None(%Int.7ff11f.1) [symbolic] -// CHECK:STDOUT: %Op.type.2d1: type = fn_type @Op.97, @Destroy.impl(%IntRange.365) [concrete] +// CHECK:STDOUT: %Op.type.2d1: type = fn_type @Op.1, @Destroy.impl(%IntRange.365) [concrete] // CHECK:STDOUT: %Op.fa8: %Op.type.2d1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.049: type = ptr_type %IntRange.365 [concrete] -// CHECK:STDOUT: %Op.specific_fn.df8: = specific_function %Op.fa8, @Op.97(%IntRange.365) [concrete] +// CHECK:STDOUT: %Op.specific_fn.df8: = specific_function %Op.fa8, @Op.1(%IntRange.365) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1008,7 +1008,7 @@ fn Read() { // CHECK:STDOUT: %.loc6_3: ref %IntRange.365 = splice_block %x.var {} // CHECK:STDOUT: %impl.elem0: %.d6a = impl_witness_access constants.%ImplicitAs.impl_witness.e34, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc6_31.1: = bound_method %y.ref, %impl.elem0 [symbolic = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_31.2: = bound_method %y.ref, %specific_fn [symbolic = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc6_31.2(%y.ref) [symbolic = constants.%int.convert_checked.58b] // CHECK:STDOUT: %.loc6_31.1: %i32 = value_of_initializer %int.convert_checked [symbolic = constants.%int.convert_checked.58b] @@ -1022,12 +1022,12 @@ fn Read() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %IntRange.365 = bind_name x, %x.var // CHECK:STDOUT: %Op.bound.loc6_3.1: = bound_method %.loc6_3, constants.%Op.fa8 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.fa8, @Op.97(constants.%IntRange.365) [concrete = constants.%Op.specific_fn.df8] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.fa8, @Op.1(constants.%IntRange.365) [concrete = constants.%Op.specific_fn.df8] // CHECK:STDOUT: %bound_method.loc6_3.1: = bound_method %.loc6_3, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc6_3.1: %ptr.049 = addr_of %.loc6_3 // CHECK:STDOUT: %no_op.loc6_3.1: init %empty_tuple.type = call %bound_method.loc6_3.1(%addr.loc6_3.1) // CHECK:STDOUT: %Op.bound.loc6_3.2: = bound_method %x.var, constants.%Op.fa8 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.fa8, @Op.97(constants.%IntRange.365) [concrete = constants.%Op.specific_fn.df8] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.fa8, @Op.1(constants.%IntRange.365) [concrete = constants.%Op.specific_fn.df8] // CHECK:STDOUT: %bound_method.loc6_3.2: = bound_method %x.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc6_3.2: %ptr.049 = addr_of %x.var // CHECK:STDOUT: %no_op.loc6_3.2: init %empty_tuple.type = call %bound_method.loc6_3.2(%addr.loc6_3.2) @@ -1098,7 +1098,7 @@ fn Read() { // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %Int, (%Inc.lookup_impl_witness) [symbolic = %Inc.facet (constants.%Inc.facet)] // CHECK:STDOUT: %.2: type = fn_type_with_self_type constants.%Op.type.e3a, %Inc.facet [symbolic = %.2 (constants.%.15d)] // CHECK:STDOUT: %impl.elem0.1: @Next.%.2 (%.15d) = impl_witness_access %Inc.lookup_impl_witness, element0 [symbolic = %impl.elem0.1 (constants.%impl.elem0.181)] -// CHECK:STDOUT: %specific_impl_fn.1: = specific_impl_function %impl.elem0.1, @Op.96(%Inc.facet) [symbolic = %specific_impl_fn.1 (constants.%specific_impl_fn.be7)] +// CHECK:STDOUT: %specific_impl_fn.1: = specific_impl_function %impl.elem0.1, @Op.97(%Inc.facet) [symbolic = %specific_impl_fn.1 (constants.%specific_impl_fn.be7)] // CHECK:STDOUT: %Some.type: type = fn_type @Some, @Optional(%Int) [symbolic = %Some.type (constants.%Some.type.fe1)] // CHECK:STDOUT: %Some: @Next.%Some.type (%Some.type.fe1) = struct_value () [symbolic = %Some (constants.%Some.aae)] // CHECK:STDOUT: %Some.specific_fn: = specific_function %Some, @Some(%Int) [symbolic = %Some.specific_fn (constants.%Some.specific_fn)] @@ -1106,14 +1106,14 @@ fn Read() { // CHECK:STDOUT: %Destroy.facet.1: %Destroy.type = facet_value %Optional, (%Destroy.lookup_impl_witness.1) [symbolic = %Destroy.facet.1 (constants.%Destroy.facet.82c)] // CHECK:STDOUT: %.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet.1 [symbolic = %.3 (constants.%.485)] // CHECK:STDOUT: %impl.elem0.2: @Next.%.3 (%.485) = impl_witness_access %Destroy.lookup_impl_witness.1, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0.c7c)] -// CHECK:STDOUT: %specific_impl_fn.2: = specific_impl_function %impl.elem0.2, @Op.95(%Destroy.facet.1) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn.ebe)] +// CHECK:STDOUT: %specific_impl_fn.2: = specific_impl_function %impl.elem0.2, @Op.96(%Destroy.facet.1) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn.ebe)] // CHECK:STDOUT: %ptr.2: type = ptr_type %Optional [symbolic = %ptr.2 (constants.%ptr.d1d)] // CHECK:STDOUT: %require_complete.6: = require_complete_type %ptr.2 [symbolic = %require_complete.6 (constants.%require_complete.c68)] // CHECK:STDOUT: %Destroy.lookup_impl_witness.2: = lookup_impl_witness %Int, @Destroy [symbolic = %Destroy.lookup_impl_witness.2 (constants.%Destroy.lookup_impl_witness.f03)] // CHECK:STDOUT: %Destroy.facet.2: %Destroy.type = facet_value %Int, (%Destroy.lookup_impl_witness.2) [symbolic = %Destroy.facet.2 (constants.%Destroy.facet.96a)] // CHECK:STDOUT: %.4: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet.2 [symbolic = %.4 (constants.%.f67)] // CHECK:STDOUT: %impl.elem0.3: @Next.%.4 (%.f67) = impl_witness_access %Destroy.lookup_impl_witness.2, element0 [symbolic = %impl.elem0.3 (constants.%impl.elem0.4dc)] -// CHECK:STDOUT: %specific_impl_fn.3: = specific_impl_function %impl.elem0.3, @Op.95(%Destroy.facet.2) [symbolic = %specific_impl_fn.3 (constants.%specific_impl_fn.f8f)] +// CHECK:STDOUT: %specific_impl_fn.3: = specific_impl_function %impl.elem0.3, @Op.96(%Destroy.facet.2) [symbolic = %specific_impl_fn.3 (constants.%specific_impl_fn.f8f)] // CHECK:STDOUT: %None.type: type = fn_type @None, @Optional(%Int) [symbolic = %None.type (constants.%None.type.8c4)] // CHECK:STDOUT: %None: @Next.%None.type (%None.type.8c4) = struct_value () [symbolic = %None (constants.%None.7a7)] // CHECK:STDOUT: %None.specific_fn: = specific_function %None, @None(%Int) [symbolic = %None.specific_fn (constants.%None.specific_fn)] diff --git a/toolchain/check/testdata/for/basic.carbon b/toolchain/check/testdata/for/basic.carbon index 7d64a5db2c0b..7039a5f1323d 100644 --- a/toolchain/check/testdata/for/basic.carbon +++ b/toolchain/check/testdata/for/basic.carbon @@ -82,11 +82,11 @@ fn Run() { // CHECK:STDOUT: %HasValue.ada: %HasValue.type.b7a = struct_value () [concrete] // CHECK:STDOUT: %Get.type.130: type = fn_type @Get, @Optional(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Get.6e8: %Get.type.130 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.7e4: type = fn_type @Op.2, @Destroy.impl(%Optional.f9a) [concrete] +// CHECK:STDOUT: %Op.type.7e4: type = fn_type @Op.1, @Destroy.impl(%Optional.f9a) [concrete] // CHECK:STDOUT: %Op.466: %Op.type.7e4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.511: type = ptr_type %Optional.f9a [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %Body.type: type = fn_type @Body [concrete] // CHECK:STDOUT: %Body: %Body.type = struct_value () [concrete] @@ -97,7 +97,7 @@ fn Run() { // CHECK:STDOUT: %.708: type = fn_type_with_self_type %Next.type.941, %Iterate.facet.d50 [concrete] // CHECK:STDOUT: %HasValue.specific_fn: = specific_function %HasValue.ada, @HasValue(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.6e8, @Get(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Op.type.8d6: type = fn_type @Op.2, @Destroy.impl(%TrivialRange) [concrete] +// CHECK:STDOUT: %Op.type.8d6: type = fn_type @Op.1, @Destroy.impl(%TrivialRange) [concrete] // CHECK:STDOUT: %Op.90d: %Op.type.8d6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.41d: type = ptr_type %TrivialRange [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/for/pattern.carbon b/toolchain/check/testdata/for/pattern.carbon index 44e55954efb2..80fb0c9ab800 100644 --- a/toolchain/check/testdata/for/pattern.carbon +++ b/toolchain/check/testdata/for/pattern.carbon @@ -138,8 +138,8 @@ fn Run() { // CHECK:STDOUT: %Make.74d: %Make.type.557 = struct_value () [concrete] // CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.74d, @Make(%C) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.1 [concrete] -// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.2, @Iterate.impl(%T) [symbolic] +// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.2 [concrete] +// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %NewCursor.ec1: %NewCursor.type.f5f = struct_value () [symbolic] // CHECK:STDOUT: %Next.type.264: type = fn_type @Next.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %Next.08e: %Next.type.264 = struct_value () [symbolic] @@ -148,13 +148,13 @@ fn Run() { // CHECK:STDOUT: %Get.type.b8f: type = fn_type @Get, @Optional(%T) [symbolic] // CHECK:STDOUT: %Get.9c8: %Get.type.b8f = struct_value () [symbolic] // CHECK:STDOUT: %Iterate.impl_witness.52a: = impl_witness imports.%Iterate.impl_witness_table, @Iterate.impl(%C) [concrete] -// CHECK:STDOUT: %NewCursor.type.951: type = fn_type @NewCursor.2, @Iterate.impl(%C) [concrete] +// CHECK:STDOUT: %NewCursor.type.951: type = fn_type @NewCursor.1, @Iterate.impl(%C) [concrete] // CHECK:STDOUT: %NewCursor.535: %NewCursor.type.951 = struct_value () [concrete] // CHECK:STDOUT: %Next.type.63f: type = fn_type @Next.1, @Iterate.impl(%C) [concrete] // CHECK:STDOUT: %Next.899: %Next.type.63f = struct_value () [concrete] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.cc8, (%Iterate.impl_witness.52a) [concrete] // CHECK:STDOUT: %.2f6: type = fn_type_with_self_type %NewCursor.type.427, %Iterate.facet [concrete] -// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.535, @NewCursor.2(%C) [concrete] +// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.535, @NewCursor.1(%C) [concrete] // CHECK:STDOUT: %Next.type.941: type = fn_type @Next.2 [concrete] // CHECK:STDOUT: %.5d5: type = fn_type_with_self_type %Next.type.941, %Iterate.facet [concrete] // CHECK:STDOUT: %Optional.cf0: type = class_type @Optional, @Optional(%C) [concrete] @@ -165,15 +165,15 @@ fn Run() { // CHECK:STDOUT: %Get.9c1: %Get.type.115 = struct_value () [concrete] // CHECK:STDOUT: %HasValue.specific_fn: = specific_function %HasValue.513, @HasValue(%C) [concrete] // CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.9c1, @Get(%C) [concrete] -// CHECK:STDOUT: %Op.type.f77: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.f77: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.01c: %Op.type.f77 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.e93: type = fn_type @Op.2, @Destroy.impl(%Optional.cf0) [concrete] +// CHECK:STDOUT: %Op.type.e93: type = fn_type @Op.1, @Destroy.impl(%Optional.cf0) [concrete] // CHECK:STDOUT: %Op.a97: %Op.type.e93 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8e6: type = ptr_type %Optional.cf0 [concrete] -// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.ca6: %Op.type.8b2 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.699: type = fn_type @Op.2, @Destroy.impl(%EmptyRange.cc8) [concrete] +// CHECK:STDOUT: %Op.type.699: type = fn_type @Op.1, @Destroy.impl(%EmptyRange.cc8) [concrete] // CHECK:STDOUT: %Op.d12: %Op.type.699 = struct_value () [concrete] // CHECK:STDOUT: %ptr.35d: type = ptr_type %EmptyRange.cc8 [concrete] // CHECK:STDOUT: } @@ -206,7 +206,7 @@ fn Run() { // CHECK:STDOUT: %.loc12_35.2: ref %EmptyRange.cc8 = temporary %.loc12_35.1, %Make.call // CHECK:STDOUT: %impl.elem2: %.2f6 = impl_witness_access constants.%Iterate.impl_witness.52a, element2 [concrete = constants.%NewCursor.535] // CHECK:STDOUT: %bound_method.loc12_36.1: = bound_method %.loc12_35.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc12_36.1: = specific_function %impl.elem2, @NewCursor.2(constants.%C) [concrete = constants.%NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc12_36.1: = specific_function %impl.elem2, @NewCursor.1(constants.%C) [concrete = constants.%NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc12_36.2: = bound_method %.loc12_35.2, %specific_fn.loc12_36.1 // CHECK:STDOUT: %.loc12_35.3: %EmptyRange.cc8 = bind_value %.loc12_35.2 // CHECK:STDOUT: %NewCursor.call: init %empty_struct_type = call %bound_method.loc12_36.2(%.loc12_35.3) @@ -298,8 +298,8 @@ fn Run() { // CHECK:STDOUT: %Make.74d: %Make.type.557 = struct_value () [concrete] // CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.74d, @Make(%C) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.1 [concrete] -// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.2, @Iterate.impl(%T) [symbolic] +// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.2 [concrete] +// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %NewCursor.ec1: %NewCursor.type.f5f = struct_value () [symbolic] // CHECK:STDOUT: %Next.type.264: type = fn_type @Next.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %Next.08e: %Next.type.264 = struct_value () [symbolic] @@ -308,13 +308,13 @@ fn Run() { // CHECK:STDOUT: %Get.type.b8f: type = fn_type @Get, @Optional(%T) [symbolic] // CHECK:STDOUT: %Get.9c8: %Get.type.b8f = struct_value () [symbolic] // CHECK:STDOUT: %Iterate.impl_witness.52a: = impl_witness imports.%Iterate.impl_witness_table, @Iterate.impl(%C) [concrete] -// CHECK:STDOUT: %NewCursor.type.951: type = fn_type @NewCursor.2, @Iterate.impl(%C) [concrete] +// CHECK:STDOUT: %NewCursor.type.951: type = fn_type @NewCursor.1, @Iterate.impl(%C) [concrete] // CHECK:STDOUT: %NewCursor.535: %NewCursor.type.951 = struct_value () [concrete] // CHECK:STDOUT: %Next.type.63f: type = fn_type @Next.1, @Iterate.impl(%C) [concrete] // CHECK:STDOUT: %Next.899: %Next.type.63f = struct_value () [concrete] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.cc8, (%Iterate.impl_witness.52a) [concrete] // CHECK:STDOUT: %.2f6: type = fn_type_with_self_type %NewCursor.type.427, %Iterate.facet [concrete] -// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.535, @NewCursor.2(%C) [concrete] +// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.535, @NewCursor.1(%C) [concrete] // CHECK:STDOUT: %Next.type.941: type = fn_type @Next.2 [concrete] // CHECK:STDOUT: %.5d5: type = fn_type_with_self_type %Next.type.941, %Iterate.facet [concrete] // CHECK:STDOUT: %Optional.cf0: type = class_type @Optional, @Optional(%C) [concrete] @@ -325,14 +325,14 @@ fn Run() { // CHECK:STDOUT: %Get.9c1: %Get.type.115 = struct_value () [concrete] // CHECK:STDOUT: %HasValue.specific_fn: = specific_function %HasValue.513, @HasValue(%C) [concrete] // CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.9c1, @Get(%C) [concrete] -// CHECK:STDOUT: %Op.type.f77: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.f77: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.01c: %Op.type.f77 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.e93: type = fn_type @Op.2, @Destroy.impl(%Optional.cf0) [concrete] +// CHECK:STDOUT: %Op.type.e93: type = fn_type @Op.1, @Destroy.impl(%Optional.cf0) [concrete] // CHECK:STDOUT: %Op.a97: %Op.type.e93 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8e6: type = ptr_type %Optional.cf0 [concrete] -// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.ca6: %Op.type.8b2 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.699: type = fn_type @Op.2, @Destroy.impl(%EmptyRange.cc8) [concrete] +// CHECK:STDOUT: %Op.type.699: type = fn_type @Op.1, @Destroy.impl(%EmptyRange.cc8) [concrete] // CHECK:STDOUT: %Op.d12: %Op.type.699 = struct_value () [concrete] // CHECK:STDOUT: %ptr.35d: type = ptr_type %EmptyRange.cc8 [concrete] // CHECK:STDOUT: } @@ -366,7 +366,7 @@ fn Run() { // CHECK:STDOUT: %.loc12_39.2: ref %EmptyRange.cc8 = temporary %.loc12_39.1, %Make.call // CHECK:STDOUT: %impl.elem2: %.2f6 = impl_witness_access constants.%Iterate.impl_witness.52a, element2 [concrete = constants.%NewCursor.535] // CHECK:STDOUT: %bound_method.loc12_40.1: = bound_method %.loc12_39.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc12_40.1: = specific_function %impl.elem2, @NewCursor.2(constants.%C) [concrete = constants.%NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc12_40.1: = specific_function %impl.elem2, @NewCursor.1(constants.%C) [concrete = constants.%NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc12_40.2: = bound_method %.loc12_39.2, %specific_fn.loc12_40.1 // CHECK:STDOUT: %.loc12_39.3: %EmptyRange.cc8 = bind_value %.loc12_39.2 // CHECK:STDOUT: %NewCursor.call: init %empty_struct_type = call %bound_method.loc12_40.2(%.loc12_39.3) @@ -467,8 +467,8 @@ fn Run() { // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] // CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.743, @Make(%tuple.type.784) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.1 [concrete] -// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.2, @Iterate.impl(%T) [symbolic] +// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.2 [concrete] +// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %NewCursor.ec1: %NewCursor.type.f5f = struct_value () [symbolic] // CHECK:STDOUT: %Next.type.264: type = fn_type @Next.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %Next.08e: %Next.type.264 = struct_value () [symbolic] @@ -477,13 +477,13 @@ fn Run() { // CHECK:STDOUT: %Get.type.b8f: type = fn_type @Get, @Optional(%T) [symbolic] // CHECK:STDOUT: %Get.9c8: %Get.type.b8f = struct_value () [symbolic] // CHECK:STDOUT: %Iterate.impl_witness.6db: = impl_witness imports.%Iterate.impl_witness_table, @Iterate.impl(%tuple.type.784) [concrete] -// CHECK:STDOUT: %NewCursor.type.d32: type = fn_type @NewCursor.2, @Iterate.impl(%tuple.type.784) [concrete] +// CHECK:STDOUT: %NewCursor.type.d32: type = fn_type @NewCursor.1, @Iterate.impl(%tuple.type.784) [concrete] // CHECK:STDOUT: %NewCursor.763: %NewCursor.type.d32 = struct_value () [concrete] // CHECK:STDOUT: %Next.type.482: type = fn_type @Next.1, @Iterate.impl(%tuple.type.784) [concrete] // CHECK:STDOUT: %Next.e60: %Next.type.482 = struct_value () [concrete] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.2f3, (%Iterate.impl_witness.6db) [concrete] // CHECK:STDOUT: %.2bf: type = fn_type_with_self_type %NewCursor.type.427, %Iterate.facet [concrete] -// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.763, @NewCursor.2(%tuple.type.784) [concrete] +// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.763, @NewCursor.1(%tuple.type.784) [concrete] // CHECK:STDOUT: %Next.type.941: type = fn_type @Next.2 [concrete] // CHECK:STDOUT: %.6aa: type = fn_type_with_self_type %Next.type.941, %Iterate.facet [concrete] // CHECK:STDOUT: %Optional.79e: type = class_type @Optional, @Optional(%tuple.type.784) [concrete] @@ -495,14 +495,14 @@ fn Run() { // CHECK:STDOUT: %ptr.b85: type = ptr_type %tuple.type.784 [concrete] // CHECK:STDOUT: %HasValue.specific_fn: = specific_function %HasValue.4f9, @HasValue(%tuple.type.784) [concrete] // CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.d99, @Get(%tuple.type.784) [concrete] -// CHECK:STDOUT: %Op.type.973: type = fn_type @Op.2, @Destroy.impl(%tuple.type.784) [concrete] +// CHECK:STDOUT: %Op.type.973: type = fn_type @Op.1, @Destroy.impl(%tuple.type.784) [concrete] // CHECK:STDOUT: %Op.149: %Op.type.973 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.2, @Destroy.impl(%Optional.79e) [concrete] +// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.1, @Destroy.impl(%Optional.79e) [concrete] // CHECK:STDOUT: %Op.3ef: %Op.type.1cc = struct_value () [concrete] // CHECK:STDOUT: %ptr.07d: type = ptr_type %Optional.79e [concrete] -// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.ca6: %Op.type.8b2 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.f1e: type = fn_type @Op.2, @Destroy.impl(%EmptyRange.2f3) [concrete] +// CHECK:STDOUT: %Op.type.f1e: type = fn_type @Op.1, @Destroy.impl(%EmptyRange.2f3) [concrete] // CHECK:STDOUT: %Op.155: %Op.type.f1e = struct_value () [concrete] // CHECK:STDOUT: %ptr.5cf: type = ptr_type %EmptyRange.2f3 [concrete] // CHECK:STDOUT: } @@ -544,7 +544,7 @@ fn Run() { // CHECK:STDOUT: %.loc10_60.2: ref %EmptyRange.2f3 = temporary %.loc10_60.1, %Make.call // CHECK:STDOUT: %impl.elem2: %.2bf = impl_witness_access constants.%Iterate.impl_witness.6db, element2 [concrete = constants.%NewCursor.763] // CHECK:STDOUT: %bound_method.loc10_61.1: = bound_method %.loc10_60.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc10_61.1: = specific_function %impl.elem2, @NewCursor.2(constants.%tuple.type.784) [concrete = constants.%NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_61.1: = specific_function %impl.elem2, @NewCursor.1(constants.%tuple.type.784) [concrete = constants.%NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.2: = bound_method %.loc10_60.2, %specific_fn.loc10_61.1 // CHECK:STDOUT: %.loc10_60.3: %EmptyRange.2f3 = bind_value %.loc10_60.2 // CHECK:STDOUT: %NewCursor.call: init %empty_struct_type = call %bound_method.loc10_61.2(%.loc10_60.3) @@ -652,8 +652,8 @@ fn Run() { // CHECK:STDOUT: %Make.d4f: %Make.type.829 = struct_value () [concrete] // CHECK:STDOUT: %Make.specific_fn: = specific_function %Make.d4f, @Make(%tuple.type.56b) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] -// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.1 [concrete] -// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.2, @Iterate.impl(%T) [symbolic] +// CHECK:STDOUT: %NewCursor.type.427: type = fn_type @NewCursor.2 [concrete] +// CHECK:STDOUT: %NewCursor.type.f5f: type = fn_type @NewCursor.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %NewCursor.ec1: %NewCursor.type.f5f = struct_value () [symbolic] // CHECK:STDOUT: %Next.type.264: type = fn_type @Next.1, @Iterate.impl(%T) [symbolic] // CHECK:STDOUT: %Next.08e: %Next.type.264 = struct_value () [symbolic] @@ -662,13 +662,13 @@ fn Run() { // CHECK:STDOUT: %Get.type.b8f: type = fn_type @Get, @Optional(%T) [symbolic] // CHECK:STDOUT: %Get.9c8: %Get.type.b8f = struct_value () [symbolic] // CHECK:STDOUT: %Iterate.impl_witness.627: = impl_witness imports.%Iterate.impl_witness_table, @Iterate.impl(%tuple.type.56b) [concrete] -// CHECK:STDOUT: %NewCursor.type.59c: type = fn_type @NewCursor.2, @Iterate.impl(%tuple.type.56b) [concrete] +// CHECK:STDOUT: %NewCursor.type.59c: type = fn_type @NewCursor.1, @Iterate.impl(%tuple.type.56b) [concrete] // CHECK:STDOUT: %NewCursor.263: %NewCursor.type.59c = struct_value () [concrete] // CHECK:STDOUT: %Next.type.70f: type = fn_type @Next.1, @Iterate.impl(%tuple.type.56b) [concrete] // CHECK:STDOUT: %Next.852: %Next.type.70f = struct_value () [concrete] // CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.90a, (%Iterate.impl_witness.627) [concrete] // CHECK:STDOUT: %.8bd: type = fn_type_with_self_type %NewCursor.type.427, %Iterate.facet [concrete] -// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.263, @NewCursor.2(%tuple.type.56b) [concrete] +// CHECK:STDOUT: %NewCursor.specific_fn: = specific_function %NewCursor.263, @NewCursor.1(%tuple.type.56b) [concrete] // CHECK:STDOUT: %Next.type.941: type = fn_type @Next.2 [concrete] // CHECK:STDOUT: %.8d0: type = fn_type_with_self_type %Next.type.941, %Iterate.facet [concrete] // CHECK:STDOUT: %Optional.657: type = class_type @Optional, @Optional(%tuple.type.56b) [concrete] @@ -679,15 +679,15 @@ fn Run() { // CHECK:STDOUT: %Get.8a7: %Get.type.4a4 = struct_value () [concrete] // CHECK:STDOUT: %HasValue.specific_fn: = specific_function %HasValue.bef, @HasValue(%tuple.type.56b) [concrete] // CHECK:STDOUT: %Get.specific_fn: = specific_function %Get.8a7, @Get(%tuple.type.56b) [concrete] -// CHECK:STDOUT: %Op.type.65e: type = fn_type @Op.2, @Destroy.impl(%tuple.type.56b) [concrete] +// CHECK:STDOUT: %Op.type.65e: type = fn_type @Op.1, @Destroy.impl(%tuple.type.56b) [concrete] // CHECK:STDOUT: %Op.587: %Op.type.65e = struct_value () [concrete] // CHECK:STDOUT: %ptr.9f0: type = ptr_type %tuple.type.56b [concrete] -// CHECK:STDOUT: %Op.type.400: type = fn_type @Op.2, @Destroy.impl(%Optional.657) [concrete] +// CHECK:STDOUT: %Op.type.400: type = fn_type @Op.1, @Destroy.impl(%Optional.657) [concrete] // CHECK:STDOUT: %Op.5ec: %Op.type.400 = struct_value () [concrete] // CHECK:STDOUT: %ptr.036: type = ptr_type %Optional.657 [concrete] -// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.8b2: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.ca6: %Op.type.8b2 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.cee: type = fn_type @Op.2, @Destroy.impl(%EmptyRange.90a) [concrete] +// CHECK:STDOUT: %Op.type.cee: type = fn_type @Op.1, @Destroy.impl(%EmptyRange.90a) [concrete] // CHECK:STDOUT: %Op.323: %Op.type.cee = struct_value () [concrete] // CHECK:STDOUT: %ptr.f9b: type = ptr_type %EmptyRange.90a [concrete] // CHECK:STDOUT: } @@ -725,7 +725,7 @@ fn Run() { // CHECK:STDOUT: %.loc12_48.2: ref %EmptyRange.90a = temporary %.loc12_48.1, %Make.call // CHECK:STDOUT: %impl.elem2: %.8bd = impl_witness_access constants.%Iterate.impl_witness.627, element2 [concrete = constants.%NewCursor.263] // CHECK:STDOUT: %bound_method.loc12_49.1: = bound_method %.loc12_48.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc12_49.1: = specific_function %impl.elem2, @NewCursor.2(constants.%tuple.type.56b) [concrete = constants.%NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc12_49.1: = specific_function %impl.elem2, @NewCursor.1(constants.%tuple.type.56b) [concrete = constants.%NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc12_49.2: = bound_method %.loc12_48.2, %specific_fn.loc12_49.1 // CHECK:STDOUT: %.loc12_48.3: %EmptyRange.90a = bind_value %.loc12_48.2 // CHECK:STDOUT: %NewCursor.call: init %empty_struct_type = call %bound_method.loc12_49.2(%.loc12_48.3) diff --git a/toolchain/check/testdata/function/builtin/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/call_from_operator.carbon index 97809c406ca7..2de57054f9f8 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -174,17 +174,17 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %AddWith.decl: %AddWith.type.b35 = interface_decl @AddWith [concrete = constants.%AddWith.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_19.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_19.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %As.decl: %As.type.b51 = interface_decl @As [concrete = constants.%As.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc11_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.2 (constants.%T)] +// CHECK:STDOUT: %T.loc11_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.96f = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @AddWith.impl [concrete] {} { // CHECK:STDOUT: %int_32.loc19_6: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -244,15 +244,15 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.impl_witness.loc31: = impl_witness %ImplicitAs.impl_witness_table.loc31 [concrete = constants.%ImplicitAs.impl_witness.95b] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @AddWith(%T.loc7_19.1: type) { -// CHECK:STDOUT: %T.loc7_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_19.2 (constants.%T)] +// CHECK:STDOUT: generic interface @AddWith(%T.loc7_19.2: type) { +// CHECK:STDOUT: %T.loc7_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_19.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc7_19.2)> [symbolic = %AddWith.type (constants.%AddWith.type.bc7)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc7_19.1)> [symbolic = %AddWith.type (constants.%AddWith.type.bc7)] // CHECK:STDOUT: %Self.2: @AddWith.%AddWith.type (%AddWith.type.bc7) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.deb)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op.loc8, @AddWith(%T.loc7_19.2) [symbolic = %Op.type (constants.%Op.type.5b7)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.loc8, @AddWith(%T.loc7_19.1) [symbolic = %Op.type (constants.%Op.type.5b7)] // CHECK:STDOUT: %Op: @AddWith.%Op.type (%Op.type.5b7) = struct_value () [symbolic = %Op (constants.%Op.037)] -// CHECK:STDOUT: %AddWith.assoc_type: type = assoc_entity_type @AddWith, @AddWith(%T.loc7_19.2) [symbolic = %AddWith.assoc_type (constants.%AddWith.assoc_type.36e)] +// CHECK:STDOUT: %AddWith.assoc_type: type = assoc_entity_type @AddWith, @AddWith(%T.loc7_19.1) [symbolic = %AddWith.assoc_type (constants.%AddWith.assoc_type.36e)] // CHECK:STDOUT: %assoc0.loc8_41.2: @AddWith.%AddWith.assoc_type (%AddWith.assoc_type.36e) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc8_41.2 (constants.%assoc0.adf)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -267,26 +267,26 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_37.1: @Op.loc8.%AddWith.type (%AddWith.type.bc7) = specific_constant @AddWith.%Self.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.deb)] // CHECK:STDOUT: %Self.ref.loc8_37: @Op.loc8.%AddWith.type (%AddWith.type.bc7) = name_ref Self, %.loc8_37.1 [symbolic = %Self (constants.%Self.deb)] -// CHECK:STDOUT: %Self.as_type.loc8_37: type = facet_access_type %Self.ref.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] -// CHECK:STDOUT: %.loc8_37.2: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] -// CHECK:STDOUT: %self.param: @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc) = value_param call_param0 -// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] { +// CHECK:STDOUT: %Self.as_type.loc8_37: type = facet_access_type %Self.ref.loc8_37 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] +// CHECK:STDOUT: %.loc8_37.2: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] +// CHECK:STDOUT: %self.param: @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc) = value_param call_param0 +// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.3 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] { // CHECK:STDOUT: %.loc8_15.2: @Op.loc8.%AddWith.type (%AddWith.type.bc7) = specific_constant @AddWith.%Self.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.deb)] // CHECK:STDOUT: %Self.ref.loc8_15: @Op.loc8.%AddWith.type (%AddWith.type.bc7) = name_ref Self, %.loc8_15.2 [symbolic = %Self (constants.%Self.deb)] -// CHECK:STDOUT: %Self.as_type.loc8_15.2: type = facet_access_type %Self.ref.loc8_15 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] -// CHECK:STDOUT: %.loc8_15.3: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] +// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self.ref.loc8_15 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] +// CHECK:STDOUT: %.loc8_15.3: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15.1 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc) = value_param call_param1 -// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] { +// CHECK:STDOUT: %self: @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc) = value_param call_param1 +// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] { // CHECK:STDOUT: %.loc8_28.2: @Op.loc8.%AddWith.type (%AddWith.type.bc7) = specific_constant @AddWith.%Self.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.deb)] // CHECK:STDOUT: %Self.ref.loc8_28: @Op.loc8.%AddWith.type (%AddWith.type.bc7) = name_ref Self, %.loc8_28.2 [symbolic = %Self (constants.%Self.deb)] -// CHECK:STDOUT: %Self.as_type.loc8_28: type = facet_access_type %Self.ref.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] -// CHECK:STDOUT: %.loc8_28.3: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] +// CHECK:STDOUT: %Self.as_type.loc8_28: type = facet_access_type %Self.ref.loc8_28 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] +// CHECK:STDOUT: %.loc8_28.3: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc) = return_slot %return.param +// CHECK:STDOUT: %other: @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc8_41.1: @AddWith.%AddWith.assoc_type (%AddWith.assoc_type.36e) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc8_41.2 (constants.%assoc0.adf)] // CHECK:STDOUT: @@ -297,15 +297,15 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @As(%T.loc11_14.1: type) { -// CHECK:STDOUT: %T.loc11_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.2 (constants.%T)] +// CHECK:STDOUT: generic interface @As(%T.loc11_14.2: type) { +// CHECK:STDOUT: %T.loc11_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_14.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T.loc11_14.2)> [symbolic = %As.type (constants.%As.type.8ba)] +// CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T.loc11_14.1)> [symbolic = %As.type (constants.%As.type.8ba)] // CHECK:STDOUT: %Self.2: @As.%As.type (%As.type.8ba) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.b4e)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.loc12, @As(%T.loc11_14.2) [symbolic = %Convert.type (constants.%Convert.type.ad1)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.loc12, @As(%T.loc11_14.1) [symbolic = %Convert.type (constants.%Convert.type.ad1)] // CHECK:STDOUT: %Convert: @As.%Convert.type (%Convert.type.ad1) = struct_value () [symbolic = %Convert (constants.%Convert.0ed)] -// CHECK:STDOUT: %As.assoc_type: type = assoc_entity_type @As, @As(%T.loc11_14.2) [symbolic = %As.assoc_type (constants.%As.assoc_type.a21)] +// CHECK:STDOUT: %As.assoc_type: type = assoc_entity_type @As, @As(%T.loc11_14.1) [symbolic = %As.assoc_type (constants.%As.assoc_type.a21)] // CHECK:STDOUT: %assoc0.loc12_32.2: @As.%As.assoc_type (%As.assoc_type.a21) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc12_32.2 (constants.%assoc0.1d5)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -316,15 +316,15 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %return.patt: @Convert.loc12.%pattern_type.loc12_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Convert.loc12.%pattern_type.loc12_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_14.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Convert.loc12.%Self.as_type.loc12_20.1 (%Self.as_type.7f0) = value_param call_param0 -// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.7f0)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_14.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %self.param: @Convert.loc12.%Self.as_type.loc12_20.2 (%Self.as_type.7f0) = value_param call_param0 +// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.as_type.loc12_20.2 (constants.%Self.as_type.7f0)] { // CHECK:STDOUT: %.loc12_20.2: @Convert.loc12.%As.type (%As.type.8ba) = specific_constant @As.%Self.1, @As(constants.%T) [symbolic = %Self (constants.%Self.b4e)] // CHECK:STDOUT: %Self.ref: @Convert.loc12.%As.type (%As.type.8ba) = name_ref Self, %.loc12_20.2 [symbolic = %Self (constants.%Self.b4e)] -// CHECK:STDOUT: %Self.as_type.loc12_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.7f0)] -// CHECK:STDOUT: %.loc12_20.3: type = converted %Self.ref, %Self.as_type.loc12_20.2 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.7f0)] +// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_20.2 (constants.%Self.as_type.7f0)] +// CHECK:STDOUT: %.loc12_20.3: type = converted %Self.ref, %Self.as_type.loc12_20.1 [symbolic = %Self.as_type.loc12_20.2 (constants.%Self.as_type.7f0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Convert.loc12.%Self.as_type.loc12_20.1 (%Self.as_type.7f0) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Convert.loc12.%Self.as_type.loc12_20.2 (%Self.as_type.7f0) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Convert.loc12.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Convert.loc12.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -338,15 +338,15 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @ImplicitAs(%T.loc15_22.1: type) { -// CHECK:STDOUT: %T.loc15_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.2 (constants.%T)] +// CHECK:STDOUT: generic interface @ImplicitAs(%T.loc15_22.2: type) { +// CHECK:STDOUT: %T.loc15_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_22.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc15_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc15_22.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.0f3)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.loc16, @ImplicitAs(%T.loc15_22.2) [symbolic = %Convert.type (constants.%Convert.type.4cf)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert.loc16, @ImplicitAs(%T.loc15_22.1) [symbolic = %Convert.type (constants.%Convert.type.4cf)] // CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type.4cf) = struct_value () [symbolic = %Convert (constants.%Convert.147)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T.loc15_22.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.095)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T.loc15_22.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.095)] // CHECK:STDOUT: %assoc0.loc16_32.2: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.095) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc16_32.2 (constants.%assoc0.8f8)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -357,15 +357,15 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %return.patt: @Convert.loc16.%pattern_type.loc16_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Convert.loc16.%pattern_type.loc16_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_22.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Convert.loc16.%Self.as_type.loc16_20.1 (%Self.as_type.419) = value_param call_param0 -// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.419)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_22.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %self.param: @Convert.loc16.%Self.as_type.loc16_20.2 (%Self.as_type.419) = value_param call_param0 +// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.as_type.loc16_20.2 (constants.%Self.as_type.419)] { // CHECK:STDOUT: %.loc16_20.2: @Convert.loc16.%ImplicitAs.type (%ImplicitAs.type.07f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self.0f3)] // CHECK:STDOUT: %Self.ref: @Convert.loc16.%ImplicitAs.type (%ImplicitAs.type.07f) = name_ref Self, %.loc16_20.2 [symbolic = %Self (constants.%Self.0f3)] -// CHECK:STDOUT: %Self.as_type.loc16_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.419)] -// CHECK:STDOUT: %.loc16_20.3: type = converted %Self.ref, %Self.as_type.loc16_20.2 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.419)] +// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_20.2 (constants.%Self.as_type.419)] +// CHECK:STDOUT: %.loc16_20.3: type = converted %Self.ref, %Self.as_type.loc16_20.1 [symbolic = %Self.as_type.loc16_20.2 (constants.%Self.as_type.419)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Convert.loc16.%Self.as_type.loc16_20.1 (%Self.as_type.419) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Convert.loc16.%Self.as_type.loc16_20.2 (%Self.as_type.419) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Convert.loc16.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Convert.loc16.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -478,36 +478,36 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: fn @Int(%N.param: Core.IntLiteral) -> type = "int.make_type_signed"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.loc8(@AddWith.%T.loc7_19.1: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.bc7)) { +// CHECK:STDOUT: generic fn @Op.loc8(@AddWith.%T.loc7_19.2: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.bc7)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.bc7)] // CHECK:STDOUT: %Self: @Op.loc8.%AddWith.type (%AddWith.type.bc7) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.deb)] -// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.6cc)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.4a8)] +// CHECK:STDOUT: %Self.as_type.loc8_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.2 (constants.%Self.as_type.6cc)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.2 [symbolic = %pattern_type (constants.%pattern_type.4a8)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc), %other.param: @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc)) -> @Op.loc8.%Self.as_type.loc8_15.1 (%Self.as_type.6cc); +// CHECK:STDOUT: fn(%self.param: @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc), %other.param: @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc)) -> @Op.loc8.%Self.as_type.loc8_15.2 (%Self.as_type.6cc); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.loc12(@As.%T.loc11_14.1: type, @As.%Self.1: @As.%As.type (%As.type.8ba)) { +// CHECK:STDOUT: generic fn @Convert.loc12(@As.%T.loc11_14.2: type, @As.%Self.1: @As.%As.type (%As.type.8ba)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.8ba)] // CHECK:STDOUT: %Self: @Convert.loc12.%As.type (%As.type.8ba) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.b4e)] -// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.7f0)] -// CHECK:STDOUT: %pattern_type.loc12_14: type = pattern_type %Self.as_type.loc12_20.1 [symbolic = %pattern_type.loc12_14 (constants.%pattern_type.947)] +// CHECK:STDOUT: %Self.as_type.loc12_20.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.2 (constants.%Self.as_type.7f0)] +// CHECK:STDOUT: %pattern_type.loc12_14: type = pattern_type %Self.as_type.loc12_20.2 [symbolic = %pattern_type.loc12_14 (constants.%pattern_type.947)] // CHECK:STDOUT: %pattern_type.loc12_28: type = pattern_type %T [symbolic = %pattern_type.loc12_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Convert.loc12.%Self.as_type.loc12_20.1 (%Self.as_type.7f0)) -> @Convert.loc12.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Convert.loc12.%Self.as_type.loc12_20.2 (%Self.as_type.7f0)) -> @Convert.loc12.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert.loc16(@ImplicitAs.%T.loc15_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { +// CHECK:STDOUT: generic fn @Convert.loc16(@ImplicitAs.%T.loc15_22.2: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self: @Convert.loc16.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.0f3)] -// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.419)] -// CHECK:STDOUT: %pattern_type.loc16_14: type = pattern_type %Self.as_type.loc16_20.1 [symbolic = %pattern_type.loc16_14 (constants.%pattern_type.a93)] +// CHECK:STDOUT: %Self.as_type.loc16_20.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.2 (constants.%Self.as_type.419)] +// CHECK:STDOUT: %pattern_type.loc16_14: type = pattern_type %Self.as_type.loc16_20.2 [symbolic = %pattern_type.loc16_14 (constants.%pattern_type.a93)] // CHECK:STDOUT: %pattern_type.loc16_28: type = pattern_type %T [symbolic = %pattern_type.loc16_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Convert.loc16.%Self.as_type.loc16_20.1 (%Self.as_type.419)) -> @Convert.loc16.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Convert.loc16.%Self.as_type.loc16_20.2 (%Self.as_type.419)) -> @Convert.loc16.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.loc20(%self.param: %i32.builtin, %other.param: %i32.builtin) -> %i32.builtin = "int.sadd"; @@ -519,45 +519,45 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: fn @Convert.loc32(%self.param: %i32.builtin) -> Core.IntLiteral = "int.convert_checked"; // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%T) { -// CHECK:STDOUT: %T.loc7_19.2 => constants.%T +// CHECK:STDOUT: %T.loc7_19.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.loc8(constants.%T, constants.%Self.deb) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.bc7 // CHECK:STDOUT: %Self => constants.%Self.deb -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type.6cc +// CHECK:STDOUT: %Self.as_type.loc8_15.2 => constants.%Self.as_type.6cc // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4a8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(constants.%T) { -// CHECK:STDOUT: %T.loc11_14.2 => constants.%T +// CHECK:STDOUT: %T.loc11_14.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert.loc12(constants.%T, constants.%Self.b4e) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %As.type => constants.%As.type.8ba // CHECK:STDOUT: %Self => constants.%Self.b4e -// CHECK:STDOUT: %Self.as_type.loc12_20.1 => constants.%Self.as_type.7f0 +// CHECK:STDOUT: %Self.as_type.loc12_20.2 => constants.%Self.as_type.7f0 // CHECK:STDOUT: %pattern_type.loc12_14 => constants.%pattern_type.947 // CHECK:STDOUT: %pattern_type.loc12_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%T) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%T +// CHECK:STDOUT: %T.loc15_22.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert.loc16(constants.%T, constants.%Self.0f3) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f // CHECK:STDOUT: %Self => constants.%Self.0f3 -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%Self.as_type.419 +// CHECK:STDOUT: %Self.as_type.loc16_20.2 => constants.%Self.as_type.419 // CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.a93 // CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%i32.builtin) { -// CHECK:STDOUT: %T.loc7_19.2 => constants.%i32.builtin +// CHECK:STDOUT: %T.loc7_19.1 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.49d @@ -572,12 +572,12 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.49d // CHECK:STDOUT: %Self => constants.%AddWith.facet -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%i32.builtin +// CHECK:STDOUT: %Self.as_type.loc8_15.2 => constants.%i32.builtin // CHECK:STDOUT: %pattern_type => constants.%pattern_type.956 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(constants.%i32.builtin) { -// CHECK:STDOUT: %T.loc11_14.2 => constants.%i32.builtin +// CHECK:STDOUT: %T.loc11_14.1 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %As.type => constants.%As.type.a09 @@ -592,13 +592,13 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: %As.type => constants.%As.type.a09 // CHECK:STDOUT: %Self => constants.%As.facet -// CHECK:STDOUT: %Self.as_type.loc12_20.1 => Core.IntLiteral +// CHECK:STDOUT: %Self.as_type.loc12_20.2 => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc12_14 => constants.%pattern_type.dc0 // CHECK:STDOUT: %pattern_type.loc12_28 => constants.%pattern_type.956 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%i32.builtin) { -// CHECK:STDOUT: %T.loc15_22.2 => constants.%i32.builtin +// CHECK:STDOUT: %T.loc15_22.1 => constants.%i32.builtin // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.11a @@ -613,13 +613,13 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.11a // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.bcb -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => Core.IntLiteral +// CHECK:STDOUT: %Self.as_type.loc16_20.2 => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.dc0 // CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.956 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(Core.IntLiteral) { -// CHECK:STDOUT: %T.loc15_22.2 => Core.IntLiteral +// CHECK:STDOUT: %T.loc15_22.1 => Core.IntLiteral // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fc @@ -634,7 +634,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => Core.IntLiteral // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fc // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.a85 -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%i32.builtin +// CHECK:STDOUT: %Self.as_type.loc16_20.2 => constants.%i32.builtin // CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.956 // CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.dc0 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index 307c90f1a25b..e77260b332bb 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -186,24 +186,24 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %return.param_patt: @F.loc16.%pattern_type (%pattern_type.6de) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc16_36: type = facet_access_type %Self.ref.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc16_36: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %self.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %Self.as_type.loc16_36: type = facet_access_type %Self.ref.loc16_36 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc16_36: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %self.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] { // CHECK:STDOUT: %Self.ref.loc16_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.1 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70) = value_param call_param1 -// CHECK:STDOUT: %.loc16_27.1: type = splice_block %.loc16_27.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %self: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70) = value_param call_param1 +// CHECK:STDOUT: %.loc16_27.1: type = splice_block %.loc16_27.2 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] { // CHECK:STDOUT: %Self.ref.loc16_27: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc16_27: type = facet_access_type %Self.ref.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc16_27.2: type = converted %Self.ref.loc16_27, %Self.as_type.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %Self.as_type.loc16_27: type = facet_access_type %Self.ref.loc16_27 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc16_27.2: type = converted %Self.ref.loc16_27, %Self.as_type.loc16_27 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70) = out_param call_param2 -// CHECK:STDOUT: %return: ref @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70) = return_slot %return.param +// CHECK:STDOUT: %other: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70) = out_param call_param2 +// CHECK:STDOUT: %return: ref @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.82e] // CHECK:STDOUT: @@ -247,23 +247,23 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc16(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.6de)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.2 [symbolic = %pattern_type (constants.%pattern_type.6de)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70), %other.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70)) -> @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.b70); +// CHECK:STDOUT: fn(%self.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70), %other.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70)) -> @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.b70); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc20(%self.param: %i32, %other.param: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%Self.826) { // CHECK:STDOUT: %Self => constants.%Self.826 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.b70 +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%Self.as_type.b70 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/alias.carbon b/toolchain/check/testdata/function/call/alias.carbon index bfc78145fc31..14563c8a3f32 100644 --- a/toolchain/check/testdata/function/call/alias.carbon +++ b/toolchain/check/testdata/function/call/alias.carbon @@ -31,10 +31,10 @@ fn Main() { // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -92,7 +92,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %empty_tuple.type = bind_name b, %b.var // CHECK:STDOUT: %Op.bound: = bound_method %b.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %b.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %b.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/function/call/fail_not_callable.carbon b/toolchain/check/testdata/function/call/fail_not_callable.carbon index 584b90acd3a9..423509e7a0e7 100644 --- a/toolchain/check/testdata/function/call/fail_not_callable.carbon +++ b/toolchain/check/testdata/function/call/fail_not_callable.carbon @@ -33,10 +33,10 @@ fn Run() { // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %str: String = string_literal "hello" [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.2(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,7 +74,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %i32 = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon index a9454eb0e1bd..8db28f8f0713 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -46,10 +46,10 @@ fn Run() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -111,7 +111,7 @@ fn Run() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %i32 = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index a4c2f62160aa..0dc43a2b89ea 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -37,24 +37,24 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -116,7 +116,7 @@ fn Main() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_21.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_21.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc20_21.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc20_21.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -129,7 +129,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %Op.bound: = bound_method %b.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_3: = bound_method %b.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %b.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc20_3(%addr) diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index 08dfb2af4233..cb23d4b54a05 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -41,17 +41,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %tuple: %tuple.type.a1c = tuple_value (%int_1.5d2) [concrete] @@ -61,10 +61,10 @@ fn Main() { // CHECK:STDOUT: %bound_method.efa: = bound_method %int_6.462, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_6.e56: %i32 = int_value 6 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.438: type = fn_type @Op.3, @Destroy.impl(%tuple.type.a1c) [concrete] +// CHECK:STDOUT: %Op.type.438: type = fn_type @Op.1, @Destroy.impl(%tuple.type.a1c) [concrete] // CHECK:STDOUT: %Op.c8e: %Op.type.438 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0b7: type = ptr_type %tuple.type.a1c [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.c8e, @Op.3(%tuple.type.a1c) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.c8e, @Op.1(%tuple.type.a1c) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,7 +127,7 @@ fn Main() { // CHECK:STDOUT: %.loc18_22.1: %tuple.type.985 = tuple_literal (%int_1) // CHECK:STDOUT: %impl.elem0.loc18: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_22.1: = bound_method %int_1, %impl.elem0.loc18 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_22.2: = bound_method %int_1, %specific_fn.loc18 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %bound_method.loc18_22.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_22.2: init %i32 = converted %int_1, %int.convert_checked.loc18 [concrete = constants.%int_1.5d2] @@ -149,14 +149,14 @@ fn Main() { // CHECK:STDOUT: %.loc20_8: %i32 = bind_value %tuple.elem0 // CHECK:STDOUT: %impl.elem0.loc20: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_12.1: = bound_method %int_6, %impl.elem0.loc20 [concrete = constants.%Convert.bound.ce9] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_12.2: = bound_method %int_6, %specific_fn.loc20 [concrete = constants.%bound_method.efa] // CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %bound_method.loc20_12.2(%int_6) [concrete = constants.%int_6.e56] // CHECK:STDOUT: %.loc20_12.1: %i32 = value_of_initializer %int.convert_checked.loc20 [concrete = constants.%int_6.e56] // CHECK:STDOUT: %.loc20_12.2: %i32 = converted %int_6, %.loc20_12.1 [concrete = constants.%int_6.e56] // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc20_8, %.loc20_12.2) // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.c8e -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.c8e, @Op.3(constants.%tuple.type.a1c) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.c8e, @Op.1(constants.%tuple.type.a1c) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.0b7 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc18_3(%addr) diff --git a/toolchain/check/testdata/function/call/params_one.carbon b/toolchain/check/testdata/function/call/params_one.carbon index 427f47454f29..496d4e64014f 100644 --- a/toolchain/check/testdata/function/call/params_one.carbon +++ b/toolchain/check/testdata/function/call/params_one.carbon @@ -35,17 +35,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -95,7 +95,7 @@ fn Main() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc18_7.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/function/call/params_one_comma.carbon b/toolchain/check/testdata/function/call/params_one_comma.carbon index 25b46b2206e8..11a39c9a3b1a 100644 --- a/toolchain/check/testdata/function/call/params_one_comma.carbon +++ b/toolchain/check/testdata/function/call/params_one_comma.carbon @@ -36,17 +36,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -96,7 +96,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc18: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %bound_method.loc18_7.2(%int_1.loc18) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %int.convert_checked.loc18 [concrete = constants.%int_1.5d2] @@ -106,7 +106,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc19: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_7.1: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_7.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %bound_method.loc19_7.2(%int_1.loc19) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_7.1: %i32 = value_of_initializer %int.convert_checked.loc19 [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/function/call/params_two.carbon b/toolchain/check/testdata/function/call/params_two.carbon index 781dc14f1cfd..53de22570948 100644 --- a/toolchain/check/testdata/function/call/params_two.carbon +++ b/toolchain/check/testdata/function/call/params_two.carbon @@ -36,17 +36,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -108,14 +108,14 @@ fn Main() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc18_7: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1, %impl.elem0.loc18_7 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc18_7: = specific_function %impl.elem0.loc18_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_7: = specific_function %impl.elem0.loc18_7, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1, %specific_fn.loc18_7 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc18_7: init %i32 = call %bound_method.loc18_7.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %int.convert_checked.loc18_7 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1, %.loc18_7.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc18_10: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_10.1: = bound_method %int_2, %impl.elem0.loc18_10 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc18_10: = specific_function %impl.elem0.loc18_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_10: = specific_function %impl.elem0.loc18_10, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_10.2: = bound_method %int_2, %specific_fn.loc18_10 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc18_10: init %i32 = call %bound_method.loc18_10.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc18_10.1: %i32 = value_of_initializer %int.convert_checked.loc18_10 [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/function/call/params_two_comma.carbon b/toolchain/check/testdata/function/call/params_two_comma.carbon index efdcf91c3c7b..5b793993eb00 100644 --- a/toolchain/check/testdata/function/call/params_two_comma.carbon +++ b/toolchain/check/testdata/function/call/params_two_comma.carbon @@ -37,17 +37,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -109,14 +109,14 @@ fn Main() { // CHECK:STDOUT: %int_2.loc18: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc18_7: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1.loc18, %impl.elem0.loc18_7 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc18_7: = specific_function %impl.elem0.loc18_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_7: = specific_function %impl.elem0.loc18_7, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1.loc18, %specific_fn.loc18_7 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc18_7: init %i32 = call %bound_method.loc18_7.2(%int_1.loc18) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_7.1: %i32 = value_of_initializer %int.convert_checked.loc18_7 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_7.2: %i32 = converted %int_1.loc18, %.loc18_7.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc18_10: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_10.1: = bound_method %int_2.loc18, %impl.elem0.loc18_10 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc18_10: = specific_function %impl.elem0.loc18_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_10: = specific_function %impl.elem0.loc18_10, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_10.2: = bound_method %int_2.loc18, %specific_fn.loc18_10 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc18_10: init %i32 = call %bound_method.loc18_10.2(%int_2.loc18) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc18_10.1: %i32 = value_of_initializer %int.convert_checked.loc18_10 [concrete = constants.%int_2.ef8] @@ -127,14 +127,14 @@ fn Main() { // CHECK:STDOUT: %int_2.loc19: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc19_7: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_7.1: = bound_method %int_1.loc19, %impl.elem0.loc19_7 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc19_7: = specific_function %impl.elem0.loc19_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc19_7: = specific_function %impl.elem0.loc19_7, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_7.2: = bound_method %int_1.loc19, %specific_fn.loc19_7 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc19_7: init %i32 = call %bound_method.loc19_7.2(%int_1.loc19) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_7.1: %i32 = value_of_initializer %int.convert_checked.loc19_7 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_7.2: %i32 = converted %int_1.loc19, %.loc19_7.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc19_10: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_10.1: = bound_method %int_2.loc19, %impl.elem0.loc19_10 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc19_10: = specific_function %impl.elem0.loc19_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc19_10: = specific_function %impl.elem0.loc19_10, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_10.2: = bound_method %int_2.loc19, %specific_fn.loc19_10 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc19_10: init %i32 = call %bound_method.loc19_10.2(%int_2.loc19) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc19_10.1: %i32 = value_of_initializer %int.convert_checked.loc19_10 [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon index c0e7ac8c8e8f..c208f62ac440 100644 --- a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon +++ b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon @@ -51,17 +51,17 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.3fa, @F(%F.8b3) [symbolic] @@ -89,13 +89,13 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %F.patt: %pattern_type.98f = symbolic_binding_pattern F, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %F.loc5_13.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc5_13.2 (constants.%F.8b3)] +// CHECK:STDOUT: %F.loc5_13.2: type = bind_symbolic_name F, 0 [symbolic = %F.loc5_13.1 (constants.%F.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [symbolic = constants.%G] { // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %F.loc13_10: type = bind_symbolic_name F, 0 [symbolic = @Class.%F.loc5_13.2 (constants.%F.8b3)] +// CHECK:STDOUT: %F.loc13_10: type = bind_symbolic_name F, 0 [symbolic = @Class.%F.loc5_13.1 (constants.%F.8b3)] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %return.param.loc13: ref %i32 = out_param call_param0 @@ -103,11 +103,11 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%F.loc5_13.1: type) { -// CHECK:STDOUT: %F.loc5_13.2: type = bind_symbolic_name F, 0 [symbolic = %F.loc5_13.2 (constants.%F.8b3)] +// CHECK:STDOUT: generic class @Class(%F.loc5_13.2: type) { +// CHECK:STDOUT: %F.loc5_13.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc5_13.1 (constants.%F.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%F.loc5_13.2) [symbolic = %Inner (constants.%Inner)] +// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%F.loc5_13.1) [symbolic = %Inner (constants.%Inner)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Class.%Inner (constants.%Inner)] {} {} @@ -121,7 +121,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Class.%F.loc5_13.1: type) { +// CHECK:STDOUT: generic class @Inner(@Class.%F.loc5_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.loc8_19.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc8_19.1 (constants.%F.8b3)] // CHECK:STDOUT: %F.type: type = fn_type @F, @Inner(%F.loc8_19.1) [symbolic = %F.type (constants.%F.type)] @@ -159,7 +159,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%F.loc5_13.1: type) { +// CHECK:STDOUT: generic fn @F(@Class.%F.loc5_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %i32 { @@ -167,7 +167,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_29.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_29.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_29.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc8_29.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -176,7 +176,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Class.%F.loc5_13.1: type) { +// CHECK:STDOUT: generic fn @G(@Class.%F.loc5_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.loc13_46.1: type = bind_symbolic_name F, 0 [symbolic = %F.loc13_46.1 (constants.%F.8b3)] // CHECK:STDOUT: %F.type: type = fn_type @F, @Inner(%F.loc13_46.1) [symbolic = %F.type (constants.%F.type)] @@ -196,7 +196,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%F.8b3) { -// CHECK:STDOUT: %F.loc5_13.2 => constants.%F.8b3 +// CHECK:STDOUT: %F.loc5_13.1 => constants.%F.8b3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner => constants.%Inner diff --git a/toolchain/check/testdata/function/call/return_implicit.carbon b/toolchain/check/testdata/function/call/return_implicit.carbon index eb7b5f767267..ed338eef573d 100644 --- a/toolchain/check/testdata/function/call/return_implicit.carbon +++ b/toolchain/check/testdata/function/call/return_implicit.carbon @@ -29,10 +29,10 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,7 +76,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %empty_tuple.type = bind_name b, %b.var // CHECK:STDOUT: %Op.bound: = bound_method %b.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %b.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %b.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon index 2095a53e636e..80d1677ee48b 100644 --- a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon @@ -212,10 +212,10 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %ReturnDUsed.type: type = fn_type @ReturnDUsed [concrete] // CHECK:STDOUT: %ReturnDUsed: %ReturnDUsed.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.2, @Destroy.impl(%D) [concrete] +// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.1, @Destroy.impl(%D) [concrete] // CHECK:STDOUT: %Op.2d4: %Op.type.548 = struct_value () [concrete] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.2(%D) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.1(%D) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -277,12 +277,12 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %ReturnDUsed.call: init %D = call %ReturnDUsed.ref() to %.loc34_15.1 // CHECK:STDOUT: %.loc34_15.2: ref %D = temporary %.loc34_15.1, %ReturnDUsed.call // CHECK:STDOUT: %Op.bound.loc34: = bound_method %.loc34_15.1, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.2d4, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_15.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34: %ptr.19c = addr_of %.loc34_15.1 // CHECK:STDOUT: %no_op.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) // CHECK:STDOUT: %Op.bound.loc33: = bound_method %.loc33_17.1, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.2d4, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_17.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.19c = addr_of %.loc33_17.1 // CHECK:STDOUT: %no_op.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33) diff --git a/toolchain/check/testdata/function/definition/fail_local_decl.carbon b/toolchain/check/testdata/function/definition/fail_local_decl.carbon index 0ff13d4729ad..5711c4773f9a 100644 --- a/toolchain/check/testdata/function/definition/fail_local_decl.carbon +++ b/toolchain/check/testdata/function/definition/fail_local_decl.carbon @@ -103,10 +103,10 @@ fn F() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.d5a: %Op.type.069 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.1(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -150,12 +150,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %w: ref %empty_struct_type = bind_name w, %w.var // CHECK:STDOUT: %Op.bound.loc14: = bound_method %w.var, constants.%Op.d5a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d5a, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.d5a, @Op.1(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc14: = bound_method %w.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.c28 = addr_of %w.var // CHECK:STDOUT: %no_op.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %Op.bound.loc9: = bound_method %v.var, constants.%Op.d5a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.d5a, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.d5a, @Op.1(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9: %ptr.c28 = addr_of %v.var // CHECK:STDOUT: %no_op.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) diff --git a/toolchain/check/testdata/function/definition/syntactic_merge.carbon b/toolchain/check/testdata/function/definition/syntactic_merge.carbon index 9ecb3acaa976..a15449867eef 100644 --- a/toolchain/check/testdata/function/definition/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/syntactic_merge.carbon @@ -720,13 +720,13 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_8.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_8.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_8.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_8.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.a02530.2 = fn_decl @Foo.loc15 [concrete = constants.%Foo.ddeb7d.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc15_8.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_8.2 (constants.%a)] +// CHECK:STDOUT: %a.loc15_8.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_8.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -739,14 +739,14 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Foo.loc7(%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: generic fn @Foo.loc7(%a.loc7_8.2: %C) { +// CHECK:STDOUT: %a.loc7_8.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_8.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Foo.loc15(%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: generic fn @Foo.loc15(%a.loc15_8.2: %C) { +// CHECK:STDOUT: %a.loc15_8.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_8.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -757,11 +757,11 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc7(constants.%a) { -// CHECK:STDOUT: %a.loc7_8.2 => constants.%a +// CHECK:STDOUT: %a.loc7_8.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc15(constants.%a) { -// CHECK:STDOUT: %a.loc15_8.2 => constants.%a +// CHECK:STDOUT: %a.loc15_8.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_alias_in_return.carbon diff --git a/toolchain/check/testdata/function/generic/call.carbon b/toolchain/check/testdata/function/generic/call.carbon index 85af16cc2f22..5619ff64f2f5 100644 --- a/toolchain/check/testdata/function/generic/call.carbon +++ b/toolchain/check/testdata/function/generic/call.carbon @@ -83,10 +83,10 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %CallSpecific: %CallSpecific.type = struct_value () [concrete] // CHECK:STDOUT: %Function.specific_fn.1b5: = specific_function %Function, @Function(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -115,13 +115,13 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @Function.%T.loc4_13.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] -// CHECK:STDOUT: %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @Function.%T.loc4_13.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Function.%T.loc4_13.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @Function.%T.loc4_13.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %x: @Function.%T.loc4_13.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @Function.%T.loc4_13.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Function.%T.loc4_13.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [concrete = constants.%CallGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -130,13 +130,13 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %return.patt: @CallGeneric.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @CallGeneric.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] -// CHECK:STDOUT: %T.loc8_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGeneric.%T.loc8_16.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] -// CHECK:STDOUT: %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @CallGeneric.%T.loc8_16.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @CallGeneric.%T.loc8_16.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8_16.2 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @CallGeneric.%T.loc8_16.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8_16.2 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %x: @CallGeneric.%T.loc8_16.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @CallGeneric.%T.loc8_16.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @CallGeneric.%T.loc8_16.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [concrete = constants.%CallGenericPtr] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -145,17 +145,17 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %return.patt: @CallGenericPtr.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @CallGenericPtr.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T.ref.loc12_39 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_param call_param0 -// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.1 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] { -// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T.ref.loc12_32 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T.ref.loc12_39 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = value_param call_param0 +// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.2 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] { +// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type %T.ref.loc12_32 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [concrete = constants.%CallSpecific] { @@ -182,60 +182,60 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type: type = pattern_type %T.loc4_13.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @Function(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_13.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Function.%T.loc4_13.2 (%T)) -> @Function.%T.loc4_13.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @Function.%T.loc4_13.1 (%T)) -> @Function.%T.loc4_13.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.loc4_13.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.loc4_13.1 (%T) = name_ref x, %x // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type: type = pattern_type %T.loc8_16.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @CallGeneric(%T.loc8_16.2: type) { +// CHECK:STDOUT: %T.loc8_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc8_16.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc8_16.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.2) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc8_16.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.1) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.loc8_16.2 (%T)) -> @CallGeneric.%T.loc8_16.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.loc8_16.1 (%T)) -> @CallGeneric.%T.loc8_16.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] -// 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: %T.ref.loc9: type = name_ref T, %T.loc8_16.2 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.loc8_16.1 (%T) = name_ref x, %x // CHECK:STDOUT: %Function.specific_fn.loc9_10.1: = specific_function %Function.ref, @Function(constants.%T) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.loc8_16.2 (%T) = call %Function.specific_fn.loc9_10.1(%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: %Function.call: init @CallGeneric.%T.loc8_16.1 (%T) = call %Function.specific_fn.loc9_10.1(%x.ref) +// CHECK:STDOUT: %.loc9_24.1: @CallGeneric.%T.loc8_16.1 (%T) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc9_24.2: @CallGeneric.%T.loc8_16.1 (%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_19.1: type) { -// CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type %T.loc12_19.2 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc12_33.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12_19.2: type) { +// CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T.loc12_19.1 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc12_33.1 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc12_33.2 [symbolic = %require_complete (constants.%require_complete.6e5)] -// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.2) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc12_33.1 [symbolic = %require_complete (constants.%require_complete.6e5)] +// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.1) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f)) -> @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) { +// CHECK:STDOUT: fn(%x.param: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f)) -> @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] -// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc13: type = ptr_type %T.ref.loc13 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = name_ref x, %x +// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc13: type = ptr_type %T.ref.loc13 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = name_ref x, %x // CHECK:STDOUT: %Function.specific_fn.loc13_10.1: = specific_function %Function.ref, @Function(constants.%ptr.79f) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] -// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = call %Function.specific_fn.loc13_10.1(%x.ref) -// CHECK:STDOUT: %.loc13_25.1: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc13_25.2: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = converted %Function.call, %.loc13_25.1 +// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = call %Function.specific_fn.loc13_10.1(%x.ref) +// CHECK:STDOUT: %.loc13_25.1: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc13_25.2: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = converted %Function.call, %.loc13_25.1 // CHECK:STDOUT: return %.loc13_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -249,7 +249,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %.loc18: ref %C = splice_block %return {} // CHECK:STDOUT: %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18 // CHECK:STDOUT: %Op.bound: = bound_method %.loc18, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc18, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc18 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -257,7 +257,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -265,18 +265,18 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T) { -// CHECK:STDOUT: %T.loc8_16.2 => constants.%T +// CHECK:STDOUT: %T.loc8_16.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T) { -// CHECK:STDOUT: %T.loc12_19.2 => constants.%T -// CHECK:STDOUT: %ptr.loc12_33.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc12_19.1 => constants.%T +// CHECK:STDOUT: %ptr.loc12_33.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%ptr.79f) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc4_13.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -284,7 +284,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%C) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%C +// CHECK:STDOUT: %T.loc4_13.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -318,10 +318,10 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %CallSpecific: %CallSpecific.type = struct_value () [concrete] // CHECK:STDOUT: %Function.specific_fn.1b5: = specific_function %Function, @Function(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -350,13 +350,13 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @Function.%T.loc4_13.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)] -// CHECK:STDOUT: %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @Function.%T.loc4_13.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Function.%T.loc4_13.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_32: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @Function.%T.loc4_13.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4_26: type = name_ref T, %T.loc4_13.2 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %x: @Function.%T.loc4_13.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @Function.%T.loc4_13.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Function.%T.loc4_13.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [concrete = constants.%CallGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -365,13 +365,13 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %return.patt: @CallGeneric.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @CallGeneric.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] -// CHECK:STDOUT: %T.loc8_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGeneric.%T.loc8_16.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)] -// CHECK:STDOUT: %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @CallGeneric.%T.loc8_16.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @CallGeneric.%T.loc8_16.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc8_35: type = name_ref T, %T.loc8_16.2 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @CallGeneric.%T.loc8_16.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc8_29: type = name_ref T, %T.loc8_16.2 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %x: @CallGeneric.%T.loc8_16.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @CallGeneric.%T.loc8_16.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @CallGeneric.%T.loc8_16.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [concrete = constants.%CallGenericPtr] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -380,17 +380,17 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %return.patt: @CallGenericPtr.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @CallGenericPtr.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T.ref.loc12_39 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_param call_param0 -// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.1 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] { -// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T.ref.loc12_32 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.ref.loc12_39: type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc12_40: type = ptr_type %T.ref.loc12_39 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = value_param call_param0 +// CHECK:STDOUT: %.loc12: type = splice_block %ptr.loc12_33.2 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] { +// CHECK:STDOUT: %T.ref.loc12_32: type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type %T.ref.loc12_32 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %x: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [concrete = constants.%CallSpecific] { @@ -417,57 +417,57 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type: type = pattern_type %T.loc4_13.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @Function(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_13.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.2 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_13.1 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Function.%T.loc4_13.2 (%T)) -> @Function.%T.loc4_13.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @Function.%T.loc4_13.1 (%T)) -> @Function.%T.loc4_13.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.loc4_13.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.loc4_13.1 (%T) = name_ref x, %x // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type: type = pattern_type %T.loc8_16.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @CallGeneric(%T.loc8_16.2: type) { +// CHECK:STDOUT: %T.loc8_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_16.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc8_16.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc8_16.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.2) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc8_16.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Function.specific_fn.loc9_10.2: = specific_function constants.%Function, @Function(%T.loc8_16.1) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.loc8_16.2 (%T)) -> @CallGeneric.%T.loc8_16.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.loc8_16.1 (%T)) -> @CallGeneric.%T.loc8_16.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] -// CHECK:STDOUT: %x.ref: @CallGeneric.%T.loc8_16.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.loc8_16.1 (%T) = name_ref x, %x // CHECK:STDOUT: %Function.specific_fn.loc9_10.1: = specific_function %Function.ref, @Function(constants.%T) [symbolic = %Function.specific_fn.loc9_10.2 (constants.%Function.specific_fn.46f)] -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.loc8_16.2 (%T) = call %Function.specific_fn.loc9_10.1(%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: %Function.call: init @CallGeneric.%T.loc8_16.1 (%T) = call %Function.specific_fn.loc9_10.1(%x.ref) +// CHECK:STDOUT: %.loc9_21.1: @CallGeneric.%T.loc8_16.1 (%T) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc9_21.2: @CallGeneric.%T.loc8_16.1 (%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_19.1: type) { -// CHECK:STDOUT: %T.loc12_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc12_33.2: type = ptr_type %T.loc12_19.2 [symbolic = %ptr.loc12_33.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc12_33.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @CallGenericPtr(%T.loc12_19.2: type) { +// CHECK:STDOUT: %T.loc12_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_19.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc12_33.1: type = ptr_type %T.loc12_19.1 [symbolic = %ptr.loc12_33.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc12_33.1 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc12_33.2 [symbolic = %require_complete (constants.%require_complete.6e5)] -// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.2) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc12_33.1 [symbolic = %require_complete (constants.%require_complete.6e5)] +// CHECK:STDOUT: %Function.specific_fn.loc13_10.2: = specific_function constants.%Function, @Function(%ptr.loc12_33.1) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f)) -> @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) { +// CHECK:STDOUT: fn(%x.param: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f)) -> @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] -// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = name_ref x, %x // CHECK:STDOUT: %Function.specific_fn.loc13_10.1: = specific_function %Function.ref, @Function(constants.%ptr.79f) [symbolic = %Function.specific_fn.loc13_10.2 (constants.%Function.specific_fn.4d7)] -// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = call %Function.specific_fn.loc13_10.1(%x.ref) -// CHECK:STDOUT: %.loc13_21.1: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = value_of_initializer %Function.call -// CHECK:STDOUT: %.loc13_21.2: @CallGenericPtr.%ptr.loc12_33.2 (%ptr.79f) = converted %Function.call, %.loc13_21.1 +// CHECK:STDOUT: %Function.call: init @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = call %Function.specific_fn.loc13_10.1(%x.ref) +// CHECK:STDOUT: %.loc13_21.1: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = value_of_initializer %Function.call +// CHECK:STDOUT: %.loc13_21.2: @CallGenericPtr.%ptr.loc12_33.1 (%ptr.79f) = converted %Function.call, %.loc13_21.1 // CHECK:STDOUT: return %.loc13_21.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -480,7 +480,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: %.loc18: ref %C = splice_block %return {} // CHECK:STDOUT: %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18 // CHECK:STDOUT: %Op.bound: = bound_method %.loc18, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc18, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc18 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -488,7 +488,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -496,18 +496,18 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T) { -// CHECK:STDOUT: %T.loc8_16.2 => constants.%T +// CHECK:STDOUT: %T.loc8_16.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T) { -// CHECK:STDOUT: %T.loc12_19.2 => constants.%T -// CHECK:STDOUT: %ptr.loc12_33.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc12_19.1 => constants.%T +// CHECK:STDOUT: %ptr.loc12_33.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%ptr.79f) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc4_13.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -515,7 +515,7 @@ fn CallSpecific(x: C) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%C) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%C +// CHECK:STDOUT: %T.loc4_13.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon index 3f853dc7a06f..835d0bf2b4b1 100644 --- a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon +++ b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon @@ -123,7 +123,7 @@ fn G() { // CHECK:STDOUT: %Generic.decl: %Generic.type.c21 = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %Scalar.patt: %pattern_type.98f = symbolic_binding_pattern Scalar, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Scalar.loc15_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.2 (constants.%Scalar)] +// CHECK:STDOUT: %Scalar.loc15_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.1 (constants.%Scalar)] // CHECK:STDOUT: } // CHECK:STDOUT: %GenericParam.decl: type = class_decl @GenericParam [concrete = constants.%GenericParam] {} {} // CHECK:STDOUT: %ImplsGeneric.decl: type = class_decl @ImplsGeneric [concrete = constants.%ImplsGeneric] {} {} @@ -146,26 +146,26 @@ fn G() { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type (%pattern_type.80f) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc33_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc33_22.2 (constants.%T)] -// CHECK:STDOUT: %.loc33: type = splice_block %Generic.type.loc33_45.1 [symbolic = %Generic.type.loc33_45.2 (constants.%Generic.type.91ccba.2)] { +// CHECK:STDOUT: %T.loc33_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc33_22.1 (constants.%T)] +// CHECK:STDOUT: %.loc33: type = splice_block %Generic.type.loc33_45.2 [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.91ccba.2)] { // CHECK:STDOUT: %Generic.ref: %Generic.type.c21 = name_ref Generic, file.%Generic.decl [concrete = constants.%Generic.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc33_22.1 [symbolic = %T.loc33_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc33_45.1: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc33_45.2 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc33_22.2 [symbolic = %T.loc33_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc33_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.91ccba.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc33_32.1: @CallGenericMethod.%Generic.type.loc33_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc33_32.2 (constants.%U)] +// CHECK:STDOUT: %U.loc33_32.2: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc33_32.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type.9f9 = fn_decl @G.loc37 [concrete = constants.%G.57b] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic(%Scalar.loc15_19.1: type) { -// CHECK:STDOUT: %Scalar.loc15_19.2: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.2 (constants.%Scalar)] +// CHECK:STDOUT: generic interface @Generic(%Scalar.loc15_19.2: type) { +// CHECK:STDOUT: %Scalar.loc15_19.1: type = bind_symbolic_name Scalar, 0 [symbolic = %Scalar.loc15_19.1 (constants.%Scalar)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_19.2)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%Scalar.loc15_19.1)> [symbolic = %Generic.type (constants.%Generic.type.91ccba.1)] // CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.91ccba.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.dee8d8.1)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Generic(%Scalar.loc15_19.2) [symbolic = %F.type (constants.%F.type.f439a9.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Generic(%Scalar.loc15_19.1) [symbolic = %F.type (constants.%F.type.f439a9.1)] // CHECK:STDOUT: %F: @Generic.%F.type (%F.type.f439a9.1) = struct_value () [symbolic = %F (constants.%F.8a2d67.1)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc15_19.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.1)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%Scalar.loc15_19.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.1)] // CHECK:STDOUT: %assoc0.loc16_9.2: @Generic.%Generic.assoc_type (%Generic.assoc_type.0fd877.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc16_9.2 (constants.%assoc0.2966cb.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -225,7 +225,7 @@ fn G() { // CHECK:STDOUT: .Self = constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc16(@Generic.%Scalar.loc15_19.1: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { +// CHECK:STDOUT: generic fn @F.loc16(@Generic.%Scalar.loc15_19.2: type, @Generic.%Self.1: @Generic.%Generic.type (%Generic.type.91ccba.1)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: @@ -240,27 +240,27 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: fn @G.loc30(); // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc33_22.1: type, %U.loc33_32.1: @CallGenericMethod.%Generic.type.loc33_45.2 (%Generic.type.91ccba.2)) { -// CHECK:STDOUT: %T.loc33_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc33_22.2 (constants.%T)] -// CHECK:STDOUT: %Generic.type.loc33_45.2: type = facet_type <@Generic, @Generic(%T.loc33_22.2)> [symbolic = %Generic.type.loc33_45.2 (constants.%Generic.type.91ccba.2)] -// CHECK:STDOUT: %U.loc33_32.2: @CallGenericMethod.%Generic.type.loc33_45.2 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc33_32.2 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc33_45.2 [symbolic = %pattern_type (constants.%pattern_type.80f)] +// CHECK:STDOUT: generic fn @CallGenericMethod(%T.loc33_22.2: type, %U.loc33_32.2: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.91ccba.2)) { +// CHECK:STDOUT: %T.loc33_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc33_22.1 (constants.%T)] +// CHECK:STDOUT: %Generic.type.loc33_45.1: type = facet_type <@Generic, @Generic(%T.loc33_22.1)> [symbolic = %Generic.type.loc33_45.1 (constants.%Generic.type.91ccba.2)] +// CHECK:STDOUT: %U.loc33_32.1: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.91ccba.2) = bind_symbolic_name U, 1 [symbolic = %U.loc33_32.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Generic.type.loc33_45.1 [symbolic = %pattern_type (constants.%pattern_type.80f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.loc33_45.2 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc33_22.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.loc33_45.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc33_22.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.2)] // CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = assoc_entity element0, @Generic.%F.decl [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] -// CHECK:STDOUT: %U.as_type.loc34_4.2: type = facet_access_type %U.loc33_32.2 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] -// CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc33_32.2, @Generic, @Generic(%T.loc33_22.2) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Generic(%T.loc33_22.2) [symbolic = %F.type (constants.%F.type.f439a9.2)] -// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc33_45.2 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc34_4.2, (%Generic.lookup_impl_witness) [symbolic = %Generic.facet (constants.%Generic.facet.680)] +// CHECK:STDOUT: %U.as_type.loc34_4.2: type = facet_access_type %U.loc33_32.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] +// CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc33_32.1, @Generic, @Generic(%T.loc33_22.1) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @Generic(%T.loc33_22.1) [symbolic = %F.type (constants.%F.type.f439a9.2)] +// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc34_4.2, (%Generic.lookup_impl_witness) [symbolic = %Generic.facet (constants.%Generic.facet.680)] // CHECK:STDOUT: %.loc34_4.3: type = fn_type_with_self_type %F.type, %Generic.facet [symbolic = %.loc34_4.3 (constants.%.177)] // CHECK:STDOUT: %impl.elem0.loc34_4.2: @CallGenericMethod.%.loc34_4.3 (%.177) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @F.loc16(%T.loc33_22.2, %Generic.facet) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @F.loc16(%T.loc33_22.1, %Generic.facet) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref: @CallGenericMethod.%Generic.type.loc33_45.2 (%Generic.type.91ccba.2) = name_ref U, %U.loc33_32.1 [symbolic = %U.loc33_32.2 (constants.%U)] +// CHECK:STDOUT: %U.ref: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.91ccba.2) = name_ref U, %U.loc33_32.2 [symbolic = %U.loc33_32.1 (constants.%U)] // CHECK:STDOUT: %.loc34_4.1: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = specific_constant @Generic.%assoc0.loc16_9.1, @Generic(constants.%T) [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = name_ref F, %.loc34_4.1 [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %U.as_type.loc34_4.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] @@ -285,13 +285,13 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%Scalar) { -// CHECK:STDOUT: %Scalar.loc15_19.2 => constants.%Scalar +// CHECK:STDOUT: %Scalar.loc15_19.1 => constants.%Scalar // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%Scalar, constants.%Self.dee8d8.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%GenericParam) { -// CHECK:STDOUT: %Scalar.loc15_19.2 => constants.%GenericParam +// CHECK:STDOUT: %Scalar.loc15_19.1 => constants.%GenericParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Generic.type => constants.%Generic.type.769 @@ -309,7 +309,7 @@ fn G() { // CHECK:STDOUT: specific @G.loc27(constants.%Other.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { -// CHECK:STDOUT: %Scalar.loc15_19.2 => constants.%T +// CHECK:STDOUT: %Scalar.loc15_19.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Generic.type => constants.%Generic.type.91ccba.2 @@ -321,18 +321,18 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc33_22.2 => constants.%T -// CHECK:STDOUT: %Generic.type.loc33_45.2 => constants.%Generic.type.91ccba.2 -// CHECK:STDOUT: %U.loc33_32.2 => constants.%U +// CHECK:STDOUT: %T.loc33_22.1 => constants.%T +// CHECK:STDOUT: %Generic.type.loc33_45.1 => constants.%Generic.type.91ccba.2 +// CHECK:STDOUT: %U.loc33_32.1 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.80f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%T, constants.%Generic.facet.680) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.8ff) { -// CHECK:STDOUT: %T.loc33_22.2 => constants.%GenericParam -// CHECK:STDOUT: %Generic.type.loc33_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc33_32.2 => constants.%Generic.facet.8ff +// CHECK:STDOUT: %T.loc33_22.1 => constants.%GenericParam +// CHECK:STDOUT: %Generic.type.loc33_45.1 => constants.%Generic.type.769 +// CHECK:STDOUT: %U.loc33_32.1 => constants.%Generic.facet.8ff // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ded // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 80079e5f12ea..fe9d8bae1e2f 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -265,11 +265,11 @@ fn F() { // CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_39.1: type = ptr_type %T.ref.loc4_38 [symbolic = %ptr.loc4_39.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %return.param: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_39.2: type = ptr_type %T.ref.loc4_38 [symbolic = %ptr.loc4_39.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %return.param: ref @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.79f) = out_param call_param0 +// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParam.decl: %CallExplicitGenericParam.type = fn_decl @CallExplicitGenericParam [concrete = constants.%CallExplicitGenericParam] { // CHECK:STDOUT: %return.patt: %pattern_type.fe8 = return_slot_pattern [concrete] @@ -286,32 +286,32 @@ fn F() { // CHECK:STDOUT: %return.patt: @CallExplicitGenericParamWithGenericArg.%pattern_type (%pattern_type.322) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @CallExplicitGenericParamWithGenericArg.%pattern_type (%pattern_type.322) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc10_43.1 [symbolic = %T.loc10_43.2 (constants.%T)] -// CHECK:STDOUT: %struct_type.a.loc10_62.1: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.2 (%T)} [symbolic = %struct_type.a.loc10_62.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %ptr.loc10_63.1: type = ptr_type %struct_type.a.loc10_62.1 [symbolic = %ptr.loc10_63.2 (constants.%ptr.48a)] -// CHECK:STDOUT: %T.loc10_43.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_43.2 (constants.%T)] -// CHECK:STDOUT: %return.param: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = out_param call_param0 -// CHECK:STDOUT: %return: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc10: type = name_ref T, %T.loc10_43.2 [symbolic = %T.loc10_43.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.a.loc10_62.2: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.1 (%T)} [symbolic = %struct_type.a.loc10_62.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %ptr.loc10_63.2: type = ptr_type %struct_type.a.loc10_62.2 [symbolic = %ptr.loc10_63.1 (constants.%ptr.48a)] +// CHECK:STDOUT: %T.loc10_43.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_43.1 (constants.%T)] +// CHECK:STDOUT: %return.param: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.48a) = out_param call_param0 +// CHECK:STDOUT: %return: ref @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.48a) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %ptr.loc4_39.2: type = ptr_type %T.loc4_25.2 [symbolic = %ptr.loc4_39.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_39.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @ExplicitGenericParam(%T.loc4_25.2: type) { +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_39.1: type = ptr_type %T.loc4_25.1 [symbolic = %ptr.loc4_39.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_39.1 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc4_39.2 [symbolic = %require_complete (constants.%require_complete.6e5)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_25.2) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.c0a)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc4_39.1 [symbolic = %require_complete (constants.%require_complete.6e5)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_25.1) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.c0a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) { +// CHECK:STDOUT: fn() -> @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [concrete = constants.%ExplicitGenericParam] -// CHECK:STDOUT: %T.ref.loc4_71: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc4_71: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%T) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn.c0a)] -// CHECK:STDOUT: %ExplicitGenericParam.call: init @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = call %ExplicitGenericParam.specific_fn.loc4_50.1() -// CHECK:STDOUT: %.loc4_73.1: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = value_of_initializer %ExplicitGenericParam.call -// CHECK:STDOUT: %.loc4_73.2: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr.79f) = converted %ExplicitGenericParam.call, %.loc4_73.1 +// CHECK:STDOUT: %ExplicitGenericParam.call: init @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.79f) = call %ExplicitGenericParam.specific_fn.loc4_50.1() +// CHECK:STDOUT: %.loc4_73.1: @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.79f) = value_of_initializer %ExplicitGenericParam.call +// CHECK:STDOUT: %.loc4_73.2: @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr.79f) = converted %ExplicitGenericParam.call, %.loc4_73.1 // CHECK:STDOUT: return %.loc4_73.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -328,32 +328,32 @@ fn F() { // CHECK:STDOUT: return %.loc7_35.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %struct_type.a.loc10_62.2: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.2 (%T)} [symbolic = %struct_type.a.loc10_62.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %ptr.loc10_63.2: type = ptr_type %struct_type.a.loc10_62.2 [symbolic = %ptr.loc10_63.2 (constants.%ptr.48a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc10_63.2 [symbolic = %pattern_type (constants.%pattern_type.322)] +// CHECK:STDOUT: generic fn @CallExplicitGenericParamWithGenericArg(%T.loc10_43.2: type) { +// CHECK:STDOUT: %T.loc10_43.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc10_43.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.a.loc10_62.1: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.1 (%T)} [symbolic = %struct_type.a.loc10_62.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %ptr.loc10_63.1: type = ptr_type %struct_type.a.loc10_62.1 [symbolic = %ptr.loc10_63.1 (constants.%ptr.48a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc10_63.1 [symbolic = %pattern_type (constants.%pattern_type.322)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc10_63.2 [symbolic = %require_complete (constants.%require_complete.86d)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a.loc10_62.2) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.6ad)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc10_63.1 [symbolic = %require_complete (constants.%require_complete.86d)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%struct_type.a.loc10_62.1) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.6ad)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) { +// CHECK:STDOUT: fn() -> @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.48a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [concrete = constants.%ExplicitGenericParam] -// CHECK:STDOUT: %T.ref.loc11: type = name_ref T, %T.loc10_43.1 [symbolic = %T.loc10_43.2 (constants.%T)] -// CHECK:STDOUT: %struct_type.a.loc11: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.2 (%T)} [symbolic = %struct_type.a.loc10_62.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.ref.loc11: type = name_ref T, %T.loc10_43.2 [symbolic = %T.loc10_43.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.a.loc11: type = struct_type {.a: @CallExplicitGenericParamWithGenericArg.%T.loc10_43.1 (%T)} [symbolic = %struct_type.a.loc10_62.1 (constants.%struct_type.a)] // CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc11_10.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%struct_type.a) [symbolic = %ExplicitGenericParam.specific_fn.loc11_10.2 (constants.%ExplicitGenericParam.specific_fn.6ad)] -// CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = call %ExplicitGenericParam.specific_fn.loc11_10.1() -// CHECK:STDOUT: %.loc11_39.1: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = value_of_initializer %ExplicitGenericParam.call -// CHECK:STDOUT: %.loc11_39.2: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.2 (%ptr.48a) = converted %ExplicitGenericParam.call, %.loc11_39.1 +// CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.48a) = call %ExplicitGenericParam.specific_fn.loc11_10.1() +// CHECK:STDOUT: %.loc11_39.1: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.48a) = value_of_initializer %ExplicitGenericParam.call +// CHECK:STDOUT: %.loc11_39.2: @CallExplicitGenericParamWithGenericArg.%ptr.loc10_63.1 (%ptr.48a) = 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.loc4_25.2 => constants.%T -// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc4_25.1 => constants.%T +// CHECK:STDOUT: %ptr.loc4_39.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -362,8 +362,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%i32) { -// CHECK:STDOUT: %T.loc4_25.2 => constants.%i32 -// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.235 +// CHECK:STDOUT: %T.loc4_25.1 => constants.%i32 +// CHECK:STDOUT: %ptr.loc4_39.1 => constants.%ptr.235 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.fe8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -372,15 +372,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallExplicitGenericParamWithGenericArg(constants.%T) { -// CHECK:STDOUT: %T.loc10_43.2 => constants.%T -// CHECK:STDOUT: %struct_type.a.loc10_62.2 => constants.%struct_type.a -// CHECK:STDOUT: %ptr.loc10_63.2 => constants.%ptr.48a +// CHECK:STDOUT: %T.loc10_43.1 => constants.%T +// CHECK:STDOUT: %struct_type.a.loc10_62.1 => constants.%struct_type.a +// CHECK:STDOUT: %ptr.loc10_63.1 => constants.%ptr.48a // CHECK:STDOUT: %pattern_type => constants.%pattern_type.322 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%struct_type.a) { -// CHECK:STDOUT: %T.loc4_25.2 => constants.%struct_type.a -// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr.48a +// CHECK:STDOUT: %T.loc4_25.1 => constants.%struct_type.a +// CHECK:STDOUT: %ptr.loc4_39.1 => constants.%ptr.48a // CHECK:STDOUT: %pattern_type => constants.%pattern_type.322 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -425,16 +425,16 @@ fn F() { // CHECK:STDOUT: %return.patt: @ExplicitGenericParam.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ExplicitGenericParam.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_39.1: type = ptr_type %T.ref.loc4_38 [symbolic = %ptr.loc4_39.2 (constants.%ptr)] -// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %return.param: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr) = out_param call_param0 -// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_39.2: type = ptr_type %T.ref.loc4_38 [symbolic = %ptr.loc4_39.1 (constants.%ptr)] +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %return.param: ref @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr) = out_param call_param0 +// CHECK:STDOUT: %return: ref @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParamConst.decl: %CallExplicitGenericParamConst.type = fn_decl @CallExplicitGenericParamConst [concrete = constants.%CallExplicitGenericParamConst] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_34.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_34.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_34.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_34.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitGenericParamNonConst.decl: %CallExplicitGenericParamNonConst.type = fn_decl @CallExplicitGenericParamNonConst [concrete = constants.%CallExplicitGenericParamNonConst] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = binding_pattern T [concrete] @@ -445,39 +445,39 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %ptr.loc4_39.2: type = ptr_type %T.loc4_25.2 [symbolic = %ptr.loc4_39.2 (constants.%ptr)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_39.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @ExplicitGenericParam(%T.loc4_25.2: type) { +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_39.1: type = ptr_type %T.loc4_25.1 [symbolic = %ptr.loc4_39.1 (constants.%ptr)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_39.1 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc4_39.2 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_25.2) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc4_39.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc4_25.1) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr) { +// CHECK:STDOUT: fn() -> @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [concrete = constants.%ExplicitGenericParam] -// CHECK:STDOUT: %T.ref.loc4_71: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc4_71: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc4_50.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%T) [symbolic = %ExplicitGenericParam.specific_fn.loc4_50.2 (constants.%ExplicitGenericParam.specific_fn)] -// CHECK:STDOUT: %ExplicitGenericParam.call: init @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr) = call %ExplicitGenericParam.specific_fn.loc4_50.1() -// CHECK:STDOUT: %.loc4_73.1: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr) = value_of_initializer %ExplicitGenericParam.call -// CHECK:STDOUT: %.loc4_73.2: @ExplicitGenericParam.%ptr.loc4_39.2 (%ptr) = converted %ExplicitGenericParam.call, %.loc4_73.1 +// CHECK:STDOUT: %ExplicitGenericParam.call: init @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr) = call %ExplicitGenericParam.specific_fn.loc4_50.1() +// CHECK:STDOUT: %.loc4_73.1: @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr) = value_of_initializer %ExplicitGenericParam.call +// CHECK:STDOUT: %.loc4_73.2: @ExplicitGenericParam.%ptr.loc4_39.1 (%ptr) = converted %ExplicitGenericParam.call, %.loc4_73.1 // CHECK:STDOUT: return %.loc4_73.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallExplicitGenericParamConst(%T.loc6_34.1: type) { -// CHECK:STDOUT: %T.loc6_34.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_34.2 (constants.%T)] +// CHECK:STDOUT: generic fn @CallExplicitGenericParamConst(%T.loc6_34.2: type) { +// CHECK:STDOUT: %T.loc6_34.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_34.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc7_3.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc6_34.2) [symbolic = %ExplicitGenericParam.specific_fn.loc7_3.2 (constants.%ExplicitGenericParam.specific_fn)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.loc6_34.2 [symbolic = %ptr (constants.%ptr)] +// CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc7_3.2: = specific_function constants.%ExplicitGenericParam, @ExplicitGenericParam(%T.loc6_34.1) [symbolic = %ExplicitGenericParam.specific_fn.loc7_3.2 (constants.%ExplicitGenericParam.specific_fn)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.loc6_34.1 [symbolic = %ptr (constants.%ptr)] // CHECK:STDOUT: %require_complete: = require_complete_type %ptr [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitGenericParam.ref: %ExplicitGenericParam.type = name_ref ExplicitGenericParam, file.%ExplicitGenericParam.decl [concrete = constants.%ExplicitGenericParam] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_34.1 [symbolic = %T.loc6_34.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_34.2 [symbolic = %T.loc6_34.1 (constants.%T)] // CHECK:STDOUT: %ExplicitGenericParam.specific_fn.loc7_3.1: = specific_function %ExplicitGenericParam.ref, @ExplicitGenericParam(constants.%T) [symbolic = %ExplicitGenericParam.specific_fn.loc7_3.2 (constants.%ExplicitGenericParam.specific_fn)] // CHECK:STDOUT: %ExplicitGenericParam.call: init @CallExplicitGenericParamConst.%ptr (%ptr) = call %ExplicitGenericParam.specific_fn.loc7_3.1() // CHECK:STDOUT: return @@ -492,8 +492,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitGenericParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_25.2 => constants.%T -// CHECK:STDOUT: %ptr.loc4_39.2 => constants.%ptr +// CHECK:STDOUT: %T.loc4_25.1 => constants.%T +// CHECK:STDOUT: %ptr.loc4_39.1 => constants.%ptr // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -502,7 +502,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallExplicitGenericParamConst(constants.%T) { -// CHECK:STDOUT: %T.loc6_34.2 => constants.%T +// CHECK:STDOUT: %T.loc6_34.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- explicit_vs_deduced.carbon @@ -530,10 +530,10 @@ fn F() { // CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.720: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%A) [concrete] // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.b96: type = fn_type @Op.2, @Destroy.impl(%A) [concrete] +// CHECK:STDOUT: %Op.type.b96: type = fn_type @Op.1, @Destroy.impl(%A) [concrete] // CHECK:STDOUT: %Op.885: %Op.type.b96 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.7ea: = complete_type_witness %ptr.6db [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.885, @Op.2(%A) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.885, @Op.1(%A) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -561,14 +561,14 @@ fn F() { // CHECK:STDOUT: %return.patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_43 (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ExplicitAndAlsoDeduced.%pattern_type.loc6_43 (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6_46: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc6_47.1: type = ptr_type %T.ref.loc6_46 [symbolic = %ptr.loc6_47.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc6_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_27.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc6_40: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] -// CHECK:STDOUT: %x: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc6_46: type = name_ref T, %T.loc6_27.2 [symbolic = %T.loc6_27.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc6_47.2: type = ptr_type %T.ref.loc6_46 [symbolic = %ptr.loc6_47.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc6_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_27.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @ExplicitAndAlsoDeduced.%T.loc6_27.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc6_40: type = name_ref T, %T.loc6_27.2 [symbolic = %T.loc6_27.1 (constants.%T)] +// CHECK:STDOUT: %x: @ExplicitAndAlsoDeduced.%T.loc6_27.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallExplicitAndAlsoDeduced.decl: %CallExplicitAndAlsoDeduced.type = fn_decl @CallExplicitAndAlsoDeduced [concrete = constants.%CallExplicitAndAlsoDeduced] { // CHECK:STDOUT: %return.patt: %pattern_type.5f8 = return_slot_pattern [concrete] @@ -590,26 +590,26 @@ fn F() { // CHECK:STDOUT: .Self = constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type.loc6_37: type = pattern_type %T.loc6_27.2 [symbolic = %pattern_type.loc6_37 (constants.%pattern_type.7dc)] -// CHECK:STDOUT: %ptr.loc6_47.2: type = ptr_type %T.loc6_27.2 [symbolic = %ptr.loc6_47.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type.loc6_43: type = pattern_type %ptr.loc6_47.2 [symbolic = %pattern_type.loc6_43 (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @ExplicitAndAlsoDeduced(%T.loc6_27.2: type) { +// CHECK:STDOUT: %T.loc6_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_27.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type.loc6_37: type = pattern_type %T.loc6_27.1 [symbolic = %pattern_type.loc6_37 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %ptr.loc6_47.1: type = ptr_type %T.loc6_27.1 [symbolic = %ptr.loc6_47.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type.loc6_43: type = pattern_type %ptr.loc6_47.1 [symbolic = %pattern_type.loc6_43 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_43: = require_complete_type %ptr.loc6_47.2 [symbolic = %require_complete.loc6_43 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %require_complete.loc6_38: = require_complete_type %T.loc6_27.2 [symbolic = %require_complete.loc6_38 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2: = specific_function constants.%ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T.loc6_27.2) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.41d)] +// CHECK:STDOUT: %require_complete.loc6_43: = require_complete_type %ptr.loc6_47.1 [symbolic = %require_complete.loc6_43 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc6_38: = require_complete_type %T.loc6_27.1 [symbolic = %require_complete.loc6_38 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2: = specific_function constants.%ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T.loc6_27.1) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.41d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T)) -> @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) { +// CHECK:STDOUT: fn(%x.param: @ExplicitAndAlsoDeduced.%T.loc6_27.1 (%T)) -> @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ExplicitAndAlsoDeduced.ref: %ExplicitAndAlsoDeduced.type = name_ref ExplicitAndAlsoDeduced, file.%ExplicitAndAlsoDeduced.decl [concrete = constants.%ExplicitAndAlsoDeduced] -// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)] -// CHECK:STDOUT: %x.ref: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6_27.2 [symbolic = %T.loc6_27.1 (constants.%T)] +// CHECK:STDOUT: %x.ref: @ExplicitAndAlsoDeduced.%T.loc6_27.1 (%T) = name_ref x, %x // CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1: = specific_function %ExplicitAndAlsoDeduced.ref, @ExplicitAndAlsoDeduced(constants.%T) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.41d)] -// CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = call %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1(%x.ref) -// CHECK:STDOUT: %.loc7_38.1: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = value_of_initializer %ExplicitAndAlsoDeduced.call -// CHECK:STDOUT: %.loc7_38.2: @ExplicitAndAlsoDeduced.%ptr.loc6_47.2 (%ptr.79f) = converted %ExplicitAndAlsoDeduced.call, %.loc7_38.1 +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f) = call %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1(%x.ref) +// CHECK:STDOUT: %.loc7_38.1: @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f) = value_of_initializer %ExplicitAndAlsoDeduced.call +// CHECK:STDOUT: %.loc7_38.2: @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f) = converted %ExplicitAndAlsoDeduced.call, %.loc7_38.1 // CHECK:STDOUT: return %.loc7_38.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -629,7 +629,7 @@ fn F() { // CHECK:STDOUT: %.loc11_39.1: %ptr.6db = value_of_initializer %ExplicitAndAlsoDeduced.call // CHECK:STDOUT: %.loc11_39.2: %ptr.6db = converted %ExplicitAndAlsoDeduced.call, %.loc11_39.1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc11_37.2, constants.%Op.885 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.885, @Op.2(constants.%A) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.885, @Op.1(constants.%A) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc11_37.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6db = addr_of %.loc11_37.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -637,9 +637,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(constants.%T) { -// CHECK:STDOUT: %T.loc6_27.2 => constants.%T +// CHECK:STDOUT: %T.loc6_27.1 => constants.%T // CHECK:STDOUT: %pattern_type.loc6_37 => constants.%pattern_type.7dc -// CHECK:STDOUT: %ptr.loc6_47.2 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc6_47.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -649,9 +649,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(constants.%A) { -// CHECK:STDOUT: %T.loc6_27.2 => constants.%A +// CHECK:STDOUT: %T.loc6_27.1 => constants.%A // CHECK:STDOUT: %pattern_type.loc6_37 => constants.%pattern_type.c10 -// CHECK:STDOUT: %ptr.loc6_47.2 => constants.%ptr.6db +// CHECK:STDOUT: %ptr.loc6_47.1 => constants.%ptr.6db // CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.5f8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -711,14 +711,14 @@ fn F() { // CHECK:STDOUT: %return.patt: @ImplicitGenericParam.%pattern_type.loc4_41 (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitGenericParam.%pattern_type.loc4_41 (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_45.1: type = ptr_type %T.ref.loc4_44 [symbolic = %ptr.loc4_45.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @ImplicitGenericParam.%T.loc4_25.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %x: @ImplicitGenericParam.%T.loc4_25.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_45.2: type = ptr_type %T.ref.loc4_44 [symbolic = %ptr.loc4_45.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @ImplicitGenericParam.%T.loc4_25.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %x: @ImplicitGenericParam.%T.loc4_25.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitGenericParam.decl: %CallImplicitGenericParam.type = fn_decl @CallImplicitGenericParam [concrete = constants.%CallImplicitGenericParam] { // CHECK:STDOUT: %n.patt: %pattern_type.7ce = binding_pattern n [concrete] @@ -740,25 +740,25 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type.loc4_35: type = pattern_type %T.loc4_25.2 [symbolic = %pattern_type.loc4_35 (constants.%pattern_type.7dc)] -// CHECK:STDOUT: %ptr.loc4_45.2: type = ptr_type %T.loc4_25.2 [symbolic = %ptr.loc4_45.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type.loc4_41: type = pattern_type %ptr.loc4_45.2 [symbolic = %pattern_type.loc4_41 (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @ImplicitGenericParam(%T.loc4_25.2: type) { +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type.loc4_35: type = pattern_type %T.loc4_25.1 [symbolic = %pattern_type.loc4_35 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %ptr.loc4_45.1: type = ptr_type %T.loc4_25.1 [symbolic = %ptr.loc4_45.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type.loc4_41: type = pattern_type %ptr.loc4_45.1 [symbolic = %pattern_type.loc4_41 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_41: = require_complete_type %ptr.loc4_45.2 [symbolic = %require_complete.loc4_41 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %require_complete.loc4_36: = require_complete_type %T.loc4_25.2 [symbolic = %require_complete.loc4_36 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2: = specific_function constants.%ImplicitGenericParam, @ImplicitGenericParam(%T.loc4_25.2) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.fc1)] +// CHECK:STDOUT: %require_complete.loc4_41: = require_complete_type %ptr.loc4_45.1 [symbolic = %require_complete.loc4_41 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc4_36: = require_complete_type %T.loc4_25.1 [symbolic = %require_complete.loc4_36 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2: = specific_function constants.%ImplicitGenericParam, @ImplicitGenericParam(%T.loc4_25.1) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.fc1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @ImplicitGenericParam.%T.loc4_25.2 (%T)) -> @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) { +// CHECK:STDOUT: fn(%x.param: @ImplicitGenericParam.%T.loc4_25.1 (%T)) -> @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.79f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %ImplicitGenericParam.ref: %ImplicitGenericParam.type = name_ref ImplicitGenericParam, file.%ImplicitGenericParam.decl [concrete = constants.%ImplicitGenericParam] -// CHECK:STDOUT: %x.ref: @ImplicitGenericParam.%T.loc4_25.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @ImplicitGenericParam.%T.loc4_25.1 (%T) = name_ref x, %x // CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.1: = specific_function %ImplicitGenericParam.ref, @ImplicitGenericParam(constants.%T) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.fc1)] -// CHECK:STDOUT: %ImplicitGenericParam.call: init @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = call %ImplicitGenericParam.specific_fn.loc4_56.1(%x.ref) -// CHECK:STDOUT: %.loc4_79.1: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = value_of_initializer %ImplicitGenericParam.call -// CHECK:STDOUT: %.loc4_79.2: @ImplicitGenericParam.%ptr.loc4_45.2 (%ptr.79f) = converted %ImplicitGenericParam.call, %.loc4_79.1 +// CHECK:STDOUT: %ImplicitGenericParam.call: init @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.79f) = call %ImplicitGenericParam.specific_fn.loc4_56.1(%x.ref) +// CHECK:STDOUT: %.loc4_79.1: @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.79f) = value_of_initializer %ImplicitGenericParam.call +// CHECK:STDOUT: %.loc4_79.2: @ImplicitGenericParam.%ptr.loc4_45.1 (%ptr.79f) = converted %ImplicitGenericParam.call, %.loc4_79.1 // CHECK:STDOUT: return %.loc4_79.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -775,9 +775,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_25.2 => constants.%T +// CHECK:STDOUT: %T.loc4_25.1 => constants.%T // CHECK:STDOUT: %pattern_type.loc4_35 => constants.%pattern_type.7dc -// CHECK:STDOUT: %ptr.loc4_45.2 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc4_45.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc4_41 => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -787,9 +787,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitGenericParam(constants.%i32) { -// CHECK:STDOUT: %T.loc4_25.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_25.1 => constants.%i32 // CHECK:STDOUT: %pattern_type.loc4_35 => constants.%pattern_type.7ce -// CHECK:STDOUT: %ptr.loc4_45.2 => constants.%ptr.235 +// CHECK:STDOUT: %ptr.loc4_45.1 => constants.%ptr.235 // CHECK:STDOUT: %pattern_type.loc4_41 => constants.%pattern_type.fe8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -825,17 +825,17 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %tuple: %tuple.type.4c8 = tuple_value (%int_1, %int_2.ef8) [concrete] @@ -867,10 +867,10 @@ fn F() { // CHECK:STDOUT: %x.patt: @TupleParam.%pattern_type (%pattern_type.ec8) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @TupleParam.%pattern_type (%pattern_type.ec8) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: %x.param: @TupleParam.%tuple.type (%tuple.type.f83) = value_param call_param0 // CHECK:STDOUT: %.loc4_35.1: type = splice_block %.loc4_35.3 [symbolic = %tuple.type (constants.%tuple.type.f83)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [symbolic = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [symbolic = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %.loc4_35.2: %tuple.type.24b = tuple_literal (%T.ref, %i32) @@ -881,9 +881,9 @@ fn F() { // CHECK:STDOUT: %CallTupleParam.decl: %CallTupleParam.type = fn_decl @CallTupleParam [concrete = constants.%CallTupleParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %tuple.type: type = tuple_type (%T.loc4_15.2, constants.%i32) [symbolic = %tuple.type (constants.%tuple.type.f83)] +// CHECK:STDOUT: generic fn @TupleParam(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc4_15.1, constants.%i32) [symbolic = %tuple.type (constants.%tuple.type.f83)] // CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.ec8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -904,7 +904,7 @@ fn F() { // CHECK:STDOUT: %TupleParam.specific_fn: = specific_function %TupleParam.ref, @TupleParam(Core.IntLiteral) [concrete = constants.%TupleParam.specific_fn] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_19.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_19.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc7_19.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc7_19.2: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] @@ -916,13 +916,13 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TupleParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: %tuple.type => constants.%tuple.type.f83 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ec8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TupleParam(Core.IntLiteral) { -// CHECK:STDOUT: %T.loc4_15.2 => Core.IntLiteral +// CHECK:STDOUT: %T.loc4_15.1 => Core.IntLiteral // CHECK:STDOUT: %tuple.type => constants.%tuple.type.4c8 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6f2 // CHECK:STDOUT: @@ -956,17 +956,17 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.a13 = struct_value (%int_1, %int_2.ef8) [concrete] @@ -998,28 +998,28 @@ fn F() { // CHECK:STDOUT: %x.patt: @StructParam.%pattern_type (%pattern_type.e94) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @StructParam.%pattern_type (%pattern_type.e94) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e) = value_param call_param0 -// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.a.b.loc4_44.1 [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.46e)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_16.1 [symbolic = %T.loc4_16.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @StructParam.%struct_type.a.b.loc4_44.1 (%struct_type.a.b.46e) = value_param call_param0 +// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.a.b.loc4_44.2 [symbolic = %struct_type.a.b.loc4_44.1 (constants.%struct_type.a.b.46e)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_16.2 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.a.b.loc4_44.1: type = struct_type {.a: @StructParam.%T.loc4_16.2 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.46e)] +// CHECK:STDOUT: %struct_type.a.b.loc4_44.2: type = struct_type {.a: @StructParam.%T.loc4_16.1 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_44.1 (constants.%struct_type.a.b.46e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e) = bind_name x, %x.param +// CHECK:STDOUT: %x: @StructParam.%struct_type.a.b.loc4_44.1 (%struct_type.a.b.46e) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallStructParam.decl: %CallStructParam.type = fn_decl @CallStructParam [concrete = constants.%CallStructParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %struct_type.a.b.loc4_44.2: type = struct_type {.a: @StructParam.%T.loc4_16.2 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_44.2 (constants.%struct_type.a.b.46e)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.b.loc4_44.2 [symbolic = %pattern_type (constants.%pattern_type.e94)] +// CHECK:STDOUT: generic fn @StructParam(%T.loc4_16.2: type) { +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.a.b.loc4_44.1: type = struct_type {.a: @StructParam.%T.loc4_16.1 (%T), .b: %i32} [symbolic = %struct_type.a.b.loc4_44.1 (constants.%struct_type.a.b.46e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.b.loc4_44.1 [symbolic = %pattern_type (constants.%pattern_type.e94)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.b.loc4_44.2 [symbolic = %require_complete (constants.%require_complete.23a)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.b.loc4_44.1 [symbolic = %require_complete (constants.%require_complete.23a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @StructParam.%struct_type.a.b.loc4_44.2 (%struct_type.a.b.46e)) { +// CHECK:STDOUT: fn(%x.param: @StructParam.%struct_type.a.b.loc4_44.1 (%struct_type.a.b.46e)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1034,7 +1034,7 @@ fn F() { // CHECK:STDOUT: %StructParam.specific_fn: = specific_function %StructParam.ref, @StructParam(Core.IntLiteral) [concrete = constants.%StructParam.specific_fn] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_30.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_30.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc7_30.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc7_30.2: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] @@ -1046,14 +1046,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StructParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%T -// CHECK:STDOUT: %struct_type.a.b.loc4_44.2 => constants.%struct_type.a.b.46e +// CHECK:STDOUT: %T.loc4_16.1 => constants.%T +// CHECK:STDOUT: %struct_type.a.b.loc4_44.1 => constants.%struct_type.a.b.46e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @StructParam(Core.IntLiteral) { -// CHECK:STDOUT: %T.loc4_16.2 => Core.IntLiteral -// CHECK:STDOUT: %struct_type.a.b.loc4_44.2 => constants.%struct_type.a.b.a13 +// CHECK:STDOUT: %T.loc4_16.1 => Core.IntLiteral +// CHECK:STDOUT: %struct_type.a.b.loc4_44.1 => constants.%struct_type.a.b.a13 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cfa // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1102,30 +1102,30 @@ fn F() { // CHECK:STDOUT: %x.patt: @BigStructParam.%pattern_type (%pattern_type.c31) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @BigStructParam.%pattern_type (%pattern_type.c31) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @BigStructParam.%struct_type.c.d.e.loc4_56.2 (%struct_type.c.d.e) = value_param call_param0 -// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.c.d.e.loc4_56.1 [symbolic = %struct_type.c.d.e.loc4_56.2 (constants.%struct_type.c.d.e)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_19.1 [symbolic = %T.loc4_19.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @BigStructParam.%struct_type.c.d.e.loc4_56.1 (%struct_type.c.d.e) = value_param call_param0 +// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.c.d.e.loc4_56.2 [symbolic = %struct_type.c.d.e.loc4_56.1 (constants.%struct_type.c.d.e)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_19.2 [symbolic = %T.loc4_19.1 (constants.%T)] // CHECK:STDOUT: %int_32.loc4_44: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc4_44: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %int_32.loc4_53: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc4_53: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.c.d.e.loc4_56.1: type = struct_type {.c: @BigStructParam.%T.loc4_19.2 (%T), .d: %i32, .e: %i32} [symbolic = %struct_type.c.d.e.loc4_56.2 (constants.%struct_type.c.d.e)] +// CHECK:STDOUT: %struct_type.c.d.e.loc4_56.2: type = struct_type {.c: @BigStructParam.%T.loc4_19.1 (%T), .d: %i32, .e: %i32} [symbolic = %struct_type.c.d.e.loc4_56.1 (constants.%struct_type.c.d.e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @BigStructParam.%struct_type.c.d.e.loc4_56.2 (%struct_type.c.d.e) = bind_name x, %x.param +// CHECK:STDOUT: %x: @BigStructParam.%struct_type.c.d.e.loc4_56.1 (%struct_type.c.d.e) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallBigStructParam.decl: %CallBigStructParam.type = fn_decl @CallBigStructParam [concrete = constants.%CallBigStructParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @BigStructParam(%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: %struct_type.c.d.e.loc4_56.2: type = struct_type {.c: @BigStructParam.%T.loc4_19.2 (%T), .d: %i32, .e: %i32} [symbolic = %struct_type.c.d.e.loc4_56.2 (constants.%struct_type.c.d.e)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.c.d.e.loc4_56.2 [symbolic = %pattern_type (constants.%pattern_type.c31)] +// CHECK:STDOUT: generic fn @BigStructParam(%T.loc4_19.2: type) { +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.c.d.e.loc4_56.1: type = struct_type {.c: @BigStructParam.%T.loc4_19.1 (%T), .d: %i32, .e: %i32} [symbolic = %struct_type.c.d.e.loc4_56.1 (constants.%struct_type.c.d.e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.c.d.e.loc4_56.1 [symbolic = %pattern_type (constants.%pattern_type.c31)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.c.d.e.loc4_56.2 [symbolic = %require_complete (constants.%require_complete.694)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.c.d.e.loc4_56.1 [symbolic = %require_complete (constants.%require_complete.694)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @BigStructParam.%struct_type.c.d.e.loc4_56.2 (%struct_type.c.d.e)) { +// CHECK:STDOUT: fn(%x.param: @BigStructParam.%struct_type.c.d.e.loc4_56.1 (%struct_type.c.d.e)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1141,8 +1141,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @BigStructParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%T -// CHECK:STDOUT: %struct_type.c.d.e.loc4_56.2 => constants.%struct_type.c.d.e +// CHECK:STDOUT: %T.loc4_19.1 => constants.%T +// CHECK:STDOUT: %struct_type.c.d.e.loc4_56.1 => constants.%struct_type.c.d.e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c31 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1189,28 +1189,28 @@ fn F() { // CHECK:STDOUT: %x.patt: @SmallStructParam.%pattern_type (%pattern_type.5b8) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @SmallStructParam.%pattern_type (%pattern_type.5b8) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @SmallStructParam.%struct_type.f.g.loc4_49.2 (%struct_type.f.g) = value_param call_param0 -// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.f.g.loc4_49.1 [symbolic = %struct_type.f.g.loc4_49.2 (constants.%struct_type.f.g)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_21.1 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @SmallStructParam.%struct_type.f.g.loc4_49.1 (%struct_type.f.g) = value_param call_param0 +// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.f.g.loc4_49.2 [symbolic = %struct_type.f.g.loc4_49.1 (constants.%struct_type.f.g)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_21.2 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.f.g.loc4_49.1: type = struct_type {.f: @SmallStructParam.%T.loc4_21.2 (%T), .g: %i32} [symbolic = %struct_type.f.g.loc4_49.2 (constants.%struct_type.f.g)] +// CHECK:STDOUT: %struct_type.f.g.loc4_49.2: type = struct_type {.f: @SmallStructParam.%T.loc4_21.1 (%T), .g: %i32} [symbolic = %struct_type.f.g.loc4_49.1 (constants.%struct_type.f.g)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @SmallStructParam.%struct_type.f.g.loc4_49.2 (%struct_type.f.g) = bind_name x, %x.param +// CHECK:STDOUT: %x: @SmallStructParam.%struct_type.f.g.loc4_49.1 (%struct_type.f.g) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallSmallStructParam.decl: %CallSmallStructParam.type = fn_decl @CallSmallStructParam [concrete = constants.%CallSmallStructParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @SmallStructParam(%T.loc4_21.1: type) { -// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] -// CHECK:STDOUT: %struct_type.f.g.loc4_49.2: type = struct_type {.f: @SmallStructParam.%T.loc4_21.2 (%T), .g: %i32} [symbolic = %struct_type.f.g.loc4_49.2 (constants.%struct_type.f.g)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.f.g.loc4_49.2 [symbolic = %pattern_type (constants.%pattern_type.5b8)] +// CHECK:STDOUT: generic fn @SmallStructParam(%T.loc4_21.2: type) { +// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.f.g.loc4_49.1: type = struct_type {.f: @SmallStructParam.%T.loc4_21.1 (%T), .g: %i32} [symbolic = %struct_type.f.g.loc4_49.1 (constants.%struct_type.f.g)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.f.g.loc4_49.1 [symbolic = %pattern_type (constants.%pattern_type.5b8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.f.g.loc4_49.2 [symbolic = %require_complete (constants.%require_complete.dad)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.f.g.loc4_49.1 [symbolic = %require_complete (constants.%require_complete.dad)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @SmallStructParam.%struct_type.f.g.loc4_49.2 (%struct_type.f.g)) { +// CHECK:STDOUT: fn(%x.param: @SmallStructParam.%struct_type.f.g.loc4_49.1 (%struct_type.f.g)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1227,8 +1227,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SmallStructParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%T -// CHECK:STDOUT: %struct_type.f.g.loc4_49.2 => constants.%struct_type.f.g +// CHECK:STDOUT: %T.loc4_21.1 => constants.%T +// CHECK:STDOUT: %struct_type.f.g.loc4_49.1 => constants.%struct_type.f.g // CHECK:STDOUT: %pattern_type => constants.%pattern_type.5b8 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1274,28 +1274,28 @@ fn F() { // CHECK:STDOUT: %x.patt: @WrongNameStructParam.%pattern_type (%pattern_type.685) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @WrongNameStructParam.%pattern_type (%pattern_type.685) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @WrongNameStructParam.%struct_type.i.different.loc4_61.2 (%struct_type.i.different) = value_param call_param0 -// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.i.different.loc4_61.1 [symbolic = %struct_type.i.different.loc4_61.2 (constants.%struct_type.i.different)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @WrongNameStructParam.%struct_type.i.different.loc4_61.1 (%struct_type.i.different) = value_param call_param0 +// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.i.different.loc4_61.2 [symbolic = %struct_type.i.different.loc4_61.1 (constants.%struct_type.i.different)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.i.different.loc4_61.1: type = struct_type {.i: @WrongNameStructParam.%T.loc4_25.2 (%T), .different: %i32} [symbolic = %struct_type.i.different.loc4_61.2 (constants.%struct_type.i.different)] +// CHECK:STDOUT: %struct_type.i.different.loc4_61.2: type = struct_type {.i: @WrongNameStructParam.%T.loc4_25.1 (%T), .different: %i32} [symbolic = %struct_type.i.different.loc4_61.1 (constants.%struct_type.i.different)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @WrongNameStructParam.%struct_type.i.different.loc4_61.2 (%struct_type.i.different) = bind_name x, %x.param +// CHECK:STDOUT: %x: @WrongNameStructParam.%struct_type.i.different.loc4_61.1 (%struct_type.i.different) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallWrongNameStructParam.decl: %CallWrongNameStructParam.type = fn_decl @CallWrongNameStructParam [concrete = constants.%CallWrongNameStructParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WrongNameStructParam(%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: %struct_type.i.different.loc4_61.2: type = struct_type {.i: @WrongNameStructParam.%T.loc4_25.2 (%T), .different: %i32} [symbolic = %struct_type.i.different.loc4_61.2 (constants.%struct_type.i.different)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.i.different.loc4_61.2 [symbolic = %pattern_type (constants.%pattern_type.685)] +// CHECK:STDOUT: generic fn @WrongNameStructParam(%T.loc4_25.2: type) { +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.i.different.loc4_61.1: type = struct_type {.i: @WrongNameStructParam.%T.loc4_25.1 (%T), .different: %i32} [symbolic = %struct_type.i.different.loc4_61.1 (constants.%struct_type.i.different)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.i.different.loc4_61.1 [symbolic = %pattern_type (constants.%pattern_type.685)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.i.different.loc4_61.2 [symbolic = %require_complete (constants.%require_complete.411)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.i.different.loc4_61.1 [symbolic = %require_complete (constants.%require_complete.411)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @WrongNameStructParam.%struct_type.i.different.loc4_61.2 (%struct_type.i.different)) { +// CHECK:STDOUT: fn(%x.param: @WrongNameStructParam.%struct_type.i.different.loc4_61.1 (%struct_type.i.different)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1311,8 +1311,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WrongNameStructParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_25.2 => constants.%T -// CHECK:STDOUT: %struct_type.i.different.loc4_61.2 => constants.%struct_type.i.different +// CHECK:STDOUT: %T.loc4_25.1 => constants.%T +// CHECK:STDOUT: %struct_type.i.different.loc4_61.1 => constants.%struct_type.i.different // CHECK:STDOUT: %pattern_type => constants.%pattern_type.685 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1358,28 +1358,28 @@ fn F() { // CHECK:STDOUT: %x.patt: @WrongOrderStructParam.%pattern_type (%pattern_type.422) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @WrongOrderStructParam.%pattern_type (%pattern_type.422) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_26.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_26.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @WrongOrderStructParam.%struct_type.first.second.loc4_63.2 (%struct_type.first.second) = value_param call_param0 -// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.first.second.loc4_63.1 [symbolic = %struct_type.first.second.loc4_63.2 (constants.%struct_type.first.second)] { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_26.1 [symbolic = %T.loc4_26.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_26.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_26.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @WrongOrderStructParam.%struct_type.first.second.loc4_63.1 (%struct_type.first.second) = value_param call_param0 +// CHECK:STDOUT: %.loc4: type = splice_block %struct_type.first.second.loc4_63.2 [symbolic = %struct_type.first.second.loc4_63.1 (constants.%struct_type.first.second)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_26.2 [symbolic = %T.loc4_26.1 (constants.%T)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.first.second.loc4_63.1: type = struct_type {.first: @WrongOrderStructParam.%T.loc4_26.2 (%T), .second: %i32} [symbolic = %struct_type.first.second.loc4_63.2 (constants.%struct_type.first.second)] +// CHECK:STDOUT: %struct_type.first.second.loc4_63.2: type = struct_type {.first: @WrongOrderStructParam.%T.loc4_26.1 (%T), .second: %i32} [symbolic = %struct_type.first.second.loc4_63.1 (constants.%struct_type.first.second)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @WrongOrderStructParam.%struct_type.first.second.loc4_63.2 (%struct_type.first.second) = bind_name x, %x.param +// CHECK:STDOUT: %x: @WrongOrderStructParam.%struct_type.first.second.loc4_63.1 (%struct_type.first.second) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallWrongOrderStructParam.decl: %CallWrongOrderStructParam.type = fn_decl @CallWrongOrderStructParam [concrete = constants.%CallWrongOrderStructParam] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WrongOrderStructParam(%T.loc4_26.1: type) { -// CHECK:STDOUT: %T.loc4_26.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_26.2 (constants.%T)] -// CHECK:STDOUT: %struct_type.first.second.loc4_63.2: type = struct_type {.first: @WrongOrderStructParam.%T.loc4_26.2 (%T), .second: %i32} [symbolic = %struct_type.first.second.loc4_63.2 (constants.%struct_type.first.second)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.first.second.loc4_63.2 [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: generic fn @WrongOrderStructParam(%T.loc4_26.2: type) { +// CHECK:STDOUT: %T.loc4_26.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_26.1 (constants.%T)] +// CHECK:STDOUT: %struct_type.first.second.loc4_63.1: type = struct_type {.first: @WrongOrderStructParam.%T.loc4_26.1 (%T), .second: %i32} [symbolic = %struct_type.first.second.loc4_63.1 (constants.%struct_type.first.second)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.first.second.loc4_63.1 [symbolic = %pattern_type (constants.%pattern_type.422)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.first.second.loc4_63.2 [symbolic = %require_complete (constants.%require_complete.d6e)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.first.second.loc4_63.1 [symbolic = %require_complete (constants.%require_complete.d6e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @WrongOrderStructParam.%struct_type.first.second.loc4_63.2 (%struct_type.first.second)) { +// CHECK:STDOUT: fn(%x.param: @WrongOrderStructParam.%struct_type.first.second.loc4_63.1 (%struct_type.first.second)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1395,8 +1395,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WrongOrderStructParam(constants.%T) { -// CHECK:STDOUT: %T.loc4_26.2 => constants.%T -// CHECK:STDOUT: %struct_type.first.second.loc4_63.2 => constants.%struct_type.first.second +// CHECK:STDOUT: %T.loc4_26.1 => constants.%T +// CHECK:STDOUT: %struct_type.first.second.loc4_63.1 => constants.%struct_type.first.second // CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1437,25 +1437,25 @@ fn F() { // CHECK:STDOUT: %return.patt: @ImplicitNotDeducible.%pattern_type.loc6_51 (%pattern_type.a32) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitNotDeducible.%pattern_type.loc6_51 (%pattern_type.a32) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc6_35.1 [symbolic = %U.loc6_35.2 (constants.%U)] -// CHECK:STDOUT: %T.loc6_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_25.2 (constants.%T)] -// CHECK:STDOUT: %U.loc6_35.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc6_35.2 (constants.%U)] -// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_25.1 [symbolic = %T.loc6_25.2 (constants.%T)] -// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @ImplicitNotDeducible.%U.loc6_35.2 (%U) = out_param call_param1 -// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%U.loc6_35.2 (%U) = return_slot %return.param +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc6_35.2 [symbolic = %U.loc6_35.1 (constants.%U)] +// CHECK:STDOUT: %T.loc6_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_25.1 (constants.%T)] +// CHECK:STDOUT: %U.loc6_35.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc6_35.1 (constants.%U)] +// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.loc6_25.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_25.2 [symbolic = %T.loc6_25.1 (constants.%T)] +// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.loc6_25.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @ImplicitNotDeducible.%U.loc6_35.1 (%U) = out_param call_param1 +// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%U.loc6_35.1 (%U) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitNotDeducible.decl: %CallImplicitNotDeducible.type = fn_decl @CallImplicitNotDeducible [concrete = constants.%CallImplicitNotDeducible] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type.loc6_45: type = pattern_type %T.loc6_25.2 [symbolic = %pattern_type.loc6_45 (constants.%pattern_type.7dc)] -// CHECK:STDOUT: %pattern_type.loc6_51: type = pattern_type %U.loc6_35.2 [symbolic = %pattern_type.loc6_51 (constants.%pattern_type.a32)] +// CHECK:STDOUT: generic fn @ImplicitNotDeducible(%T.loc6_25.2: type, %U.loc6_35.2: type) { +// CHECK:STDOUT: %T.loc6_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_25.1 (constants.%T)] +// CHECK:STDOUT: %U.loc6_35.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc6_35.1 (constants.%U)] +// CHECK:STDOUT: %pattern_type.loc6_45: type = pattern_type %T.loc6_25.1 [symbolic = %pattern_type.loc6_45 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %pattern_type.loc6_51: type = pattern_type %U.loc6_35.1 [symbolic = %pattern_type.loc6_51 (constants.%pattern_type.a32)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @ImplicitNotDeducible.%T.loc6_25.2 (%T)) -> @ImplicitNotDeducible.%U.loc6_35.2 (%U); +// CHECK:STDOUT: fn(%x.param: @ImplicitNotDeducible.%T.loc6_25.1 (%T)) -> @ImplicitNotDeducible.%U.loc6_35.1 (%U); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallImplicitNotDeducible() { @@ -1466,8 +1466,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitNotDeducible(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc6_25.2 => constants.%T -// CHECK:STDOUT: %U.loc6_35.2 => constants.%U +// CHECK:STDOUT: %T.loc6_25.1 => constants.%T +// CHECK:STDOUT: %U.loc6_35.1 => constants.%U // CHECK:STDOUT: %pattern_type.loc6_45 => constants.%pattern_type.7dc // CHECK:STDOUT: %pattern_type.loc6_51 => constants.%pattern_type.a32 // CHECK:STDOUT: } @@ -1510,25 +1510,25 @@ fn F() { // CHECK:STDOUT: %return.patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitNotDeducible.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_50: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %y.param: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)] -// CHECK:STDOUT: %y: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name y, %y.param -// CHECK:STDOUT: %return.param: ref @ImplicitNotDeducible.%T.loc4_25.2 (%T) = out_param call_param2 -// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%T.loc4_25.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_50: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @ImplicitNotDeducible.%T.loc4_25.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4_38: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %x: @ImplicitNotDeducible.%T.loc4_25.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %y.param: @ImplicitNotDeducible.%T.loc4_25.1 (%T) = value_param call_param1 +// CHECK:STDOUT: %T.ref.loc4_44: type = name_ref T, %T.loc4_25.2 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %y: @ImplicitNotDeducible.%T.loc4_25.1 (%T) = bind_name y, %y.param +// CHECK:STDOUT: %return.param: ref @ImplicitNotDeducible.%T.loc4_25.1 (%T) = out_param call_param2 +// CHECK:STDOUT: %return: ref @ImplicitNotDeducible.%T.loc4_25.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallImplicitNotDeducible.decl: %CallImplicitNotDeducible.type = fn_decl @CallImplicitNotDeducible [concrete = constants.%CallImplicitNotDeducible] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %pattern_type: type = pattern_type %T.loc4_25.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @ImplicitNotDeducible(%T.loc4_25.2: type) { +// CHECK:STDOUT: %T.loc4_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_25.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_25.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @ImplicitNotDeducible.%T.loc4_25.2 (%T), %y.param: @ImplicitNotDeducible.%T.loc4_25.2 (%T)) -> @ImplicitNotDeducible.%T.loc4_25.2 (%T); +// CHECK:STDOUT: fn(%x.param: @ImplicitNotDeducible.%T.loc4_25.1 (%T), %y.param: @ImplicitNotDeducible.%T.loc4_25.1 (%T)) -> @ImplicitNotDeducible.%T.loc4_25.1 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallImplicitNotDeducible() { @@ -1541,7 +1541,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitNotDeducible(constants.%T) { -// CHECK:STDOUT: %T.loc4_25.2 => constants.%T +// CHECK:STDOUT: %T.loc4_25.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1607,7 +1607,7 @@ fn F() { // CHECK:STDOUT: %DD.decl: %DD.type = class_decl @DD [concrete = constants.%DD.generic] { // CHECK:STDOUT: %E.patt: %pattern_type.98f = symbolic_binding_pattern E, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %E.loc8_10.1: type = bind_symbolic_name E, 0 [symbolic = %E.loc8_10.2 (constants.%E)] +// CHECK:STDOUT: %E.loc8_10.2: type = bind_symbolic_name E, 0 [symbolic = %E.loc8_10.1 (constants.%E)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Z.impl.266 [concrete] { // CHECK:STDOUT: %E.patt: %pattern_type.98f = symbolic_binding_pattern E, 0 [concrete] @@ -1624,7 +1624,7 @@ fn F() { // CHECK:STDOUT: %D.patt: %pattern_type.5af = symbolic_binding_pattern D, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %D.loc11_10.1: %Z.type = bind_symbolic_name D, 0 [symbolic = %D.loc11_10.2 (constants.%D)] +// CHECK:STDOUT: %D.loc11_10.2: %Z.type = bind_symbolic_name D, 0 [symbolic = %D.loc11_10.1 (constants.%D)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Z.impl.497 [concrete] { // CHECK:STDOUT: %E.patt: %pattern_type.98f = symbolic_binding_pattern E, 0 [concrete] @@ -1695,8 +1695,8 @@ fn F() { // CHECK:STDOUT: .Self = constants.%EE // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @DD(%E.loc8_10.1: type) { -// CHECK:STDOUT: %E.loc8_10.2: type = bind_symbolic_name E, 0 [symbolic = %E.loc8_10.2 (constants.%E)] +// CHECK:STDOUT: generic class @DD(%E.loc8_10.2: type) { +// CHECK:STDOUT: %E.loc8_10.1: type = bind_symbolic_name E, 0 [symbolic = %E.loc8_10.1 (constants.%E)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1710,8 +1710,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @CC(%D.loc11_10.1: %Z.type) { -// CHECK:STDOUT: %D.loc11_10.2: %Z.type = bind_symbolic_name D, 0 [symbolic = %D.loc11_10.2 (constants.%D)] +// CHECK:STDOUT: generic class @CC(%D.loc11_10.2: %Z.type) { +// CHECK:STDOUT: %D.loc11_10.1: %Z.type = bind_symbolic_name D, 0 [symbolic = %D.loc11_10.1 (constants.%D)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1741,7 +1741,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DD(constants.%E) { -// CHECK:STDOUT: %E.loc8_10.2 => constants.%E +// CHECK:STDOUT: %E.loc8_10.1 => constants.%E // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.impl.266(constants.%E) { @@ -1753,11 +1753,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC(constants.%D) { -// CHECK:STDOUT: %D.loc11_10.2 => constants.%D +// CHECK:STDOUT: %D.loc11_10.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC(constants.%Z.facet.aae) { -// CHECK:STDOUT: %D.loc11_10.2 => constants.%Z.facet.aae +// CHECK:STDOUT: %D.loc11_10.1 => constants.%Z.facet.aae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.impl.497(constants.%E) { @@ -1770,7 +1770,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DD(constants.%EE) { -// CHECK:STDOUT: %E.loc8_10.2 => constants.%EE +// CHECK:STDOUT: %E.loc8_10.1 => constants.%EE // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.impl.266(constants.%EE) { @@ -1782,7 +1782,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC(constants.%Z.facet.a96) { -// CHECK:STDOUT: %D.loc11_10.2 => constants.%Z.facet.a96 +// CHECK:STDOUT: %D.loc11_10.1 => constants.%Z.facet.a96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.impl.497(constants.%EE) { diff --git a/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon b/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon index aba83f764bad..d3cbc9573420 100644 --- a/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon +++ b/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon @@ -124,7 +124,7 @@ fn F() { // CHECK:STDOUT: %D.patt: %pattern_type.667 = symbolic_binding_pattern D, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] -// CHECK:STDOUT: %D.loc12_10.1: %Y.type = bind_symbolic_name D, 0 [symbolic = %D.loc12_10.2 (constants.%D)] +// CHECK:STDOUT: %D.loc12_10.2: %Y.type = bind_symbolic_name D, 0 [symbolic = %D.loc12_10.1 (constants.%D)] // CHECK:STDOUT: } // CHECK:STDOUT: %Z.decl: type = interface_decl @Z [concrete = constants.%Z.type] {} {} // CHECK:STDOUT: impl_decl @Z.impl [concrete] { @@ -212,8 +212,8 @@ fn F() { // CHECK:STDOUT: .Self = constants.%DD // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @CC(%D.loc12_10.1: %Y.type) { -// CHECK:STDOUT: %D.loc12_10.2: %Y.type = bind_symbolic_name D, 0 [symbolic = %D.loc12_10.2 (constants.%D)] +// CHECK:STDOUT: generic class @CC(%D.loc12_10.2: %Y.type) { +// CHECK:STDOUT: %D.loc12_10.1: %Y.type = bind_symbolic_name D, 0 [symbolic = %D.loc12_10.1 (constants.%D)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -243,11 +243,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC(constants.%D) { -// CHECK:STDOUT: %D.loc12_10.2 => constants.%D +// CHECK:STDOUT: %D.loc12_10.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC(constants.%Y.facet.7ec) { -// CHECK:STDOUT: %D.loc12_10.2 => constants.%Y.facet.7ec +// CHECK:STDOUT: %D.loc12_10.1 => constants.%Y.facet.7ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.impl(constants.%E) { @@ -260,7 +260,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC(constants.%Y.facet.268) { -// CHECK:STDOUT: %D.loc12_10.2 => constants.%Y.facet.268 +// CHECK:STDOUT: %D.loc12_10.1 => constants.%Y.facet.268 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.impl(constants.%facet_value) { diff --git a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon index fe9fe77f566a..29d16560587f 100644 --- a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon +++ b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon @@ -72,15 +72,15 @@ fn B() { // CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.64f) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %T.loc4_6.1: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @A.%struct_type.a.loc4_22.2 (%struct_type.a) = value_param call_param0 -// CHECK:STDOUT: %.loc4_22: type = splice_block %struct_type.a.loc4_22.1 [symbolic = %struct_type.a.loc4_22.2 (constants.%struct_type.a)] { -// CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_21.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_21.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc4_21: type = converted %T.ref, %T.as_type.loc4_21.1 [symbolic = %T.as_type.loc4_21.2 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_22.1: type = struct_type {.a: @A.%T.as_type.loc4_21.2 (%T.as_type)} [symbolic = %struct_type.a.loc4_22.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.loc4_6.2: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @A.%struct_type.a.loc4_22.1 (%struct_type.a) = value_param call_param0 +// CHECK:STDOUT: %.loc4_22: type = splice_block %struct_type.a.loc4_22.2 [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] { +// CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc4_21.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_21.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc4_21: type = converted %T.ref, %T.as_type.loc4_21.2 [symbolic = %T.as_type.loc4_21.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_22.2: type = struct_type {.a: @A.%T.as_type.loc4_21.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @A.%struct_type.a.loc4_22.2 (%struct_type.a) = bind_name x, %x.param +// CHECK:STDOUT: %x: @A.%struct_type.a.loc4_22.1 (%struct_type.a) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -92,25 +92,25 @@ fn B() { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A(%T.loc4_6.1: %Z.type) { -// CHECK:STDOUT: %T.loc4_6.2: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_21.2: type = facet_access_type %T.loc4_6.2 [symbolic = %T.as_type.loc4_21.2 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_22.2: type = struct_type {.a: @A.%T.as_type.loc4_21.2 (%T.as_type)} [symbolic = %struct_type.a.loc4_22.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_22.2 [symbolic = %pattern_type (constants.%pattern_type.64f)] +// CHECK:STDOUT: generic fn @A(%T.loc4_6.2: %Z.type) { +// CHECK:STDOUT: %T.loc4_6.1: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc4_21.1: type = facet_access_type %T.loc4_6.1 [symbolic = %T.as_type.loc4_21.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_22.1: type = struct_type {.a: @A.%T.as_type.loc4_21.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_22.1 [symbolic = %pattern_type (constants.%pattern_type.64f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_22.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_22.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @A.%struct_type.a.loc4_22.2 (%struct_type.a)) { +// CHECK:STDOUT: fn(%x.param: @A.%struct_type.a.loc4_22.1 (%struct_type.a)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc4_21.2 => constants.%T.as_type -// CHECK:STDOUT: %struct_type.a.loc4_22.2 => constants.%struct_type.a +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc4_21.1 => constants.%T.as_type +// CHECK:STDOUT: %struct_type.a.loc4_22.1 => constants.%struct_type.a // CHECK:STDOUT: %pattern_type => constants.%pattern_type.64f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -162,15 +162,15 @@ fn B() { // CHECK:STDOUT: %Lib.ref: = name_ref Lib, imports.%Lib [concrete = imports.%Lib] // CHECK:STDOUT: %Z.ref: type = name_ref Z, imports.%Lib.Z [concrete = constants.%Z.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc4_6.1: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @A.loc4.%struct_type.a.loc4_26.2 (%struct_type.a) = value_param call_param0 -// CHECK:STDOUT: %.loc4_26: type = splice_block %struct_type.a.loc4_26.1 [symbolic = %struct_type.a.loc4_26.2 (constants.%struct_type.a)] { -// CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_25.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_25.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc4_25: type = converted %T.ref, %T.as_type.loc4_25.1 [symbolic = %T.as_type.loc4_25.2 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_26.1: type = struct_type {.a: @A.loc4.%T.as_type.loc4_25.2 (%T.as_type)} [symbolic = %struct_type.a.loc4_26.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.loc4_6.2: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @A.loc4.%struct_type.a.loc4_26.1 (%struct_type.a) = value_param call_param0 +// CHECK:STDOUT: %.loc4_26: type = splice_block %struct_type.a.loc4_26.2 [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] { +// CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc4_25.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc4_25: type = converted %T.ref, %T.as_type.loc4_25.2 [symbolic = %T.as_type.loc4_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_26.2: type = struct_type {.a: @A.loc4.%T.as_type.loc4_25.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @A.loc4.%struct_type.a.loc4_26.2 (%struct_type.a) = bind_name x, %x.param +// CHECK:STDOUT: %x: @A.loc4.%struct_type.a.loc4_26.1 (%struct_type.a) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -181,16 +181,16 @@ fn B() { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @A.loc4(%T.loc4_6.1: %Z.type) { -// CHECK:STDOUT: %T.loc4_6.2: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_25.2: type = facet_access_type %T.loc4_6.2 [symbolic = %T.as_type.loc4_25.2 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_26.2: type = struct_type {.a: @A.loc4.%T.as_type.loc4_25.2 (%T.as_type)} [symbolic = %struct_type.a.loc4_26.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_26.2 [symbolic = %pattern_type (constants.%pattern_type.ea1)] +// CHECK:STDOUT: generic fn @A.loc4(%T.loc4_6.2: %Z.type) { +// CHECK:STDOUT: %T.loc4_6.1: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc4_25.1: type = facet_access_type %T.loc4_6.1 [symbolic = %T.as_type.loc4_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_26.1: type = struct_type {.a: @A.loc4.%T.as_type.loc4_25.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_26.1 [symbolic = %pattern_type (constants.%pattern_type.ea1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_26.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_26.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @A.loc4.%struct_type.a.loc4_26.2 (%struct_type.a)) { +// CHECK:STDOUT: fn(%x.param: @A.loc4.%struct_type.a.loc4_26.1 (%struct_type.a)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -221,9 +221,9 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.loc4(constants.%T) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc4_25.2 => constants.%T.as_type -// CHECK:STDOUT: %struct_type.a.loc4_26.2 => constants.%struct_type.a +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc4_25.1 => constants.%T.as_type +// CHECK:STDOUT: %struct_type.a.loc4_26.1 => constants.%struct_type.a // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ea1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/forward_decl.carbon b/toolchain/check/testdata/function/generic/forward_decl.carbon index 5090712724f1..bbfe93ba3888 100644 --- a/toolchain/check/testdata/function/generic/forward_decl.carbon +++ b/toolchain/check/testdata/function/generic/forward_decl.carbon @@ -30,17 +30,17 @@ fn F(T:! type); // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%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: generic fn @F(%T.loc15_6.2: type) { +// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc15_6.2 => constants.%T +// CHECK:STDOUT: %T.loc15_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/import_specific.carbon b/toolchain/check/testdata/function/generic/import_specific.carbon index e94422baf8b8..a9e4a372c3ef 100644 --- a/toolchain/check/testdata/function/generic/import_specific.carbon +++ b/toolchain/check/testdata/function/generic/import_specific.carbon @@ -59,17 +59,17 @@ fn H() { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic fn @F(%T.loc4_6.2: type) { +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -79,16 +79,16 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%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: generic fn @G(%T.loc7_6.2: type) { +// CHECK:STDOUT: %T.loc7_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.specific_fn.loc8_3.2: = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc8_3.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %F.specific_fn.loc8_3.2: = specific_function constants.%F, @F(%T.loc7_6.1) [symbolic = %F.specific_fn.loc8_3.2 (constants.%F.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc7_6.2 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: %F.specific_fn.loc8_3.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc8_3.2 (constants.%F.specific_fn)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn.loc8_3.1() // CHECK:STDOUT: return @@ -96,13 +96,13 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%T +// CHECK:STDOUT: %T.loc7_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- user.carbon diff --git a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon index 98dee8c5c072..274bfc17773a 100644 --- a/toolchain/check/testdata/function/generic/indirect_generic_type.carbon +++ b/toolchain/check/testdata/function/generic/indirect_generic_type.carbon @@ -42,45 +42,45 @@ fn F(T:! type, p: T**) -> T* { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc15_24 (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc15_24 (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc15_27: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc15_28: type = ptr_type %T.ref.loc15_27 [symbolic = %ptr.loc15_20.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %p.param: @F.%ptr.loc15_21.2 (%ptr.a13) = value_param call_param0 -// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_21.1 [symbolic = %ptr.loc15_21.2 (constants.%ptr.a13)] { -// CHECK:STDOUT: %T.ref.loc15_19: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc15_20.1: type = ptr_type %T.ref.loc15_19 [symbolic = %ptr.loc15_20.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %ptr.loc15_21.1: type = ptr_type %ptr.loc15_20.1 [symbolic = %ptr.loc15_21.2 (constants.%ptr.a13)] +// CHECK:STDOUT: %T.ref.loc15_27: type = name_ref T, %T.loc15_6.2 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc15_28: type = ptr_type %T.ref.loc15_27 [symbolic = %ptr.loc15_20.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc15_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %p.param: @F.%ptr.loc15_21.1 (%ptr.a13) = value_param call_param0 +// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15_21.2 [symbolic = %ptr.loc15_21.1 (constants.%ptr.a13)] { +// CHECK:STDOUT: %T.ref.loc15_19: type = name_ref T, %T.loc15_6.2 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc15_20.2: type = ptr_type %T.ref.loc15_19 [symbolic = %ptr.loc15_20.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc15_21.2: type = ptr_type %ptr.loc15_20.2 [symbolic = %ptr.loc15_21.1 (constants.%ptr.a13)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @F.%ptr.loc15_21.2 (%ptr.a13) = bind_name p, %p.param -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc15_20.2 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr.loc15_20.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %p: @F.%ptr.loc15_21.1 (%ptr.a13) = bind_name p, %p.param +// CHECK:STDOUT: %return.param: ref @F.%ptr.loc15_20.1 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr.loc15_20.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%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: %ptr.loc15_20.2: type = ptr_type %T.loc15_6.2 [symbolic = %ptr.loc15_20.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %ptr.loc15_21.2: type = ptr_type %ptr.loc15_20.2 [symbolic = %ptr.loc15_21.2 (constants.%ptr.a13)] -// CHECK:STDOUT: %pattern_type.loc15_16: type = pattern_type %ptr.loc15_21.2 [symbolic = %pattern_type.loc15_16 (constants.%pattern_type.12d)] -// CHECK:STDOUT: %pattern_type.loc15_24: type = pattern_type %ptr.loc15_20.2 [symbolic = %pattern_type.loc15_24 (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @F(%T.loc15_6.2: type) { +// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc15_20.1: type = ptr_type %T.loc15_6.1 [symbolic = %ptr.loc15_20.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc15_21.1: type = ptr_type %ptr.loc15_20.1 [symbolic = %ptr.loc15_21.1 (constants.%ptr.a13)] +// CHECK:STDOUT: %pattern_type.loc15_16: type = pattern_type %ptr.loc15_21.1 [symbolic = %pattern_type.loc15_16 (constants.%pattern_type.12d)] +// CHECK:STDOUT: %pattern_type.loc15_24: type = pattern_type %ptr.loc15_20.1 [symbolic = %pattern_type.loc15_24 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_24: = require_complete_type %ptr.loc15_20.2 [symbolic = %require_complete.loc15_24 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %require_complete.loc15_17: = require_complete_type %ptr.loc15_21.2 [symbolic = %require_complete.loc15_17 (constants.%require_complete.132)] +// CHECK:STDOUT: %require_complete.loc15_24: = require_complete_type %ptr.loc15_20.1 [symbolic = %require_complete.loc15_24 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc15_17: = require_complete_type %ptr.loc15_21.1 [symbolic = %require_complete.loc15_17 (constants.%require_complete.132)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc15_21.2 (%ptr.a13)) -> @F.%ptr.loc15_20.2 (%ptr.79f) { +// CHECK:STDOUT: fn(%p.param: @F.%ptr.loc15_21.1 (%ptr.a13)) -> @F.%ptr.loc15_20.1 (%ptr.79f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: @F.%ptr.loc15_21.2 (%ptr.a13) = name_ref p, %p -// CHECK:STDOUT: %.loc16_10.1: ref @F.%ptr.loc15_20.2 (%ptr.79f) = deref %p.ref -// CHECK:STDOUT: %.loc16_10.2: @F.%ptr.loc15_20.2 (%ptr.79f) = bind_value %.loc16_10.1 +// CHECK:STDOUT: %p.ref: @F.%ptr.loc15_21.1 (%ptr.a13) = name_ref p, %p +// CHECK:STDOUT: %.loc16_10.1: ref @F.%ptr.loc15_20.1 (%ptr.79f) = deref %p.ref +// CHECK:STDOUT: %.loc16_10.2: @F.%ptr.loc15_20.1 (%ptr.79f) = bind_value %.loc16_10.1 // CHECK:STDOUT: return %.loc16_10.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc15_6.2 => constants.%T -// CHECK:STDOUT: %ptr.loc15_20.2 => constants.%ptr.79f -// CHECK:STDOUT: %ptr.loc15_21.2 => constants.%ptr.a13 +// CHECK:STDOUT: %T.loc15_6.1 => constants.%T +// CHECK:STDOUT: %ptr.loc15_20.1 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc15_21.1 => constants.%ptr.a13 // CHECK:STDOUT: %pattern_type.loc15_16 => constants.%pattern_type.12d // CHECK:STDOUT: %pattern_type.loc15_24 => constants.%pattern_type.afe // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/param_in_type.carbon b/toolchain/check/testdata/function/generic/param_in_type.carbon index bd3cb9901161..7450e883638a 100644 --- a/toolchain/check/testdata/function/generic/param_in_type.carbon +++ b/toolchain/check/testdata/function/generic/param_in_type.carbon @@ -74,45 +74,45 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: %int_32.loc15_10: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc15_10: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc15_6.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc15_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %a.param: @F.%ptr.loc15_31.2 (%ptr) = value_param call_param0 -// CHECK:STDOUT: %.loc15_31: type = splice_block %ptr.loc15_31.1 [symbolic = %ptr.loc15_31.2 (constants.%ptr)] { +// CHECK:STDOUT: %N.loc15_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc15_6.1 (constants.%N.51e)] +// CHECK:STDOUT: %a.param: @F.%ptr.loc15_31.1 (%ptr) = value_param call_param0 +// CHECK:STDOUT: %.loc15_31: type = splice_block %ptr.loc15_31.2 [symbolic = %ptr.loc15_31.1 (constants.%ptr)] { // CHECK:STDOUT: %int_32.loc15_24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc15_24: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc15_6.1 [symbolic = %N.loc15_6.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc15_6.2 [symbolic = %N.loc15_6.1 (constants.%N.51e)] // CHECK:STDOUT: %impl.elem0: %.0ea = impl_witness_access constants.%ImplicitAs.impl_witness.a11, element0 [concrete = constants.%Convert.960] -// CHECK:STDOUT: %bound_method.loc15_29.1: = bound_method %N.ref, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] +// CHECK:STDOUT: %bound_method.loc15_29.2: = bound_method %N.ref, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc15_29.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc15_29.3 (constants.%bound_method)] -// CHECK:STDOUT: %int.convert_checked.loc15_29.1: init Core.IntLiteral = call %bound_method.loc15_29.2(%N.ref) [symbolic = %int.convert_checked.loc15_29.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %.loc15_29.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc15_29.1 [symbolic = %int.convert_checked.loc15_29.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %.loc15_29.2: Core.IntLiteral = converted %N.ref, %.loc15_29.1 [symbolic = %int.convert_checked.loc15_29.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc15_30.1: type = array_type %.loc15_29.2, %i32.loc15_24 [symbolic = %array_type.loc15_30.2 (constants.%array_type)] -// CHECK:STDOUT: %ptr.loc15_31.1: type = ptr_type %array_type.loc15_30.1 [symbolic = %ptr.loc15_31.2 (constants.%ptr)] +// CHECK:STDOUT: %bound_method.loc15_29.3: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc15_29.1 (constants.%bound_method)] +// CHECK:STDOUT: %int.convert_checked.loc15_29.2: init Core.IntLiteral = call %bound_method.loc15_29.3(%N.ref) [symbolic = %int.convert_checked.loc15_29.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %.loc15_29.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc15_29.2 [symbolic = %int.convert_checked.loc15_29.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %.loc15_29.2: Core.IntLiteral = converted %N.ref, %.loc15_29.1 [symbolic = %int.convert_checked.loc15_29.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %array_type.loc15_30.2: type = array_type %.loc15_29.2, %i32.loc15_24 [symbolic = %array_type.loc15_30.1 (constants.%array_type)] +// CHECK:STDOUT: %ptr.loc15_31.2: type = ptr_type %array_type.loc15_30.2 [symbolic = %ptr.loc15_31.1 (constants.%ptr)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%ptr.loc15_31.2 (%ptr) = bind_name a, %a.param +// CHECK:STDOUT: %a: @F.%ptr.loc15_31.1 (%ptr) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%N.loc15_6.1: %i32) { -// CHECK:STDOUT: %N.loc15_6.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc15_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc15_6.2, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] -// CHECK:STDOUT: %bound_method.loc15_29.3: = bound_method %N.loc15_6.2, constants.%Convert.specific_fn [symbolic = %bound_method.loc15_29.3 (constants.%bound_method)] -// CHECK:STDOUT: %int.convert_checked.loc15_29.2: init Core.IntLiteral = call %bound_method.loc15_29.3(%N.loc15_6.2) [symbolic = %int.convert_checked.loc15_29.2 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc15_30.2: type = array_type %int.convert_checked.loc15_29.2, constants.%i32 [symbolic = %array_type.loc15_30.2 (constants.%array_type)] -// CHECK:STDOUT: %ptr.loc15_31.2: type = ptr_type %array_type.loc15_30.2 [symbolic = %ptr.loc15_31.2 (constants.%ptr)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc15_31.2 [symbolic = %pattern_type (constants.%pattern_type.c7e)] +// CHECK:STDOUT: generic fn @F(%N.loc15_6.2: %i32) { +// CHECK:STDOUT: %N.loc15_6.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc15_6.1 (constants.%N.51e)] +// CHECK:STDOUT: %Convert.bound: = bound_method %N.loc15_6.1, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound)] +// CHECK:STDOUT: %bound_method.loc15_29.1: = bound_method %N.loc15_6.1, constants.%Convert.specific_fn [symbolic = %bound_method.loc15_29.1 (constants.%bound_method)] +// CHECK:STDOUT: %int.convert_checked.loc15_29.1: init Core.IntLiteral = call %bound_method.loc15_29.1(%N.loc15_6.1) [symbolic = %int.convert_checked.loc15_29.1 (constants.%int.convert_checked)] +// CHECK:STDOUT: %array_type.loc15_30.1: type = array_type %int.convert_checked.loc15_29.1, constants.%i32 [symbolic = %array_type.loc15_30.1 (constants.%array_type)] +// CHECK:STDOUT: %ptr.loc15_31.1: type = ptr_type %array_type.loc15_30.1 [symbolic = %ptr.loc15_31.1 (constants.%ptr)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc15_31.1 [symbolic = %pattern_type (constants.%pattern_type.c7e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%ptr.loc15_31.2 (%ptr)); +// CHECK:STDOUT: fn(%a.param: @F.%ptr.loc15_31.1 (%ptr)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%N.51e) { -// CHECK:STDOUT: %N.loc15_6.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc15_6.1 => constants.%N.51e // CHECK:STDOUT: %Convert.bound => constants.%Convert.bound -// CHECK:STDOUT: %bound_method.loc15_29.3 => constants.%bound_method -// CHECK:STDOUT: %int.convert_checked.loc15_29.2 => constants.%int.convert_checked -// CHECK:STDOUT: %array_type.loc15_30.2 => constants.%array_type -// CHECK:STDOUT: %ptr.loc15_31.2 => constants.%ptr +// CHECK:STDOUT: %bound_method.loc15_29.1 => constants.%bound_method +// CHECK:STDOUT: %int.convert_checked.loc15_29.1 => constants.%int.convert_checked +// CHECK:STDOUT: %array_type.loc15_30.1 => constants.%array_type +// CHECK:STDOUT: %ptr.loc15_31.1 => constants.%ptr // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c7e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/redeclare.carbon b/toolchain/check/testdata/function/generic/redeclare.carbon index 7a7268826270..2c1a79f60586 100644 --- a/toolchain/check/testdata/function/generic/redeclare.carbon +++ b/toolchain/check/testdata/function/generic/redeclare.carbon @@ -125,49 +125,49 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_20.1: type = ptr_type %T.ref.loc4 [symbolic = %ptr.loc4_20.2 (constants.%ptr)] -// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %return.param.loc4: ref @F.%ptr.loc4_20.2 (%ptr) = out_param call_param0 -// CHECK:STDOUT: %return.loc4: ref @F.%ptr.loc4_20.2 (%ptr) = return_slot %return.param.loc4 +// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_20.2: type = ptr_type %T.ref.loc4 [symbolic = %ptr.loc4_20.1 (constants.%ptr)] +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %return.param.loc4: ref @F.%ptr.loc4_20.1 (%ptr) = out_param call_param0 +// CHECK:STDOUT: %return.loc4: ref @F.%ptr.loc4_20.1 (%ptr) = return_slot %return.param.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc6: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, %T.loc6 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc6: type = ptr_type %T.ref.loc6 [symbolic = %ptr.loc4_20.2 (constants.%ptr)] -// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %return.param.loc6: ref @F.%ptr.loc4_20.2 (%ptr) = out_param call_param0 -// CHECK:STDOUT: %return.loc6: ref @F.%ptr.loc4_20.2 (%ptr) = return_slot %return.param.loc6 +// CHECK:STDOUT: %T.ref.loc6: type = name_ref T, %T.loc6 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc6: type = ptr_type %T.ref.loc6 [symbolic = %ptr.loc4_20.1 (constants.%ptr)] +// CHECK:STDOUT: %T.loc6: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %return.param.loc6: ref @F.%ptr.loc4_20.1 (%ptr) = out_param call_param0 +// CHECK:STDOUT: %return.loc6: ref @F.%ptr.loc4_20.1 (%ptr) = return_slot %return.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: %ptr.loc4_20.2: type = ptr_type %T.loc4_6.2 [symbolic = %ptr.loc4_20.2 (constants.%ptr)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_20.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @F(%T.loc4_6.2: type) { +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_20.1: type = ptr_type %T.loc4_6.1 [symbolic = %ptr.loc4_20.1 (constants.%ptr)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_20.1 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc4_20.2 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %F.specific_fn.loc7_10.2: = specific_function constants.%F, @F(%T.loc4_6.2) [symbolic = %F.specific_fn.loc7_10.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc4_20.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %F.specific_fn.loc7_10.2: = specific_function constants.%F, @F(%T.loc4_6.1) [symbolic = %F.specific_fn.loc7_10.2 (constants.%F.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.%ptr.loc4_20.2 (%ptr) { +// CHECK:STDOUT: fn() -> @F.%ptr.loc4_20.1 (%ptr) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl.loc4 [concrete = constants.%F] -// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6 [symbolic = %T.loc4_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc7: type = name_ref T, %T.loc6 [symbolic = %T.loc4_6.1 (constants.%T)] // CHECK:STDOUT: %F.specific_fn.loc7_10.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_10.2 (constants.%F.specific_fn)] -// CHECK:STDOUT: %F.call: init @F.%ptr.loc4_20.2 (%ptr) = call %F.specific_fn.loc7_10.1() -// CHECK:STDOUT: %.loc7_14.1: @F.%ptr.loc4_20.2 (%ptr) = value_of_initializer %F.call -// CHECK:STDOUT: %.loc7_14.2: @F.%ptr.loc4_20.2 (%ptr) = converted %F.call, %.loc7_14.1 +// CHECK:STDOUT: %F.call: init @F.%ptr.loc4_20.1 (%ptr) = call %F.specific_fn.loc7_10.1() +// CHECK:STDOUT: %.loc7_14.1: @F.%ptr.loc4_20.1 (%ptr) = value_of_initializer %F.call +// CHECK:STDOUT: %.loc7_14.2: @F.%ptr.loc4_20.1 (%ptr) = 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.loc4_6.2 => constants.%T -// CHECK:STDOUT: %ptr.loc4_20.2 => constants.%ptr +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T +// CHECK:STDOUT: %ptr.loc4_20.1 => constants.%ptr // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -211,12 +211,12 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T)] -// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.2 (%ptr.79f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.1 (constants.%U)] +// CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.1 (%ptr.79f) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc13: %F.type.b25846.2 = fn_decl @F.loc13 [concrete = constants.%F.c41931.2] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -224,52 +224,52 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.ead) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.ead) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U.ref [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] -// CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] -// CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.2 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @F.loc13.%ptr.loc13_30.2 (%ptr.b51) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.loc13.%ptr.loc13_30.2 (%ptr.b51) = return_slot %return.param +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_16.2 [symbolic = %U.loc13_16.1 (constants.%U)] +// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %U.ref [symbolic = %ptr.loc13_30.1 (constants.%ptr.b51)] +// CHECK:STDOUT: %T.loc13_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc13_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.1 (constants.%U)] +// CHECK:STDOUT: %return.param: ref @F.loc13.%ptr.loc13_30.1 (%ptr.b51) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.loc13.%ptr.loc13_30.1 (%ptr.b51) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc4(%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: %ptr.loc4_30.2: type = ptr_type %T.loc4_6.2 [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_30.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @F.loc4(%T.loc4_6.2: type, %U.loc4_16.2: type) { +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.1 (constants.%U)] +// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.loc4_6.1 [symbolic = %ptr.loc4_30.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_30.1 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.loc4.%ptr.loc4_30.2 (%ptr.79f); +// CHECK:STDOUT: fn() -> @F.loc4.%ptr.loc4_30.1 (%ptr.79f); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc13(%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: %ptr.loc13_30.2: type = ptr_type %U.loc13_16.2 [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc13_30.2 [symbolic = %pattern_type (constants.%pattern_type.ead)] +// CHECK:STDOUT: generic fn @F.loc13(%T.loc13_6.2: type, %U.loc13_16.2: type) { +// CHECK:STDOUT: %T.loc13_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T)] +// CHECK:STDOUT: %U.loc13_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc13_16.1 (constants.%U)] +// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U.loc13_16.1 [symbolic = %ptr.loc13_30.1 (constants.%ptr.b51)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc13_30.1 [symbolic = %pattern_type (constants.%pattern_type.ead)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc13_30.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc13_30.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.loc13.%ptr.loc13_30.2 (%ptr.b51) { +// CHECK:STDOUT: fn() -> @F.loc13.%ptr.loc13_30.1 (%ptr.b51) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type.b25846.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.c41931.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc4(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T -// CHECK:STDOUT: %U.loc4_16.2 => constants.%U -// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T +// CHECK:STDOUT: %U.loc4_16.1 => constants.%U +// CHECK:STDOUT: %ptr.loc4_30.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc13(constants.%T, constants.%U) { -// CHECK:STDOUT: %T.loc13_6.2 => constants.%T -// CHECK:STDOUT: %U.loc13_16.2 => constants.%U -// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.b51 +// CHECK:STDOUT: %T.loc13_6.1 => constants.%T +// CHECK:STDOUT: %U.loc13_16.1 => constants.%U +// CHECK:STDOUT: %ptr.loc13_30.1 => constants.%ptr.b51 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ead // CHECK:STDOUT: } // CHECK:STDOUT: @@ -311,12 +311,12 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.afe) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] -// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] -// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] -// CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.2 (%ptr.79f) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T.8b3)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T.8b3)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.1 (constants.%U.336)] +// CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.1 (%ptr.79f) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc13: %F.type.b25846.2 = fn_decl @F.loc13 [concrete = constants.%F.c41931.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] @@ -324,52 +324,52 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.ead) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.ead) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.336)] -// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %T.ref.loc13 [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] -// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] -// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] -// CHECK:STDOUT: %return.param: ref @F.loc13.%ptr.loc13_30.2 (%ptr.b51) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.loc13.%ptr.loc13_30.2 (%ptr.b51) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc13: type = name_ref T, %T.loc13_16.2 [symbolic = %T.loc13_16.1 (constants.%T.336)] +// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %T.ref.loc13 [symbolic = %ptr.loc13_30.1 (constants.%ptr.b51)] +// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.1 (constants.%U.8b3)] +// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.1 (constants.%T.336)] +// CHECK:STDOUT: %return.param: ref @F.loc13.%ptr.loc13_30.1 (%ptr.b51) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.loc13.%ptr.loc13_30.1 (%ptr.b51) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc4(%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.8b3)] -// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] -// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.loc4_6.2 [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_30.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @F.loc4(%T.loc4_6.2: type, %U.loc4_16.2: type) { +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T.8b3)] +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.1 (constants.%U.336)] +// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.loc4_6.1 [symbolic = %ptr.loc4_30.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_30.1 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.loc4.%ptr.loc4_30.2 (%ptr.79f); +// CHECK:STDOUT: fn() -> @F.loc4.%ptr.loc4_30.1 (%ptr.79f); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc13(%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.8b3)] -// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] -// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %T.loc13_16.2 [symbolic = %ptr.loc13_30.2 (constants.%ptr.b51)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc13_30.2 [symbolic = %pattern_type (constants.%pattern_type.ead)] +// CHECK:STDOUT: generic fn @F.loc13(%U.loc13_6.2: type, %T.loc13_16.2: type) { +// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.1 (constants.%U.8b3)] +// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.1 (constants.%T.336)] +// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %T.loc13_16.1 [symbolic = %ptr.loc13_30.1 (constants.%ptr.b51)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc13_30.1 [symbolic = %pattern_type (constants.%pattern_type.ead)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc13_30.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc13_30.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.loc13.%ptr.loc13_30.2 (%ptr.b51) { +// CHECK:STDOUT: fn() -> @F.loc13.%ptr.loc13_30.1 (%ptr.b51) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type.b25846.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.c41931.1] -// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.336)] +// CHECK:STDOUT: %T.ref.loc21: type = name_ref T, %T.loc13_16.2 [symbolic = %T.loc13_16.1 (constants.%T.336)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc4(constants.%T.8b3, constants.%U.336) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.8b3 -// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.336 -// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T.8b3 +// CHECK:STDOUT: %U.loc4_16.1 => constants.%U.336 +// CHECK:STDOUT: %ptr.loc4_30.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc13(constants.%U.8b3, constants.%T.336) { -// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.8b3 -// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.336 -// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.b51 +// CHECK:STDOUT: %U.loc13_6.1 => constants.%U.8b3 +// CHECK:STDOUT: %T.loc13_16.1 => constants.%T.336 +// CHECK:STDOUT: %ptr.loc13_30.1 => constants.%ptr.b51 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ead // CHECK:STDOUT: } // CHECK:STDOUT: @@ -411,12 +411,12 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.patt: @F.loc4.%pattern_type (%pattern_type.afe393.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc4.%pattern_type (%pattern_type.afe393.1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] -// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f131.1)] -// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.2 (constants.%T.8b3)] -// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] -// CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.2 (%ptr.79f131.1) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.2 (%ptr.79f131.1) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T.8b3)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.ref [symbolic = %ptr.loc4_30.1 (constants.%ptr.79f131.1)] +// CHECK:STDOUT: %T.loc4_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T.8b3)] +// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.1 (constants.%U.336)] +// CHECK:STDOUT: %return.param: ref @F.loc4.%ptr.loc4_30.1 (%ptr.79f131.1) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.loc4.%ptr.loc4_30.1 (%ptr.79f131.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc13: %F.type.b25846.2 = fn_decl @F.loc13 [concrete = constants.%F.c41931.2] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] @@ -424,52 +424,52 @@ fn F(U:! type, T:! type) -> U* { // CHECK:STDOUT: %return.patt: @F.loc13.%pattern_type (%pattern_type.afe393.2) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc13.%pattern_type (%pattern_type.afe393.2) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_6.1 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] -// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U.ref [symbolic = %ptr.loc13_30.2 (constants.%ptr.79f131.2)] -// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.2 (constants.%U.8b3)] -// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] -// CHECK:STDOUT: %return.param: ref @F.loc13.%ptr.loc13_30.2 (%ptr.79f131.2) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.loc13.%ptr.loc13_30.2 (%ptr.79f131.2) = return_slot %return.param +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc13_6.2 [symbolic = %U.loc13_6.1 (constants.%U.8b3)] +// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %U.ref [symbolic = %ptr.loc13_30.1 (constants.%ptr.79f131.2)] +// CHECK:STDOUT: %U.loc13_6.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.1 (constants.%U.8b3)] +// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.1 (constants.%T.336)] +// CHECK:STDOUT: %return.param: ref @F.loc13.%ptr.loc13_30.1 (%ptr.79f131.2) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.loc13.%ptr.loc13_30.1 (%ptr.79f131.2) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc4(%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.8b3)] -// CHECK:STDOUT: %U.loc4_16.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.2 (constants.%U.336)] -// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %T.loc4_6.2 [symbolic = %ptr.loc4_30.2 (constants.%ptr.79f131.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_30.2 [symbolic = %pattern_type (constants.%pattern_type.afe393.1)] +// CHECK:STDOUT: generic fn @F.loc4(%T.loc4_6.2: type, %U.loc4_16.2: type) { +// CHECK:STDOUT: %T.loc4_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T.8b3)] +// CHECK:STDOUT: %U.loc4_16.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_16.1 (constants.%U.336)] +// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %T.loc4_6.1 [symbolic = %ptr.loc4_30.1 (constants.%ptr.79f131.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc4_30.1 [symbolic = %pattern_type (constants.%pattern_type.afe393.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.loc4.%ptr.loc4_30.2 (%ptr.79f131.1); +// CHECK:STDOUT: fn() -> @F.loc4.%ptr.loc4_30.1 (%ptr.79f131.1); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc13(%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.8b3)] -// CHECK:STDOUT: %T.loc13_16.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.2 (constants.%T.336)] -// CHECK:STDOUT: %ptr.loc13_30.2: type = ptr_type %U.loc13_6.2 [symbolic = %ptr.loc13_30.2 (constants.%ptr.79f131.2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc13_30.2 [symbolic = %pattern_type (constants.%pattern_type.afe393.2)] +// CHECK:STDOUT: generic fn @F.loc13(%U.loc13_6.2: type, %T.loc13_16.2: type) { +// CHECK:STDOUT: %U.loc13_6.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc13_6.1 (constants.%U.8b3)] +// CHECK:STDOUT: %T.loc13_16.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc13_16.1 (constants.%T.336)] +// CHECK:STDOUT: %ptr.loc13_30.1: type = ptr_type %U.loc13_6.1 [symbolic = %ptr.loc13_30.1 (constants.%ptr.79f131.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc13_30.1 [symbolic = %pattern_type (constants.%pattern_type.afe393.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc13_30.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc13_30.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.loc13.%ptr.loc13_30.2 (%ptr.79f131.2) { +// CHECK:STDOUT: fn() -> @F.loc13.%ptr.loc13_30.1 (%ptr.79f131.2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type.b25846.1 = name_ref F, file.%F.decl.loc4 [concrete = constants.%F.c41931.1] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.336)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc13_16.2 [symbolic = %T.loc13_16.1 (constants.%T.336)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc4(constants.%T.8b3, constants.%U.336) { -// CHECK:STDOUT: %T.loc4_6.2 => constants.%T.8b3 -// CHECK:STDOUT: %U.loc4_16.2 => constants.%U.336 -// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.79f131.1 +// CHECK:STDOUT: %T.loc4_6.1 => constants.%T.8b3 +// CHECK:STDOUT: %U.loc4_16.1 => constants.%U.336 +// CHECK:STDOUT: %ptr.loc4_30.1 => constants.%ptr.79f131.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe393.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc13(constants.%U.8b3, constants.%T.336) { -// CHECK:STDOUT: %U.loc13_6.2 => constants.%U.8b3 -// CHECK:STDOUT: %T.loc13_16.2 => constants.%T.336 -// CHECK:STDOUT: %ptr.loc13_30.2 => constants.%ptr.79f131.2 +// CHECK:STDOUT: %U.loc13_6.1 => constants.%U.8b3 +// CHECK:STDOUT: %T.loc13_16.1 => constants.%T.336 +// CHECK:STDOUT: %ptr.loc13_30.1 => constants.%ptr.79f131.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe393.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/resolve_used.carbon b/toolchain/check/testdata/function/generic/resolve_used.carbon index fd34b99f305c..f3c3c1a4157f 100644 --- a/toolchain/check/testdata/function/generic/resolve_used.carbon +++ b/toolchain/check/testdata/function/generic/resolve_used.carbon @@ -114,16 +114,16 @@ fn CallNegative() { // CHECK:STDOUT: %.loc4_39.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc4_39.3: type = converted %int_literal.make_type, %.loc4_39.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_19.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.2 (constants.%N)] +// CHECK:STDOUT: %N.loc4_19.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallNegative.decl: %CallNegative.type = fn_decl @CallNegative [concrete = constants.%CallNegative] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @ErrorIfNIsZero(%N.loc4_19.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc4_19.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.2 (constants.%N)] +// CHECK:STDOUT: generic fn @ErrorIfNIsZero(%N.loc4_19.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc4_19.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_19.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Int.loc12_20.2: type = class_type @Int, @Int(%N.loc4_19.2) [symbolic = %Int.loc12_20.2 (constants.%Int.49d0e6.1)] +// CHECK:STDOUT: %Int.loc12_20.2: type = class_type @Int, @Int(%N.loc4_19.1) [symbolic = %Int.loc12_20.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %require_complete.loc12_20: = require_complete_type %Int.loc12_20.2 [symbolic = %require_complete.loc12_20 (constants.%require_complete.b4f426.1)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc12_20.2 [symbolic = %pattern_type (constants.%pattern_type.8963eb.1)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc12_20.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] @@ -144,7 +144,7 @@ fn CallNegative() { // CHECK:STDOUT: %.loc12_20: type = splice_block %Int.loc12_20.1 [symbolic = %Int.loc12_20.2 (constants.%Int.49d0e6.1)] { // CHECK:STDOUT: %Core.ref.loc12: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] -// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, %N.loc4_19.1 [symbolic = %N.loc4_19.2 (constants.%N)] +// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, %N.loc4_19.2 [symbolic = %N.loc4_19.1 (constants.%N)] // CHECK:STDOUT: %Int.loc12_20.1: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc12_20.2 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @ErrorIfNIsZero.%Int.loc12_20.2 (%Int.49d0e6.1) = bind_name v, %v.var @@ -168,11 +168,11 @@ fn CallNegative() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ErrorIfNIsZero(constants.%N) { -// CHECK:STDOUT: %N.loc4_19.2 => constants.%N +// CHECK:STDOUT: %N.loc4_19.1 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ErrorIfNIsZero(constants.%int_0) { -// CHECK:STDOUT: %N.loc4_19.2 => constants.%int_0 +// CHECK:STDOUT: %N.loc4_19.1 => constants.%int_0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Int.loc12_20.2 => constants.%i0 diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index 6a26558ed42f..88c772075eb1 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -70,18 +70,18 @@ fn G() { // CHECK:STDOUT: %Make.e4b: %Make.type.708 = struct_value () [concrete] // CHECK:STDOUT: %Make.specific_fn.834: = specific_function %Make.e4b, @Make(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.2(%C) [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.1(%C) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.2(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: %complete_type.782: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -107,17 +107,17 @@ fn G() { // CHECK:STDOUT: %Wrap.decl: %Wrap.type = class_decl @Wrap [concrete = constants.%Wrap.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Wrap(%T.loc15_12.1: type) { -// CHECK:STDOUT: %T.loc15_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.2 (constants.%T)] +// CHECK:STDOUT: generic class @Wrap(%T.loc15_12.2: type) { +// CHECK:STDOUT: %T.loc15_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_12.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T.loc15_12.2) [symbolic = %Make.type (constants.%Make.type.652)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make, @Wrap(%T.loc15_12.1) [symbolic = %Make.type (constants.%Make.type.652)] // CHECK:STDOUT: %Make: @Wrap.%Make.type (%Make.type.652) = struct_value () [symbolic = %Make (constants.%Make.eb2)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -125,7 +125,7 @@ fn G() { // CHECK:STDOUT: %return.patt: @Make.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Make.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Wrap.%T.loc15_12.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Wrap.%T.loc15_12.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return.param: ref @Make.%T (%T) = out_param call_param0 // CHECK:STDOUT: %return: ref @Make.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -155,7 +155,7 @@ fn G() { // CHECK:STDOUT: .arr = %.loc19 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(@Wrap.%T.loc15_12.1: type) { +// CHECK:STDOUT: generic fn @Make(@Wrap.%T.loc15_12.2: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: @@ -234,22 +234,22 @@ fn G() { // CHECK:STDOUT: %C.ref.loc24_10: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %Op.bound.loc24_3.1: = bound_method %.loc24_3, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc24_3.1: = bound_method %.loc24_3, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24_3.1: %ptr.019 = addr_of %.loc24_3 // CHECK:STDOUT: %no_op.loc24_3.1: init %empty_tuple.type = call %bound_method.loc24_3.1(%addr.loc24_3.1) // CHECK:STDOUT: %Op.bound.loc24_3.2: = bound_method %c.var, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc24_3.2: = bound_method %c.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc24_3.2: %ptr.019 = addr_of %c.var // CHECK:STDOUT: %no_op.loc24_3.2: init %empty_tuple.type = call %bound_method.loc24_3.2(%addr.loc24_3.2) // CHECK:STDOUT: %Op.bound.loc23: = bound_method %b.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc23: = bound_method %b.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc23: %ptr.843 = addr_of %b.var // CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) // CHECK:STDOUT: %Op.bound.loc22: = bound_method %a.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc22: = bound_method %a.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc22: %ptr.235 = addr_of %a.var // CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) @@ -257,7 +257,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%T) { -// CHECK:STDOUT: %T.loc15_12.2 => constants.%T +// CHECK:STDOUT: %T.loc15_12.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.652 @@ -276,7 +276,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%i32) { -// CHECK:STDOUT: %T.loc15_12.2 => constants.%i32 +// CHECK:STDOUT: %T.loc15_12.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.572 @@ -295,7 +295,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%empty_tuple.type) { -// CHECK:STDOUT: %T.loc15_12.2 => constants.%empty_tuple.type +// CHECK:STDOUT: %T.loc15_12.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.20e @@ -314,7 +314,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Wrap(constants.%C) { -// CHECK:STDOUT: %T.loc15_12.2 => constants.%C +// CHECK:STDOUT: %T.loc15_12.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Make.type => constants.%Make.type.708 diff --git a/toolchain/check/testdata/function/generic/template_param.carbon b/toolchain/check/testdata/function/generic/template_param.carbon index a8db2c0d5d97..c60cb822c0c9 100644 --- a/toolchain/check/testdata/function/generic/template_param.carbon +++ b/toolchain/check/testdata/function/generic/template_param.carbon @@ -45,13 +45,13 @@ fn G() { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0, template [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -72,11 +72,11 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc4_15.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/type_param.carbon b/toolchain/check/testdata/function/generic/type_param.carbon index 1116f293c15e..7733d5c3e1c3 100644 --- a/toolchain/check/testdata/function/generic/type_param.carbon +++ b/toolchain/check/testdata/function/generic/type_param.carbon @@ -59,19 +59,19 @@ fn F(T:! type) { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%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: generic fn @F(%T.loc15_6.2: type) { +// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr.loc16_11.2: type = ptr_type %T.loc15_6.2 [symbolic = %ptr.loc16_11.2 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc16_11.2: type = ptr_type %T.loc15_6.1 [symbolic = %ptr.loc16_11.2 (constants.%ptr.79f)] // CHECK:STDOUT: %require_complete.loc16_11: = require_complete_type %ptr.loc16_11.2 [symbolic = %require_complete.loc16_11 (constants.%require_complete.6e5)] // CHECK:STDOUT: %pattern_type.loc16: type = pattern_type %ptr.loc16_11.2 [symbolic = %pattern_type.loc16 (constants.%pattern_type.afe)] -// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %T.loc15_6.2 [symbolic = %require_complete.loc17 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %pattern_type.loc17: type = pattern_type %T.loc15_6.2 [symbolic = %pattern_type.loc17 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %T.loc15_6.1 [symbolic = %require_complete.loc17 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %pattern_type.loc17: type = pattern_type %T.loc15_6.1 [symbolic = %pattern_type.loc17 (constants.%pattern_type.7dc)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc16_11.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc16_11.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] // CHECK:STDOUT: %.loc16_3.2: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc16_3.2 (constants.%.ea9)] @@ -88,7 +88,7 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %p.var: ref @F.%ptr.loc16_11.2 (%ptr.79f) = var %p.var_patt // CHECK:STDOUT: %.loc16_11: type = splice_block %ptr.loc16_11.1 [symbolic = %ptr.loc16_11.2 (constants.%ptr.79f)] { -// CHECK:STDOUT: %T.ref.loc16: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc16: type = name_ref T, %T.loc15_6.2 [symbolic = %T.loc15_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc16_11.1: type = ptr_type %T.ref.loc16 [symbolic = %ptr.loc16_11.2 (constants.%ptr.79f)] // CHECK:STDOUT: } // CHECK:STDOUT: %p: ref @F.%ptr.loc16_11.2 (%ptr.79f) = bind_name p, %p.var @@ -97,10 +97,10 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %p.ref: ref @F.%ptr.loc16_11.2 (%ptr.79f) = name_ref p, %p // CHECK:STDOUT: %.loc17_15: @F.%ptr.loc16_11.2 (%ptr.79f) = bind_value %p.ref -// CHECK:STDOUT: %.loc17_14.1: ref @F.%T.loc15_6.2 (%T) = deref %.loc17_15 -// CHECK:STDOUT: %T.ref.loc17: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %.loc17_14.2: @F.%T.loc15_6.2 (%T) = bind_value %.loc17_14.1 -// CHECK:STDOUT: %n: @F.%T.loc15_6.2 (%T) = bind_name n, %.loc17_14.2 +// CHECK:STDOUT: %.loc17_14.1: ref @F.%T.loc15_6.1 (%T) = deref %.loc17_15 +// CHECK:STDOUT: %T.ref.loc17: type = name_ref T, %T.loc15_6.2 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %.loc17_14.2: @F.%T.loc15_6.1 (%T) = bind_value %.loc17_14.1 +// CHECK:STDOUT: %n: @F.%T.loc15_6.1 (%T) = bind_name n, %.loc17_14.2 // CHECK:STDOUT: %impl.elem0.loc16_3.1: @F.%.loc16_3.2 (%.ea9) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %p.var, %impl.elem0.loc16_3.1 // CHECK:STDOUT: %specific_impl_fn.loc16_3.1: = specific_impl_function %impl.elem0.loc16_3.1, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn)] @@ -112,6 +112,6 @@ fn F(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc15_6.2 => constants.%T +// CHECK:STDOUT: %T.loc15_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/type_param_scope.carbon b/toolchain/check/testdata/function/generic/type_param_scope.carbon index 04388af7f55b..c23fa8032715 100644 --- a/toolchain/check/testdata/function/generic/type_param_scope.carbon +++ b/toolchain/check/testdata/function/generic/type_param_scope.carbon @@ -39,38 +39,38 @@ fn F(T:! type, n: T) -> T { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc15_25: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %n.param: @F.%T.loc15_6.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc15_19: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %n: @F.%T.loc15_6.2 (%T) = bind_name n, %n.param -// CHECK:STDOUT: %return.param: ref @F.%T.loc15_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%T.loc15_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc15_25: type = name_ref T, %T.loc15_6.2 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc15_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %n.param: @F.%T.loc15_6.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc15_19: type = name_ref T, %T.loc15_6.2 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %n: @F.%T.loc15_6.1 (%T) = bind_name n, %n.param +// CHECK:STDOUT: %return.param: ref @F.%T.loc15_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%T.loc15_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%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: %pattern_type: type = pattern_type %T.loc15_6.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc15_6.2: type) { +// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc15_6.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_6.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc15_6.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param: @F.%T.loc15_6.2 (%T)) -> @F.%T.loc15_6.2 (%T) { +// CHECK:STDOUT: fn(%n.param: @F.%T.loc15_6.1 (%T)) -> @F.%T.loc15_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %m.patt: @F.%pattern_type (%pattern_type.7dc) = binding_pattern m [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %n.ref: @F.%T.loc15_6.2 (%T) = name_ref n, %n -// CHECK:STDOUT: %T.ref.loc16: type = name_ref T, %T.loc15_6.1 [symbolic = %T.loc15_6.2 (constants.%T)] -// CHECK:STDOUT: %m: @F.%T.loc15_6.2 (%T) = bind_name m, %n.ref -// CHECK:STDOUT: %m.ref: @F.%T.loc15_6.2 (%T) = name_ref m, %m +// CHECK:STDOUT: %n.ref: @F.%T.loc15_6.1 (%T) = name_ref n, %n +// CHECK:STDOUT: %T.ref.loc16: type = name_ref T, %T.loc15_6.2 [symbolic = %T.loc15_6.1 (constants.%T)] +// CHECK:STDOUT: %m: @F.%T.loc15_6.1 (%T) = bind_name m, %n.ref +// CHECK:STDOUT: %m.ref: @F.%T.loc15_6.1 (%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.loc15_6.2 => constants.%T +// CHECK:STDOUT: %T.loc15_6.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/undefined.carbon b/toolchain/check/testdata/function/generic/undefined.carbon index 90853a496d82..cc8f753e4e8e 100644 --- a/toolchain/check/testdata/function/generic/undefined.carbon +++ b/toolchain/check/testdata/function/generic/undefined.carbon @@ -77,17 +77,17 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %As.type.90f: type = generic_interface_type @As [concrete] // CHECK:STDOUT: %As.generic: %As.type.90f = struct_value () [concrete] // CHECK:STDOUT: %As.type.fd4: type = facet_type <@As, @As(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.2, @As(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.6b4: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @As.impl.686(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.1, @As.impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%As.impl_witness.6b4) [concrete] // CHECK:STDOUT: %.982: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Defined.specific_fn: = specific_function %Defined, @Defined(%i32) [concrete] @@ -120,13 +120,13 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %return.patt: @Defined.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Defined.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_31: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %T.loc4_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @Defined.%T.loc4_12.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4_25: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %x: @Defined.%T.loc4_12.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @Defined.%T.loc4_12.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Defined.%T.loc4_12.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_31: type = name_ref T, %T.loc4_12.2 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @Defined.%T.loc4_12.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4_25: type = name_ref T, %T.loc4_12.2 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %x: @Defined.%T.loc4_12.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @Defined.%T.loc4_12.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Defined.%T.loc4_12.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallDefined.decl: %CallDefined.type = fn_decl @CallDefined [concrete = constants.%CallDefined] { // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] @@ -139,16 +139,16 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Defined(%T.loc4_12.1: type) { -// CHECK:STDOUT: %T.loc4_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_12.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @Defined(%T.loc4_12.2: type) { +// CHECK:STDOUT: %T.loc4_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_12.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_12.2 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_12.1 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Defined.%T.loc4_12.2 (%T)) -> @Defined.%T.loc4_12.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @Defined.%T.loc4_12.1 (%T)) -> @Defined.%T.loc4_12.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Defined.%T.loc4_12.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Defined.%T.loc4_12.1 (%T) = name_ref x, %x // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -161,7 +161,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %i32.loc9: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0: %.982 = impl_witness_access constants.%As.impl_witness.6b4, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc9_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc9_20.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc9_20.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -174,12 +174,12 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Defined(constants.%T) { -// CHECK:STDOUT: %T.loc4_12.2 => constants.%T +// CHECK:STDOUT: %T.loc4_12.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Defined(constants.%i32) { -// CHECK:STDOUT: %T.loc4_12.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_12.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -207,17 +207,17 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %As.type.90f: type = generic_interface_type @As [concrete] // CHECK:STDOUT: %As.generic: %As.type.90f = struct_value () [concrete] // CHECK:STDOUT: %As.type.fd4: type = facet_type <@As, @As(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.2, @As(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.6b4: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @As.impl.686(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.1, @As.impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%As.impl_witness.6b4) [concrete] // CHECK:STDOUT: %.982: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Defined.specific_fn: = specific_function %Defined, @Defined(%i32) [concrete] @@ -251,13 +251,13 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %return.patt: @Defined.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Defined.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_31: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %T.loc4_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %x.param.loc4: @Defined.%T.loc4_12.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4_25: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %x.loc4: @Defined.%T.loc4_12.2 (%T) = bind_name x, %x.param.loc4 -// CHECK:STDOUT: %return.param.loc4: ref @Defined.%T.loc4_12.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return.loc4: ref @Defined.%T.loc4_12.2 (%T) = return_slot %return.param.loc4 +// CHECK:STDOUT: %T.ref.loc4_31: type = name_ref T, %T.loc4_12.2 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %x.param.loc4: @Defined.%T.loc4_12.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4_25: type = name_ref T, %T.loc4_12.2 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %x.loc4: @Defined.%T.loc4_12.1 (%T) = bind_name x, %x.param.loc4 +// CHECK:STDOUT: %return.param.loc4: ref @Defined.%T.loc4_12.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return.loc4: ref @Defined.%T.loc4_12.1 (%T) = return_slot %return.param.loc4 // CHECK:STDOUT: } // CHECK:STDOUT: %CallDefined.decl: %CallDefined.type = fn_decl @CallDefined [concrete = constants.%CallDefined] { // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] @@ -275,26 +275,26 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %return.patt: @Defined.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Defined.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc10_31: type = name_ref T, %T.loc10 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %x.param.loc10: @Defined.%T.loc4_12.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc10_25: type = name_ref T, %T.loc10 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %x.loc10: @Defined.%T.loc4_12.2 (%T) = bind_name x, %x.param.loc10 -// CHECK:STDOUT: %return.param.loc10: ref @Defined.%T.loc4_12.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return.loc10: ref @Defined.%T.loc4_12.2 (%T) = return_slot %return.param.loc10 +// CHECK:STDOUT: %T.ref.loc10_31: type = name_ref T, %T.loc10 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %T.loc10: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %x.param.loc10: @Defined.%T.loc4_12.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc10_25: type = name_ref T, %T.loc10 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %x.loc10: @Defined.%T.loc4_12.1 (%T) = bind_name x, %x.param.loc10 +// CHECK:STDOUT: %return.param.loc10: ref @Defined.%T.loc4_12.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return.loc10: ref @Defined.%T.loc4_12.1 (%T) = return_slot %return.param.loc10 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Defined(%T.loc4_12.1: type) { -// CHECK:STDOUT: %T.loc4_12.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_12.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @Defined(%T.loc4_12.2: type) { +// CHECK:STDOUT: %T.loc4_12.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_12.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_12.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_12.2 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_12.1 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param.loc10: @Defined.%T.loc4_12.2 (%T)) -> @Defined.%T.loc4_12.2 (%T) { +// CHECK:STDOUT: fn(%x.param.loc10: @Defined.%T.loc4_12.1 (%T)) -> @Defined.%T.loc4_12.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Defined.%T.loc4_12.2 (%T) = name_ref x, %x.loc10 +// CHECK:STDOUT: %x.ref: @Defined.%T.loc4_12.1 (%T) = name_ref x, %x.loc10 // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -307,7 +307,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %i32.loc7: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0: %.982 = impl_witness_access constants.%As.impl_witness.6b4, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc7_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc7_20.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc7_20.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -320,12 +320,12 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Defined(constants.%T) { -// CHECK:STDOUT: %T.loc4_12.2 => constants.%T +// CHECK:STDOUT: %T.loc4_12.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Defined(constants.%i32) { -// CHECK:STDOUT: %T.loc4_12.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_12.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -351,17 +351,17 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %As.type.90f: type = generic_interface_type @As [concrete] // CHECK:STDOUT: %As.generic: %As.type.90f = struct_value () [concrete] // CHECK:STDOUT: %As.type.fd4: type = facet_type <@As, @As(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.2, @As(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.6b4: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @As.impl.686(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.1, @As.impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%As.impl_witness.6b4) [concrete] // CHECK:STDOUT: %.982: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Undefined.specific_fn: = specific_function %Undefined, @Undefined(%i32) [concrete] @@ -394,13 +394,13 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %return.patt: @Undefined.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Undefined.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_33: type = name_ref T, %T.loc4_14.1 [symbolic = %T.loc4_14.2 (constants.%T)] -// CHECK:STDOUT: %T.loc4_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_14.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @Undefined.%T.loc4_14.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4_27: type = name_ref T, %T.loc4_14.1 [symbolic = %T.loc4_14.2 (constants.%T)] -// CHECK:STDOUT: %x: @Undefined.%T.loc4_14.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @Undefined.%T.loc4_14.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Undefined.%T.loc4_14.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc4_33: type = name_ref T, %T.loc4_14.2 [symbolic = %T.loc4_14.1 (constants.%T)] +// CHECK:STDOUT: %T.loc4_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @Undefined.%T.loc4_14.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4_27: type = name_ref T, %T.loc4_14.2 [symbolic = %T.loc4_14.1 (constants.%T)] +// CHECK:STDOUT: %x: @Undefined.%T.loc4_14.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @Undefined.%T.loc4_14.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Undefined.%T.loc4_14.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallUndefined.decl: %CallUndefined.type = fn_decl @CallUndefined [concrete = constants.%CallUndefined] { // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] @@ -413,11 +413,11 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Undefined(%T.loc4_14.1: type) { -// CHECK:STDOUT: %T.loc4_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_14.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_14.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @Undefined(%T.loc4_14.2: type) { +// CHECK:STDOUT: %T.loc4_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_14.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_14.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Undefined.%T.loc4_14.2 (%T)) -> @Undefined.%T.loc4_14.2 (%T); +// CHECK:STDOUT: fn(%x.param: @Undefined.%T.loc4_14.1 (%T)) -> @Undefined.%T.loc4_14.1 (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CallUndefined() -> %i32 { @@ -428,7 +428,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %i32.loc14: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0: %.982 = impl_witness_access constants.%As.impl_witness.6b4, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc14_22.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_22.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc14_22.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc14_22.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -441,12 +441,12 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Undefined(constants.%T) { -// CHECK:STDOUT: %T.loc4_14.2 => constants.%T +// CHECK:STDOUT: %T.loc4_14.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Undefined(constants.%i32) { -// CHECK:STDOUT: %T.loc4_14.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_14.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/call_basic_depth.carbon b/toolchain/check/testdata/generic/call_basic_depth.carbon index 7ab0b2ef72f5..25ece0ec8622 100644 --- a/toolchain/check/testdata/generic/call_basic_depth.carbon +++ b/toolchain/check/testdata/generic/call_basic_depth.carbon @@ -67,10 +67,10 @@ fn M() { // CHECK:STDOUT: %H.specific_fn.1ed: = specific_function %H, @H(%T) [symbolic] // CHECK:STDOUT: %Cfn.specific_fn.53f: = specific_function %Cfn, @Cfn(%T) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6eb: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: %M.type: type = fn_type @M [concrete] // CHECK:STDOUT: %M: %M.type = struct_value () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -84,25 +84,25 @@ fn M() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %F.specific_fn.501: = specific_function %F, @F(%i32) [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%i32) [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.2(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: %H.specific_fn.aac: = specific_function %H, @H(%i32) [concrete] // CHECK:STDOUT: %Cfn.specific_fn.7b2: = specific_function %Cfn, @Cfn(%i32) [concrete] // CHECK:STDOUT: } @@ -138,10 +138,10 @@ fn M() { // CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.7dcd0a.1) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.7dcd0a.1) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc20_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_6.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%T.loc20_6.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc20_6.1 [symbolic = %T.loc20_6.2 (constants.%T)] -// CHECK:STDOUT: %x: @F.%T.loc20_6.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc20_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_6.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.%T.loc20_6.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc20_6.2 [symbolic = %T.loc20_6.1 (constants.%T)] +// CHECK:STDOUT: %x: @F.%T.loc20_6.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -150,13 +150,13 @@ fn M() { // CHECK:STDOUT: %return.patt: @H.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @H.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc23_25: type = name_ref T, %T.loc23_6.1 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc23_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @H.%T.loc23_6.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc23_19: type = name_ref T, %T.loc23_6.1 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %x: @H.%T.loc23_6.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @H.%T.loc23_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @H.%T.loc23_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc23_25: type = name_ref T, %T.loc23_6.2 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc23_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @H.%T.loc23_6.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc23_19: type = name_ref T, %T.loc23_6.2 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %x: @H.%T.loc23_6.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @H.%T.loc23_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @H.%T.loc23_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -165,13 +165,13 @@ fn M() { // CHECK:STDOUT: %return.patt: @G.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc29_25: type = name_ref T, %T.loc29_6.1 [symbolic = %T.loc29_6.2 (constants.%T)] -// CHECK:STDOUT: %T.loc29_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc29_6.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @G.%T.loc29_6.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc29_19: type = name_ref T, %T.loc29_6.1 [symbolic = %T.loc29_6.2 (constants.%T)] -// CHECK:STDOUT: %x: @G.%T.loc29_6.2 (%T) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @G.%T.loc29_6.2 (%T) = out_param call_param1 -// CHECK:STDOUT: %return: ref @G.%T.loc29_6.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc29_25: type = name_ref T, %T.loc29_6.2 [symbolic = %T.loc29_6.1 (constants.%T)] +// CHECK:STDOUT: %T.loc29_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc29_6.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @G.%T.loc29_6.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc29_19: type = name_ref T, %T.loc29_6.2 [symbolic = %T.loc29_6.1 (constants.%T)] +// CHECK:STDOUT: %x: @G.%T.loc29_6.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @G.%T.loc29_6.1 (%T) = out_param call_param1 +// CHECK:STDOUT: %return: ref @G.%T.loc29_6.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %M.decl: %M.type = fn_decl @M [concrete = constants.%M] {} {} // CHECK:STDOUT: } @@ -187,10 +187,10 @@ fn M() { // CHECK:STDOUT: %self.param: %C = value_param call_param0 // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C] // CHECK:STDOUT: %self: %C = bind_name self, %self.param -// CHECK:STDOUT: %T.loc16_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc16_22.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @Cfn.%T.loc16_22.1 (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc16_22.2 [symbolic = %T.loc16_22.1 (constants.%T)] -// CHECK:STDOUT: %x: @Cfn.%T.loc16_22.1 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc16_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc16_22.2 (constants.%T)] +// CHECK:STDOUT: %x.param: @Cfn.%T.loc16_22.2 (%T) = value_param call_param1 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc16_22.1 [symbolic = %T.loc16_22.2 (constants.%T)] +// CHECK:STDOUT: %x: @Cfn.%T.loc16_22.2 (%T) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357] @@ -201,69 +201,69 @@ fn M() { // CHECK:STDOUT: .Cfn = %Cfn.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Cfn(%T.loc16_22.2: type) { -// CHECK:STDOUT: %T.loc16_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc16_22.1 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc16_22.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @Cfn(%T.loc16_22.1: type) { +// CHECK:STDOUT: %T.loc16_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc16_22.2 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc16_22.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc16_22.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc16_22.2 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: %C, %x.param: @Cfn.%T.loc16_22.1 (%T)) { +// CHECK:STDOUT: fn(%self.param: %C, %x.param: @Cfn.%T.loc16_22.2 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc20_6.1: type) { -// CHECK:STDOUT: %T.loc20_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_6.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc20_6.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F(%T.loc20_6.2: type) { +// CHECK:STDOUT: %T.loc20_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_6.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc20_6.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc20_6.2 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc20_6.1 [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.loc20_6.2 (%T)) { +// CHECK:STDOUT: fn(%x.param: @F.%T.loc20_6.1 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @H(%T.loc23_6.1: type) { -// CHECK:STDOUT: %T.loc23_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc23_6.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @H(%T.loc23_6.2: type) { +// CHECK:STDOUT: %T.loc23_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_6.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc23_6.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc23_6.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.loc23_6.2) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.ef1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc23_6.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.loc23_6.1) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @H.%T.loc23_6.2 (%T)) -> @H.%T.loc23_6.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @H.%T.loc23_6.1 (%T)) -> @H.%T.loc23_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %x.ref.loc25: @H.%T.loc23_6.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc25: @H.%T.loc23_6.1 (%T) = name_ref x, %x // CHECK:STDOUT: %F.specific_fn.loc25_3.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn.loc25_3.1(%x.ref.loc25) -// CHECK:STDOUT: %x.ref.loc26: @H.%T.loc23_6.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc26: @H.%T.loc23_6.1 (%T) = name_ref x, %x // CHECK:STDOUT: return %x.ref.loc26 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc29_6.1: type) { -// CHECK:STDOUT: %T.loc29_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc29_6.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc29_6.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @G(%T.loc29_6.2: type) { +// CHECK:STDOUT: %T.loc29_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc29_6.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc29_6.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc29_6.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %H.specific_fn.loc30_3.2: = specific_function constants.%H, @H(%T.loc29_6.2) [symbolic = %H.specific_fn.loc30_3.2 (constants.%H.specific_fn.1ed)] -// CHECK:STDOUT: %F.specific_fn.loc31_3.2: = specific_function constants.%F, @F(%T.loc29_6.2) [symbolic = %F.specific_fn.loc31_3.2 (constants.%F.specific_fn.ef1)] -// CHECK:STDOUT: %Cfn.specific_fn.loc34_4.2: = specific_function constants.%Cfn, @Cfn(%T.loc29_6.2) [symbolic = %Cfn.specific_fn.loc34_4.2 (constants.%Cfn.specific_fn.53f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc29_6.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %H.specific_fn.loc30_3.2: = specific_function constants.%H, @H(%T.loc29_6.1) [symbolic = %H.specific_fn.loc30_3.2 (constants.%H.specific_fn.1ed)] +// CHECK:STDOUT: %F.specific_fn.loc31_3.2: = specific_function constants.%F, @F(%T.loc29_6.1) [symbolic = %F.specific_fn.loc31_3.2 (constants.%F.specific_fn.ef1)] +// CHECK:STDOUT: %Cfn.specific_fn.loc34_4.2: = specific_function constants.%Cfn, @Cfn(%T.loc29_6.1) [symbolic = %Cfn.specific_fn.loc34_4.2 (constants.%Cfn.specific_fn.53f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @G.%T.loc29_6.2 (%T)) -> @G.%T.loc29_6.2 (%T) { +// CHECK:STDOUT: fn(%x.param: @G.%T.loc29_6.1 (%T)) -> @G.%T.loc29_6.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %H.ref: %H.type = name_ref H, file.%H.decl [concrete = constants.%H] -// CHECK:STDOUT: %x.ref.loc30: @G.%T.loc29_6.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc30: @G.%T.loc29_6.1 (%T) = name_ref x, %x // CHECK:STDOUT: %H.specific_fn.loc30_3.1: = specific_function %H.ref, @H(constants.%T) [symbolic = %H.specific_fn.loc30_3.2 (constants.%H.specific_fn.1ed)] -// CHECK:STDOUT: %H.call: init @G.%T.loc29_6.2 (%T) = call %H.specific_fn.loc30_3.1(%x.ref.loc30) +// CHECK:STDOUT: %H.call: init @G.%T.loc29_6.1 (%T) = call %H.specific_fn.loc30_3.1(%x.ref.loc30) // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %x.ref.loc31: @G.%T.loc29_6.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc31: @G.%T.loc29_6.1 (%T) = name_ref x, %x // CHECK:STDOUT: %F.specific_fn.loc31_3.1: = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc31_3.2 (constants.%F.specific_fn.ef1)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn.loc31_3.1(%x.ref.loc31) // CHECK:STDOUT: name_binding_decl { @@ -276,14 +276,14 @@ fn M() { // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c // CHECK:STDOUT: %Cfn.ref: %Cfn.type = name_ref Cfn, @C.%Cfn.decl [concrete = constants.%Cfn] // CHECK:STDOUT: %Cfn.bound: = bound_method %c.ref, %Cfn.ref -// CHECK:STDOUT: %x.ref.loc34: @G.%T.loc29_6.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc34: @G.%T.loc29_6.1 (%T) = name_ref x, %x // CHECK:STDOUT: %Cfn.specific_fn.loc34_4.1: = specific_function %Cfn.ref, @Cfn(constants.%T) [symbolic = %Cfn.specific_fn.loc34_4.2 (constants.%Cfn.specific_fn.53f)] // CHECK:STDOUT: %bound_method.loc34: = bound_method %c.ref, %Cfn.specific_fn.loc34_4.1 // CHECK:STDOUT: %.loc34: %C = bind_value %c.ref // CHECK:STDOUT: %Cfn.call: init %empty_tuple.type = call %bound_method.loc34(%.loc34, %x.ref.loc34) -// CHECK:STDOUT: %x.ref.loc35: @G.%T.loc29_6.2 (%T) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc35: @G.%T.loc29_6.1 (%T) = name_ref x, %x // CHECK:STDOUT: %Op.bound: = bound_method %c.var, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn.6eb] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn.6eb] // CHECK:STDOUT: %bound_method.loc33: = bound_method %c.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc33(%addr) @@ -301,7 +301,7 @@ fn M() { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc39_3.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc39_3.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc39_3.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc39_3: init %i32 = converted %int_0, %int.convert_checked [concrete = constants.%int_0.6a9] @@ -334,12 +334,12 @@ fn M() { // CHECK:STDOUT: %G.call: init %i32 = call %G.specific_fn(%.loc43) // CHECK:STDOUT: assign %m.ref, %G.call // CHECK:STDOUT: %Op.bound.loc40: = bound_method %m.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc40: = bound_method %m.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc40: %ptr.235 = addr_of %m.var // CHECK:STDOUT: %no_op.loc40: init %empty_tuple.type = call %bound_method.loc40(%addr.loc40) // CHECK:STDOUT: %Op.bound.loc39: = bound_method %n.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc39_3.3: = bound_method %n.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc39: %ptr.235 = addr_of %n.var // CHECK:STDOUT: %no_op.loc39: init %empty_tuple.type = call %bound_method.loc39_3.3(%addr.loc39) @@ -347,7 +347,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Cfn(constants.%T) { -// CHECK:STDOUT: %T.loc16_22.1 => constants.%T +// CHECK:STDOUT: %T.loc16_22.2 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -355,7 +355,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc20_6.2 => constants.%T +// CHECK:STDOUT: %T.loc20_6.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -363,7 +363,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%T) { -// CHECK:STDOUT: %T.loc23_6.2 => constants.%T +// CHECK:STDOUT: %T.loc23_6.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -372,12 +372,12 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.loc29_6.2 => constants.%T +// CHECK:STDOUT: %T.loc29_6.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%i32) { -// CHECK:STDOUT: %T.loc20_6.2 => constants.%i32 +// CHECK:STDOUT: %T.loc20_6.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -385,7 +385,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%i32) { -// CHECK:STDOUT: %T.loc29_6.2 => constants.%i32 +// CHECK:STDOUT: %T.loc29_6.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -396,7 +396,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%i32) { -// CHECK:STDOUT: %T.loc23_6.2 => constants.%i32 +// CHECK:STDOUT: %T.loc23_6.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -405,7 +405,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Cfn(constants.%i32) { -// CHECK:STDOUT: %T.loc16_22.1 => constants.%i32 +// CHECK:STDOUT: %T.loc16_22.2 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/generic/complete_type.carbon b/toolchain/check/testdata/generic/complete_type.carbon index c23118ac5e4d..4e95f156ffc5 100644 --- a/toolchain/check/testdata/generic/complete_type.carbon +++ b/toolchain/check/testdata/generic/complete_type.carbon @@ -123,7 +123,7 @@ fn G() { F(B); } // CHECK:STDOUT: %A.decl: %A.type = class_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %x.patt: %pattern_type.1b7 = binding_pattern x [concrete] @@ -149,18 +149,18 @@ fn G() { F(B); } // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @A(%T.loc6_9.1: type) { -// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @A(%T.loc6_9.2: type) { +// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc6_9.2 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc6_9.2) [symbolic = %A (constants.%A.130)] -// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %T.loc6_9.2 [symbolic = %A.elem (constants.%A.elem.1ce)] -// CHECK:STDOUT: %struct_type.v.loc14_1.2: type = struct_type {.v: @A.%T.loc6_9.2 (%T)} [symbolic = %struct_type.v.loc14_1.2 (constants.%struct_type.v.ff1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc6_9.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc6_9.1) [symbolic = %A (constants.%A.130)] +// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %T.loc6_9.1 [symbolic = %A.elem (constants.%A.elem.1ce)] +// CHECK:STDOUT: %struct_type.v.loc14_1.2: type = struct_type {.v: @A.%T.loc6_9.1 (%T)} [symbolic = %struct_type.v.loc14_1.2 (constants.%struct_type.v.ff1)] // CHECK:STDOUT: %complete_type.loc14_1.2: = complete_type_witness %struct_type.v.loc14_1.2 [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.460)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_9.1 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_9.2 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: %.loc13: @A.%A.elem (%A.elem.1ce) = field_decl v, element0 [concrete] // CHECK:STDOUT: %struct_type.v.loc14_1.1: type = struct_type {.v: %T} [symbolic = %struct_type.v.loc14_1.2 (constants.%struct_type.v.ff1)] // CHECK:STDOUT: %complete_type.loc14_1.1: = complete_type_witness %struct_type.v.loc14_1.1 [symbolic = %complete_type.loc14_1.2 (constants.%complete_type.460)] @@ -179,11 +179,11 @@ fn G() { F(B); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%T +// CHECK:STDOUT: %T.loc6_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%B) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%B +// CHECK:STDOUT: %T.loc6_9.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => @@ -254,7 +254,7 @@ fn G() { F(B); } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: %B.decl.loc13: type = class_decl @B [concrete = constants.%B] {} {} @@ -269,18 +269,18 @@ fn G() { F(B); } // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_10: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc7_10 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc6_6.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.loc6_6.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.713)] +// CHECK:STDOUT: %require_complete.loc7_10: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc7_10 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc6_6.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.loc6_6.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.713)] // CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.a63)] // CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.2 (%.a63) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.loc6_6.2 [symbolic = %ptr (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.loc6_6.1 [symbolic = %ptr (constants.%ptr.79f)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr [symbolic = %require_complete.loc7_3 (constants.%require_complete.6e5)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -289,9 +289,9 @@ fn G() { F(B); } // CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.7dc) = binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.7dc) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%T.loc6_6.2 (%T) = var %v.var_patt -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %v: ref @F.%T.loc6_6.2 (%T) = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref @F.%T.loc6_6.1 (%T) = var %v.var_patt +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %v: ref @F.%T.loc6_6.1 (%T) = bind_name v, %v.var // CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.2 (%.a63) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0.loc7_3.1 // CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Op.1(constants.%Destroy.facet.713) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn)] @@ -312,11 +312,11 @@ fn G() { F(B); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%B) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%B +// CHECK:STDOUT: %T.loc6_6.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc7_10 => constants.%complete_type.357 @@ -389,25 +389,25 @@ fn G() { F(B); } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B; // CHECK:STDOUT: -// 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: generic fn @F(%T.loc6_6.2: type) { +// CHECK:STDOUT: %T.loc6_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_10: = require_complete_type %T.loc6_6.2 [symbolic = %require_complete.loc13_10 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc6_6.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc6_6.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.loc6_6.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.713)] +// CHECK:STDOUT: %require_complete.loc13_10: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc13_10 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc6_6.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.loc6_6.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.713)] // CHECK:STDOUT: %.loc13_3.2: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc13_3.2 (constants.%.a63)] // CHECK:STDOUT: %impl.elem0.loc13_3.2: @F.%.loc13_3.2 (%.a63) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_3.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc13_3.2: = specific_impl_function %impl.elem0.loc13_3.2, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc13_3.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.loc6_6.2 [symbolic = %ptr (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.loc6_6.1 [symbolic = %ptr (constants.%ptr.79f)] // CHECK:STDOUT: %require_complete.loc13_3: = require_complete_type %ptr [symbolic = %require_complete.loc13_3 (constants.%require_complete.6e5)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -416,9 +416,9 @@ fn G() { F(B); } // CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.7dc) = binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.7dc) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%T.loc6_6.2 (%T) = var %v.var_patt -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)] -// CHECK:STDOUT: %v: ref @F.%T.loc6_6.2 (%T) = bind_name v, %v.var +// CHECK:STDOUT: %v.var: ref @F.%T.loc6_6.1 (%T) = var %v.var_patt +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] +// CHECK:STDOUT: %v: ref @F.%T.loc6_6.1 (%T) = bind_name v, %v.var // CHECK:STDOUT: %impl.elem0.loc13_3.1: @F.%.loc13_3.2 (%.a63) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_3.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc13_3.1: = bound_method %v.var, %impl.elem0.loc13_3.1 // CHECK:STDOUT: %specific_impl_fn.loc13_3.1: = specific_impl_function %impl.elem0.loc13_3.1, @Op.1(constants.%Destroy.facet.713) [symbolic = %specific_impl_fn.loc13_3.2 (constants.%specific_impl_fn)] @@ -439,11 +439,11 @@ fn G() { F(B); } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%T +// CHECK:STDOUT: %T.loc6_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%B) { -// CHECK:STDOUT: %T.loc6_6.2 => constants.%B +// CHECK:STDOUT: %T.loc6_6.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_10 => diff --git a/toolchain/check/testdata/generic/dependent_param.carbon b/toolchain/check/testdata/generic/dependent_param.carbon index f3b69af0ca32..7989971999f8 100644 --- a/toolchain/check/testdata/generic/dependent_param.carbon +++ b/toolchain/check/testdata/generic/dependent_param.carbon @@ -98,7 +98,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %n.patt: %pattern_type.7ce = binding_pattern n [concrete] @@ -112,18 +112,18 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %n: ref %i32 = bind_name n, %n.var [concrete = %n.var] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @Outer(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.2) [symbolic = %Inner.type (constants.%Inner.type.eae)] +// CHECK:STDOUT: %Inner.type: type = generic_class_type @Inner, @Outer(%T.loc4_13.1) [symbolic = %Inner.type (constants.%Inner.type.eae)] // CHECK:STDOUT: %Inner.generic: @Outer.%Inner.type (%Inner.type.eae) = struct_value () [symbolic = %Inner.generic (constants.%Inner.generic.137)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.decl: @Outer.%Inner.type (%Inner.type.eae) = class_decl @Inner [symbolic = @Outer.%Inner.generic (constants.%Inner.generic.137)] { // CHECK:STDOUT: %U.patt: @Inner.%pattern_type (%pattern_type.7dcd0a.1) = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %U.loc5_15.1: @Inner.%T (%T) = bind_symbolic_name U, 1 [symbolic = %U.loc5_15.2 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] @@ -137,7 +137,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.1: type, %U.loc5_15.1: @Inner.%T (%T)) { +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.2: type, %U.loc5_15.1: @Inner.%T (%T)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %U.loc5_15.2: @Inner.%T (%T) = bind_symbolic_name U, 1 [symbolic = %U.loc5_15.2 (constants.%U)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] @@ -151,7 +151,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %return.patt: @Get.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Get.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return.param: ref @Get.%T (%T) = out_param call_param0 // CHECK:STDOUT: %return: ref @Get.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -167,7 +167,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Get(@Outer.%T.loc4_13.1: type, @Inner.%U.loc5_15.1: @Inner.%T (%T)) { +// CHECK:STDOUT: generic fn @Get(@Outer.%T.loc4_13.2: type, @Inner.%U.loc5_15.1: @Inner.%T (%T)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: @@ -208,7 +208,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.eae @@ -231,7 +231,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%i32) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_13.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Inner.type => constants.%Inner.type.bac diff --git a/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon b/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon index a68199073853..13e64ae1332f 100644 --- a/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon +++ b/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon @@ -123,11 +123,11 @@ fn H(T:! type) { // CHECK:STDOUT: %impl.elem0.ab3: type = impl_witness_access %A.lookup_impl_witness.935, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%CC.loc6_9.1: type) { +// CHECK:STDOUT: generic class @C(%CC.loc6_9.2: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type: type = fn_type @F, @C(%CC.loc6_9.2) [symbolic = %F.type (constants.%F.type.704ae6.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @C(%CC.loc6_9.1) [symbolic = %F.type (constants.%F.type.704ae6.1)] // CHECK:STDOUT: %F: @C.%F.type (%F.type.704ae6.1) = struct_value () [symbolic = %F (constants.%F.2d247e.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -136,21 +136,21 @@ fn H(T:! type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_18.1: type = splice_block %.loc11_18.2 [symbolic = %A_where.type (constants.%A_where.type.5b404c.1)] { // CHECK:STDOUT: %A.ref: %A.type.495 = name_ref A, file.%A.decl [concrete = constants.%A.generic] -// CHECK:STDOUT: %CC.ref.loc11_14: type = name_ref CC, @C.%CC.loc6_9.1 [symbolic = %CC (constants.%CC)] -// CHECK:STDOUT: %A.type.loc11_16.2: type = facet_type <@A, @A(constants.%CC)> [symbolic = %A.type.loc11_16.1 (constants.%A.type.75a876.2)] +// CHECK:STDOUT: %CC.ref.loc11_14: type = name_ref CC, @C.%CC.loc6_9.2 [symbolic = %CC (constants.%CC)] +// CHECK:STDOUT: %A.type.loc11_16.1: type = facet_type <@A, @A(constants.%CC)> [symbolic = %A.type.loc11_16.2 (constants.%A.type.75a876.2)] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref: @F.%A.type.loc11_16.1 (%A.type.75a876.2) = name_ref .Self, %.Self.2 [symbolic = %.Self.1 (constants.%.Self.fafe34.1)] +// CHECK:STDOUT: %.Self.ref: @F.%A.type.loc11_16.2 (%A.type.75a876.2) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.fafe34.1)] // CHECK:STDOUT: %.loc11_24.1: @F.%A.assoc_type (%A.assoc_type.ed3b32.2) = specific_constant @X.%assoc0, @A(constants.%CC) [symbolic = %assoc0 (constants.%assoc0.ce3509.2)] // CHECK:STDOUT: %X.ref: @F.%A.assoc_type (%A.assoc_type.ed3b32.2) = name_ref X, %.loc11_24.1 [symbolic = %assoc0 (constants.%assoc0.ce3509.2)] -// CHECK:STDOUT: %.Self.as_type.loc11_24.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_24.1 (constants.%.Self.as_type)] -// CHECK:STDOUT: %.loc11_24.2: type = converted %.Self.ref, %.Self.as_type.loc11_24.2 [symbolic = %.Self.as_type.loc11_24.1 (constants.%.Self.as_type)] -// CHECK:STDOUT: %impl.elem0.loc11_24.2: type = impl_witness_access constants.%A.lookup_impl_witness.4e49fb.1, element0 [symbolic = %impl.elem0.loc11_24.1 (constants.%impl.elem0.452c56.1)] -// CHECK:STDOUT: %CC.ref.loc11_29: type = name_ref CC, @C.%CC.loc6_9.1 [symbolic = %CC (constants.%CC)] -// CHECK:STDOUT: %.loc11_18.2: type = where_expr %.Self.2 [symbolic = %A_where.type (constants.%A_where.type.5b404c.1)] { -// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc11_24.2, %CC.ref.loc11_29 +// CHECK:STDOUT: %.Self.as_type.loc11_24.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_24.2 (constants.%.Self.as_type)] +// CHECK:STDOUT: %.loc11_24.2: type = converted %.Self.ref, %.Self.as_type.loc11_24.1 [symbolic = %.Self.as_type.loc11_24.2 (constants.%.Self.as_type)] +// CHECK:STDOUT: %impl.elem0.loc11_24.1: type = impl_witness_access constants.%A.lookup_impl_witness.4e49fb.1, element0 [symbolic = %impl.elem0.loc11_24.2 (constants.%impl.elem0.452c56.1)] +// CHECK:STDOUT: %CC.ref.loc11_29: type = name_ref CC, @C.%CC.loc6_9.2 [symbolic = %CC (constants.%CC)] +// CHECK:STDOUT: %.loc11_18.2: type = where_expr %.Self.1 [symbolic = %A_where.type (constants.%A_where.type.5b404c.1)] { +// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc11_24.1, %CC.ref.loc11_29 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc11_8.2: @F.%A_where.type (%A_where.type.5b404c.1) = bind_symbolic_name T, 1 [symbolic = %T.loc11_8.1 (constants.%T.dad)] +// CHECK:STDOUT: %T.loc11_8.1: @F.%A_where.type (%A_where.type.5b404c.1) = bind_symbolic_name T, 1 [symbolic = %T.loc11_8.2 (constants.%T.dad)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: complete_type_witness = %complete_type @@ -163,7 +163,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%DD.loc15_9.1: type) { +// CHECK:STDOUT: generic class @D(%DD.loc15_9.2: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -181,18 +181,18 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@C.%CC.loc6_9.1: type, %T.loc11_8.2: @F.%A_where.type (%A_where.type.5b404c.1)) { +// CHECK:STDOUT: generic fn @F(@C.%CC.loc6_9.2: type, %T.loc11_8.1: @F.%A_where.type (%A_where.type.5b404c.1)) { // CHECK:STDOUT: %CC: type = bind_symbolic_name CC, 0 [symbolic = %CC (constants.%CC)] -// CHECK:STDOUT: %A.type.loc11_16.1: type = facet_type <@A, @A(%CC)> [symbolic = %A.type.loc11_16.1 (constants.%A.type.75a876.2)] +// CHECK:STDOUT: %A.type.loc11_16.2: type = facet_type <@A, @A(%CC)> [symbolic = %A.type.loc11_16.2 (constants.%A.type.75a876.2)] // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc11_16.1 [symbolic = %require_complete (constants.%require_complete.6da)] +// CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc11_16.2 [symbolic = %require_complete (constants.%require_complete.6da)] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%CC) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3b32.2)] // CHECK:STDOUT: %assoc0: @F.%A.assoc_type (%A.assoc_type.ed3b32.2) = assoc_entity element0, @A.%X [symbolic = %assoc0 (constants.%assoc0.ce3509.2)] -// CHECK:STDOUT: %.Self.as_type.loc11_24.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc11_24.1 (constants.%.Self.as_type)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.1, @A, @A(%CC) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.4e49fb.1)] -// CHECK:STDOUT: %impl.elem0.loc11_24.1: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_24.1 (constants.%impl.elem0.452c56.1)] -// CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%CC) where %impl.elem0.loc11_24.1 = %CC> [symbolic = %A_where.type (constants.%A_where.type.5b404c.1)] -// CHECK:STDOUT: %T.loc11_8.1: @F.%A_where.type (%A_where.type.5b404c.1) = bind_symbolic_name T, 1 [symbolic = %T.loc11_8.1 (constants.%T.dad)] +// CHECK:STDOUT: %.Self.as_type.loc11_24.2: type = facet_access_type %.Self.2 [symbolic = %.Self.as_type.loc11_24.2 (constants.%.Self.as_type)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.2, @A, @A(%CC) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.4e49fb.1)] +// CHECK:STDOUT: %impl.elem0.loc11_24.2: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_24.2 (constants.%impl.elem0.452c56.1)] +// CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%CC) where %impl.elem0.loc11_24.2 = %CC> [symbolic = %A_where.type (constants.%A_where.type.5b404c.1)] +// CHECK:STDOUT: %T.loc11_8.2: @F.%A_where.type (%A_where.type.5b404c.1) = bind_symbolic_name T, 1 [symbolic = %T.loc11_8.2 (constants.%T.dad)] // CHECK:STDOUT: %pattern_type: type = pattern_type %A_where.type [symbolic = %pattern_type (constants.%pattern_type.2e9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -203,7 +203,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@D.%DD.loc15_9.1: type, %T.loc16_8.2: type) { +// CHECK:STDOUT: generic fn @G(@D.%DD.loc15_9.2: type, %T.loc16_8.1: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -220,17 +220,17 @@ fn H(T:! type) { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] -// CHECK:STDOUT: %DD.ref: type = name_ref DD, @D.%DD.loc15_9.1 [symbolic = %DD (constants.%DD)] +// CHECK:STDOUT: %DD.ref: type = name_ref DD, @D.%DD.loc15_9.2 [symbolic = %DD (constants.%DD)] // CHECK:STDOUT: %C.loc25_9.1: type = class_type @C, @C(constants.%DD) [symbolic = %C.loc25_9.2 (constants.%C.f2e1b5.2)] // CHECK:STDOUT: %.loc25: @G.%F.type (%F.type.704ae6.2) = specific_constant @C.%F.decl, @C(constants.%DD) [symbolic = %F (constants.%F.2d247e.2)] // CHECK:STDOUT: %F.ref: @G.%F.type (%F.type.704ae6.2) = name_ref F, %.loc25 [symbolic = %F (constants.%F.2d247e.2)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc16_8.2 [symbolic = %T.loc16_8.1 (constants.%T.336)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc16_8.1 [symbolic = %T.loc16_8.2 (constants.%T.336)] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%CC) { -// CHECK:STDOUT: %CC.loc6_9.2 => constants.%CC +// CHECK:STDOUT: %CC.loc6_9.1 => constants.%CC // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.704ae6.1 @@ -239,21 +239,21 @@ fn H(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%CC, constants.%T.dad) { // CHECK:STDOUT: %CC => constants.%CC -// CHECK:STDOUT: %A.type.loc11_16.1 => constants.%A.type.75a876.2 -// CHECK:STDOUT: %.Self.1 => constants.%.Self.fafe34.1 +// CHECK:STDOUT: %A.type.loc11_16.2 => constants.%A.type.75a876.2 +// CHECK:STDOUT: %.Self.2 => constants.%.Self.fafe34.1 // CHECK:STDOUT: %require_complete => constants.%require_complete.6da // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.ed3b32.2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.ce3509.2 -// CHECK:STDOUT: %.Self.as_type.loc11_24.1 => constants.%.Self.as_type +// CHECK:STDOUT: %.Self.as_type.loc11_24.2 => constants.%.Self.as_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.4e49fb.1 -// CHECK:STDOUT: %impl.elem0.loc11_24.1 => constants.%impl.elem0.452c56.1 +// CHECK:STDOUT: %impl.elem0.loc11_24.2 => constants.%impl.elem0.452c56.1 // CHECK:STDOUT: %A_where.type => constants.%A_where.type.5b404c.1 -// CHECK:STDOUT: %T.loc11_8.1 => constants.%T.dad +// CHECK:STDOUT: %T.loc11_8.2 => constants.%T.dad // CHECK:STDOUT: %pattern_type => constants.%pattern_type.2e9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%DD) { -// CHECK:STDOUT: %DD.loc15_9.2 => constants.%DD +// CHECK:STDOUT: %DD.loc15_9.1 => constants.%DD // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %G.type => constants.%G.type.a94 @@ -261,11 +261,11 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%DD, constants.%T.336) { -// CHECK:STDOUT: %T.loc16_8.1 => constants.%T.336 +// CHECK:STDOUT: %T.loc16_8.2 => constants.%T.336 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%DD) { -// CHECK:STDOUT: %CC.loc6_9.2 => constants.%DD +// CHECK:STDOUT: %CC.loc6_9.1 => constants.%DD // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.704ae6.2 @@ -273,7 +273,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%empty_struct_type) { -// CHECK:STDOUT: %DD.loc15_9.2 => constants.%empty_struct_type +// CHECK:STDOUT: %DD.loc15_9.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %G.type => constants.%G.type.0da @@ -281,7 +281,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%empty_struct_type, constants.%T.8b3) { -// CHECK:STDOUT: %T.loc16_8.1 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc16_8.2 => constants.%T.8b3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %DD => constants.%empty_struct_type @@ -296,7 +296,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type) { -// CHECK:STDOUT: %CC.loc6_9.2 => constants.%empty_struct_type +// CHECK:STDOUT: %CC.loc6_9.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type => constants.%F.type.789 @@ -419,7 +419,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @D(%DD.loc14_9.1: type) { +// CHECK:STDOUT: generic class @D(%DD.loc14_9.2: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -437,7 +437,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@D.%DD.loc14_9.1: type, %T.loc15_8.2: type) { +// CHECK:STDOUT: generic fn @G(@D.%DD.loc14_9.2: type, %T.loc15_8.1: type) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -448,14 +448,14 @@ fn H(T:! type) { // CHECK:STDOUT: %.Self: @G.%A.type (%A.type.75a876.2) = bind_symbolic_name .Self [symbolic = %.Self (constants.%.Self.fafe34.2)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self, @A, @A(%DD) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.4e49fb.2)] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0.452c56.2)] -// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc15_8.1, @B, @B(%ptr.loc21_14.2) [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness.8e3)] -// CHECK:STDOUT: %B.facet.loc21_7.2: @G.%B.type.loc21_15.2 (%B.type.4e3fc4.2) = facet_value %T.loc15_8.1, (%B.lookup_impl_witness) [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.44e)] +// CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc15_8.2, @B, @B(%ptr.loc21_14.2) [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness.8e3)] +// CHECK:STDOUT: %B.facet.loc21_7.2: @G.%B.type.loc21_15.2 (%B.type.4e3fc4.2) = facet_value %T.loc15_8.2, (%B.lookup_impl_witness) [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.44e)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_8.2 [symbolic = %T.loc15_8.1 (constants.%T.336)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_8.1 [symbolic = %T.loc15_8.2 (constants.%T.336)] // CHECK:STDOUT: %B.ref: %B.type.bf2 = name_ref B, file.%B.decl [concrete = constants.%B.generic] -// CHECK:STDOUT: %DD.ref: type = name_ref DD, @D.%DD.loc14_9.1 [symbolic = %DD (constants.%DD)] +// CHECK:STDOUT: %DD.ref: type = name_ref DD, @D.%DD.loc14_9.2 [symbolic = %DD (constants.%DD)] // CHECK:STDOUT: %ptr.loc21_14.1: type = ptr_type %DD.ref [symbolic = %ptr.loc21_14.2 (constants.%ptr.79f131.2)] // CHECK:STDOUT: %B.type.loc21_15.1: type = facet_type <@B, @B(constants.%ptr.79f131.2)> [symbolic = %B.type.loc21_15.2 (constants.%B.type.4e3fc4.2)] // CHECK:STDOUT: %B.facet.loc21_7.1: @G.%B.type.loc21_15.2 (%B.type.4e3fc4.2) = facet_value constants.%T.336, (constants.%B.lookup_impl_witness.8e3) [symbolic = %B.facet.loc21_7.2 (constants.%B.facet.44e)] @@ -485,7 +485,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%DD) { -// CHECK:STDOUT: %DD.loc14_9.2 => constants.%DD +// CHECK:STDOUT: %DD.loc14_9.1 => constants.%DD // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %G.type => constants.%G.type.a94 @@ -493,11 +493,11 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%DD, constants.%T.336) { -// CHECK:STDOUT: %T.loc15_8.1 => constants.%T.336 +// CHECK:STDOUT: %T.loc15_8.2 => constants.%T.336 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%empty_struct_type) { -// CHECK:STDOUT: %DD.loc14_9.2 => constants.%empty_struct_type +// CHECK:STDOUT: %DD.loc14_9.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %G.type => constants.%G.type.0da @@ -505,7 +505,7 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%empty_struct_type, constants.%T.8b3) { -// CHECK:STDOUT: %T.loc15_8.1 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc15_8.2 => constants.%T.8b3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %DD => constants.%empty_struct_type diff --git a/toolchain/check/testdata/generic/local.carbon b/toolchain/check/testdata/generic/local.carbon index 5bbf0bc1d983..6f863c1c018d 100644 --- a/toolchain/check/testdata/generic/local.carbon +++ b/toolchain/check/testdata/generic/local.carbon @@ -78,25 +78,25 @@ class C(C:! type) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %C.val: %C.d45 = struct_value (%int_1.5d2) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.39b: type = fn_type @Op.3, @Destroy.impl(%C.d45) [concrete] +// CHECK:STDOUT: %Op.type.39b: type = fn_type @Op.1, @Destroy.impl(%C.d45) [concrete] // CHECK:STDOUT: %Op.5e9: %Op.type.39b = struct_value () [concrete] // CHECK:STDOUT: %ptr.9c7: type = ptr_type %C.d45 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5e9, @Op.3(%C.d45) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5e9, @Op.1(%C.d45) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -163,7 +163,7 @@ class C(C:! type) { // CHECK:STDOUT: %.loc8_26.1: %struct_type.x.c96 = struct_literal (%int_1) // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_26.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_26.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_26.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_26.2: init %i32 = converted %int_1, %int.convert_checked [concrete = constants.%int_1.5d2] @@ -180,7 +180,7 @@ class C(C:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %C.d45 = bind_name v, %v.var // CHECK:STDOUT: %Op.bound: = bound_method %v.var, constants.%Op.5e9 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5e9, @Op.3(constants.%C.d45) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5e9, @Op.1(constants.%C.d45) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_3: = bound_method %v.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.9c7 = addr_of %v.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc8_3(%addr) @@ -289,12 +289,12 @@ class C(C:! type) { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %C.patt: %pattern_type = symbolic_binding_pattern C, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.loc4_9.1: type = bind_symbolic_name C, 0 [symbolic = %C.loc4_9.2 (constants.%C.8b3)] +// CHECK:STDOUT: %C.loc4_9.2: type = bind_symbolic_name C, 0 [symbolic = %C.loc4_9.1 (constants.%C.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%C.loc4_9.1: type) { -// CHECK:STDOUT: %C.loc4_9.2: type = bind_symbolic_name C, 0 [symbolic = %C.loc4_9.2 (constants.%C.8b3)] +// CHECK:STDOUT: generic class @C(%C.loc4_9.2: type) { +// CHECK:STDOUT: %C.loc4_9.1: type = bind_symbolic_name C, 0 [symbolic = %C.loc4_9.1 (constants.%C.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -309,6 +309,6 @@ class C(C:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%C.8b3) { -// CHECK:STDOUT: %C.loc4_9.2 => constants.%C.8b3 +// CHECK:STDOUT: %C.loc4_9.1 => constants.%C.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/template/convert.carbon b/toolchain/check/testdata/generic/template/convert.carbon index 3ce59f55fd1d..5b80ff42e3d9 100644 --- a/toolchain/check/testdata/generic/template/convert.carbon +++ b/toolchain/check/testdata/generic/template/convert.carbon @@ -144,10 +144,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%T.loc4_15.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x: @F.%T.loc4_15.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.%T.loc4_15.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x: @F.%T.loc4_15.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -229,19 +229,19 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: .n = %.loc13 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.2 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.1 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.2 [template = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %.loc5_11.3: = refine_type_action %x.ref, %T.loc4_15.2 [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.1 [template = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %.loc5_11.3: = refine_type_action %x.ref, %T.loc4_15.1 [template] // CHECK:STDOUT: %.loc5_11.4: = convert_to_value_action %.loc5_11.1, constants.%i32 [template] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.2 (%T)) -> %i32 { +// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.1 (%T)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc5_11.1: @F.%T.loc4_15.2 (%T) = splice_inst %.loc5_11.3 +// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %.loc5_11.1: @F.%T.loc4_15.1 (%T) = splice_inst %.loc5_11.3 // CHECK:STDOUT: %.loc5_11.2: %i32 = splice_inst %.loc5_11.4 // CHECK:STDOUT: return %.loc5_11.2 // CHECK:STDOUT: } @@ -279,12 +279,12 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%i32) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_15.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -294,7 +294,7 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%C +// CHECK:STDOUT: %T.loc4_15.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -364,10 +364,10 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%T.loc4_15.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x: @F.%T.loc4_15.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.%T.loc4_15.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x: @F.%T.loc4_15.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -397,19 +397,19 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.2 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.1 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.2 [template = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %.loc11_11.3: = refine_type_action %x.ref, %T.loc4_15.2 [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.1 [template = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %.loc11_11.3: = refine_type_action %x.ref, %T.loc4_15.1 [template] // CHECK:STDOUT: %.loc11_11.4: = convert_to_value_action %.loc11_11.1, constants.%i32 [template] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.2 (%T)) -> %i32 { +// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.1 (%T)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc11_11.1: @F.%T.loc4_15.2 (%T) = splice_inst %.loc11_11.3 +// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %.loc11_11.1: @F.%T.loc4_15.1 (%T) = splice_inst %.loc11_11.3 // CHECK:STDOUT: %.loc11_11.2: %i32 = splice_inst %.loc11_11.4 // CHECK:STDOUT: return %.loc11_11.2 // CHECK:STDOUT: } @@ -427,12 +427,12 @@ fn Test(d: D) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%D) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%D +// CHECK:STDOUT: %T.loc4_15.1 => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.510 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/generic/template/member_access.carbon b/toolchain/check/testdata/generic/template/member_access.carbon index 77bf45fe312a..0d34eca8c2c8 100644 --- a/toolchain/check/testdata/generic/template/member_access.carbon +++ b/toolchain/check/testdata/generic/template/member_access.carbon @@ -161,10 +161,10 @@ fn Test(e: E) { // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%T.loc4_15.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x: @F.%T.loc4_15.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.%T.loc4_15.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x: @F.%T.loc4_15.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -206,21 +206,21 @@ fn Test(e: E) { // CHECK:STDOUT: .n = %.loc9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.2 [template = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.1 [template = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.2 [template = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %.loc5_11.3: = refine_type_action %x.ref, %T.loc4_15.2 [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.1 [template = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %.loc5_11.3: = refine_type_action %x.ref, %T.loc4_15.1 [template] // CHECK:STDOUT: %.loc5_11.4: = access_member_action %.loc5_11.1, n [template] // CHECK:STDOUT: %.loc5_11.5: type = type_of_inst %.loc5_11.4 [template] // CHECK:STDOUT: %.loc5_13.2: = convert_to_value_action %.loc5_11.2, constants.%i32 [template] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.2 (%T)) -> %i32 { +// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.1 (%T)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc5_11.1: @F.%T.loc4_15.2 (%T) = splice_inst %.loc5_11.3 +// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %.loc5_11.1: @F.%T.loc4_15.1 (%T) = splice_inst %.loc5_11.3 // CHECK:STDOUT: %.loc5_11.2: @F.%.loc5_11.5 (@F.%.loc5_11.5) = splice_inst %.loc5_11.4 // CHECK:STDOUT: %.loc5_13.1: %i32 = splice_inst %.loc5_13.2 // CHECK:STDOUT: return %.loc5_13.1 @@ -246,12 +246,12 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%C +// CHECK:STDOUT: %T.loc4_15.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -263,7 +263,7 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%struct_type.m.n) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%struct_type.m.n +// CHECK:STDOUT: %T.loc4_15.1 => constants.%struct_type.m.n // CHECK:STDOUT: %pattern_type => constants.%pattern_type.811 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -333,10 +333,10 @@ fn Test(e: E) { // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%T.loc4_15.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x: @F.%T.loc4_15.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.%T.loc4_15.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x: @F.%T.loc4_15.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -365,21 +365,21 @@ fn Test(e: E) { // CHECK:STDOUT: .n = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.2 [template = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.1 [template = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.2 [template = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %.loc8_11.3: = refine_type_action %x.ref, %T.loc4_15.2 [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.1 [template = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %.loc8_11.3: = refine_type_action %x.ref, %T.loc4_15.1 [template] // CHECK:STDOUT: %.loc8_11.4: = access_member_action %.loc8_11.1, n [template] // CHECK:STDOUT: %.loc8_11.5: type = type_of_inst %.loc8_11.4 [template] // CHECK:STDOUT: %.loc8_13.2: = convert_to_value_action %.loc8_11.2, constants.%i32 [template] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.2 (%T)) -> %i32 { +// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.1 (%T)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc8_11.1: @F.%T.loc4_15.2 (%T) = splice_inst %.loc8_11.3 +// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %.loc8_11.1: @F.%T.loc4_15.1 (%T) = splice_inst %.loc8_11.3 // CHECK:STDOUT: %.loc8_11.2: @F.%.loc8_11.5 (@F.%.loc8_11.5) = splice_inst %.loc8_11.4 // CHECK:STDOUT: %.loc8_13.1: %i32 = splice_inst %.loc8_13.2 // CHECK:STDOUT: return %.loc8_13.1 @@ -396,12 +396,12 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%D) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%D +// CHECK:STDOUT: %T.loc4_15.1 => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.510 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -484,10 +484,10 @@ fn Test(e: E) { // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.loc4.%T.loc4_15.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x: @F.loc4.%T.loc4_15.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.loc4.%T.loc4_15.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x: @F.loc4.%T.loc4_15.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -525,21 +525,21 @@ fn Test(e: E) { // CHECK:STDOUT: .Self = constants.%F.a8a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc4(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.2 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F.loc4(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.1 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.2 [template = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %.loc11_11.3: = refine_type_action %x.ref, %T.loc4_15.2 [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc4_15.1 [template = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %.loc11_11.3: = refine_type_action %x.ref, %T.loc4_15.1 [template] // CHECK:STDOUT: %.loc11_11.4: = access_member_action %.loc11_11.1, n [template] // CHECK:STDOUT: %.loc11_11.5: type = type_of_inst %.loc11_11.4 [template] // CHECK:STDOUT: %.loc11_13.2: = convert_to_value_action %.loc11_11.2, constants.%i32 [template] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.loc4.%T.loc4_15.2 (%T)) -> %i32 { +// CHECK:STDOUT: fn(%x.param: @F.loc4.%T.loc4_15.1 (%T)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @F.loc4.%T.loc4_15.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc11_11.1: @F.loc4.%T.loc4_15.2 (%T) = splice_inst %.loc11_11.3 +// CHECK:STDOUT: %x.ref: @F.loc4.%T.loc4_15.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %.loc11_11.1: @F.loc4.%T.loc4_15.1 (%T) = splice_inst %.loc11_11.3 // CHECK:STDOUT: %.loc11_11.2: @F.loc4.%.loc11_11.5 (@F.loc4.%.loc11_11.5) = splice_inst %.loc11_11.4 // CHECK:STDOUT: %.loc11_13.1: %i32 = splice_inst %.loc11_13.2 // CHECK:STDOUT: return %.loc11_13.1 @@ -556,12 +556,12 @@ fn Test(e: E) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc4(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc4(constants.%E) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%E +// CHECK:STDOUT: %T.loc4_15.1 => constants.%E // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4a // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index 05341116ead3..65d12cf144f7 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -115,29 +115,29 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %T.loc6_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc6_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%T.loc6_15.2 (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_15.1 [template = %T.loc6_15.2 (constants.%T)] -// CHECK:STDOUT: %x: @F.%T.loc6_15.2 (%T) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc6_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc6_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.%T.loc6_15.1 (%T) = value_param call_param0 +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_15.2 [template = %T.loc6_15.1 (constants.%T)] +// CHECK:STDOUT: %x: @F.%T.loc6_15.1 (%T) = bind_name x, %x.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc6_15.1: type) { -// CHECK:STDOUT: %T.loc6_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc6_15.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc6_15.2 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F(%T.loc6_15.2: type) { +// CHECK:STDOUT: %T.loc6_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc6_15.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc6_15.1 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc6_15.2 [template = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %.loc11_11.3: = refine_type_action %x.ref, %T.loc6_15.2 [template] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc6_15.1 [template = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %.loc11_11.3: = refine_type_action %x.ref, %T.loc6_15.1 [template] // CHECK:STDOUT: %.loc11_11.4: = access_member_action %.loc11_11.1, n [template] // CHECK:STDOUT: %.loc11_11.5: type = type_of_inst %.loc11_11.4 [template] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.loc6_15.2 (%T)) -> %i32 { +// CHECK:STDOUT: fn(%x.param: @F.%T.loc6_15.1 (%T)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @F.%T.loc6_15.2 (%T) = name_ref x, %x -// CHECK:STDOUT: %.loc11_11.1: @F.%T.loc6_15.2 (%T) = splice_inst %.loc11_11.3 +// CHECK:STDOUT: %x.ref: @F.%T.loc6_15.1 (%T) = name_ref x, %x +// CHECK:STDOUT: %.loc11_11.1: @F.%T.loc6_15.1 (%T) = splice_inst %.loc11_11.3 // CHECK:STDOUT: %.loc11_11.2: @F.%.loc11_11.5 (@F.%.loc11_11.5) = splice_inst %.loc11_11.4 // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: return @@ -145,7 +145,7 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc6_15.2 => constants.%T +// CHECK:STDOUT: %T.loc6_15.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -197,7 +197,7 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %c.loc11_15.1: %C = bind_symbolic_name c, 0, template [template = %c.loc11_15.2 (constants.%c)] +// CHECK:STDOUT: %c.loc11_15.2: %C = bind_symbolic_name c, 0, template [template = %c.loc11_15.1 (constants.%c)] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -216,8 +216,8 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: .n = %.loc5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%c.loc11_15.1: %C) { -// CHECK:STDOUT: %c.loc11_15.2: %C = bind_symbolic_name c, 0, template [template = %c.loc11_15.2 (constants.%c)] +// CHECK:STDOUT: generic fn @F(%c.loc11_15.2: %C) { +// CHECK:STDOUT: %c.loc11_15.1: %C = bind_symbolic_name c, 0, template [template = %c.loc11_15.1 (constants.%c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %.loc16_11.2: = access_member_action %c.ref, n [template] @@ -225,7 +225,7 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: %C = name_ref c, %c.loc11_15.1 [template = %c.loc11_15.2 (constants.%c)] +// CHECK:STDOUT: %c.ref: %C = name_ref c, %c.loc11_15.2 [template = %c.loc11_15.1 (constants.%c)] // CHECK:STDOUT: %.loc16_11.1: @F.%.loc16_11.3 (@F.%.loc16_11.3) = splice_inst %.loc16_11.2 // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: return @@ -233,7 +233,7 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%c) { -// CHECK:STDOUT: %c.loc11_15.2 => constants.%c +// CHECK:STDOUT: %c.loc11_15.1 => constants.%c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_unimplemented_convert.carbon @@ -256,18 +256,18 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.95 [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.96, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.96 [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.96(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: %ptr.79f131.2: type = ptr_type %T.8b3d5d.1 [template] // CHECK:STDOUT: %require_complete.6e5e64.2: = require_complete_type %ptr.79f131.2 [template] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.8b3d5d.1, @Destroy [template] // CHECK:STDOUT: %Destroy.facet.713: %Destroy.type = facet_value %T.8b3d5d.1, (%Destroy.lookup_impl_witness) [template] // CHECK:STDOUT: %.a63: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.713 [template] // CHECK:STDOUT: %impl.elem0.538: %.a63 = impl_witness_access %Destroy.lookup_impl_witness, element0 [template] -// CHECK:STDOUT: %specific_impl_fn.1af: = specific_impl_function %impl.elem0.538, @Op.95(%Destroy.facet.713) [template] +// CHECK:STDOUT: %specific_impl_fn.1af: = specific_impl_function %impl.elem0.538, @Op.96(%Destroy.facet.713) [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -294,50 +294,50 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.7dcd0a.1) = binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.7dcd0a.1) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %x.param: @F.%T.loc4_15.2 (%T.8b3d5d.1) = value_param call_param0 -// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %x: @F.%T.loc4_15.2 (%T.8b3d5d.1) = bind_name x, %x.param +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %x.param: @F.%T.loc4_15.1 (%T.8b3d5d.1) = value_param call_param0 +// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %x: @F.%T.loc4_15.1 (%T.8b3d5d.1) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.2 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_15.1 [template = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4: = require_complete_type %T.loc4_15.2 [template = %require_complete.loc4 (constants.%require_complete.4aeca8.1)] -// CHECK:STDOUT: %ImplicitAs.type.loc14_3.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc4_15.2)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.d628ce.2)] +// CHECK:STDOUT: %require_complete.loc4: = require_complete_type %T.loc4_15.1 [template = %require_complete.loc4 (constants.%require_complete.4aeca8.1)] +// CHECK:STDOUT: %ImplicitAs.type.loc14_3.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.loc4_15.1)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.d628ce.2)] // CHECK:STDOUT: %.loc14_3.4: = access_member_action %ImplicitAs.type.loc14_3.1, Convert [template] // CHECK:STDOUT: %.loc14_3.5: type = type_of_inst %.loc14_3.4 [template] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc4_15.2, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.loc4_15.2, (%Destroy.lookup_impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.713)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc4_15.1, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.loc4_15.1, (%Destroy.lookup_impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.713)] // CHECK:STDOUT: %.loc14_3.6: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [template = %.loc14_3.6 (constants.%.a63)] // CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.6 (%.a63) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.538)] -// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Op.95(%Destroy.facet) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.1af)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.loc4_15.2 [template = %ptr (constants.%ptr.79f131.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Op.96(%Destroy.facet) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.1af)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.loc4_15.1 [template = %ptr (constants.%ptr.79f131.2)] // CHECK:STDOUT: %require_complete.loc14: = require_complete_type %ptr [template = %require_complete.loc14 (constants.%require_complete.6e5e64.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.2 (%T.8b3d5d.1)) { +// CHECK:STDOUT: fn(%x.param: @F.%T.loc4_15.1 (%T.8b3d5d.1)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.7dcd0a.1) = binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.7dcd0a.1) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%T.loc4_15.2 (%T.8b3d5d.1) = var %v.var_patt +// CHECK:STDOUT: %v.var: ref @F.%T.loc4_15.1 (%T.8b3d5d.1) = var %v.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %ImplicitAs.type.loc14_3.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%T.8b3d5d.1)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.d628ce.2)] // CHECK:STDOUT: %.loc14_3.1: @F.%.loc14_3.5 (@F.%.loc14_3.5) = splice_inst %.loc14_3.4 -// CHECK:STDOUT: %.loc14_3.2: @F.%T.loc4_15.2 (%T.8b3d5d.1) = converted %int_0, [concrete = ] +// CHECK:STDOUT: %.loc14_3.2: @F.%T.loc4_15.1 (%T.8b3d5d.1) = converted %int_0, [concrete = ] // CHECK:STDOUT: assign %v.var, -// CHECK:STDOUT: %T.ref.loc14: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %v: ref @F.%T.loc4_15.2 (%T.8b3d5d.1) = bind_name v, %v.var +// CHECK:STDOUT: %T.ref.loc14: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %v: ref @F.%T.loc4_15.1 (%T.8b3d5d.1) = bind_name v, %v.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %w.patt: %pattern_type.7ce = binding_pattern w [concrete] // CHECK:STDOUT: %w.var_patt: %pattern_type.7ce = var_pattern %w.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt -// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.2 (%T.8b3d5d.1) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @F.%T.loc4_15.1 (%T.8b3d5d.1) = name_ref x, %x // CHECK:STDOUT: %.loc22_3: %i32 = converted %x.ref, [concrete = ] // CHECK:STDOUT: assign %w.var, // CHECK:STDOUT: %.loc22_10: type = splice_block %i32 [concrete = constants.%i32] { @@ -346,13 +346,13 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: } // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %Op.bound: = bound_method %w.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.96(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc22: = bound_method %w.var, %Op.specific_fn // CHECK:STDOUT: %addr.loc22: %ptr.235 = addr_of %w.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.6 (%.a63) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.538)] // CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %v.var, %impl.elem0.loc14_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Op.95(constants.%Destroy.facet.713) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.1af)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Op.96(constants.%Destroy.facet.713) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.1af)] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %v.var, %specific_impl_fn.loc14_3.1 // CHECK:STDOUT: %addr.loc14: @F.%ptr (%ptr.79f131.2) = addr_of %v.var // CHECK:STDOUT: %.loc14_3.3: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr.loc14) @@ -361,7 +361,7 @@ fn F[template T:! type](x: T) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.8b3d5d.1) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.8b3d5d.1 +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T.8b3d5d.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/template_dependence.carbon b/toolchain/check/testdata/generic/template_dependence.carbon index 175ee4b0e3e0..4744bd2417cd 100644 --- a/toolchain/check/testdata/generic/template_dependence.carbon +++ b/toolchain/check/testdata/generic/template_dependence.carbon @@ -63,45 +63,45 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc4_33 (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc4_33 (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4_36: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_37: type = ptr_type %T.ref.loc4_36 [template = %ptr.loc4_29.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @F.%ptr.loc4_30.2 (%ptr.a13) = value_param call_param0 -// CHECK:STDOUT: %.loc4: type = splice_block %ptr.loc4_30.1 [template = %ptr.loc4_30.2 (constants.%ptr.a13)] { -// CHECK:STDOUT: %T.ref.loc4_28: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_29.1: type = ptr_type %T.ref.loc4_28 [template = %ptr.loc4_29.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %ptr.loc4_29.1 [template = %ptr.loc4_30.2 (constants.%ptr.a13)] +// CHECK:STDOUT: %T.ref.loc4_36: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_37: type = ptr_type %T.ref.loc4_36 [template = %ptr.loc4_29.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @F.%ptr.loc4_30.1 (%ptr.a13) = value_param call_param0 +// CHECK:STDOUT: %.loc4: type = splice_block %ptr.loc4_30.2 [template = %ptr.loc4_30.1 (constants.%ptr.a13)] { +// CHECK:STDOUT: %T.ref.loc4_28: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_29.2: type = ptr_type %T.ref.loc4_28 [template = %ptr.loc4_29.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %ptr.loc4_29.2 [template = %ptr.loc4_30.1 (constants.%ptr.a13)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%ptr.loc4_30.2 (%ptr.a13) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_29.2 (%ptr.79f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr.loc4_29.2 (%ptr.79f) = return_slot %return.param +// CHECK:STDOUT: %x: @F.%ptr.loc4_30.1 (%ptr.a13) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @F.%ptr.loc4_29.1 (%ptr.79f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr.loc4_29.1 (%ptr.79f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc4_29.2: type = ptr_type %T.loc4_15.2 [template = %ptr.loc4_29.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %ptr.loc4_30.2: type = ptr_type %ptr.loc4_29.2 [template = %ptr.loc4_30.2 (constants.%ptr.a13)] -// CHECK:STDOUT: %pattern_type.loc4_25: type = pattern_type %ptr.loc4_30.2 [template = %pattern_type.loc4_25 (constants.%pattern_type.12d)] -// CHECK:STDOUT: %pattern_type.loc4_33: type = pattern_type %ptr.loc4_29.2 [template = %pattern_type.loc4_33 (constants.%pattern_type.afe)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc4_29.1: type = ptr_type %T.loc4_15.1 [template = %ptr.loc4_29.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %ptr.loc4_30.1: type = ptr_type %ptr.loc4_29.1 [template = %ptr.loc4_30.1 (constants.%ptr.a13)] +// CHECK:STDOUT: %pattern_type.loc4_25: type = pattern_type %ptr.loc4_30.1 [template = %pattern_type.loc4_25 (constants.%pattern_type.12d)] +// CHECK:STDOUT: %pattern_type.loc4_33: type = pattern_type %ptr.loc4_29.1 [template = %pattern_type.loc4_33 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_33: = require_complete_type %ptr.loc4_29.2 [template = %require_complete.loc4_33 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %require_complete.loc4_26: = require_complete_type %ptr.loc4_30.2 [template = %require_complete.loc4_26 (constants.%require_complete.132)] +// CHECK:STDOUT: %require_complete.loc4_33: = require_complete_type %ptr.loc4_29.1 [template = %require_complete.loc4_33 (constants.%require_complete.6e5)] +// CHECK:STDOUT: %require_complete.loc4_26: = require_complete_type %ptr.loc4_30.1 [template = %require_complete.loc4_26 (constants.%require_complete.132)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%ptr.loc4_30.2 (%ptr.a13)) -> @F.%ptr.loc4_29.2 (%ptr.79f) { +// CHECK:STDOUT: fn(%x.param: @F.%ptr.loc4_30.1 (%ptr.a13)) -> @F.%ptr.loc4_29.1 (%ptr.79f) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @F.%ptr.loc4_30.2 (%ptr.a13) = name_ref x, %x -// CHECK:STDOUT: %.loc5_10.1: ref @F.%ptr.loc4_29.2 (%ptr.79f) = deref %x.ref -// CHECK:STDOUT: %.loc5_10.2: @F.%ptr.loc4_29.2 (%ptr.79f) = bind_value %.loc5_10.1 +// CHECK:STDOUT: %x.ref: @F.%ptr.loc4_30.1 (%ptr.a13) = name_ref x, %x +// CHECK:STDOUT: %.loc5_10.1: ref @F.%ptr.loc4_29.1 (%ptr.79f) = deref %x.ref +// CHECK:STDOUT: %.loc5_10.2: @F.%ptr.loc4_29.1 (%ptr.79f) = bind_value %.loc5_10.1 // CHECK:STDOUT: return %.loc5_10.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T -// CHECK:STDOUT: %ptr.loc4_29.2 => constants.%ptr.79f -// CHECK:STDOUT: %ptr.loc4_30.2 => constants.%ptr.a13 +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T +// CHECK:STDOUT: %ptr.loc4_29.1 => constants.%ptr.79f +// CHECK:STDOUT: %ptr.loc4_30.1 => constants.%ptr.a13 // CHECK:STDOUT: %pattern_type.loc4_25 => constants.%pattern_type.12d // CHECK:STDOUT: %pattern_type.loc4_33 => constants.%pattern_type.afe // CHECK:STDOUT: } @@ -152,26 +152,26 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.65c) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.65c) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %U.ref.loc4: type = name_ref U, %U.loc4_25.1 [symbolic = %U.loc4_25.2 (constants.%U)] +// CHECK:STDOUT: %T.ref.loc4: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %U.ref.loc4: type = name_ref U, %U.loc4_25.2 [symbolic = %U.loc4_25.1 (constants.%U)] // CHECK:STDOUT: %.loc4_43.1: %tuple.type.24b = tuple_literal (%T.ref.loc4, %U.ref.loc4) // CHECK:STDOUT: %.loc4_43.2: type = converted %.loc4_43.1, constants.%tuple.type.30b [template = %tuple.type (constants.%tuple.type.30b)] -// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %U.loc4_25.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_25.2 (constants.%U)] +// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %U.loc4_25.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_25.1 (constants.%U)] // CHECK:STDOUT: %return.param: ref @F.%tuple.type (%tuple.type.30b) = out_param call_param0 // CHECK:STDOUT: %return: ref @F.%tuple.type (%tuple.type.30b) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc4_15.1: type, %U.loc4_25.1: type) { -// CHECK:STDOUT: %T.loc4_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %U.loc4_25.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_25.2 (constants.%U)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc4_15.2, %U.loc4_25.2) [template = %tuple.type (constants.%tuple.type.30b)] +// CHECK:STDOUT: generic fn @F(%T.loc4_15.2: type, %U.loc4_25.2: type) { +// CHECK:STDOUT: %T.loc4_15.1: type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %U.loc4_25.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc4_25.1 (constants.%U)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc4_15.1, %U.loc4_25.1) [template = %tuple.type (constants.%tuple.type.30b)] // CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [template = %pattern_type (constants.%pattern_type.65c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc4_35.1: = require_complete_type %tuple.type [template = %require_complete.loc4_35.1 (constants.%require_complete.fe1)] -// CHECK:STDOUT: %F.specific_fn.loc5_10.2: = specific_function constants.%F, @F(%T.loc4_15.2, %U.loc4_25.2) [template = %F.specific_fn.loc5_10.2 (constants.%F.specific_fn)] +// CHECK:STDOUT: %F.specific_fn.loc5_10.2: = specific_function constants.%F, @F(%T.loc4_15.1, %U.loc4_25.1) [template = %F.specific_fn.loc5_10.2 (constants.%F.specific_fn)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [template = %Destroy.facet (constants.%Destroy.facet)] // CHECK:STDOUT: %.loc4_35.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [template = %.loc4_35.3 (constants.%.1e9)] @@ -183,8 +183,8 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: fn() -> %return.param: @F.%tuple.type (%tuple.type.30b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref.loc5: type = name_ref T, %T.loc4_15.1 [template = %T.loc4_15.2 (constants.%T.8b3d5d.1)] -// CHECK:STDOUT: %U.ref.loc5: type = name_ref U, %U.loc4_25.1 [symbolic = %U.loc4_25.2 (constants.%U)] +// CHECK:STDOUT: %T.ref.loc5: type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T.8b3d5d.1)] +// CHECK:STDOUT: %U.ref.loc5: type = name_ref U, %U.loc4_25.2 [symbolic = %U.loc4_25.1 (constants.%U)] // CHECK:STDOUT: %F.specific_fn.loc5_10.1: = specific_function %F.ref, @F(constants.%T.8b3d5d.1, constants.%U) [template = %F.specific_fn.loc5_10.2 (constants.%F.specific_fn)] // CHECK:STDOUT: %.loc4_35.1: ref @F.%tuple.type (%tuple.type.30b) = splice_block %return {} // CHECK:STDOUT: %F.call: init @F.%tuple.type (%tuple.type.30b) = call %F.specific_fn.loc5_10.1() to %.loc4_35.1 @@ -199,8 +199,8 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.8b3d5d.1, constants.%U) { -// CHECK:STDOUT: %T.loc4_15.2 => constants.%T.8b3d5d.1 -// CHECK:STDOUT: %U.loc4_25.2 => constants.%U +// CHECK:STDOUT: %T.loc4_15.1 => constants.%T.8b3d5d.1 +// CHECK:STDOUT: %U.loc4_25.1 => constants.%U // CHECK:STDOUT: %tuple.type => constants.%tuple.type.30b // CHECK:STDOUT: %pattern_type => constants.%pattern_type.65c // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index 8ac90d93e83e..d1927523384d 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -40,24 +40,24 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%int_0.6a9) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.fa9: type = fn_type @Op.3, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.fa9: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.606: %Op.type.fa9 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.606, @Op.3(%array_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.606, @Op.1(%array_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -130,7 +130,7 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %.loc16_29.1: %tuple.type = tuple_literal (%int_0.loc16_27) // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_29.1: = bound_method %int_0.loc16_27, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_29.2: = bound_method %int_0.loc16_27, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_29.2(%int_0.loc16_27) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_29.2: init %i32 = converted %int_0.loc16_27, %int.convert_checked [concrete = constants.%int_0.6a9] @@ -171,7 +171,7 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: !if.expr.result: // CHECK:STDOUT: %.loc17_10: %i32 = block_arg !if.expr.result // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.606 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.606, @Op.3(constants.%array_type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.606, @Op.1(constants.%array_type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.260 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc16_3(%addr) diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index 9c6bd8a916af..3018cba0b1cd 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -51,17 +51,17 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] @@ -81,13 +81,13 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %ptr.235 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.2, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.3(%ptr.235) [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.2(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.2(%i32) [concrete] // CHECK:STDOUT: %PartiallyConstant.type: type = fn_type @PartiallyConstant [concrete] // CHECK:STDOUT: %PartiallyConstant: %PartiallyConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -183,7 +183,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc15_25.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc15_25.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -196,7 +196,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_25.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc16_25.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] @@ -262,7 +262,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_3.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_3.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc27_3.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc27_3: init %i32 = converted %int_1, %int.convert_checked [concrete = constants.%int_1.5d2] @@ -326,12 +326,12 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %.loc29_10.1: ref %i32 = deref %.loc29_11 // CHECK:STDOUT: %.loc29_10.2: %i32 = bind_value %.loc29_10.1 // CHECK:STDOUT: %Op.bound.loc28: = bound_method %w.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.2(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc28: = bound_method %w.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc28_3: %ptr.5d5 = addr_of %w.var // CHECK:STDOUT: %no_op.loc28: init %empty_tuple.type = call %bound_method.loc28(%addr.loc28_3) // CHECK:STDOUT: %Op.bound.loc27: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc27_3.3: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc27: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op.loc27: init %empty_tuple.type = call %bound_method.loc27_3.3(%addr.loc27) @@ -348,7 +348,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc33_3.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc33_3.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc33_3.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc33_3: init %i32 = converted %int_1, %int.convert_checked [concrete = constants.%int_1.5d2] @@ -409,12 +409,12 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %.loc35_10.1: ref %i32 = deref %.loc35_11 // CHECK:STDOUT: %.loc35_10.2: %i32 = bind_value %.loc35_10.1 // CHECK:STDOUT: %Op.bound.loc34: = bound_method %w.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.2(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc34: = bound_method %w.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34_3: %ptr.5d5 = addr_of %w.var // CHECK:STDOUT: %no_op.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34_3) // CHECK:STDOUT: %Op.bound.loc33: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) diff --git a/toolchain/check/testdata/if_expr/control_flow.carbon b/toolchain/check/testdata/if_expr/control_flow.carbon index e6d8b05daa5c..346cb039135d 100644 --- a/toolchain/check/testdata/if_expr/control_flow.carbon +++ b/toolchain/check/testdata/if_expr/control_flow.carbon @@ -33,17 +33,17 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] @@ -125,7 +125,7 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc15_25.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc15_25.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -138,7 +138,7 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_25.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc16_25.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/if_expr/nested.carbon b/toolchain/check/testdata/if_expr/nested.carbon index befe1719a553..29c886109d65 100644 --- a/toolchain/check/testdata/if_expr/nested.carbon +++ b/toolchain/check/testdata/if_expr/nested.carbon @@ -33,17 +33,17 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -134,7 +134,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %i32.loc16_25: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc16_25: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_25.1: = bound_method %int_1, %impl.elem0.loc16_25 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc16_25: = specific_function %impl.elem0.loc16_25, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_25: = specific_function %impl.elem0.loc16_25, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_25.2: = bound_method %int_1, %specific_fn.loc16_25 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc16_25: init %i32 = call %bound_method.loc16_25.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc16_25.1: %i32 = value_of_initializer %int.convert_checked.loc16_25 [concrete = constants.%int_1.5d2] @@ -145,7 +145,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc16_32: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_32.1: = bound_method %int_2, %impl.elem0.loc16_32 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc16_32: = specific_function %impl.elem0.loc16_32, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_32: = specific_function %impl.elem0.loc16_32, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_32.2: = bound_method %int_2, %specific_fn.loc16_32 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc16_32: init %i32 = call %bound_method.loc16_32.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc16_32.1: %i32 = value_of_initializer %int.convert_checked.loc16_32 [concrete = constants.%int_2.ef8] @@ -166,7 +166,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %i32.loc16_49: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc16_49: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_49.1: = bound_method %int_3, %impl.elem0.loc16_49 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc16_49: = specific_function %impl.elem0.loc16_49, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_49: = specific_function %impl.elem0.loc16_49, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_49.2: = bound_method %int_3, %specific_fn.loc16_49 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc16_49: init %i32 = call %bound_method.loc16_49.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc16_49.1: %i32 = value_of_initializer %int.convert_checked.loc16_49 [concrete = constants.%int_3.822] @@ -177,7 +177,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc16_56: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_56.1: = bound_method %int_4, %impl.elem0.loc16_56 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc16_56: = specific_function %impl.elem0.loc16_56, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_56: = specific_function %impl.elem0.loc16_56, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_56.2: = bound_method %int_4, %specific_fn.loc16_56 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc16_56: init %i32 = call %bound_method.loc16_56.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc16_56.1: %i32 = value_of_initializer %int.convert_checked.loc16_56 [concrete = constants.%int_4.940] diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index 70c5c584f3da..78d2c2a125df 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -43,17 +43,17 @@ fn F(cond: bool) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -61,9 +61,9 @@ fn F(cond: bool) { // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.501 = struct_value (%int_1.5d2, %int_2.ef8) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.da3: type = fn_type @Op.3, @Destroy.impl(%struct_type.a.b.501) [concrete] +// CHECK:STDOUT: %Op.type.da3: type = fn_type @Op.1, @Destroy.impl(%struct_type.a.b.501) [concrete] // CHECK:STDOUT: %Op.9db: %Op.type.da3 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.9db, @Op.3(%struct_type.a.b.501) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.9db, @Op.1(%struct_type.a.b.501) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -132,7 +132,7 @@ fn F(cond: bool) { // CHECK:STDOUT: %.loc18_46.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %impl.elem0.loc18_46.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_46.1: = bound_method %int_1, %impl.elem0.loc18_46.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc18_46.1: = specific_function %impl.elem0.loc18_46.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_46.1: = specific_function %impl.elem0.loc18_46.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_46.2: = bound_method %int_1, %specific_fn.loc18_46.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc18_46.1: init %i32 = call %bound_method.loc18_46.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_46.2: init %i32 = converted %int_1, %int.convert_checked.loc18_46.1 [concrete = constants.%int_1.5d2] @@ -140,7 +140,7 @@ fn F(cond: bool) { // CHECK:STDOUT: %.loc18_46.4: init %i32 = initialize_from %.loc18_46.2 to %.loc18_46.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc18_46.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_46.3: = bound_method %int_2, %impl.elem0.loc18_46.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc18_46.2: = specific_function %impl.elem0.loc18_46.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_46.2: = specific_function %impl.elem0.loc18_46.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_46.4: = bound_method %int_2, %specific_fn.loc18_46.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc18_46.2: init %i32 = call %bound_method.loc18_46.4(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc18_46.5: init %i32 = converted %int_2, %int.convert_checked.loc18_46.2 [concrete = constants.%int_2.ef8] @@ -185,7 +185,7 @@ fn F(cond: bool) { // CHECK:STDOUT: %.loc19_5: %struct_type.a.b.501 = block_arg !if.expr.result // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.ref(%.loc19_5) // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.9db -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.9db, @Op.3(constants.%struct_type.a.b.501) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.9db, @Op.1(constants.%struct_type.a.b.501) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.3ee = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc18_3(%addr) diff --git a/toolchain/check/testdata/impl/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index c5a888eaefb4..8f4c20d97531 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -621,7 +621,7 @@ fn CallF() { // CHECK:STDOUT: %.loc4_33.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc4_33.3: type = converted %int_literal.make_type, %.loc4_33.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_13.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_13.2 (constants.%N)] +// CHECK:STDOUT: %N.loc4_13.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_13.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @impl [concrete] {} { // CHECK:STDOUT: %.loc15_7.1: %empty_struct_type = struct_literal () @@ -648,13 +648,13 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%N.loc4_13.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc4_13.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_13.2 (constants.%N)] +// CHECK:STDOUT: generic interface @I(%N.loc4_13.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc4_13.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc4_13.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%N.loc4_13.2)> [symbolic = %I.type (constants.%I.type.8a1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%N.loc4_13.1)> [symbolic = %I.type (constants.%I.type.8a1)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.8a1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.3a0)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%N.loc4_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type.9df)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%N.loc4_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.9df)] // CHECK:STDOUT: %assoc0: @I.%I.assoc_type (%I.assoc_type.9df) = assoc_entity element0, %V [symbolic = %assoc0 (constants.%assoc0.293)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -671,7 +671,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @V(@I.%N.loc4_13.1: Core.IntLiteral, @I.%Self.1: @I.%I.type (%I.type.8a1)) { +// CHECK:STDOUT: generic assoc_const @V(@I.%N.loc4_13.2: Core.IntLiteral, @I.%Self.1: @I.%I.type (%I.type.8a1)) { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%N)> [symbolic = %I.type (constants.%I.type.8a1)] // CHECK:STDOUT: %Self: @V.%I.type (%I.type.8a1) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.3a0)] @@ -688,7 +688,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%N) { -// CHECK:STDOUT: %N.loc4_13.2 => constants.%N +// CHECK:STDOUT: %N.loc4_13.1 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%N, constants.%Self.3a0) { @@ -701,7 +701,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%int_-1) { -// CHECK:STDOUT: %N.loc4_13.2 => constants.%int_-1 +// CHECK:STDOUT: %N.loc4_13.1 => constants.%int_-1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.057 @@ -793,7 +793,7 @@ fn CallF() { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc8_60.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc8_6.1: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_6.2: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallF.decl: %CallF.type = fn_decl @CallF [concrete = constants.%CallF] {} {} // CHECK:STDOUT: } @@ -818,8 +818,8 @@ fn CallF() { // CHECK:STDOUT: assoc_const V:! @V.%Self.as_type (%Self.as_type.b70); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc8_6.1: %I_where.type) { -// CHECK:STDOUT: %T.loc8_6.2: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.2 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc8_6.2: %I_where.type) { +// CHECK:STDOUT: %T.loc8_6.1: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -844,6 +844,6 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc8_6.2 => constants.%T +// CHECK:STDOUT: %T.loc8_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/compound.carbon b/toolchain/check/testdata/impl/compound.carbon index a893c937379f..3b7d74600d6c 100644 --- a/toolchain/check/testdata/impl/compound.carbon +++ b/toolchain/check/testdata/impl/compound.carbon @@ -145,19 +145,19 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.96f = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %Dest.patt: %pattern_type.98f = symbolic_binding_pattern Dest, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Dest.loc3_22.1: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.2 (constants.%Dest)] +// CHECK:STDOUT: %Dest.loc3_22.2: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.1 (constants.%Dest)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @ImplicitAs(%Dest.loc3_22.1: type) { -// CHECK:STDOUT: %Dest.loc3_22.2: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.2 (constants.%Dest)] +// CHECK:STDOUT: generic interface @ImplicitAs(%Dest.loc3_22.2: type) { +// CHECK:STDOUT: %Dest.loc3_22.1: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.1 (constants.%Dest)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_22.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Dest.loc3_22.2) [symbolic = %Convert.type (constants.%Convert.type)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %Convert.type (constants.%Convert.type)] // CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type) = struct_value () [symbolic = %Convert (constants.%Convert)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest.loc3_22.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type)] // CHECK:STDOUT: %assoc0.loc4_35.2: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc4_35.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -168,15 +168,15 @@ fn InstanceCallFail() { // CHECK:STDOUT: %return.patt: @Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.1 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %self.param: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] +// CHECK:STDOUT: %self.param: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc4_20.2: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.1 [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -190,26 +190,26 @@ fn InstanceCallFail() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert(@ImplicitAs.%Dest.loc3_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { +// CHECK:STDOUT: generic fn @Convert(@ImplicitAs.%Dest.loc3_22.2: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.a93)] +// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_20.2 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.a93)] // CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> @Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type)) -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { -// CHECK:STDOUT: %Dest.loc3_22.2 => constants.%Dest +// CHECK:STDOUT: %Dest.loc3_22.1 => constants.%Dest // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert(constants.%Dest, constants.%Self) { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc4_20.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.a93 // CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } @@ -739,13 +739,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: %self.patt: @G1.loc4.%pattern_type (%pattern_type.0f0) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @G1.loc4.%pattern_type (%pattern_type.0f0) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G1.loc4.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @G1.loc4.%Self.as_type.loc4_15.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Instance1.type = name_ref Self, @Instance1.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.1 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G1.loc4.%Self.as_type.loc4_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G1.loc4.%Self.as_type.loc4_15.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance1.assoc_type = assoc_entity element0, %G1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -772,10 +772,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G1.loc4(@Instance1.%Self: %Instance1.type) { // CHECK:STDOUT: %Self: %Instance1.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.0f0)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.2 [symbolic = %pattern_type (constants.%pattern_type.0f0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G1.loc4.%Self.as_type.loc4_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @G1.loc4.%Self.as_type.loc4_15.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G1.loc8(%self.param: %struct_type.d) { @@ -813,13 +813,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G1.loc4(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.0f0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G1.loc4(constants.%Instance1.facet) { // CHECK:STDOUT: %Self => constants.%Instance1.facet -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%struct_type.d +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%struct_type.d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.515 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -868,13 +868,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: %self.patt: @G2.loc4.%pattern_type (%pattern_type.8d7) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @G2.loc4.%pattern_type (%pattern_type.8d7) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G2.loc4.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @G2.loc4.%Self.as_type.loc4_15.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Instance2.type = name_ref Self, @Instance2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.1 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G2.loc4.%Self.as_type.loc4_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G2.loc4.%Self.as_type.loc4_15.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance2.assoc_type = assoc_entity element0, %G2.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -901,10 +901,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G2.loc4(@Instance2.%Self: %Instance2.type) { // CHECK:STDOUT: %Self: %Instance2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.8d7)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.2 [symbolic = %pattern_type (constants.%pattern_type.8d7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G2.loc4.%Self.as_type.loc4_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @G2.loc4.%Self.as_type.loc4_15.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G2.loc8(%self.param: %struct_type.e) { @@ -924,13 +924,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G2.loc4(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8d7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G2.loc4(constants.%Instance2.facet) { // CHECK:STDOUT: %Self => constants.%Instance2.facet -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%struct_type.e +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%struct_type.e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index 39f3d22e469c..ea5a47c9fdae 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -93,18 +93,18 @@ class X(U:! type) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %Param.val: %Param = struct_value (%int_2.ef8) [concrete] @@ -113,14 +113,14 @@ class X(U:! type) { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %.22c: type = fn_type_with_self_type %F.type.7f1, %HasF.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.70d: type = fn_type @Op.3, @Destroy.impl(%Param) [concrete] +// CHECK:STDOUT: %Op.type.70d: type = fn_type @Op.2, @Destroy.impl(%Param) [concrete] // CHECK:STDOUT: %Op.e46: %Op.type.70d = struct_value () [concrete] // CHECK:STDOUT: %ptr.756: type = ptr_type %Param [concrete] -// CHECK:STDOUT: %Op.specific_fn.022: = specific_function %Op.e46, @Op.3(%Param) [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.022: = specific_function %Op.e46, @Op.2(%Param) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.2(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -150,7 +150,7 @@ class X(U:! type) { // CHECK:STDOUT: %HasF.decl: %HasF.type.fe3 = interface_decl @HasF [concrete = constants.%HasF.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Param.decl: type = class_decl @Param [concrete = constants.%Param] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} @@ -164,15 +164,15 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @HasF(%T.loc4_16.2: type) { +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.901)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.1)> [symbolic = %HasF.type (constants.%HasF.type.901)] // CHECK:STDOUT: %Self.2: @HasF.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.322)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.46c)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @HasF(%T.loc4_16.1) [symbolic = %F.type (constants.%F.type.46c)] // CHECK:STDOUT: %F: @HasF.%F.type (%F.type.46c) = struct_value () [symbolic = %F (constants.%F.823)] -// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF, @HasF(%T.loc4_16.2) [symbolic = %HasF.assoc_type (constants.%HasF.assoc_type.dd8)] +// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF, @HasF(%T.loc4_16.1) [symbolic = %HasF.assoc_type (constants.%HasF.assoc_type.dd8)] // CHECK:STDOUT: %assoc0.loc5_14.2: @HasF.%HasF.assoc_type (%HasF.assoc_type.dd8) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_14.2 (constants.%assoc0.d31)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -181,7 +181,7 @@ class X(U:! type) { // CHECK:STDOUT: %return.patt: @F.loc5.%pattern_type (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @HasF.%T.loc4_16.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @HasF.%T.loc4_16.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return.param: ref @F.loc5.%T (%T) = out_param call_param0 // CHECK:STDOUT: %return: ref @F.loc5.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -246,7 +246,7 @@ class X(U:! type) { // CHECK:STDOUT: extend @HasF.impl.%HasF.type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc5(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { +// CHECK:STDOUT: generic fn @F.loc5(@HasF.%T.loc4_16.2: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: @@ -259,7 +259,7 @@ class X(U:! type) { // CHECK:STDOUT: %.loc15_21.1: %struct_type.x.c96 = struct_literal (%int_2) // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_21.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_21.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc15_21.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc15_21.2: init %i32 = converted %int_2, %int.convert_checked [concrete = constants.%int_2.ef8] @@ -312,17 +312,17 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %Op.bound.loc22_20: = bound_method %.loc22_20.1, constants.%Op.e46 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e46, @Op.3(constants.%Param) [concrete = constants.%Op.specific_fn.022] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e46, @Op.2(constants.%Param) [concrete = constants.%Op.specific_fn.022] // CHECK:STDOUT: %bound_method.loc22_20: = bound_method %.loc22_20.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc22_20: %ptr.756 = addr_of %.loc22_20.1 // CHECK:STDOUT: %no_op.loc22_20: init %empty_tuple.type = call %bound_method.loc22_20(%addr.loc22_20) // CHECK:STDOUT: %Op.bound.loc22_3: = bound_method %b.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc22_3: = bound_method %b.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc22_3: %ptr.235 = addr_of %b.var // CHECK:STDOUT: %no_op.loc22_3: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22_3) // CHECK:STDOUT: %Op.bound.loc21: = bound_method %.loc21_20.1, constants.%Op.e46 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.e46, @Op.3(constants.%Param) [concrete = constants.%Op.specific_fn.022] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.e46, @Op.2(constants.%Param) [concrete = constants.%Op.specific_fn.022] // CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_20.1, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.756 = addr_of %.loc21_20.1 // CHECK:STDOUT: %no_op.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) @@ -330,7 +330,7 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%T) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%T +// CHECK:STDOUT: %T.loc4_16.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%T, constants.%Self.322) { @@ -339,7 +339,7 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%Param) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%Param +// CHECK:STDOUT: %T.loc4_16.1 => constants.%Param // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.b18 @@ -411,24 +411,24 @@ class X(U:! type) { // CHECK:STDOUT: %I.decl: %I.type.dac = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: %X.type = class_decl @X [concrete = constants.%X.generic] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc8_9.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_9.2 (constants.%U)] +// CHECK:STDOUT: %U.loc8_9.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_9.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%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: generic interface @I(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.2)> [symbolic = %I.type (constants.%I.type.325e65.1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.1)> [symbolic = %I.type (constants.%I.type.325e65.1)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325e65.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.209206.1)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @I(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type.2aef59.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @I(%T.loc4_13.1) [symbolic = %F.type (constants.%F.type.2aef59.1)] // CHECK:STDOUT: %F: @I.%F.type (%F.type.2aef59.1) = struct_value () [symbolic = %F (constants.%F.bb2dd4.1)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc4_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5078.1)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc4_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5078.1)] // CHECK:STDOUT: %assoc0.loc5_25.2: @I.%I.assoc_type (%I.assoc_type.1e5078.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.8f0422.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -439,16 +439,16 @@ class X(U:! type) { // CHECK:STDOUT: %t.patt: @F.loc5.%pattern_type.loc5_20 (%pattern_type.7dcd0a.1) = binding_pattern t [concrete] // CHECK:STDOUT: %t.param_patt: @F.loc5.%pattern_type.loc5_20 (%pattern_type.7dcd0a.1) = value_param_pattern %t.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_14.2: @F.loc5.%I.type (%I.type.325e65.1) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self.209206.1)] // CHECK:STDOUT: %Self.ref: @F.loc5.%I.type (%I.type.325e65.1) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.209206.1)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @F.loc5.%T (%T) = value_param call_param1 -// CHECK:STDOUT: %T.ref: type = name_ref T, @I.%T.loc4_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @I.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @F.loc5.%T (%T) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_25.1: @I.%I.assoc_type (%I.assoc_type.1e5078.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_25.2 (constants.%assoc0.8f0422.1)] @@ -462,7 +462,7 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @I.impl(@X.%U.loc8_9.1: type) { +// CHECK:STDOUT: generic impl @I.impl(@X.%U.loc8_9.2: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic = %X (constants.%X)] // CHECK:STDOUT: %I.type.loc9_21.2: type = facet_type <@I, @I(%U)> [symbolic = %I.type.loc9_21.2 (constants.%I.type.325e65.2)] @@ -487,7 +487,7 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %self: @F.loc10.%X (%X) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @F.loc10.%U (%U) = value_param call_param1 -// CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc8_9.1 [symbolic = %U (constants.%U)] +// CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc8_9.2 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %t: @F.loc10.%U (%U) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -498,18 +498,18 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @X(%U.loc8_9.1: type) { -// CHECK:STDOUT: %U.loc8_9.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_9.2 (constants.%U)] +// CHECK:STDOUT: generic class @X(%U.loc8_9.2: type) { +// CHECK:STDOUT: %U.loc8_9.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc8_9.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc8_9.2)> [symbolic = %I.type (constants.%I.type.325e65.2)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc8_9.1)> [symbolic = %I.type (constants.%I.type.325e65.2)] // CHECK:STDOUT: %require_complete: = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.cfe)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: impl_decl @I.impl [concrete] {} { // CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%X [symbolic = %X (constants.%X)] // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [concrete = constants.%I.generic] -// CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc8_9.1 [symbolic = %U (constants.%U)] +// CHECK:STDOUT: %U.ref: type = name_ref U, @X.%U.loc8_9.2 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %I.type.loc9_21.1: type = facet_type <@I, @I(constants.%U)> [symbolic = %I.type.loc9_21.2 (constants.%I.type.325e65.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (@I.impl.%F.decl), @I.impl [concrete] @@ -527,18 +527,18 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc5(@I.%T.loc4_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325e65.1)) { +// CHECK:STDOUT: generic fn @F.loc5(@I.%T.loc4_13.2: type, @I.%Self.1: @I.%I.type (%I.type.325e65.1)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325e65.1)] // CHECK:STDOUT: %Self: @F.loc5.%I.type (%I.type.325e65.1) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.209206.1)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.4be)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.4be)] // CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %T [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type), %t.param: @F.loc5.%T (%T)); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type), %t.param: @F.loc5.%T (%T)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc10(@X.%U.loc8_9.1: type) { +// CHECK:STDOUT: generic fn @F.loc10(@X.%U.loc8_9.2: type) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic = %X (constants.%X)] // CHECK:STDOUT: %pattern_type.loc10_10: type = pattern_type %X [symbolic = %pattern_type.loc10_10 (constants.%pattern_type.830)] @@ -557,20 +557,20 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%T, constants.%Self.209206.1) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.325e65.1 // CHECK:STDOUT: %Self => constants.%Self.209206.1 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.4be // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%U) { -// CHECK:STDOUT: %U.loc8_9.2 => constants.%U +// CHECK:STDOUT: %U.loc8_9.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 @@ -578,7 +578,7 @@ class X(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%U) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%U +// CHECK:STDOUT: %T.loc4_13.1 => constants.%U // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 @@ -614,7 +614,7 @@ class X(U:! type) { // CHECK:STDOUT: %T => constants.%U // CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%X +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%X // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.830 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.7dcd0a.2 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_call_invalid.carbon b/toolchain/check/testdata/impl/fail_call_invalid.carbon index 7d50e7fcb0e0..06fee5a79aaf 100644 --- a/toolchain/check/testdata/impl/fail_call_invalid.carbon +++ b/toolchain/check/testdata/impl/fail_call_invalid.carbon @@ -100,13 +100,13 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %self.patt: @G.loc16.%pattern_type (%pattern_type.f88) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @G.loc16.%pattern_type (%pattern_type.f88) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.716) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.716)] { +// CHECK:STDOUT: %self.param: @G.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.716) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.716)] { // CHECK:STDOUT: %Self.ref: %Simple.type = name_ref Self, @Simple.%Self [symbolic = %Self (constants.%Self.3c9)] -// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.716)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.716)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.716)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref, %Self.as_type.loc16_14.1 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.716)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.716) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.716) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, %G.decl [concrete = constants.%assoc0.db2] // CHECK:STDOUT: @@ -141,10 +141,10 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.loc16(@Simple.%Self: %Simple.type) { // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.3c9)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.716)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.f88)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.716)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.2 [symbolic = %pattern_type (constants.%pattern_type.f88)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.716)); +// CHECK:STDOUT: fn(%self.param: @G.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.716)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.loc24_27.1(%self.param: ); @@ -173,13 +173,13 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc16(constants.%Self.3c9) { // CHECK:STDOUT: %Self => constants.%Self.3c9 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.716 +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%Self.as_type.716 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f88 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc16(constants.%Simple.facet) { // CHECK:STDOUT: %Self => constants.%Simple.facet -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon index 1f3041cdee21..9fb0738f5cd4 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon @@ -58,20 +58,20 @@ class C { // CHECK:STDOUT: %GenericInterface.decl: %GenericInterface.type.c92 = interface_decl @GenericInterface [concrete = constants.%GenericInterface.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_28.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_28.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericInterface(%T.loc15_28.1: type) { -// CHECK:STDOUT: %T.loc15_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_28.2 (constants.%T)] +// CHECK:STDOUT: generic interface @GenericInterface(%T.loc15_28.2: type) { +// CHECK:STDOUT: %T.loc15_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_28.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%T.loc15_28.2)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.3fe)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%T.loc15_28.1)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.3fe)] // CHECK:STDOUT: %Self.2: @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @GenericInterface(%T.loc15_28.2) [symbolic = %F.type (constants.%F.type.a4b)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc16, @GenericInterface(%T.loc15_28.1) [symbolic = %F.type (constants.%F.type.a4b)] // CHECK:STDOUT: %F: @GenericInterface.%F.type (%F.type.a4b) = struct_value () [symbolic = %F (constants.%F.3d9)] -// CHECK:STDOUT: %GenericInterface.assoc_type: type = assoc_entity_type @GenericInterface, @GenericInterface(%T.loc15_28.2) [symbolic = %GenericInterface.assoc_type (constants.%GenericInterface.assoc_type)] +// CHECK:STDOUT: %GenericInterface.assoc_type: type = assoc_entity_type @GenericInterface, @GenericInterface(%T.loc15_28.1) [symbolic = %GenericInterface.assoc_type (constants.%GenericInterface.assoc_type)] // CHECK:STDOUT: %assoc0.loc16_13.2: @GenericInterface.%GenericInterface.assoc_type (%GenericInterface.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc16_13.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -81,7 +81,7 @@ class C { // CHECK:STDOUT: %x.param_patt: @F.loc16.%pattern_type (%pattern_type.7dc) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: @F.loc16.%T (%T) = value_param call_param0 -// CHECK:STDOUT: %T.ref: type = name_ref T, @GenericInterface.%T.loc15_28.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @GenericInterface.%T.loc15_28.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %x: @F.loc16.%T (%T) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc16_13.1: @GenericInterface.%GenericInterface.assoc_type (%GenericInterface.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc16_13.2 (constants.%assoc0)] @@ -144,7 +144,7 @@ class C { // CHECK:STDOUT: has_error // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc16(@GenericInterface.%T.loc15_28.1: type, @GenericInterface.%Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe)) { +// CHECK:STDOUT: generic fn @F.loc16(@GenericInterface.%T.loc15_28.2: type, @GenericInterface.%Self.1: @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: @@ -165,7 +165,7 @@ class C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericInterface(constants.%T) { -// CHECK:STDOUT: %T.loc15_28.2 => constants.%T +// CHECK:STDOUT: %T.loc15_28.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericInterface.type => constants.%GenericInterface.type.3fe diff --git a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon index 8aea7e7d15a7..22c6e5c8e627 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon @@ -187,10 +187,10 @@ fn F() { // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] // CHECK:STDOUT: %.766: type = fn_type_with_self_type %Zero.type.822, %Z.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.003: type = fn_type @Op.2, @Destroy.impl(%Point) [concrete] +// CHECK:STDOUT: %Op.type.003: type = fn_type @Op.1, @Destroy.impl(%Point) [concrete] // CHECK:STDOUT: %Op.d2d: %Op.type.003 = struct_value () [concrete] // CHECK:STDOUT: %ptr.536: type = ptr_type %Point [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d2d, @Op.2(%Point) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d2d, @Op.1(%Point) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -301,7 +301,7 @@ fn F() { // CHECK:STDOUT: %impl.elem0: %.766 = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Zero.dec] // CHECK:STDOUT: %Zero.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: %Op.bound: = bound_method %.loc25_5.2, constants.%Op.d2d -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d2d, @Op.2(constants.%Point) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d2d, @Op.1(constants.%Point) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc25_5.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.536 = addr_of %.loc25_5.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon index 4a8fcdebcd7f..3c09302af79c 100644 --- a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon @@ -255,10 +255,10 @@ class X { // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] // CHECK:STDOUT: %.462: type = fn_type_with_self_type %Method.type.f12, %Z.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.003: type = fn_type @Op.2, @Destroy.impl(%Point) [concrete] +// CHECK:STDOUT: %Op.type.003: type = fn_type @Op.1, @Destroy.impl(%Point) [concrete] // CHECK:STDOUT: %Op.d2d: %Op.type.003 = struct_value () [concrete] // CHECK:STDOUT: %ptr.536: type = ptr_type %Point [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d2d, @Op.2(%Point) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d2d, @Op.1(%Point) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -291,13 +291,13 @@ class X { // CHECK:STDOUT: %self.patt: @Method.loc5.%pattern_type (%pattern_type.a40) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Method.loc5.%pattern_type (%pattern_type.a40) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Method.loc5.%Self.as_type.loc5_19.1 (%Self.as_type.cd1) = value_param call_param0 -// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.cd1)] { +// CHECK:STDOUT: %self.param: @Method.loc5.%Self.as_type.loc5_19.2 (%Self.as_type.cd1) = value_param call_param0 +// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.as_type.loc5_19.2 (constants.%Self.as_type.cd1)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.6e6)] -// CHECK:STDOUT: %Self.as_type.loc5_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.cd1)] -// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.cd1)] +// CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_19.2 (constants.%Self.as_type.cd1)] +// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type.loc5_19.1 [symbolic = %Self.as_type.loc5_19.2 (constants.%Self.as_type.cd1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Method.loc5.%Self.as_type.loc5_19.1 (%Self.as_type.cd1) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Method.loc5.%Self.as_type.loc5_19.2 (%Self.as_type.cd1) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, %Method.decl [concrete = constants.%assoc1] // CHECK:STDOUT: impl_decl @Z.impl.6b5 [concrete] {} { @@ -326,13 +326,13 @@ class X { // CHECK:STDOUT: %self.patt: @Method.loc13.%pattern_type (%pattern_type.a40) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Method.loc13.%pattern_type (%pattern_type.a40) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Method.loc13.%Self.as_type.loc13_21.1 (%Self.as_type.cd1) = value_param call_param0 -// CHECK:STDOUT: %.loc13_21.1: type = splice_block %.loc13_21.2 [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.cd1)] { +// CHECK:STDOUT: %self.param: @Method.loc13.%Self.as_type.loc13_21.2 (%Self.as_type.cd1) = value_param call_param0 +// CHECK:STDOUT: %.loc13_21.1: type = splice_block %.loc13_21.2 [symbolic = %Self.as_type.loc13_21.2 (constants.%Self.as_type.cd1)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.6e6)] -// CHECK:STDOUT: %Self.as_type.loc13_21.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.cd1)] -// CHECK:STDOUT: %.loc13_21.2: type = converted %Self.ref, %Self.as_type.loc13_21.2 [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.cd1)] +// CHECK:STDOUT: %Self.as_type.loc13_21.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_21.2 (constants.%Self.as_type.cd1)] +// CHECK:STDOUT: %.loc13_21.2: type = converted %Self.ref, %Self.as_type.loc13_21.1 [symbolic = %Self.as_type.loc13_21.2 (constants.%Self.as_type.cd1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Method.loc13.%Self.as_type.loc13_21.1 (%Self.as_type.cd1) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Method.loc13.%Self.as_type.loc13_21.2 (%Self.as_type.cd1) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -381,10 +381,10 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Method.loc5(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.6e6)] -// CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.cd1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.a40)] +// CHECK:STDOUT: %Self.as_type.loc5_19.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.2 (constants.%Self.as_type.cd1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.2 [symbolic = %pattern_type (constants.%pattern_type.a40)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Method.loc5.%Self.as_type.loc5_19.1 (%Self.as_type.cd1)); +// CHECK:STDOUT: fn(%self.param: @Method.loc5.%Self.as_type.loc5_19.2 (%Self.as_type.cd1)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Zero.loc12(@Z.%Self: %Z.type) { @@ -398,13 +398,13 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Method.loc13(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.6e6)] -// CHECK:STDOUT: %Self.as_type.loc13_21.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.cd1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc13_21.1 [symbolic = %pattern_type (constants.%pattern_type.a40)] +// CHECK:STDOUT: %Self.as_type.loc13_21.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_21.2 (constants.%Self.as_type.cd1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc13_21.2 [symbolic = %pattern_type (constants.%pattern_type.a40)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc13_21.1 [symbolic = %require_complete (constants.%require_complete.dbd)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc13_21.2 [symbolic = %require_complete (constants.%require_complete.dbd)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Method.loc13.%Self.as_type.loc13_21.1 (%Self.as_type.cd1)) { +// CHECK:STDOUT: fn(%self.param: @Method.loc13.%Self.as_type.loc13_21.2 (%Self.as_type.cd1)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -442,7 +442,7 @@ class X { // CHECK:STDOUT: %.loc29_7.2: %Point = bind_value %.loc29_7.1 // CHECK:STDOUT: %Method.call: init %empty_tuple.type = call %bound_method.loc29_16(%.loc29_7.2) // CHECK:STDOUT: %Op.bound: = bound_method %.loc29_5.2, constants.%Op.d2d -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d2d, @Op.2(constants.%Point) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d2d, @Op.1(constants.%Point) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc29_5: = bound_method %.loc29_5.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.536 = addr_of %.loc29_5.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc29_5(%addr) @@ -453,7 +453,7 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @Method.loc5(constants.%Self.6e6) { // CHECK:STDOUT: %Self => constants.%Self.6e6 -// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Self.as_type.cd1 +// CHECK:STDOUT: %Self.as_type.loc5_19.2 => constants.%Self.as_type.cd1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a40 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -470,7 +470,7 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @Method.loc13(constants.%Self.6e6) { // CHECK:STDOUT: %Self => constants.%Self.6e6 -// CHECK:STDOUT: %Self.as_type.loc13_21.1 => constants.%Self.as_type.cd1 +// CHECK:STDOUT: %Self.as_type.loc13_21.2 => constants.%Self.as_type.cd1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a40 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -478,7 +478,7 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @Method.loc5(constants.%Z.facet) { // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Point +// CHECK:STDOUT: %Self.as_type.loc5_19.2 => constants.%Point // CHECK:STDOUT: %pattern_type => constants.%pattern_type.35b // 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 8842e3b13366..e0ef6a8b0280 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -338,10 +338,10 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %F.type.d3b58f.2: type = fn_type @F.loc200_38.2 [concrete] // CHECK:STDOUT: %F.be86c9.2: %F.type.d3b58f.2 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.3d3: type = fn_type @Op.2, @Destroy.impl(%FDifferentReturnType) [concrete] +// CHECK:STDOUT: %Op.type.3d3: type = fn_type @Op.1, @Destroy.impl(%FDifferentReturnType) [concrete] // CHECK:STDOUT: %Op.ddd: %Op.type.3d3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.954: type = ptr_type %FDifferentReturnType [concrete] -// CHECK:STDOUT: %Op.specific_fn.b4b: = specific_function %Op.ddd, @Op.2(%FDifferentReturnType) [concrete] +// CHECK:STDOUT: %Op.specific_fn.b4b: = specific_function %Op.ddd, @Op.1(%FDifferentReturnType) [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] // CHECK:STDOUT: %Self.2ff: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type.e1e: type = facet_access_type %Self.2ff [symbolic] @@ -378,9 +378,9 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %F.type.f90165.2: type = fn_type @F.loc223_87.2 [concrete] // CHECK:STDOUT: %F.fa8d04.2: %F.type.f90165.2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f40: type = ptr_type %array_type.a41 [concrete] -// CHECK:STDOUT: %Op.type.ba3: type = fn_type @Op.2, @Destroy.impl(%array_type.a41) [concrete] +// CHECK:STDOUT: %Op.type.ba3: type = fn_type @Op.1, @Destroy.impl(%array_type.a41) [concrete] // CHECK:STDOUT: %Op.d25: %Op.type.ba3 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.235: = specific_function %Op.d25, @Op.2(%array_type.a41) [concrete] +// CHECK:STDOUT: %Op.specific_fn.235: = specific_function %Op.d25, @Op.1(%array_type.a41) [concrete] // CHECK:STDOUT: %SelfNestedBadReturnType: type = class_type @SelfNestedBadReturnType [concrete] // CHECK:STDOUT: %SelfNested.impl_witness.d5e: = impl_witness @SelfNestedBadReturnType.%SelfNested.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.612: type = ptr_type %SelfNestedBadReturnType [concrete] @@ -513,27 +513,27 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc211_50: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %Self.as_type.loc211_50: type = facet_access_type %Self.ref.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %.loc211_50: type = converted %Self.ref.loc211_50, %Self.as_type.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.1 (constants.%array_type.873)] +// CHECK:STDOUT: %Self.as_type.loc211_50: type = facet_access_type %Self.ref.loc211_50 [symbolic = %Self.as_type.loc211_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %.loc211_50: type = converted %Self.ref.loc211_50, %Self.as_type.loc211_50 [symbolic = %Self.as_type.loc211_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %array_type.loc211_57.1: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.2 (constants.%array_type.873)] // CHECK:STDOUT: %x.param: @F.loc211.%tuple.type (%tuple.type.229) = value_param call_param0 // CHECK:STDOUT: %.loc211_38.1: type = splice_block %.loc211_38.3 [symbolic = %tuple.type (constants.%tuple.type.229)] { // CHECK:STDOUT: %Self.ref.loc211_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] -// CHECK:STDOUT: %Self.as_type.loc211_16.2: type = facet_access_type %Self.ref.loc211_12 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %.loc211_16: type = converted %Self.ref.loc211_12, %Self.as_type.loc211_16.2 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.1 (constants.%ptr.e87)] +// CHECK:STDOUT: %Self.as_type.loc211_16.1: type = facet_access_type %Self.ref.loc211_12 [symbolic = %Self.as_type.loc211_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %.loc211_16: type = converted %Self.ref.loc211_12, %Self.as_type.loc211_16.1 [symbolic = %Self.as_type.loc211_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.2 (constants.%ptr.e87)] // CHECK:STDOUT: %Self.ref.loc211_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] -// CHECK:STDOUT: %Self.as_type.loc211_24: type = facet_access_type %Self.ref.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %.loc211_24: type = converted %Self.ref.loc211_24, %Self.as_type.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %Self.as_type.loc211_24: type = facet_access_type %Self.ref.loc211_24 [symbolic = %Self.as_type.loc211_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %.loc211_24: type = converted %Self.ref.loc211_24, %Self.as_type.loc211_24 [symbolic = %Self.as_type.loc211_16.2 (constants.%Self.as_type.e1e)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @F.loc211.%Self.as_type.loc211_16.1 (%Self.as_type.e1e), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.81e)] -// CHECK:STDOUT: %.loc211_38.2: %tuple.type.24b = tuple_literal (%ptr.loc211_16.2, %struct_type.x.y.loc211_37.2) +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @F.loc211.%Self.as_type.loc211_16.2 (%Self.as_type.e1e), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.2 (constants.%struct_type.x.y.81e)] +// CHECK:STDOUT: %.loc211_38.2: %tuple.type.24b = tuple_literal (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) // CHECK:STDOUT: %.loc211_38.3: type = converted %.loc211_38.2, constants.%tuple.type.229 [symbolic = %tuple.type (constants.%tuple.type.229)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: @F.loc211.%tuple.type (%tuple.type.229) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @F.loc211.%array_type.loc211_57.1 (%array_type.873) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc211.%array_type.loc211_57.1 (%array_type.873) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @F.loc211.%array_type.loc211_57.2 (%array_type.873) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc211.%array_type.loc211_57.2 (%array_type.873) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.beb] // CHECK:STDOUT: @@ -1317,7 +1317,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %F.call: init %FDifferentReturnType = call %F.bound(%self.ref, %b.ref) to %.loc200_38.1 // CHECK:STDOUT: %.loc200_38.2: bool = converted %F.call, [concrete = ] // CHECK:STDOUT: %Op.bound: = bound_method %.loc200_38.1, constants.%Op.ddd -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ddd, @Op.2(constants.%FDifferentReturnType) [concrete = constants.%Op.specific_fn.b4b] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ddd, @Op.1(constants.%FDifferentReturnType) [concrete = constants.%Op.specific_fn.b4b] // CHECK:STDOUT: %bound_method: = bound_method %.loc200_38.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.954 = addr_of %.loc200_38.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1326,15 +1326,15 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc211(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2ff)] -// CHECK:STDOUT: %Self.as_type.loc211_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %Self.as_type.loc211_16.1 [symbolic = %ptr.loc211_16.1 (constants.%ptr.e87)] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @F.loc211.%Self.as_type.loc211_16.1 (%Self.as_type.e1e), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.81e)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.229)] +// CHECK:STDOUT: %Self.as_type.loc211_16.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc211_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %Self.as_type.loc211_16.2 [symbolic = %ptr.loc211_16.2 (constants.%ptr.e87)] +// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @F.loc211.%Self.as_type.loc211_16.2 (%Self.as_type.e1e), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.2 (constants.%struct_type.x.y.81e)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.2, %struct_type.x.y.loc211_37.2) [symbolic = %tuple.type (constants.%tuple.type.229)] // CHECK:STDOUT: %pattern_type.loc211_8: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_8 (constants.%pattern_type.ced)] -// CHECK:STDOUT: %array_type.loc211_57.1: type = array_type constants.%int_4, %Self.as_type.loc211_16.1 [symbolic = %array_type.loc211_57.1 (constants.%array_type.873)] -// CHECK:STDOUT: %pattern_type.loc211_41: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_41 (constants.%pattern_type.c7e)] +// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type constants.%int_4, %Self.as_type.loc211_16.2 [symbolic = %array_type.loc211_57.2 (constants.%array_type.873)] +// CHECK:STDOUT: %pattern_type.loc211_41: type = pattern_type %array_type.loc211_57.2 [symbolic = %pattern_type.loc211_41 (constants.%pattern_type.c7e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.loc211.%tuple.type (%tuple.type.229)) -> @F.loc211.%array_type.loc211_57.1 (%array_type.873); +// CHECK:STDOUT: fn(%x.param: @F.loc211.%tuple.type (%tuple.type.229)) -> @F.loc211.%array_type.loc211_57.2 (%array_type.873); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc223_87.1(%x.param: %tuple.type.a7d) -> %return.param: %array_type.a41; @@ -1351,7 +1351,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %.loc211_9.2: %i32 = converted %.loc211_9.1, [concrete = ] // CHECK:STDOUT: %F.call: init %array_type.a41 = call %F.ref() to %.loc211_41 // CHECK:STDOUT: %Op.bound: = bound_method %.loc211_41, constants.%Op.d25 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d25, @Op.2(constants.%array_type.a41) [concrete = constants.%Op.specific_fn.235] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d25, @Op.1(constants.%array_type.a41) [concrete = constants.%Op.specific_fn.235] // CHECK:STDOUT: %bound_method: = bound_method %.loc211_41, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f40 = addr_of %.loc211_41 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1369,7 +1369,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %F.call: init %array_type.a41 = call %F.ref(%x.ref) to %.loc239_112.1 // CHECK:STDOUT: %.loc239_112.2: %array_type.126 = converted %F.call, [concrete = ] // CHECK:STDOUT: %Op.bound: = bound_method %.loc239_112.1, constants.%Op.d25 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d25, @Op.2(constants.%array_type.a41) [concrete = constants.%Op.specific_fn.235] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d25, @Op.1(constants.%array_type.a41) [concrete = constants.%Op.specific_fn.235] // CHECK:STDOUT: %bound_method: = bound_method %.loc239_112.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f40 = addr_of %.loc239_112.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1400,34 +1400,34 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc211(constants.%Self.2ff) { // CHECK:STDOUT: %Self => constants.%Self.2ff -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%Self.as_type.e1e -// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.e87 -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.81e +// CHECK:STDOUT: %Self.as_type.loc211_16.2 => constants.%Self.as_type.e1e +// CHECK:STDOUT: %ptr.loc211_16.2 => constants.%ptr.e87 +// CHECK:STDOUT: %struct_type.x.y.loc211_37.2 => constants.%struct_type.x.y.81e // CHECK:STDOUT: %tuple.type => constants.%tuple.type.229 // CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.ced -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.873 +// CHECK:STDOUT: %array_type.loc211_57.2 => constants.%array_type.873 // CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.c7e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc211(constants.%SelfNested.facet.608) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.608 -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadParam -// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.4cd -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.a89 +// CHECK:STDOUT: %Self.as_type.loc211_16.2 => constants.%SelfNestedBadParam +// CHECK:STDOUT: %ptr.loc211_16.2 => constants.%ptr.4cd +// CHECK:STDOUT: %struct_type.x.y.loc211_37.2 => constants.%struct_type.x.y.a89 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.9c9 // CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.a5c -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.a41 +// CHECK:STDOUT: %array_type.loc211_57.2 => constants.%array_type.a41 // CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.1f1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc211(constants.%SelfNested.facet.766) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.766 -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadReturnType -// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.612 -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.ac5 +// CHECK:STDOUT: %Self.as_type.loc211_16.2 => constants.%SelfNestedBadReturnType +// CHECK:STDOUT: %ptr.loc211_16.2 => constants.%ptr.612 +// CHECK:STDOUT: %struct_type.x.y.loc211_37.2 => constants.%struct_type.x.y.ac5 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.eb9 // CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.23f -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.126 +// CHECK:STDOUT: %array_type.loc211_57.2 => constants.%array_type.126 // CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.f56 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon index 3bccb67d9a9a..74577acface8 100644 --- a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon +++ b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon @@ -115,9 +115,9 @@ impl i32 as I { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %X.patt: @C.%pattern_type (%pattern_type.7dcd0a.1) = symbolic_binding_pattern X, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_9.2 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_9.1 [symbolic = %T.loc15_9.2 (constants.%T)] -// CHECK:STDOUT: %X.loc15_19.1: @C.%T.loc15_9.2 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc15_19.2 (constants.%X)] +// CHECK:STDOUT: %T.loc15_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_9.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc15_9.2 [symbolic = %T.loc15_9.1 (constants.%T)] +// CHECK:STDOUT: %X.loc15_19.2: @C.%T.loc15_9.1 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc15_19.1 (constants.%X)] // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: impl_decl @I.impl.049 [concrete] {} { @@ -143,13 +143,13 @@ impl i32 as I { // CHECK:STDOUT: %c.patt: @F.loc25.%pattern_type (%pattern_type.4fb) = binding_pattern c [concrete] // CHECK:STDOUT: %c.param_patt: @F.loc25.%pattern_type (%pattern_type.4fb) = value_param_pattern %c.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %c.param: @F.loc25.%C.loc25_17.1 (%C.dbb) = value_param call_param0 -// CHECK:STDOUT: %.loc25: type = splice_block %C.loc25_17.2 [symbolic = %C.loc25_17.1 (constants.%C.dbb)] { +// CHECK:STDOUT: %c.param: @F.loc25.%C.loc25_17.2 (%C.dbb) = value_param call_param0 +// CHECK:STDOUT: %.loc25: type = splice_block %C.loc25_17.1 [symbolic = %C.loc25_17.2 (constants.%C.dbb)] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %C.loc25_17.2: type = class_type @C, @C(constants.%I.type, constants.%Self.826) [symbolic = %C.loc25_17.1 (constants.%C.dbb)] +// CHECK:STDOUT: %C.loc25_17.1: type = class_type @C, @C(constants.%I.type, constants.%Self.826) [symbolic = %C.loc25_17.2 (constants.%C.dbb)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @F.loc25.%C.loc25_17.1 (%C.dbb) = bind_name c, %c.param +// CHECK:STDOUT: %c: @F.loc25.%C.loc25_17.2 (%C.dbb) = bind_name c, %c.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.82e] // CHECK:STDOUT: @@ -212,10 +212,10 @@ impl i32 as I { // CHECK:STDOUT: witness = file.%I.impl_witness.loc35 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc15_9.1: type, %X.loc15_19.1: @C.%T.loc15_9.2 (%T)) { -// CHECK:STDOUT: %T.loc15_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_9.2 (constants.%T)] -// CHECK:STDOUT: %X.loc15_19.2: @C.%T.loc15_9.2 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc15_19.2 (constants.%X)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc15_9.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic class @C(%T.loc15_9.2: type, %X.loc15_19.2: @C.%T.loc15_9.1 (%T)) { +// CHECK:STDOUT: %T.loc15_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_9.1 (constants.%T)] +// CHECK:STDOUT: %X.loc15_19.1: @C.%T.loc15_9.1 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc15_19.1 (constants.%X)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc15_9.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -231,10 +231,10 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc25(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %C.loc25_17.1: type = class_type @C, @C(constants.%I.type, %Self) [symbolic = %C.loc25_17.1 (constants.%C.dbb)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc25_17.1 [symbolic = %pattern_type (constants.%pattern_type.4fb)] +// CHECK:STDOUT: %C.loc25_17.2: type = class_type @C, @C(constants.%I.type, %Self) [symbolic = %C.loc25_17.2 (constants.%C.dbb)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc25_17.2 [symbolic = %pattern_type (constants.%pattern_type.4fb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @F.loc25.%C.loc25_17.1 (%C.dbb)); +// CHECK:STDOUT: fn(%c.param: @F.loc25.%C.loc25_17.2 (%C.dbb)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc32(%c.param: %C.7db); @@ -251,38 +251,38 @@ impl i32 as I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T, constants.%X) { -// CHECK:STDOUT: %T.loc15_9.2 => constants.%T -// CHECK:STDOUT: %X.loc15_19.2 => constants.%X +// CHECK:STDOUT: %T.loc15_9.1 => constants.%T +// CHECK:STDOUT: %X.loc15_19.1 => constants.%X // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%I.type, constants.%Self.826) { -// CHECK:STDOUT: %T.loc15_9.2 => constants.%I.type -// CHECK:STDOUT: %X.loc15_19.2 => constants.%Self.826 +// CHECK:STDOUT: %T.loc15_9.1 => constants.%I.type +// CHECK:STDOUT: %X.loc15_19.1 => constants.%Self.826 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc25(constants.%Self.826) { // CHECK:STDOUT: %Self => constants.%Self.826 -// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.dbb +// CHECK:STDOUT: %C.loc25_17.2 => constants.%C.dbb // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4fb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.e8a) { -// CHECK:STDOUT: %T.loc15_9.2 => constants.%I.type -// CHECK:STDOUT: %X.loc15_19.2 => constants.%I.facet.e8a +// CHECK:STDOUT: %T.loc15_9.1 => constants.%I.type +// CHECK:STDOUT: %X.loc15_19.1 => constants.%I.facet.e8a // CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc25(constants.%I.facet.e8a) { // CHECK:STDOUT: %Self => constants.%I.facet.e8a -// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.7db +// CHECK:STDOUT: %C.loc25_17.2 => constants.%C.7db // CHECK:STDOUT: %pattern_type => constants.%pattern_type.225 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(type, constants.%i32) { -// CHECK:STDOUT: %T.loc15_9.2 => type -// CHECK:STDOUT: %X.loc15_19.2 => constants.%i32 +// CHECK:STDOUT: %T.loc15_9.1 => type +// CHECK:STDOUT: %X.loc15_19.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.98f // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -290,13 +290,13 @@ impl i32 as I { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc25(constants.%I.facet.118) { // CHECK:STDOUT: %Self => constants.%I.facet.118 -// CHECK:STDOUT: %C.loc25_17.1 => constants.%C.d88 +// CHECK:STDOUT: %C.loc25_17.2 => constants.%C.d88 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.118) { -// CHECK:STDOUT: %T.loc15_9.2 => constants.%I.type -// CHECK:STDOUT: %X.loc15_19.2 => constants.%I.facet.118 +// CHECK:STDOUT: %T.loc15_9.1 => constants.%I.type +// CHECK:STDOUT: %X.loc15_19.1 => constants.%I.facet.118 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.2b5 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/forward_decls.carbon b/toolchain/check/testdata/impl/forward_decls.carbon index a4de6d6b5f65..fbcc15bf7d6c 100644 --- a/toolchain/check/testdata/impl/forward_decls.carbon +++ b/toolchain/check/testdata/impl/forward_decls.carbon @@ -1073,7 +1073,7 @@ interface I { // CHECK:STDOUT: %I.decl: %I.type.dac = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %U.patt: %pattern_type = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc3_13.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc3_13.2 (constants.%U)] +// CHECK:STDOUT: %U.loc3_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc3_13.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc6: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} @@ -1117,13 +1117,13 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%U.loc3_13.1: type) { -// CHECK:STDOUT: %U.loc3_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc3_13.2 (constants.%U)] +// CHECK:STDOUT: generic interface @I(%U.loc3_13.2: type) { +// CHECK:STDOUT: %U.loc3_13.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc3_13.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc3_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc3_13.1)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.209)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%U.loc3_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%U.loc3_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5)] // CHECK:STDOUT: %assoc0: @I.%I.assoc_type (%I.assoc_type.1e5) = assoc_entity element0, %T [symbolic = %assoc0 (constants.%assoc0.7f3)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -1139,7 +1139,7 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @T(@I.%U.loc3_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { +// CHECK:STDOUT: generic assoc_const @T(@I.%U.loc3_13.2: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: assoc_const T:! type; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1167,13 +1167,13 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%U) { -// CHECK:STDOUT: %U.loc3_13.2 => constants.%U +// CHECK:STDOUT: %U.loc3_13.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%U, constants.%Self.209) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%C) { -// CHECK:STDOUT: %U.loc3_13.2 => constants.%C +// CHECK:STDOUT: %U.loc3_13.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.e7a @@ -1233,7 +1233,7 @@ interface I { // CHECK:STDOUT: %T.patt: %pattern_type.2b5 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %I.ref.loc6: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] -// CHECK:STDOUT: %T.loc6_9.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_9.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc8: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %x.patt: %pattern_type.da9 = binding_pattern x [concrete] @@ -1258,7 +1258,7 @@ interface I { // CHECK:STDOUT: %T.patt: %pattern_type.2b5 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %I.ref.loc12: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] -// CHECK:STDOUT: %T.loc12: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc12: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl.loc14: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %x.patt: %pattern_type.da9 = binding_pattern x [concrete] @@ -1298,8 +1298,8 @@ interface I { // CHECK:STDOUT: .Self = constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc6_9.1: %I.type) { -// CHECK:STDOUT: %T.loc6_9.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc6_9.2: %I.type) { +// CHECK:STDOUT: %T.loc6_9.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1319,11 +1319,11 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%T +// CHECK:STDOUT: %T.loc6_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%I.facet) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%I.facet +// CHECK:STDOUT: %T.loc6_9.1 => constants.%I.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -1571,7 +1571,7 @@ interface I { // CHECK:STDOUT: %U.patt: %pattern_type.08c = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref.loc6: type = name_ref X, file.%X.decl.loc3 [concrete = constants.%X.type] -// CHECK:STDOUT: %U.loc6_6.1: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc6_6.2 (constants.%U)] +// CHECK:STDOUT: %U.loc6_6.2: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc6_6.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc7: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.08c = symbolic_binding_pattern U, 0 [concrete] @@ -1579,14 +1579,14 @@ interface I { // CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.331) = value_param_pattern %u.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref.loc7: type = name_ref X, file.%X.decl.loc3 [concrete = constants.%X.type] -// CHECK:STDOUT: %U.loc7_6.1: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.2 (constants.%U)] -// CHECK:STDOUT: %u.param.loc7: @G.%U.as_type.loc7_16.2 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_16.1: type = splice_block %.loc7_16.2 [symbolic = %U.as_type.loc7_16.2 (constants.%U.as_type)] { -// CHECK:STDOUT: %U.ref.loc7: %X.type = name_ref U, %U.loc7_6.1 [symbolic = %U.loc7_6.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc7_16.1: type = facet_access_type %U.ref.loc7 [symbolic = %U.as_type.loc7_16.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc7_16.2: type = converted %U.ref.loc7, %U.as_type.loc7_16.1 [symbolic = %U.as_type.loc7_16.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.loc7_6.2: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.1 (constants.%U)] +// CHECK:STDOUT: %u.param.loc7: @G.%U.as_type.loc7_16.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_16.1: type = splice_block %.loc7_16.2 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %U.ref.loc7: %X.type = name_ref U, %U.loc7_6.2 [symbolic = %U.loc7_6.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc7_16.2: type = facet_access_type %U.ref.loc7 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc7_16.2: type = converted %U.ref.loc7, %U.as_type.loc7_16.2 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u.loc7: @G.%U.as_type.loc7_16.2 (%U.as_type) = bind_name u, %u.param.loc7 +// CHECK:STDOUT: %u.loc7: @G.%U.as_type.loc7_16.1 (%U.as_type) = bind_name u, %u.param.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc9: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @X.impl [concrete] {} { @@ -1611,7 +1611,7 @@ interface I { // CHECK:STDOUT: %U.patt: %pattern_type.08c = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref.loc34: type = name_ref X, file.%X.decl.loc3 [concrete = constants.%X.type] -// CHECK:STDOUT: %U.loc34: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc6_6.2 (constants.%U)] +// CHECK:STDOUT: %U.loc34: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc6_6.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc35: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.08c = symbolic_binding_pattern U, 0 [concrete] @@ -1619,14 +1619,14 @@ interface I { // CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.331) = value_param_pattern %u.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %X.ref.loc35: type = name_ref X, file.%X.decl.loc3 [concrete = constants.%X.type] -// CHECK:STDOUT: %U.loc35: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.2 (constants.%U)] -// CHECK:STDOUT: %u.param.loc35: @G.%U.as_type.loc7_16.2 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc35_16.1: type = splice_block %.loc35_16.2 [symbolic = %U.as_type.loc7_16.2 (constants.%U.as_type)] { -// CHECK:STDOUT: %U.ref.loc35: %X.type = name_ref U, %U.loc35 [symbolic = %U.loc7_6.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc35: type = facet_access_type %U.ref.loc35 [symbolic = %U.as_type.loc7_16.2 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc35_16.2: type = converted %U.ref.loc35, %U.as_type.loc35 [symbolic = %U.as_type.loc7_16.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.loc35: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.1 (constants.%U)] +// CHECK:STDOUT: %u.param.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc35_16.1: type = splice_block %.loc35_16.2 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %U.ref.loc35: %X.type = name_ref U, %U.loc35 [symbolic = %U.loc7_6.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc35: type = facet_access_type %U.ref.loc35 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc35_16.2: type = converted %U.ref.loc35, %U.as_type.loc35 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u.loc35: @G.%U.as_type.loc7_16.2 (%U.as_type) = bind_name u, %u.param.loc35 +// CHECK:STDOUT: %u.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type) = bind_name u, %u.param.loc35 // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Y.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc36: type = name_ref C, file.%C.decl.loc9 [concrete = constants.%C] @@ -1679,8 +1679,8 @@ interface I { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%U.loc6_6.1: %X.type) { -// CHECK:STDOUT: %U.loc6_6.2: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc6_6.2 (constants.%U)] +// CHECK:STDOUT: generic fn @F(%U.loc6_6.2: %X.type) { +// CHECK:STDOUT: %U.loc6_6.1: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc6_6.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1690,15 +1690,15 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%U.loc7_6.1: %X.type) { -// CHECK:STDOUT: %U.loc7_6.2: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc7_16.2: type = facet_access_type %U.loc7_6.2 [symbolic = %U.as_type.loc7_16.2 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc7_16.2 [symbolic = %pattern_type (constants.%pattern_type.331)] +// CHECK:STDOUT: generic fn @G(%U.loc7_6.2: %X.type) { +// CHECK:STDOUT: %U.loc7_6.1: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.1 (constants.%U)] +// CHECK:STDOUT: %U.as_type.loc7_16.1: type = facet_access_type %U.loc7_6.1 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc7_16.1 [symbolic = %pattern_type (constants.%pattern_type.331)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc7_16.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc7_16.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param.loc35: @G.%U.as_type.loc7_16.2 (%U.as_type)) { +// CHECK:STDOUT: fn(%u.param.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1724,24 +1724,24 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%U) { -// CHECK:STDOUT: %U.loc6_6.2 => constants.%U +// CHECK:STDOUT: %U.loc6_6.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { -// CHECK:STDOUT: %U.loc7_6.2 => constants.%U -// CHECK:STDOUT: %U.as_type.loc7_16.2 => constants.%U.as_type +// CHECK:STDOUT: %U.loc7_6.1 => constants.%U +// CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%U.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.331 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%X.facet) { -// CHECK:STDOUT: %U.loc6_6.2 => constants.%X.facet +// CHECK:STDOUT: %U.loc6_6.1 => constants.%X.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%X.facet) { -// CHECK:STDOUT: %U.loc7_6.2 => constants.%X.facet -// CHECK:STDOUT: %U.as_type.loc7_16.2 => constants.%C +// CHECK:STDOUT: %U.loc7_6.1 => constants.%X.facet +// CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/generic_redeclaration.carbon b/toolchain/check/testdata/impl/generic_redeclaration.carbon index 0585666d7171..0ec9ca6ed185 100644 --- a/toolchain/check/testdata/impl/generic_redeclaration.carbon +++ b/toolchain/check/testdata/impl/generic_redeclaration.carbon @@ -572,10 +572,10 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %C.specific_fn: = specific_function %C, @C(%T) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -725,7 +725,7 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc21_15: %empty_tuple.type = converted %C.call, %tuple [concrete = constants.%empty_tuple] // CHECK:STDOUT: %Op.bound: = bound_method %.loc21_14.1, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc21_14.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %.loc21_14.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index 2208d980c349..b626aa559845 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -45,10 +45,10 @@ class C { // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -126,7 +126,7 @@ class C { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %Op.bound: = bound_method %c.var, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %c.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index 83b163fc1658..a1fc4100660e 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -329,7 +329,7 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.c.d.15a = struct_value (%empty_tuple, %empty_struct) [concrete] -// CHECK:STDOUT: %Op.type.afe: type = fn_type @Op.2, @Destroy.impl(%struct_type.d.c.b36) [concrete] +// CHECK:STDOUT: %Op.type.afe: type = fn_type @Op.1, @Destroy.impl(%struct_type.d.c.b36) [concrete] // CHECK:STDOUT: %Op.742: %Op.type.afe = struct_value () [concrete] // CHECK:STDOUT: %ptr.eab: type = ptr_type %struct_type.d.c.b36 [concrete] // CHECK:STDOUT: } @@ -623,7 +623,7 @@ impl () as I({}) { // CHECK:STDOUT: %F.77e9d5.1: %F.type.b24d6f.1 = struct_value () [concrete] // CHECK:STDOUT: %F.type.b24d6f.2: type = fn_type @F.loc20_14.2 [concrete] // CHECK:STDOUT: %F.77e9d5.2: %F.type.b24d6f.2 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1a6: type = fn_type @Op.2, @Destroy.impl(%B) [concrete] +// CHECK:STDOUT: %Op.type.1a6: type = fn_type @Op.1, @Destroy.impl(%B) [concrete] // CHECK:STDOUT: %Op.3c2: %Op.type.1a6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: } @@ -880,7 +880,7 @@ impl () as I({}) { // CHECK:STDOUT: %F.975709.2: %F.type.29ab63.2 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.a.b.f95 = struct_value (%empty_struct, %empty_struct) [concrete] -// CHECK:STDOUT: %Op.type.f20: type = fn_type @Op.2, @Destroy.impl(%struct_type.b.a.1b0) [concrete] +// CHECK:STDOUT: %Op.type.f20: type = fn_type @Op.1, @Destroy.impl(%struct_type.b.a.1b0) [concrete] // CHECK:STDOUT: %Op.eab: %Op.type.f20 = struct_value () [concrete] // CHECK:STDOUT: %ptr.30d: type = ptr_type %struct_type.b.a.1b0 [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/import_builtin_call.carbon b/toolchain/check/testdata/impl/import_builtin_call.carbon index 21a435440f00..246be12abf7e 100644 --- a/toolchain/check/testdata/impl/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/import_builtin_call.carbon @@ -161,7 +161,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.loc11_28.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc11_28.3: type = converted %int_literal.make_type, %.loc11_28.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc11_13.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc11_13.2 (constants.%N)] +// CHECK:STDOUT: %N.loc11_13.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc11_13.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Add.impl [concrete] { // CHECK:STDOUT: %N.patt: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [concrete] @@ -188,24 +188,24 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return.param_patt: @Double.%pattern_type (%pattern_type.a71) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %MyInt.ref.loc19_45: %MyInt.type = name_ref MyInt, file.%MyInt.decl [concrete = constants.%MyInt.generic] -// CHECK:STDOUT: %N.ref.loc19_51: Core.IntLiteral = name_ref N, %N.loc19_11.1 [symbolic = %N.loc19_11.2 (constants.%N)] -// CHECK:STDOUT: %MyInt.loc19_52: type = class_type @MyInt, @MyInt(constants.%N) [symbolic = %MyInt.loc19_39.2 (constants.%MyInt)] +// CHECK:STDOUT: %N.ref.loc19_51: Core.IntLiteral = name_ref N, %N.loc19_11.2 [symbolic = %N.loc19_11.1 (constants.%N)] +// CHECK:STDOUT: %MyInt.loc19_52: type = class_type @MyInt, @MyInt(constants.%N) [symbolic = %MyInt.loc19_39.1 (constants.%MyInt)] // CHECK:STDOUT: %.loc19_26.1: type = splice_block %.loc19_26.3 [concrete = Core.IntLiteral] { // CHECK:STDOUT: %IntLiteral.ref: %IntLiteral.type = name_ref IntLiteral, file.%IntLiteral.decl [concrete = constants.%IntLiteral] // CHECK:STDOUT: %int_literal.make_type: init type = call %IntLiteral.ref() [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc19_26.2: type = value_of_initializer %int_literal.make_type [concrete = Core.IntLiteral] // CHECK:STDOUT: %.loc19_26.3: type = converted %int_literal.make_type, %.loc19_26.2 [concrete = Core.IntLiteral] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc19_11.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc19_11.2 (constants.%N)] -// CHECK:STDOUT: %x.param: @Double.%MyInt.loc19_39.2 (%MyInt) = value_param call_param0 -// CHECK:STDOUT: %.loc19_39: type = splice_block %MyInt.loc19_39.1 [symbolic = %MyInt.loc19_39.2 (constants.%MyInt)] { +// CHECK:STDOUT: %N.loc19_11.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc19_11.1 (constants.%N)] +// CHECK:STDOUT: %x.param: @Double.%MyInt.loc19_39.1 (%MyInt) = value_param call_param0 +// CHECK:STDOUT: %.loc19_39: type = splice_block %MyInt.loc19_39.2 [symbolic = %MyInt.loc19_39.1 (constants.%MyInt)] { // CHECK:STDOUT: %MyInt.ref.loc19_32: %MyInt.type = name_ref MyInt, file.%MyInt.decl [concrete = constants.%MyInt.generic] -// CHECK:STDOUT: %N.ref.loc19_38: Core.IntLiteral = name_ref N, %N.loc19_11.1 [symbolic = %N.loc19_11.2 (constants.%N)] -// CHECK:STDOUT: %MyInt.loc19_39.1: type = class_type @MyInt, @MyInt(constants.%N) [symbolic = %MyInt.loc19_39.2 (constants.%MyInt)] +// CHECK:STDOUT: %N.ref.loc19_38: Core.IntLiteral = name_ref N, %N.loc19_11.2 [symbolic = %N.loc19_11.1 (constants.%N)] +// CHECK:STDOUT: %MyInt.loc19_39.2: type = class_type @MyInt, @MyInt(constants.%N) [symbolic = %MyInt.loc19_39.1 (constants.%MyInt)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Double.%MyInt.loc19_39.2 (%MyInt) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @Double.%MyInt.loc19_39.2 (%MyInt) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Double.%MyInt.loc19_39.2 (%MyInt) = return_slot %return.param +// CHECK:STDOUT: %x: @Double.%MyInt.loc19_39.1 (%MyInt) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @Double.%MyInt.loc19_39.1 (%MyInt) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Double.%MyInt.loc19_39.1 (%MyInt) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -220,24 +220,24 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return.param_patt: @Op.loc5.%pattern_type (%pattern_type.8f9) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_37: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_37: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %self.param: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15.1 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param1 -// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = value_param call_param1 +// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_28: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %other: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, %Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -283,17 +283,17 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @MyInt(%N.loc11_13.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc11_13.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc11_13.2 (constants.%N)] +// CHECK:STDOUT: generic class @MyInt(%N.loc11_13.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc11_13.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc11_13.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %N.loc11_13.2 [symbolic = %iN.builtin (constants.%iN.builtin)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %N.loc11_13.1 [symbolic = %iN.builtin (constants.%iN.builtin)] // CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.f1b)] // CHECK:STDOUT: %complete_type.loc13_1.2: = complete_type_witness %iN.builtin [symbolic = %complete_type.loc13_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] -// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, %N.loc11_13.1 [symbolic = %N.loc11_13.2 (constants.%N)] +// CHECK:STDOUT: %N.ref: Core.IntLiteral = name_ref N, %N.loc11_13.2 [symbolic = %N.loc11_13.1 (constants.%N)] // CHECK:STDOUT: %int.make_type_signed: init type = call %Int.ref(%N.ref) [symbolic = %iN.builtin (constants.%iN.builtin)] // CHECK:STDOUT: %.loc12_15.1: type = value_of_initializer %int.make_type_signed [symbolic = %iN.builtin (constants.%iN.builtin)] // CHECK:STDOUT: %.loc12_15.2: type = converted %int.make_type_signed, %.loc12_15.1 [symbolic = %iN.builtin (constants.%iN.builtin)] @@ -310,10 +310,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op.loc5(@Add.%Self: %Add.type) { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.8f9)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.2 [symbolic = %pattern_type (constants.%pattern_type.8f9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type)) -> @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type); +// CHECK:STDOUT: fn(%self.param: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type), %other.param: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type)) -> @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @IntLiteral() -> type = "int_literal.make_type"; @@ -330,48 +330,48 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: fn(%self.param: @Op.loc16.%MyInt (%MyInt), %other.param: @Op.loc16.%MyInt (%MyInt)) -> @Op.loc16.%MyInt (%MyInt) = "int.sadd"; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Double(%N.loc19_11.1: Core.IntLiteral) { -// CHECK:STDOUT: %N.loc19_11.2: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc19_11.2 (constants.%N)] -// CHECK:STDOUT: %MyInt.loc19_39.2: type = class_type @MyInt, @MyInt(%N.loc19_11.2) [symbolic = %MyInt.loc19_39.2 (constants.%MyInt)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt.loc19_39.2 [symbolic = %pattern_type (constants.%pattern_type.a71)] +// CHECK:STDOUT: generic fn @Double(%N.loc19_11.2: Core.IntLiteral) { +// CHECK:STDOUT: %N.loc19_11.1: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N.loc19_11.1 (constants.%N)] +// CHECK:STDOUT: %MyInt.loc19_39.1: type = class_type @MyInt, @MyInt(%N.loc19_11.1) [symbolic = %MyInt.loc19_39.1 (constants.%MyInt)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt.loc19_39.1 [symbolic = %pattern_type (constants.%pattern_type.a71)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt.loc19_39.2 [symbolic = %require_complete (constants.%require_complete.fc7)] -// CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt.loc19_39.2, @Add [symbolic = %Add.lookup_impl_witness (constants.%Add.lookup_impl_witness)] -// CHECK:STDOUT: %Add.facet.loc20_11: %Add.type = facet_value %MyInt.loc19_39.2, (%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.5a7)] +// CHECK:STDOUT: %require_complete: = require_complete_type %MyInt.loc19_39.1 [symbolic = %require_complete (constants.%require_complete.fc7)] +// CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt.loc19_39.1, @Add [symbolic = %Add.lookup_impl_witness (constants.%Add.lookup_impl_witness)] +// CHECK:STDOUT: %Add.facet.loc20_11: %Add.type = facet_value %MyInt.loc19_39.1, (%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.5a7)] // CHECK:STDOUT: %.loc20_11: type = fn_type_with_self_type constants.%Op.type.31b, %Add.facet.loc20_11 [symbolic = %.loc20_11 (constants.%.0a6)] // CHECK:STDOUT: %impl.elem0.loc20_11.2: @Double.%.loc20_11 (%.0a6) = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc20_11.2: = specific_impl_function %impl.elem0.loc20_11.2, @Op.loc5(%Add.facet.loc20_11) [symbolic = %specific_impl_fn.loc20_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Double.%MyInt.loc19_39.2 (%MyInt)) -> @Double.%MyInt.loc19_39.2 (%MyInt) { +// CHECK:STDOUT: fn(%x.param: @Double.%MyInt.loc19_39.1 (%MyInt)) -> @Double.%MyInt.loc19_39.1 (%MyInt) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc20_10: @Double.%MyInt.loc19_39.2 (%MyInt) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc20_10: @Double.%MyInt.loc19_39.1 (%MyInt) = name_ref x, %x // CHECK:STDOUT: %Add.ref: type = name_ref Add, file.%Add.decl [concrete = constants.%Add.type] // CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, @Add.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc20_11.1: @Double.%.loc20_11 (%.0a6) = impl_witness_access constants.%Add.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc20_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc20_11: = bound_method %x.ref.loc20_10, %impl.elem0.loc20_11.1 -// CHECK:STDOUT: %x.ref.loc20_21: @Double.%MyInt.loc19_39.2 (%MyInt) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc20_21: @Double.%MyInt.loc19_39.1 (%MyInt) = name_ref x, %x // CHECK:STDOUT: %Add.facet.loc20_22.1: %Add.type = facet_value constants.%MyInt, (constants.%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.5a7)] // CHECK:STDOUT: %.loc20_22.1: %Add.type = converted constants.%MyInt, %Add.facet.loc20_22.1 [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.5a7)] // CHECK:STDOUT: %Add.facet.loc20_22.2: %Add.type = facet_value constants.%MyInt, (constants.%Add.lookup_impl_witness) [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.5a7)] // CHECK:STDOUT: %.loc20_22.2: %Add.type = converted constants.%MyInt, %Add.facet.loc20_22.2 [symbolic = %Add.facet.loc20_11 (constants.%Add.facet.5a7)] // CHECK:STDOUT: %specific_impl_fn.loc20_11.1: = specific_impl_function %impl.elem0.loc20_11.1, @Op.loc5(constants.%Add.facet.5a7) [symbolic = %specific_impl_fn.loc20_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc20_22: = bound_method %x.ref.loc20_10, %specific_impl_fn.loc20_11.1 -// CHECK:STDOUT: %.loc20_22.3: init @Double.%MyInt.loc19_39.2 (%MyInt) = call %bound_method.loc20_22(%x.ref.loc20_10, %x.ref.loc20_21) -// CHECK:STDOUT: %.loc20_23.1: @Double.%MyInt.loc19_39.2 (%MyInt) = value_of_initializer %.loc20_22.3 -// CHECK:STDOUT: %.loc20_23.2: @Double.%MyInt.loc19_39.2 (%MyInt) = converted %.loc20_22.3, %.loc20_23.1 +// CHECK:STDOUT: %.loc20_22.3: init @Double.%MyInt.loc19_39.1 (%MyInt) = call %bound_method.loc20_22(%x.ref.loc20_10, %x.ref.loc20_21) +// CHECK:STDOUT: %.loc20_23.1: @Double.%MyInt.loc19_39.1 (%MyInt) = value_of_initializer %.loc20_22.3 +// CHECK:STDOUT: %.loc20_23.2: @Double.%MyInt.loc19_39.1 (%MyInt) = converted %.loc20_22.3, %.loc20_23.1 // CHECK:STDOUT: return %.loc20_23.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.loc5(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8f9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(constants.%N) { -// CHECK:STDOUT: %N.loc11_13.2 => constants.%N +// CHECK:STDOUT: %N.loc11_13.1 => constants.%N // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %iN.builtin => constants.%iN.builtin @@ -398,19 +398,19 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.loc5(constants.%Add.facet.0e5) { // CHECK:STDOUT: %Self => constants.%Add.facet.0e5 -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%MyInt // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Double(constants.%N) { -// CHECK:STDOUT: %N.loc19_11.2 => constants.%N -// CHECK:STDOUT: %MyInt.loc19_39.2 => constants.%MyInt +// CHECK:STDOUT: %N.loc19_11.1 => constants.%N +// CHECK:STDOUT: %MyInt.loc19_39.1 => constants.%MyInt // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.loc5(constants.%Add.facet.5a7) { // CHECK:STDOUT: %Self => constants.%Add.facet.5a7 -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%MyInt // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -435,21 +435,21 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, imports.%Main.import_ref.5a3 [concrete] -// CHECK:STDOUT: %Op.type.31b: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.31b: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.d59: %Op.type.31b = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type.8f9: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Add.impl_witness.e7c: = impl_witness imports.%Add.impl_witness_table, @Add.impl(%N) [symbolic] -// CHECK:STDOUT: %Op.type.883: type = fn_type @Op.2, @Add.impl(%N) [symbolic] +// CHECK:STDOUT: %Op.type.883: type = fn_type @Op.1, @Add.impl(%N) [symbolic] // CHECK:STDOUT: %Op.8bc: %Op.type.883 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.a71: type = pattern_type %MyInt.09f [symbolic] // CHECK:STDOUT: %require_complete.fc7: = require_complete_type %MyInt.09f [symbolic] // CHECK:STDOUT: %Add.impl_witness.976: = impl_witness imports.%Add.impl_witness_table, @Add.impl(%int_64) [concrete] -// CHECK:STDOUT: %Op.type.5a6: type = fn_type @Op.2, @Add.impl(%int_64) [concrete] +// CHECK:STDOUT: %Op.type.5a6: type = fn_type @Op.1, @Add.impl(%int_64) [concrete] // CHECK:STDOUT: %Op.cf9: %Op.type.5a6 = struct_value () [concrete] // CHECK:STDOUT: %Add.facet.434: %Add.type = facet_value %MyInt.f30, (%Add.impl_witness.976) [concrete] // CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Op.type.31b, %Add.facet.434 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.cf9, @Op.2(%int_64) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.cf9, @Op.1(%int_64) [concrete] // CHECK:STDOUT: %CallImportedDouble.type: type = fn_type @CallImportedDouble [concrete] // CHECK:STDOUT: %CallImportedDouble: %CallImportedDouble.type = struct_value () [concrete] // CHECK:STDOUT: %Double.type: type = fn_type @Double [concrete] @@ -458,7 +458,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Add.facet.5a7: %Add.type = facet_value %MyInt.09f, (%Add.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %.0a6: type = fn_type_with_self_type %Op.type.31b, %Add.facet.5a7 [symbolic] // CHECK:STDOUT: %impl.elem0: %.0a6 = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.1(%Add.facet.5a7) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.2(%Add.facet.5a7) [symbolic] // CHECK:STDOUT: %Double.specific_fn: = specific_function %Double, @Double(%int_64) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -550,7 +550,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Add.impl_witness: = impl_witness imports.%Add.impl_witness_table, @Add.impl(%N) [symbolic = %Add.impl_witness (constants.%Add.impl_witness.e7c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @Add.impl(%N) [symbolic = %Op.type (constants.%Op.type.883)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.1, @Add.impl(%N) [symbolic = %Op.type (constants.%Op.type.883)] // CHECK:STDOUT: %Op: @Add.impl.%Op.type (%Op.type.883) = struct_value () [symbolic = %Op (constants.%Op.8bc)] // CHECK:STDOUT: %require_complete: = require_complete_type %MyInt [symbolic = %require_complete (constants.%require_complete.fc7)] // CHECK:STDOUT: @@ -584,7 +584,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %impl.elem0: %.39b = impl_witness_access constants.%Add.impl_witness.976, element0 [concrete = constants.%Op.cf9] // CHECK:STDOUT: %bound_method.loc9_11: = bound_method %x.ref.loc9_10, %impl.elem0 // CHECK:STDOUT: %x.ref.loc9_21: %MyInt.f30 = name_ref x, %x -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(constants.%int_64) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.1(constants.%int_64) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_22: = bound_method %x.ref.loc9_10, %specific_fn // CHECK:STDOUT: %int.sadd: init %MyInt.f30 = call %bound_method.loc9_22(%x.ref.loc9_10, %x.ref.loc9_21) // CHECK:STDOUT: %.loc9_23.1: %MyInt.f30 = value_of_initializer %int.sadd @@ -592,7 +592,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: return %.loc9_23.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.1(imports.%Main.import_ref.e5e: %Add.type) [from "generic_impl.carbon"] { +// CHECK:STDOUT: generic fn @Op.2(imports.%Main.import_ref.e5e: %Add.type) [from "generic_impl.carbon"] { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.8f9)] @@ -600,7 +600,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.2(imports.%Main.import_ref.f1e294.3: Core.IntLiteral) [from "generic_impl.carbon"] { +// CHECK:STDOUT: generic fn @Op.1(imports.%Main.import_ref.f1e294.3: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.09f)] // CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.a71)] @@ -632,7 +632,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, (%Add.lookup_impl_witness) [symbolic = %Add.facet (constants.%Add.facet.5a7)] // CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Op.type.31b, %Add.facet [symbolic = %.1 (constants.%.0a6)] // CHECK:STDOUT: %impl.elem0: @Double.%.1 (%.0a6) = impl_witness_access %Add.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.1(%Add.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.2(%Add.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -655,7 +655,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %complete_type => constants.%complete_type.4a1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Op.1(constants.%Self) { +// CHECK:STDOUT: specific @Op.2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8f9 @@ -672,7 +672,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %require_complete => constants.%require_complete.fc7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Op.2(constants.%N) { +// CHECK:STDOUT: specific @Op.1(constants.%N) { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %MyInt => constants.%MyInt.09f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 @@ -689,7 +689,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Op.2(constants.%int_64) { +// CHECK:STDOUT: specific @Op.1(constants.%int_64) { // CHECK:STDOUT: %N => constants.%int_64 // CHECK:STDOUT: %MyInt => constants.%MyInt.f30 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e50 @@ -717,7 +717,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %specific_impl_fn => constants.%Op.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Op.1(constants.%Add.facet.434) { +// CHECK:STDOUT: specific @Op.2(constants.%Add.facet.434) { // CHECK:STDOUT: %Self => constants.%Add.facet.434 // CHECK:STDOUT: %Self.as_type => constants.%MyInt.f30 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e50 @@ -848,10 +848,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref.loc9_25: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] // CHECK:STDOUT: %ToLiteral.ref: %ToLiteral.type.e7c = name_ref ToLiteral, file.%ToLiteral.decl.loc6 [concrete = constants.%ToLiteral.cf3] -// CHECK:STDOUT: %N.ref.loc9_39: %i32.builtin = name_ref N, %N.loc9_9.1 [symbolic = %N.loc9_9.2 (constants.%N.987)] -// CHECK:STDOUT: %int.convert_checked.loc9_40.1: init Core.IntLiteral = call %ToLiteral.ref(%N.ref.loc9_39) [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] -// CHECK:STDOUT: %.loc9_40.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc9_40.1 [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] -// CHECK:STDOUT: %.loc9_40.2: Core.IntLiteral = converted %int.convert_checked.loc9_40.1, %.loc9_40.1 [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %N.ref.loc9_39: %i32.builtin = name_ref N, %N.loc9_9.2 [symbolic = %N.loc9_9.1 (constants.%N.987)] +// CHECK:STDOUT: %int.convert_checked.loc9_40.2: init Core.IntLiteral = call %ToLiteral.ref(%N.ref.loc9_39) [symbolic = %int.convert_checked.loc9_40.1 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %.loc9_40.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc9_40.2 [symbolic = %int.convert_checked.loc9_40.1 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %.loc9_40.2: Core.IntLiteral = converted %int.convert_checked.loc9_40.2, %.loc9_40.1 [symbolic = %int.convert_checked.loc9_40.1 (constants.%int.convert_checked.346)] // CHECK:STDOUT: %int.make_type_signed.loc9_41: init type = call %Int.ref.loc9_25(%.loc9_40.2) [symbolic = %iN.builtin (constants.%iN.builtin.016)] // CHECK:STDOUT: %.loc9_41.1: type = value_of_initializer %int.make_type_signed.loc9_41 [symbolic = %iN.builtin (constants.%iN.builtin.016)] // CHECK:STDOUT: %.loc9_41.2: type = converted %int.make_type_signed.loc9_41, %.loc9_41.1 [symbolic = %iN.builtin (constants.%iN.builtin.016)] @@ -862,7 +862,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %.loc9_19.2: type = value_of_initializer %int.make_type_signed.loc9_19 [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc9_19.3: type = converted %int.make_type_signed.loc9_19, %.loc9_19.2 [concrete = constants.%i32.builtin] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc9_9.1: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N.loc9_9.2 (constants.%N.987)] +// CHECK:STDOUT: %N.loc9_9.2: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N.loc9_9.1 (constants.%N.987)] // CHECK:STDOUT: %return.param: ref @Make.%iN.builtin (%iN.builtin.016) = out_param call_param0 // CHECK:STDOUT: %return: ref @Make.%iN.builtin (%iN.builtin.016) = return_slot %return.param // CHECK:STDOUT: } @@ -889,17 +889,17 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %return.param_patt: @MakeFromClass.%pattern_type (%pattern_type.9eb) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, file.%Int.decl [concrete = constants.%Int] -// CHECK:STDOUT: %N.ref.loc18_39: %OtherInt = name_ref N, %N.loc18_18.1 [symbolic = %N.loc18_18.2 (constants.%N.335)] +// CHECK:STDOUT: %N.ref.loc18_39: %OtherInt = name_ref N, %N.loc18_18.2 [symbolic = %N.loc18_18.1 (constants.%N.335)] // CHECK:STDOUT: %ToLiteral.ref: %ToLiteral.type.67d = name_ref ToLiteral, @OtherInt.%ToLiteral.decl [concrete = constants.%ToLiteral.ec2] -// CHECK:STDOUT: %ToLiteral.bound.loc18_40.1: = bound_method %N.ref.loc18_39, %ToLiteral.ref [symbolic = %ToLiteral.bound.loc18_40.2 (constants.%ToLiteral.bound)] -// CHECK:STDOUT: %int.convert_checked.loc18_51.1: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.1(%N.ref.loc18_39) [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] -// CHECK:STDOUT: %.loc18_51.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc18_51.1 [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] -// CHECK:STDOUT: %.loc18_51.2: Core.IntLiteral = converted %int.convert_checked.loc18_51.1, %.loc18_51.1 [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %ToLiteral.bound.loc18_40.2: = bound_method %N.ref.loc18_39, %ToLiteral.ref [symbolic = %ToLiteral.bound.loc18_40.1 (constants.%ToLiteral.bound)] +// CHECK:STDOUT: %int.convert_checked.loc18_51.2: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.2(%N.ref.loc18_39) [symbolic = %int.convert_checked.loc18_51.1 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %.loc18_51.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc18_51.2 [symbolic = %int.convert_checked.loc18_51.1 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %.loc18_51.2: Core.IntLiteral = converted %int.convert_checked.loc18_51.2, %.loc18_51.1 [symbolic = %int.convert_checked.loc18_51.1 (constants.%int.convert_checked.b6b)] // CHECK:STDOUT: %int.make_type_signed: init type = call %Int.ref(%.loc18_51.2) [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] // CHECK:STDOUT: %.loc18_52.1: type = value_of_initializer %int.make_type_signed [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] // CHECK:STDOUT: %.loc18_52.2: type = converted %int.make_type_signed, %.loc18_52.1 [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] // CHECK:STDOUT: %OtherInt.ref: type = name_ref OtherInt, file.%OtherInt.decl [concrete = constants.%OtherInt] -// CHECK:STDOUT: %N.loc18_18.1: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N.loc18_18.2 (constants.%N.335)] +// CHECK:STDOUT: %N.loc18_18.2: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N.loc18_18.1 (constants.%N.335)] // CHECK:STDOUT: %return.param: ref @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = out_param call_param0 // CHECK:STDOUT: %return: ref @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = return_slot %return.param // CHECK:STDOUT: } @@ -946,20 +946,20 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: fn @FromLiteral(%n.param: Core.IntLiteral) -> %i32.builtin = "int.convert_checked"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make(%N.loc9_9.1: %i32.builtin) { -// CHECK:STDOUT: %N.loc9_9.2: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N.loc9_9.2 (constants.%N.987)] -// CHECK:STDOUT: %int.convert_checked.loc9_40.2: init Core.IntLiteral = call constants.%ToLiteral.cf3(%N.loc9_9.2) [symbolic = %int.convert_checked.loc9_40.2 (constants.%int.convert_checked.346)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc9_40.2 [symbolic = %iN.builtin (constants.%iN.builtin.016)] +// CHECK:STDOUT: generic fn @Make(%N.loc9_9.2: %i32.builtin) { +// CHECK:STDOUT: %N.loc9_9.1: %i32.builtin = bind_symbolic_name N, 0 [symbolic = %N.loc9_9.1 (constants.%N.987)] +// CHECK:STDOUT: %int.convert_checked.loc9_40.1: init Core.IntLiteral = call constants.%ToLiteral.cf3(%N.loc9_9.1) [symbolic = %int.convert_checked.loc9_40.1 (constants.%int.convert_checked.346)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc9_40.1 [symbolic = %iN.builtin (constants.%iN.builtin.016)] // CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.bd6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.88f)] -// CHECK:STDOUT: %Make.specific_fn.loc9_52.2: = specific_function constants.%Make, @Make(%N.loc9_9.2) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] +// CHECK:STDOUT: %Make.specific_fn.loc9_52.2: = specific_function constants.%Make, @Make(%N.loc9_9.1) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.%iN.builtin (%iN.builtin.016) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Make.ref: %Make.type = name_ref Make, file.%Make.decl [concrete = constants.%Make] -// CHECK:STDOUT: %N.ref.loc9_57: %i32.builtin = name_ref N, %N.loc9_9.1 [symbolic = %N.loc9_9.2 (constants.%N.987)] +// CHECK:STDOUT: %N.ref.loc9_57: %i32.builtin = name_ref N, %N.loc9_9.2 [symbolic = %N.loc9_9.1 (constants.%N.987)] // CHECK:STDOUT: %Make.specific_fn.loc9_52.1: = specific_function %Make.ref, @Make(constants.%N.987) [symbolic = %Make.specific_fn.loc9_52.2 (constants.%Make.specific_fn)] // CHECK:STDOUT: %Make.call: init @Make.%iN.builtin (%iN.builtin.016) = call %Make.specific_fn.loc9_52.1() // CHECK:STDOUT: %.loc9_59.1: @Make.%iN.builtin (%iN.builtin.016) = value_of_initializer %Make.call @@ -970,21 +970,21 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: fn @ToLiteral.loc16(%self.param.loc16: %OtherInt) -> Core.IntLiteral = "int.convert_checked"; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeFromClass(%N.loc18_18.1: %OtherInt) { -// CHECK:STDOUT: %N.loc18_18.2: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N.loc18_18.2 (constants.%N.335)] -// CHECK:STDOUT: %ToLiteral.bound.loc18_40.2: = bound_method %N.loc18_18.2, constants.%ToLiteral.ec2 [symbolic = %ToLiteral.bound.loc18_40.2 (constants.%ToLiteral.bound)] -// CHECK:STDOUT: %int.convert_checked.loc18_51.2: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.2(%N.loc18_18.2) [symbolic = %int.convert_checked.loc18_51.2 (constants.%int.convert_checked.b6b)] -// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc18_51.2 [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] +// CHECK:STDOUT: generic fn @MakeFromClass(%N.loc18_18.2: %OtherInt) { +// CHECK:STDOUT: %N.loc18_18.1: %OtherInt = bind_symbolic_name N, 0 [symbolic = %N.loc18_18.1 (constants.%N.335)] +// CHECK:STDOUT: %ToLiteral.bound.loc18_40.1: = bound_method %N.loc18_18.1, constants.%ToLiteral.ec2 [symbolic = %ToLiteral.bound.loc18_40.1 (constants.%ToLiteral.bound)] +// CHECK:STDOUT: %int.convert_checked.loc18_51.1: init Core.IntLiteral = call %ToLiteral.bound.loc18_40.1(%N.loc18_18.1) [symbolic = %int.convert_checked.loc18_51.1 (constants.%int.convert_checked.b6b)] +// CHECK:STDOUT: %iN.builtin: type = int_type signed, %int.convert_checked.loc18_51.1 [symbolic = %iN.builtin (constants.%iN.builtin.9ef)] // CHECK:STDOUT: %pattern_type: type = pattern_type %iN.builtin [symbolic = %pattern_type (constants.%pattern_type.9eb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %iN.builtin [symbolic = %require_complete (constants.%require_complete.c7d)] -// CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.2: = specific_function constants.%MakeFromClass, @MakeFromClass(%N.loc18_18.2) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] +// CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.2: = specific_function constants.%MakeFromClass, @MakeFromClass(%N.loc18_18.1) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @MakeFromClass.%iN.builtin (%iN.builtin.9ef) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %MakeFromClass.ref: %MakeFromClass.type = name_ref MakeFromClass, file.%MakeFromClass.decl [concrete = constants.%MakeFromClass] -// CHECK:STDOUT: %N.ref.loc18_77: %OtherInt = name_ref N, %N.loc18_18.1 [symbolic = %N.loc18_18.2 (constants.%N.335)] +// CHECK:STDOUT: %N.ref.loc18_77: %OtherInt = name_ref N, %N.loc18_18.2 [symbolic = %N.loc18_18.1 (constants.%N.335)] // CHECK:STDOUT: %MakeFromClass.specific_fn.loc18_63.1: = specific_function %MakeFromClass.ref, @MakeFromClass(constants.%N.335) [symbolic = %MakeFromClass.specific_fn.loc18_63.2 (constants.%MakeFromClass.specific_fn)] // CHECK:STDOUT: %MakeFromClass.call: init @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = call %MakeFromClass.specific_fn.loc18_63.1() // CHECK:STDOUT: %.loc18_79.1: @MakeFromClass.%iN.builtin (%iN.builtin.9ef) = value_of_initializer %MakeFromClass.call @@ -994,8 +994,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make(constants.%N.987) { -// CHECK:STDOUT: %N.loc9_9.2 => constants.%N.987 -// CHECK:STDOUT: %int.convert_checked.loc9_40.2 => constants.%int.convert_checked.346 +// CHECK:STDOUT: %N.loc9_9.1 => constants.%N.987 +// CHECK:STDOUT: %int.convert_checked.loc9_40.1 => constants.%int.convert_checked.346 // CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.016 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.bd6 // CHECK:STDOUT: @@ -1005,9 +1005,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MakeFromClass(constants.%N.335) { -// CHECK:STDOUT: %N.loc18_18.2 => constants.%N.335 -// CHECK:STDOUT: %ToLiteral.bound.loc18_40.2 => constants.%ToLiteral.bound -// CHECK:STDOUT: %int.convert_checked.loc18_51.2 => constants.%int.convert_checked.b6b +// CHECK:STDOUT: %N.loc18_18.1 => constants.%N.335 +// CHECK:STDOUT: %ToLiteral.bound.loc18_40.1 => constants.%ToLiteral.bound +// CHECK:STDOUT: %int.convert_checked.loc18_51.1 => constants.%int.convert_checked.b6b // CHECK:STDOUT: %iN.builtin => constants.%iN.builtin.9ef // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9eb // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_compound.carbon b/toolchain/check/testdata/impl/import_compound.carbon index c687ffe54fda..9b9b0f316c84 100644 --- a/toolchain/check/testdata/impl/import_compound.carbon +++ b/toolchain/check/testdata/impl/import_compound.carbon @@ -179,13 +179,13 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %self.patt: @G.loc12.%pattern_type (%pattern_type.4e4) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @G.loc12.%pattern_type (%pattern_type.4e4) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G.loc12.%Self.as_type.loc12_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @G.loc12.%Self.as_type.loc12_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Instance.type = name_ref Self, @Instance.%Self [symbolic = %Self (constants.%Self.cf8)] -// CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref, %Self.as_type.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref, %Self.as_type.loc12_14.1 [symbolic = %Self.as_type.loc12_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.loc12.%Self.as_type.loc12_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G.loc12.%Self.as_type.loc12_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, %G.decl [concrete = constants.%assoc0.ab8] // CHECK:STDOUT: @@ -229,10 +229,10 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.loc12(@Instance.%Self: %Instance.type) { // CHECK:STDOUT: %Self: %Instance.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.cf8)] -// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc12_14.1 [symbolic = %pattern_type (constants.%pattern_type.4e4)] +// CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc12_14.2 [symbolic = %pattern_type (constants.%pattern_type.4e4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G.loc12.%Self.as_type.loc12_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @G.loc12.%Self.as_type.loc12_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.loc16(%self.param: %struct_type.i) { @@ -246,13 +246,13 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc12(constants.%Self.cf8) { // CHECK:STDOUT: %Self => constants.%Self.cf8 -// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc12_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc12(constants.%Instance.facet) { // CHECK:STDOUT: %Self => constants.%Instance.facet -// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%struct_type.i +// CHECK:STDOUT: %Self.as_type.loc12_14.2 => constants.%struct_type.i // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -267,13 +267,13 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Self.73c: %NonInstance.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %NonInstance.assoc_type: type = assoc_entity_type @NonInstance [concrete] // CHECK:STDOUT: %assoc0: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.474 [concrete] -// CHECK:STDOUT: %F.type.9e5: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.type.9e5: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.4e4: %F.type.9e5 = struct_value () [concrete] // CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete] // CHECK:STDOUT: %NonInstance.impl_witness: = impl_witness imports.%NonInstance.impl_witness_table [concrete] // CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%NonInstance.impl_witness) [concrete] // CHECK:STDOUT: %.923: type = fn_type_with_self_type %F.type.9e5, %NonInstance.facet [concrete] -// CHECK:STDOUT: %F.type.042: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.type.042: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.db4: %F.type.042 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -352,13 +352,13 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%Main.import_ref.f85: %NonInstance.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%Main.import_ref.f85: %NonInstance.type) [from "lib.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2 [from "lib.carbon"]; +// CHECK:STDOUT: fn @F.1 [from "lib.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.73c) {} +// CHECK:STDOUT: specific @F.2(constants.%Self.73c) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_non-instance.carbon // CHECK:STDOUT: @@ -587,7 +587,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Self.cf8: %Instance.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b4d [concrete] -// CHECK:STDOUT: %G.type.1e1: type = fn_type @G.1 [concrete] +// CHECK:STDOUT: %G.type.1e1: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.449: %G.type.1e1 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cf8 [symbolic] // CHECK:STDOUT: %pattern_type.4e4: type = pattern_type %Self.as_type [symbolic] @@ -595,7 +595,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Instance.impl_witness: = impl_witness imports.%Instance.impl_witness_table [concrete] // CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%Instance.impl_witness) [concrete] // CHECK:STDOUT: %.efa: type = fn_type_with_self_type %G.type.1e1, %Instance.facet [concrete] -// CHECK:STDOUT: %G.type.0c0: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.type.0c0: type = fn_type @G.1 [concrete] // CHECK:STDOUT: %G.484: %G.type.0c0 = struct_value () [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %struct_type.i [concrete] // CHECK:STDOUT: %pattern_type.72c: type = pattern_type %ptr [concrete] @@ -702,7 +702,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G.1(imports.%Main.import_ref.0d8: %Instance.type) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @G.2(imports.%Main.import_ref.0d8: %Instance.type) [from "lib.carbon"] { // CHECK:STDOUT: %Self: %Instance.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.cf8)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.4e4)] @@ -710,7 +710,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G.2 [from "lib.carbon"]; +// CHECK:STDOUT: fn @G.1 [from "lib.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @InstanceCallIndirectImport(%p.param: %ptr) { // CHECK:STDOUT: !entry: @@ -729,7 +729,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.cf8) { +// CHECK:STDOUT: specific @G.2(constants.%Self.cf8) { // CHECK:STDOUT: %Self => constants.%Self.cf8 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4e4 diff --git a/toolchain/check/testdata/impl/import_extend_impl.carbon b/toolchain/check/testdata/impl/import_extend_impl.carbon index 34ba72e488be..aab92c01b97f 100644 --- a/toolchain/check/testdata/impl/import_extend_impl.carbon +++ b/toolchain/check/testdata/impl/import_extend_impl.carbon @@ -128,11 +128,11 @@ fn G(c: C) { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e03 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] -// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %.038: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] -// CHECK:STDOUT: %F.type.f36: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.type.f36: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.4c3: %F.type.f36 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -205,11 +205,11 @@ fn G(c: C) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%Main.import_ref.5dd: %I.type) [from "extend_impl_library.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%Main.import_ref.5dd: %I.type) [from "extend_impl_library.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2 [from "extend_impl_library.carbon"]; +// CHECK:STDOUT: fn @F.1 [from "extend_impl_library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self) {} +// CHECK:STDOUT: specific @F.2(constants.%Self) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_generic.carbon b/toolchain/check/testdata/impl/import_generic.carbon index 7341eb9166f2..e77103aa54e0 100644 --- a/toolchain/check/testdata/impl/import_generic.carbon +++ b/toolchain/check/testdata/impl/import_generic.carbon @@ -131,7 +131,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %I.decl: %I.type.dac = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc5_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @I.impl.084 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] @@ -167,11 +167,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %I.impl_witness.loc12: = impl_witness %I.impl_witness_table.loc12, @I.impl.cd2(constants.%T) [symbolic = @I.impl.cd2.%I.impl_witness (constants.%I.impl_witness.6ad)] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @I(%T.loc5_13.2: type) { +// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc5_13.1)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.209)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -222,7 +222,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%T +// CHECK:STDOUT: %T.loc5_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.325 @@ -236,7 +236,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%ptr) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%ptr +// CHECK:STDOUT: %T.loc5_13.1 => constants.%ptr // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.0e2 @@ -507,7 +507,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %J.decl: %J.type.2b8 = interface_decl @J [concrete = constants.%J.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc5_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @J.impl.199 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] @@ -534,11 +534,11 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %J.impl_witness.loc17: = impl_witness %J.impl_witness_table.loc17, @J.impl.dfd(constants.%T) [symbolic = @J.impl.dfd.%J.impl_witness (constants.%J.impl_witness.5a8)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @J(%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: generic interface @J(%T.loc5_13.2: type) { +// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc5_13.2)> [symbolic = %J.type (constants.%J.type.b72)] +// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc5_13.1)> [symbolic = %J.type (constants.%J.type.b72)] // CHECK:STDOUT: %Self.2: @J.%J.type (%J.type.b72) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -577,7 +577,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(constants.%T) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%T +// CHECK:STDOUT: %T.loc5_13.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.impl.199(constants.%T) { @@ -587,7 +587,7 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J(constants.%ptr) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%ptr +// CHECK:STDOUT: %T.loc5_13.1 => constants.%ptr // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.impl.dfd(constants.%T) { diff --git a/toolchain/check/testdata/impl/import_self.carbon b/toolchain/check/testdata/impl/import_self.carbon index 14109ffee072..d4db5a8f01a9 100644 --- a/toolchain/check/testdata/impl/import_self.carbon +++ b/toolchain/check/testdata/impl/import_self.carbon @@ -74,24 +74,24 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %return.param_patt: @Op.%pattern_type (%pattern_type) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_37: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_37: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %self.param: @Op.%Self.as_type.loc5_15.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15.1 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Op.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param1 -// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self: @Op.%Self.as_type.loc5_15.2 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @Op.%Self.as_type.loc5_15.2 (%Self.as_type) = value_param call_param1 +// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_28: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @Op.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @Op.%Self.as_type.loc5_15.1 (%Self.as_type) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Op.%Self.as_type.loc5_15.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %other: @Op.%Self.as_type.loc5_15.2 (%Self.as_type) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @Op.%Self.as_type.loc5_15.2 (%Self.as_type) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Op.%Self.as_type.loc5_15.2 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, %Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -103,15 +103,15 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op(@Add.%Self: %Add.type) { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Op.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Op.%Self.as_type.loc5_15.1 (%Self.as_type)) -> @Op.%Self.as_type.loc5_15.1 (%Self.as_type); +// CHECK:STDOUT: fn(%self.param: @Op.%Self.as_type.loc5_15.2 (%Self.as_type), %other.param: @Op.%Self.as_type.loc5_15.2 (%Self.as_type)) -> @Op.%Self.as_type.loc5_15.2 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -137,10 +137,10 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %assoc0.5ca: %Add.assoc_type = assoc_entity element0, imports.%Main.import_ref.5a3 [concrete] // CHECK:STDOUT: %.59e: type = fn_type_with_self_type %Op.type.31b, %Add.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.3, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.3(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -262,7 +262,7 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc11_23: %empty_tuple.type = converted %Op.call, %tuple [concrete = constants.%empty_tuple] // CHECK:STDOUT: %Op.bound: = bound_method %.loc11_22.1, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.3(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_22: = bound_method %.loc11_22.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %.loc11_22.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc11_22(%addr) diff --git a/toolchain/check/testdata/impl/import_thunk.carbon b/toolchain/check/testdata/impl/import_thunk.carbon index 95a7dea801e6..e4019b1e8a52 100644 --- a/toolchain/check/testdata/impl/import_thunk.carbon +++ b/toolchain/check/testdata/impl/import_thunk.carbon @@ -170,7 +170,7 @@ fn G() { // CHECK:STDOUT: %.loc5_14.2: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc5_14.3: type = converted %.loc5_14.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %X.loc5_9.1: %empty_tuple.type = bind_symbolic_name X, 0 [symbolic = %X.loc5_9.2 (constants.%X)] +// CHECK:STDOUT: %X.loc5_9.2: %empty_tuple.type = bind_symbolic_name X, 0 [symbolic = %X.loc5_9.1 (constants.%X)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @I.impl [concrete] { // CHECK:STDOUT: %Y.patt: %pattern_type.cb1 = symbolic_binding_pattern Y, 0 [concrete] @@ -236,8 +236,8 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%X.loc5_9.1: %empty_tuple.type) { -// CHECK:STDOUT: %X.loc5_9.2: %empty_tuple.type = bind_symbolic_name X, 0 [symbolic = %X.loc5_9.2 (constants.%X)] +// CHECK:STDOUT: generic class @C(%X.loc5_9.2: %empty_tuple.type) { +// CHECK:STDOUT: %X.loc5_9.1: %empty_tuple.type = bind_symbolic_name X, 0 [symbolic = %X.loc5_9.1 (constants.%X)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -310,11 +310,11 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { -// CHECK:STDOUT: %X.loc5_9.2 => constants.%X +// CHECK:STDOUT: %X.loc5_9.1 => constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%Y) { -// CHECK:STDOUT: %X.loc5_9.2 => constants.%Y +// CHECK:STDOUT: %X.loc5_9.1 => constants.%Y // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -363,33 +363,33 @@ fn G() { // CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0.3f3: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e03 [concrete] -// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [concrete] // CHECK:STDOUT: %Y: %empty_tuple.type = bind_symbolic_name Y, 0 [symbolic] // CHECK:STDOUT: %C.13320f.2: type = class_type @C, @C(%Y) [symbolic] // CHECK:STDOUT: %I.impl_witness.7d9: = impl_witness imports.%I.impl_witness_table, @I.impl(%Y) [symbolic] -// CHECK:STDOUT: %F.type.0daaa1.1: type = fn_type @F.2, @I.impl(%Y) [symbolic] +// CHECK:STDOUT: %F.type.0daaa1.1: type = fn_type @F.1, @I.impl(%Y) [symbolic] // CHECK:STDOUT: %F.49c1ac.1: %F.type.0daaa1.1 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.ccc: type = pattern_type %C.13320f.2 [symbolic] // CHECK:STDOUT: %F.type.0daaa1.2: type = fn_type @F.3, @I.impl(%Y) [symbolic] // CHECK:STDOUT: %F.49c1ac.2: %F.type.0daaa1.2 = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.a35: = require_complete_type %C.13320f.2 [symbolic] -// CHECK:STDOUT: %F.specific_fn.8d9: = specific_function %F.49c1ac.1, @F.2(%Y) [symbolic] +// CHECK:STDOUT: %F.specific_fn.8d9: = specific_function %F.49c1ac.1, @F.1(%Y) [symbolic] // CHECK:STDOUT: %C.val.56a: %C.13320f.2 = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.13320f.2, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet.666: %Destroy.type = facet_value %C.13320f.2, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Op.type.989: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.989: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %.5fd: type = fn_type_with_self_type %Op.type.989, %Destroy.facet.666 [symbolic] // CHECK:STDOUT: %impl.elem0: %.5fd = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.1(%Destroy.facet.666) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.2(%Destroy.facet.666) [symbolic] // CHECK:STDOUT: %ptr.40d: type = ptr_type %C.13320f.2 [symbolic] // CHECK:STDOUT: %require_complete.0b0: = require_complete_type %ptr.40d [symbolic] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %Op.type.ed4: type = fn_type @Op.2, @Destroy.impl(%T) [symbolic] +// CHECK:STDOUT: %Op.type.ed4: type = fn_type @Op.1, @Destroy.impl(%T) [symbolic] // CHECK:STDOUT: %Op.486: %Op.type.ed4 = struct_value () [symbolic] // CHECK:STDOUT: %I.impl_witness.02b: = impl_witness imports.%I.impl_witness_table, @I.impl(%empty_tuple) [concrete] -// CHECK:STDOUT: %F.type.af4856.1: type = fn_type @F.2, @I.impl(%empty_tuple) [concrete] +// CHECK:STDOUT: %F.type.af4856.1: type = fn_type @F.1, @I.impl(%empty_tuple) [concrete] // CHECK:STDOUT: %F.5fa954.1: %F.type.af4856.1 = struct_value () [concrete] // CHECK:STDOUT: %F.type.af4856.2: type = fn_type @F.3, @I.impl(%empty_tuple) [concrete] // CHECK:STDOUT: %F.5fa954.2: %F.type.af4856.2 = struct_value () [concrete] @@ -398,16 +398,16 @@ fn G() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn.4832e8.1: = specific_function %F.5fa954.2, @F.3(%empty_tuple) [concrete] // CHECK:STDOUT: %pattern_type.186: type = pattern_type %C.607 [concrete] -// CHECK:STDOUT: %F.specific_fn.4832e8.2: = specific_function %F.5fa954.1, @F.2(%empty_tuple) [concrete] +// CHECK:STDOUT: %F.specific_fn.4832e8.2: = specific_function %F.5fa954.1, @F.1(%empty_tuple) [concrete] // CHECK:STDOUT: %C.val.12f: %C.607 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.impl_witness.ce0: = impl_witness imports.%Destroy.impl_witness_table, @Destroy.impl(%C.607) [concrete] -// CHECK:STDOUT: %Op.type.ea0: type = fn_type @Op.2, @Destroy.impl(%C.607) [concrete] +// CHECK:STDOUT: %Op.type.ea0: type = fn_type @Op.1, @Destroy.impl(%C.607) [concrete] // CHECK:STDOUT: %Op.ac0: %Op.type.ea0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.2ce: type = ptr_type %C.607 [concrete] // CHECK:STDOUT: %complete_type.e2c: = complete_type_witness %ptr.2ce [concrete] // CHECK:STDOUT: %Destroy.facet.c44: %Destroy.type = facet_value %C.607, (%Destroy.impl_witness.ce0) [concrete] // CHECK:STDOUT: %.69e: type = fn_type_with_self_type %Op.type.989, %Destroy.facet.c44 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ac0, @Op.2(%C.607) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ac0, @Op.1(%C.607) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -465,7 +465,7 @@ fn G() { // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @I.impl(%Y) [symbolic = %I.impl_witness (constants.%I.impl_witness.7d9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %F.type.1: type = fn_type @F.2, @I.impl(%Y) [symbolic = %F.type.1 (constants.%F.type.0daaa1.1)] +// CHECK:STDOUT: %F.type.1: type = fn_type @F.1, @I.impl(%Y) [symbolic = %F.type.1 (constants.%F.type.0daaa1.1)] // CHECK:STDOUT: %F.1: @I.impl.%F.type.1 (%F.type.0daaa1.1) = struct_value () [symbolic = %F.1 (constants.%F.49c1ac.1)] // CHECK:STDOUT: %F.type.2: type = fn_type @F.3, @I.impl(%Y) [symbolic = %F.type.2 (constants.%F.type.0daaa1.2)] // CHECK:STDOUT: %F.2: @I.impl.%F.type.2 (%F.type.0daaa1.2) = struct_value () [symbolic = %F.2 (constants.%F.49c1ac.2)] @@ -509,7 +509,7 @@ fn G() { // CHECK:STDOUT: %.loc7_16.2: %empty_struct_type = converted %.loc7_16.1, %empty_struct.loc7_16.2 [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc7_17.2: %F.type.af4856.1 = specific_constant imports.%Main.F.5a8, @I.impl(constants.%empty_tuple) [concrete = constants.%F.5fa954.1] // CHECK:STDOUT: %F.ref.loc7_17: %F.type.af4856.1 = name_ref F, %.loc7_17.2 [concrete = constants.%F.5fa954.1] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref.loc7_17, @F.2(constants.%empty_tuple) [concrete = constants.%F.specific_fn.4832e8.2] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.ref.loc7_17, @F.1(constants.%empty_tuple) [concrete = constants.%F.specific_fn.4832e8.2] // CHECK:STDOUT: %.loc7_16.3: ref %C.607 = temporary_storage // CHECK:STDOUT: %.loc7_16.4: init %C.607 = class_init (), %.loc7_16.3 [concrete = constants.%C.val.12f] // CHECK:STDOUT: %.loc7_16.5: ref %C.607 = temporary %.loc7_16.3, %.loc7_16.4 @@ -517,18 +517,18 @@ fn G() { // CHECK:STDOUT: %.loc7_16.7: %C.607 = bind_value %.loc7_16.6 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc7_16.7) // CHECK:STDOUT: %Op.bound: = bound_method %.loc7_16.3, constants.%Op.ac0 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ac0, @Op.2(constants.%C.607) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ac0, @Op.1(constants.%C.607) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc7_16.3, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.2ce = addr_of %.loc7_16.3 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%Main.import_ref.5dd: %I.type) [from "a.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%Main.import_ref.5dd: %I.type) [from "a.carbon"] { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.2(imports.%Main.import_ref.eb1c17.3: %empty_tuple.type) [from "b.carbon"] { +// CHECK:STDOUT: generic fn @F.1(imports.%Main.import_ref.eb1c17.3: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: %Y: %empty_tuple.type = bind_symbolic_name Y, 0 [symbolic = %Y (constants.%Y)] // CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.13320f.2)] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.ccc)] @@ -542,9 +542,9 @@ fn G() { // CHECK:STDOUT: generic fn @F.3(imports.%Main.import_ref.eb1c17.4: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y: %empty_tuple.type = bind_symbolic_name Y, 0 [symbolic = %Y (constants.%Y)] -// CHECK:STDOUT: %F.type: type = fn_type @F.2, @I.impl(%Y) [symbolic = %F.type (constants.%F.type.0daaa1.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I.impl(%Y) [symbolic = %F.type (constants.%F.type.0daaa1.1)] // CHECK:STDOUT: %F: @F.3.%F.type (%F.type.0daaa1.1) = struct_value () [symbolic = %F (constants.%F.49c1ac.1)] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F.2(%Y) [symbolic = %F.specific_fn (constants.%F.specific_fn.8d9)] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F.1(%Y) [symbolic = %F.specific_fn (constants.%F.specific_fn.8d9)] // CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.13320f.2)] // CHECK:STDOUT: %require_complete.1: = require_complete_type %C [symbolic = %require_complete.1 (constants.%require_complete.a35)] // CHECK:STDOUT: %C.val: @F.3.%C (%C.13320f.2) = struct_value () [symbolic = %C.val (constants.%C.val.56a)] @@ -552,7 +552,7 @@ fn G() { // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.666)] // CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Op.type.989, %Destroy.facet [symbolic = %.1 (constants.%.5fd)] // CHECK:STDOUT: %impl.elem0: @F.3.%.1 (%.5fd) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Op.2(%Destroy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)] // CHECK:STDOUT: %ptr: type = ptr_type %C [symbolic = %ptr (constants.%ptr.40d)] // CHECK:STDOUT: %require_complete.2: = require_complete_type %ptr [symbolic = %require_complete.2 (constants.%require_complete.0b0)] // CHECK:STDOUT: @@ -569,7 +569,7 @@ fn G() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.826) {} +// CHECK:STDOUT: specific @F.2(constants.%Self.826) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%Y) { // CHECK:STDOUT: %X => constants.%Y @@ -589,7 +589,7 @@ fn G() { // CHECK:STDOUT: %F.2 => constants.%F.49c1ac.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.2(constants.%Y) { +// CHECK:STDOUT: specific @F.1(constants.%Y) { // CHECK:STDOUT: %Y => constants.%Y // CHECK:STDOUT: %C => constants.%C.13320f.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ccc @@ -630,7 +630,7 @@ fn G() { // CHECK:STDOUT: %require_complete.2 => constants.%complete_type.e2c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.2(constants.%empty_tuple) { +// CHECK:STDOUT: specific @F.1(constants.%empty_tuple) { // CHECK:STDOUT: %Y => constants.%empty_tuple // CHECK:STDOUT: %C => constants.%C.607 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.186 diff --git a/toolchain/check/testdata/impl/import_use_generic.carbon b/toolchain/check/testdata/impl/import_use_generic.carbon index 1b6278ab03d3..4cc519777e04 100644 --- a/toolchain/check/testdata/impl/import_use_generic.carbon +++ b/toolchain/check/testdata/impl/import_use_generic.carbon @@ -83,7 +83,7 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: impl_decl @I.impl [concrete] { @@ -128,8 +128,8 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc4_9.2: type) { +// CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -157,7 +157,7 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc4_9.2 => constants.%T +// CHECK:STDOUT: %T.loc4_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc7(constants.%Self) {} diff --git a/toolchain/check/testdata/impl/interface_args.carbon b/toolchain/check/testdata/impl/interface_args.carbon index e42717f5f581..54293b1c5038 100644 --- a/toolchain/check/testdata/impl/interface_args.carbon +++ b/toolchain/check/testdata/impl/interface_args.carbon @@ -132,19 +132,19 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.96f = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %Dest.patt: %pattern_type.98f = symbolic_binding_pattern Dest, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Dest.loc3_22.1: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.2 (constants.%Dest)] +// CHECK:STDOUT: %Dest.loc3_22.2: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.1 (constants.%Dest)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @ImplicitAs(%Dest.loc3_22.1: type) { -// CHECK:STDOUT: %Dest.loc3_22.2: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.2 (constants.%Dest)] +// CHECK:STDOUT: generic interface @ImplicitAs(%Dest.loc3_22.2: type) { +// CHECK:STDOUT: %Dest.loc3_22.1: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.1 (constants.%Dest)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_22.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Dest.loc3_22.2) [symbolic = %Convert.type (constants.%Convert.type)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %Convert.type (constants.%Convert.type)] // CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type) = struct_value () [symbolic = %Convert (constants.%Convert)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest.loc3_22.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type)] // CHECK:STDOUT: %assoc0.loc4_35.2: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc4_35.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -155,15 +155,15 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return.patt: @Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.1 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %self.param: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] +// CHECK:STDOUT: %self.param: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc4_20.2: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.1 [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -177,26 +177,26 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert(@ImplicitAs.%Dest.loc3_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { +// CHECK:STDOUT: generic fn @Convert(@ImplicitAs.%Dest.loc3_22.2: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.a93)] +// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_20.2 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.a93)] // CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> @Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type)) -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { -// CHECK:STDOUT: %Dest.loc3_22.2 => constants.%Dest +// CHECK:STDOUT: %Dest.loc3_22.1 => constants.%Dest // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert(constants.%Dest, constants.%Self) { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc4_20.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.a93 // CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } @@ -258,7 +258,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.decl: %Action.type.29c = interface_decl @Action [concrete = constants.%Action.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} @@ -281,15 +281,15 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Action(%T.loc4_18.2: type) { +// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T.loc4_18.2)> [symbolic = %Action.type (constants.%Action.type.cca)] +// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T.loc4_18.1)> [symbolic = %Action.type (constants.%Action.type.cca)] // CHECK:STDOUT: %Self.2: @Action.%Action.type (%Action.type.cca) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.e98)] -// CHECK:STDOUT: %Op.type: type = fn_type @Op.loc5, @Action(%T.loc4_18.2) [symbolic = %Op.type (constants.%Op.type.036)] +// CHECK:STDOUT: %Op.type: type = fn_type @Op.loc5, @Action(%T.loc4_18.1) [symbolic = %Op.type (constants.%Op.type.036)] // CHECK:STDOUT: %Op: @Action.%Op.type (%Op.type.036) = struct_value () [symbolic = %Op (constants.%Op.6ed)] -// CHECK:STDOUT: %Action.assoc_type: type = assoc_entity_type @Action, @Action(%T.loc4_18.2) [symbolic = %Action.assoc_type (constants.%Action.assoc_type.32e)] +// CHECK:STDOUT: %Action.assoc_type: type = assoc_entity_type @Action, @Action(%T.loc4_18.1) [symbolic = %Action.assoc_type (constants.%Action.assoc_type.32e)] // CHECK:STDOUT: %assoc0.loc5_22.2: @Action.%Action.assoc_type (%Action.assoc_type.32e) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc5_22.2 (constants.%assoc0.268)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -298,14 +298,14 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %self.patt: @Op.loc5.%pattern_type (%pattern_type.8db) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Op.loc5.%pattern_type (%pattern_type.8db) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_15.2: @Op.loc5.%Action.type (%Action.type.cca) = specific_constant @Action.%Self.1, @Action(constants.%T) [symbolic = %Self (constants.%Self.e98)] // CHECK:STDOUT: %Self.ref: @Op.loc5.%Action.type (%Action.type.cca) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self.e98)] -// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.1 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_22.1: @Action.%Action.assoc_type (%Action.assoc_type.32e) = assoc_entity element0, %Op.decl [symbolic = %assoc0.loc5_22.2 (constants.%assoc0.268)] // CHECK:STDOUT: @@ -358,14 +358,14 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Op.loc5(@Action.%T.loc4_18.1: type, @Action.%Self.1: @Action.%Action.type (%Action.type.cca)) { +// CHECK:STDOUT: generic fn @Op.loc5(@Action.%T.loc4_18.2: type, @Action.%Self.1: @Action.%Action.type (%Action.type.cca)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.cca)] // CHECK:STDOUT: %Self: @Op.loc5.%Action.type (%Action.type.cca) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.e98)] -// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.8db)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.2 [symbolic = %pattern_type (constants.%pattern_type.8db)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Op.loc5.%Self.as_type.loc5_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Op.loc5.%Self.as_type.loc5_15.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Op.loc13(%self.param: %A) { @@ -388,19 +388,19 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%T) { -// CHECK:STDOUT: %T.loc4_18.2 => constants.%T +// CHECK:STDOUT: %T.loc4_18.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.loc5(constants.%T, constants.%Self.e98) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Action.type => constants.%Action.type.cca // CHECK:STDOUT: %Self => constants.%Self.e98 -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8db // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { -// CHECK:STDOUT: %T.loc4_18.2 => constants.%B +// CHECK:STDOUT: %T.loc4_18.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Action.type => constants.%Action.type.cb0 @@ -415,7 +415,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: %Action.type => constants.%Action.type.cb0 // CHECK:STDOUT: %Self => constants.%Action.facet -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%A +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%A // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c10 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -852,7 +852,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.decl: %Factory.type.1a8 = interface_decl @Factory [concrete = constants.%Factory.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} @@ -866,17 +866,17 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.impl_witness: = impl_witness %Factory.impl_witness_table [concrete = constants.%Factory.impl_witness] // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Factory(%T.loc4_19.2: type) { +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T.loc4_19.2)> [symbolic = %Factory.type (constants.%Factory.type.c96)] +// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T.loc4_19.1)> [symbolic = %Factory.type (constants.%Factory.type.c96)] // CHECK:STDOUT: %Self.2: @Factory.%Factory.type (%Factory.type.c96) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.9ba)] -// CHECK:STDOUT: %Make.type: type = fn_type @Make.loc6, @Factory(%T.loc4_19.2) [symbolic = %Make.type (constants.%Make.type.598)] +// CHECK:STDOUT: %Make.type: type = fn_type @Make.loc6, @Factory(%T.loc4_19.1) [symbolic = %Make.type (constants.%Make.type.598)] // CHECK:STDOUT: %Make: @Factory.%Make.type (%Make.type.598) = struct_value () [symbolic = %Make (constants.%Make.737)] -// CHECK:STDOUT: %Factory.assoc_type: type = assoc_entity_type @Factory, @Factory(%T.loc4_19.2) [symbolic = %Factory.assoc_type (constants.%Factory.assoc_type.207)] +// CHECK:STDOUT: %Factory.assoc_type: type = assoc_entity_type @Factory, @Factory(%T.loc4_19.1) [symbolic = %Factory.assoc_type (constants.%Factory.assoc_type.207)] // CHECK:STDOUT: %assoc0.loc6_17.2: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = assoc_entity element0, %Make.decl [symbolic = %assoc0.loc6_17.2 (constants.%assoc0.b3c)] -// CHECK:STDOUT: %Method.type: type = fn_type @Method.loc8, @Factory(%T.loc4_19.2) [symbolic = %Method.type (constants.%Method.type.7ee)] +// CHECK:STDOUT: %Method.type: type = fn_type @Method.loc8, @Factory(%T.loc4_19.1) [symbolic = %Method.type (constants.%Method.type.7ee)] // CHECK:STDOUT: %Method: @Factory.%Method.type (%Method.type.7ee) = struct_value () [symbolic = %Method (constants.%Method.a71)] // CHECK:STDOUT: %assoc1.loc8_31.2: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = assoc_entity element1, %Method.decl [symbolic = %assoc1.loc8_31.2 (constants.%assoc1.e30)] // CHECK:STDOUT: @@ -886,7 +886,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return.patt: @Make.loc6.%pattern_type (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Make.loc6.%pattern_type (%pattern_type.7dc) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %return.param: ref @Make.loc6.%T (%T) = out_param call_param0 // CHECK:STDOUT: %return: ref @Make.loc6.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -897,15 +897,15 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %return.patt: @Method.loc8.%pattern_type.loc8_27 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Method.loc8.%pattern_type.loc8_27 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Method.loc8.%Self.as_type.loc8_19.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.3 [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.2 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %self.param: @Method.loc8.%Self.as_type.loc8_19.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.3 [symbolic = %Self.as_type.loc8_19.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc8_19.2: @Method.loc8.%Factory.type (%Factory.type.c96) = specific_constant @Factory.%Self.1, @Factory(constants.%T) [symbolic = %Self (constants.%Self.9ba)] // CHECK:STDOUT: %Self.ref: @Method.loc8.%Factory.type (%Factory.type.c96) = name_ref Self, %.loc8_19.2 [symbolic = %Self (constants.%Self.9ba)] -// CHECK:STDOUT: %Self.as_type.loc8_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc8_19.3: type = converted %Self.ref, %Self.as_type.loc8_19.2 [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc8_19.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_19.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc8_19.3: type = converted %Self.ref, %Self.as_type.loc8_19.1 [symbolic = %Self.as_type.loc8_19.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Method.loc8.%Self.as_type.loc8_19.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Method.loc8.%Self.as_type.loc8_19.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Method.loc8.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Method.loc8.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -968,22 +968,22 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Make.loc6(@Factory.%T.loc4_19.1: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.c96)) { +// CHECK:STDOUT: generic fn @Make.loc6(@Factory.%T.loc4_19.2: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.c96)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> @Make.loc6.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Method.loc8(@Factory.%T.loc4_19.1: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.c96)) { +// CHECK:STDOUT: generic fn @Method.loc8(@Factory.%T.loc4_19.2: type, @Factory.%Self.1: @Factory.%Factory.type (%Factory.type.c96)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.c96)] // CHECK:STDOUT: %Self: @Method.loc8.%Factory.type (%Factory.type.c96) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.9ba)] -// CHECK:STDOUT: %Self.as_type.loc8_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_13: type = pattern_type %Self.as_type.loc8_19.1 [symbolic = %pattern_type.loc8_13 (constants.%pattern_type.5ea)] +// CHECK:STDOUT: %Self.as_type.loc8_19.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_19.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc8_13: type = pattern_type %Self.as_type.loc8_19.2 [symbolic = %pattern_type.loc8_13 (constants.%pattern_type.5ea)] // CHECK:STDOUT: %pattern_type.loc8_27: type = pattern_type %T [symbolic = %pattern_type.loc8_27 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Method.loc8.%Self.as_type.loc8_19.1 (%Self.as_type)) -> @Method.loc8.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Method.loc8.%Self.as_type.loc8_19.2 (%Self.as_type)) -> @Method.loc8.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make.loc15() -> %B; @@ -991,7 +991,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: fn @Method.loc16(%self.param: %A) -> %B; // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(constants.%T) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%T +// CHECK:STDOUT: %T.loc4_19.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make.loc6(constants.%T, constants.%Self.9ba) { @@ -1003,13 +1003,13 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Factory.type => constants.%Factory.type.c96 // CHECK:STDOUT: %Self => constants.%Self.9ba -// CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc8_19.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.5ea // CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Factory(constants.%B) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%B +// CHECK:STDOUT: %T.loc4_19.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Factory.type => constants.%Factory.type.a5d @@ -1032,7 +1032,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: %Factory.type => constants.%Factory.type.a5d // CHECK:STDOUT: %Self => constants.%Factory.facet -// CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%A +// CHECK:STDOUT: %Self.as_type.loc8_19.2 => constants.%A // CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.c10 // CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.049 // CHECK:STDOUT: } @@ -1079,10 +1079,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Make.type.ec4: type = fn_type @Make.2 [concrete] // CHECK:STDOUT: %Make.377: %Make.type.ec4 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.1a6: type = fn_type @Op.2, @Destroy.impl(%B) [concrete] +// CHECK:STDOUT: %Op.type.1a6: type = fn_type @Op.1, @Destroy.impl(%B) [concrete] // CHECK:STDOUT: %Op.3c2: %Op.type.1a6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.3c2, @Op.2(%B) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.3c2, @Op.1(%B) [concrete] // CHECK:STDOUT: %pattern_type.c10: type = pattern_type %A [concrete] // CHECK:STDOUT: %InstanceB.type: type = fn_type @InstanceB [concrete] // CHECK:STDOUT: %InstanceB: %InstanceB.type = struct_value () [concrete] @@ -1243,7 +1243,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %.loc4: ref %B = splice_block %return {} // CHECK:STDOUT: %Make.call: init %B = call %impl.elem0() to %.loc4 // CHECK:STDOUT: %Op.bound: = bound_method %.loc4, constants.%Op.3c2 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.3c2, @Op.2(constants.%B) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.3c2, @Op.1(constants.%B) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc4, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e79 = addr_of %.loc4 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -1265,7 +1265,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %.loc7: ref %B = splice_block %return {} // CHECK:STDOUT: %Method.call: init %B = call %bound_method.loc8(%a.ref) to %.loc7 // CHECK:STDOUT: %Op.bound: = bound_method %.loc7, constants.%Op.3c2 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.3c2, @Op.2(constants.%B) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.3c2, @Op.1(constants.%B) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7: = bound_method %.loc7, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e79 = addr_of %.loc7 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc7(%addr) diff --git a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon index f0efc02a2b83..fc3ee147e45d 100644 --- a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon +++ b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon @@ -110,10 +110,10 @@ fn G() { // CHECK:STDOUT: %facet_value: %facet_type = facet_value %C, (%I.impl_witness, %J.impl_witness) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%facet_value) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.8e9: type = fn_type @Op.4, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.8e9: type = fn_type @Op.3, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.ddb: %Op.type.8e9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8e6: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ddb, @Op.4(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ddb, @Op.3(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -154,14 +154,14 @@ fn G() { // CHECK:STDOUT: %.loc22_12.2: type = value_of_initializer %type.and [concrete = constants.%facet_type] // CHECK:STDOUT: %.loc22_12.3: type = converted %type.and, %.loc22_12.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc22_6.1: %facet_type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.2 (constants.%T.527)] -// CHECK:STDOUT: %t.param: @F.%T.as_type.loc22_20.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc22_20.1: type = splice_block %.loc22_20.2 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc22: %facet_type = name_ref T, %T.loc22_6.1 [symbolic = %T.loc22_6.2 (constants.%T.527)] -// CHECK:STDOUT: %T.as_type.loc22_20.1: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc22_20.2: type = converted %T.ref.loc22, %T.as_type.loc22_20.1 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc22_6.2: %facet_type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.1 (constants.%T.527)] +// CHECK:STDOUT: %t.param: @F.%T.as_type.loc22_20.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc22_20.1: type = splice_block %.loc22_20.2 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc22: %facet_type = name_ref T, %T.loc22_6.2 [symbolic = %T.loc22_6.1 (constants.%T.527)] +// CHECK:STDOUT: %T.as_type.loc22_20.2: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc22_20.2: type = converted %T.ref.loc22, %T.as_type.loc22_20.2 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.%T.as_type.loc22_20.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.%T.as_type.loc22_20.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } @@ -172,13 +172,13 @@ fn G() { // CHECK:STDOUT: %self.patt: @II.loc16.%pattern_type (%pattern_type.6de) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @II.loc16.%pattern_type (%pattern_type.6de) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @II.loc16.%Self.as_type.loc16_15.1 (%Self.as_type.b70) = value_param call_param0 -// CHECK:STDOUT: %.loc16_15.1: type = splice_block %.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %self.param: @II.loc16.%Self.as_type.loc16_15.2 (%Self.as_type.b70) = value_param call_param0 +// CHECK:STDOUT: %.loc16_15.1: type = splice_block %.loc16_15.2 [symbolic = %Self.as_type.loc16_15.2 (constants.%Self.as_type.b70)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc16_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc16_15.2: type = converted %Self.ref, %Self.as_type.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %Self.as_type.loc16_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_15.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc16_15.2: type = converted %Self.ref, %Self.as_type.loc16_15.1 [symbolic = %Self.as_type.loc16_15.2 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @II.loc16.%Self.as_type.loc16_15.1 (%Self.as_type.b70) = bind_name self, %self.param +// CHECK:STDOUT: %self: @II.loc16.%Self.as_type.loc16_15.2 (%Self.as_type.b70) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %II.decl [concrete = constants.%assoc0.82e] // CHECK:STDOUT: @@ -196,13 +196,13 @@ fn G() { // CHECK:STDOUT: %self.patt: @JJ.loc19.%pattern_type (%pattern_type.4ca) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @JJ.loc19.%pattern_type (%pattern_type.4ca) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @JJ.loc19.%Self.as_type.loc19_15.1 (%Self.as_type.3df) = value_param call_param0 -// CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.3df)] { +// CHECK:STDOUT: %self.param: @JJ.loc19.%Self.as_type.loc19_15.2 (%Self.as_type.3df) = value_param call_param0 +// CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.2 [symbolic = %Self.as_type.loc19_15.2 (constants.%Self.as_type.3df)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.ccd)] -// CHECK:STDOUT: %Self.as_type.loc19_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.3df)] -// CHECK:STDOUT: %.loc19_15.2: type = converted %Self.ref, %Self.as_type.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %Self.as_type.loc19_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc19_15.2 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %.loc19_15.2: type = converted %Self.ref, %Self.as_type.loc19_15.1 [symbolic = %Self.as_type.loc19_15.2 (constants.%Self.as_type.3df)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @JJ.loc19.%Self.as_type.loc19_15.1 (%Self.as_type.3df) = bind_name self, %self.param +// CHECK:STDOUT: %self: @JJ.loc19.%Self.as_type.loc19_15.2 (%Self.as_type.3df) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %JJ.decl [concrete = constants.%assoc0.78c] // CHECK:STDOUT: @@ -270,63 +270,63 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @II.loc16(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc16_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_15.1 [symbolic = %pattern_type (constants.%pattern_type.6de)] +// CHECK:STDOUT: %Self.as_type.loc16_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_15.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_15.2 [symbolic = %pattern_type (constants.%pattern_type.6de)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @II.loc16.%Self.as_type.loc16_15.1 (%Self.as_type.b70)); +// CHECK:STDOUT: fn(%self.param: @II.loc16.%Self.as_type.loc16_15.2 (%Self.as_type.b70)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @JJ.loc19(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] -// CHECK:STDOUT: %Self.as_type.loc19_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.3df)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_15.1 [symbolic = %pattern_type (constants.%pattern_type.4ca)] +// CHECK:STDOUT: %Self.as_type.loc19_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_15.2 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_15.2 [symbolic = %pattern_type (constants.%pattern_type.4ca)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @JJ.loc19.%Self.as_type.loc19_15.1 (%Self.as_type.3df)); +// CHECK:STDOUT: fn(%self.param: @JJ.loc19.%Self.as_type.loc19_15.2 (%Self.as_type.3df)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc22_6.1: %facet_type) { -// CHECK:STDOUT: %T.loc22_6.2: %facet_type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.2 (constants.%T.527)] -// CHECK:STDOUT: %T.as_type.loc22_20.2: type = facet_access_type %T.loc22_6.2 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_20.2 [symbolic = %pattern_type (constants.%pattern_type.a4f)] +// CHECK:STDOUT: generic fn @F(%T.loc22_6.2: %facet_type) { +// CHECK:STDOUT: %T.loc22_6.1: %facet_type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.1 (constants.%T.527)] +// CHECK:STDOUT: %T.as_type.loc22_20.1: type = facet_access_type %T.loc22_6.1 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_20.1 [symbolic = %pattern_type (constants.%pattern_type.a4f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_20.2 [symbolic = %require_complete (constants.%require_complete.df2)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc22_6.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet.loc26_18.2: %I.type = facet_value %T.as_type.loc22_20.2, (%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.e75)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc22_6.2, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness)] -// CHECK:STDOUT: %J.facet.loc26_33.2: %J.type = facet_value %T.as_type.loc22_20.2, (%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.fa4)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_20.1 [symbolic = %require_complete (constants.%require_complete.df2)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc22_6.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %I.facet.loc26_18.2: %I.type = facet_value %T.as_type.loc22_20.1, (%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.e75)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc22_6.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness)] +// CHECK:STDOUT: %J.facet.loc26_33.2: %J.type = facet_value %T.as_type.loc22_20.1, (%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.fa4)] // CHECK:STDOUT: %.loc26_69.2: type = fn_type_with_self_type constants.%JJ.type.622, %J.facet.loc26_33.2 [symbolic = %.loc26_69.2 (constants.%.935)] // CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69.2 (%.935) = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc26_69.2: = specific_impl_function %impl.elem0.loc26_69.2, @JJ.loc19(%J.facet.loc26_33.2) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc22_20.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc22_20.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc22_20.2 (%T.as_type) = name_ref t, %t -// CHECK:STDOUT: %T.ref.loc26: %facet_type = name_ref T, %T.loc22_6.1 [symbolic = %T.loc22_6.2 (constants.%T.527)] +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc22_20.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %T.ref.loc26: %facet_type = name_ref T, %T.loc22_6.2 [symbolic = %T.loc22_6.1 (constants.%T.527)] // CHECK:STDOUT: %I.ref.loc26_21: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %T.as_type.loc26_18: type = facet_access_type constants.%T.527 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc26_18: type = facet_access_type constants.%T.527 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %I.facet.loc26_18.1: %I.type = facet_value %T.as_type.loc26_18, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.e75)] // CHECK:STDOUT: %.loc26_18: %I.type = converted %T.ref.loc26, %I.facet.loc26_18.1 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.e75)] -// CHECK:STDOUT: %as_type.loc26_24: type = facet_access_type %.loc26_18 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc26_24: type = converted %.loc26_18, %as_type.loc26_24 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] +// CHECK:STDOUT: %as_type.loc26_24: type = facet_access_type %.loc26_18 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_24: type = converted %.loc26_18, %as_type.loc26_24 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref.loc26_36: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %J.facet.loc26_33.1: %J.type = facet_value constants.%T.as_type, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.fa4)] // CHECK:STDOUT: %.loc26_33: %J.type = converted %.loc26_24, %J.facet.loc26_33.1 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.fa4)] -// CHECK:STDOUT: %as_type.loc26_39: type = facet_access_type %.loc26_33 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc26_39: type = converted %.loc26_33, %as_type.loc26_39 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] +// CHECK:STDOUT: %as_type.loc26_39: type = facet_access_type %.loc26_33 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_39: type = converted %.loc26_33, %as_type.loc26_39 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %I.ref.loc26_51: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %I.facet.loc26_48: %I.type = facet_value constants.%T.as_type, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.e75)] // CHECK:STDOUT: %.loc26_48: %I.type = converted %.loc26_39, %I.facet.loc26_48 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.e75)] -// CHECK:STDOUT: %as_type.loc26_54: type = facet_access_type %.loc26_48 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc26_54: type = converted %.loc26_48, %as_type.loc26_54 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] +// CHECK:STDOUT: %as_type.loc26_54: type = facet_access_type %.loc26_48 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_54: type = converted %.loc26_48, %as_type.loc26_54 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref.loc26_66: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %J.facet.loc26_63: %J.type = facet_value constants.%T.as_type, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.fa4)] // CHECK:STDOUT: %.loc26_63: %J.type = converted %.loc26_54, %J.facet.loc26_63 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.fa4)] -// CHECK:STDOUT: %as_type.loc26_67: type = facet_access_type %.loc26_63 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc26_67: type = converted %.loc26_63, %as_type.loc26_67 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] +// CHECK:STDOUT: %as_type.loc26_67: type = facet_access_type %.loc26_63 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_67: type = converted %.loc26_63, %as_type.loc26_67 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %JJ.ref: %J.assoc_type = name_ref JJ, @J.%assoc0 [concrete = constants.%assoc0.78c] -// CHECK:STDOUT: %T.as_type.loc26_69: type = facet_access_type constants.%T.527 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc26_69.1: type = converted constants.%T.527, %T.as_type.loc26_69 [symbolic = %T.as_type.loc22_20.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc26_69: type = facet_access_type constants.%T.527 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_69.1: type = converted constants.%T.527, %T.as_type.loc26_69 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc26_69.1: @F.%.loc26_69.2 (%.935) = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc26_69: = bound_method %t.ref, %impl.elem0.loc26_69.1 // CHECK:STDOUT: %specific_impl_fn.loc26_69.1: = specific_impl_function %impl.elem0.loc26_69.1, @JJ.loc19(constants.%J.facet.fa4) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] @@ -389,12 +389,12 @@ fn G() { // CHECK:STDOUT: %.loc46_11.2: %C = bind_value %.loc46_11.1 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc46_11.2) // CHECK:STDOUT: %Op.bound.loc46: = bound_method %.loc46_9.2, constants.%Op.ddb -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ddb, @Op.4(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ddb, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc46: = bound_method %.loc46_9.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc46: %ptr.8e6 = addr_of %.loc46_9.2 // CHECK:STDOUT: %no_op.loc46: init %empty_tuple.type = call %bound_method.loc46(%addr.loc46) // CHECK:STDOUT: %Op.bound.loc40: = bound_method %.loc40_6.2, constants.%Op.ddb -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ddb, @Op.4(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ddb, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc40_6: = bound_method %.loc40_6.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc40: %ptr.8e6 = addr_of %.loc40_6.2 // CHECK:STDOUT: %no_op.loc40: init %empty_tuple.type = call %bound_method.loc40_6(%addr.loc40) @@ -413,43 +413,43 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @II.loc16(constants.%Self.826) { // CHECK:STDOUT: %Self => constants.%Self.826 -// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%Self.as_type.b70 +// CHECK:STDOUT: %Self.as_type.loc16_15.2 => constants.%Self.as_type.b70 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @JJ.loc19(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd -// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%Self.as_type.3df +// CHECK:STDOUT: %Self.as_type.loc19_15.2 => constants.%Self.as_type.3df // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4ca // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.527) { -// CHECK:STDOUT: %T.loc22_6.2 => constants.%T.527 -// CHECK:STDOUT: %T.as_type.loc22_20.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc22_6.1 => constants.%T.527 +// CHECK:STDOUT: %T.as_type.loc22_20.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @JJ.loc19(constants.%J.facet.fa4) { // CHECK:STDOUT: %Self => constants.%J.facet.fa4 -// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%T.as_type +// CHECK:STDOUT: %Self.as_type.loc19_15.2 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @II.loc16(constants.%I.facet.98f) { // CHECK:STDOUT: %Self => constants.%I.facet.98f -// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc16_15.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @JJ.loc19(constants.%J.facet.5df) { // CHECK:STDOUT: %Self => constants.%J.facet.5df -// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc19_15.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%facet_value) { -// CHECK:STDOUT: %T.loc22_6.2 => constants.%facet_value -// CHECK:STDOUT: %T.as_type.loc22_20.2 => constants.%C +// CHECK:STDOUT: %T.loc22_6.1 => constants.%facet_value +// CHECK:STDOUT: %T.as_type.loc22_20.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index 913db95e4b9f..3b28da71508a 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -203,13 +203,13 @@ fn G(x: A) { // CHECK:STDOUT: %self.patt: @F.loc5.%pattern_type (%pattern_type.28f) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc5.%pattern_type (%pattern_type.28f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -245,10 +245,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.28f)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.28f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc9(@HasF.impl.%T.loc8_14.1: type) { @@ -279,7 +279,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.28f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -299,7 +299,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%HasF.facet.216) { // CHECK:STDOUT: %Self => constants.%HasF.facet.216 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -352,10 +352,10 @@ fn G(x: A) { // CHECK:STDOUT: %F.specific_fn: = specific_function %F.f13, @F.loc9(%empty_struct_type) [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.d5a: %Op.type.069 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.1(%empty_struct_type) [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -413,17 +413,17 @@ fn G(x: A) { // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type (%pattern_type.28f) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_25: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.f0c)] -// CHECK:STDOUT: %Self.as_type.loc5_25: type = facet_access_type %Self.ref.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.308)] -// CHECK:STDOUT: %.loc5_25: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.308)] -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.308) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.308)] { +// CHECK:STDOUT: %Self.as_type.loc5_25: type = facet_access_type %Self.ref.loc5_25 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.308)] +// CHECK:STDOUT: %.loc5_25: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.308)] +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.308) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.308)] { // CHECK:STDOUT: %Self.ref.loc5_14: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.f0c)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref.loc5_14 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.308)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref.loc5_14, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.308)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref.loc5_14 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.308)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref.loc5_14, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.308)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.308) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.308) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.308) = return_slot %return.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.308) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.308) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.308) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.97a] // CHECK:STDOUT: @@ -465,10 +465,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.f0c)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.308)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.28f)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.308)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.28f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.308)) -> @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.308); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.308)) -> @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.308); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc9(@HasF.impl.%T.loc8_14.1: type) { @@ -500,7 +500,7 @@ fn G(x: A) { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc13_22: %empty_struct_type = converted %F.call, %empty_struct [concrete = constants.%empty_struct] // CHECK:STDOUT: %Op.bound: = bound_method %.loc13_21.1, constants.%Op.d5a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d5a, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d5a, @Op.1(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13_21.2: = bound_method %.loc13_21.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %.loc13_21.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc13_21.2(%addr) @@ -509,7 +509,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self.f0c) { // CHECK:STDOUT: %Self => constants.%Self.f0c -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.308 +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type.308 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.28f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -529,7 +529,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%HasF.facet.216) { // CHECK:STDOUT: %Self => constants.%HasF.facet.216 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -606,7 +606,7 @@ fn G(x: A) { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @HasF.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -640,13 +640,13 @@ fn G(x: A) { // CHECK:STDOUT: %self.patt: @F.loc5.%pattern_type (%pattern_type.28f) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc5.%pattern_type (%pattern_type.28f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -681,8 +681,8 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc8_9.2: type) { +// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -698,10 +698,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.28f)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.28f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc11(@HasF.impl.%T.loc10_14.1: type) { @@ -733,12 +733,12 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.28f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%T +// CHECK:STDOUT: %T.loc8_9.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -761,12 +761,12 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%HasF.facet.766) { // CHECK:STDOUT: %Self => constants.%HasF.facet.766 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C.f2e +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%C.f2e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e5e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc8_9.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -847,7 +847,7 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.decl: %HasF.type.fe3 = interface_decl @HasF [concrete = constants.%HasF.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @HasF.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -874,15 +874,15 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @HasF(%T.loc4_16.2: type) { +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.901)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.1)> [symbolic = %HasF.type (constants.%HasF.type.901)] // CHECK:STDOUT: %Self.2: @HasF.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.322)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.46c)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @HasF(%T.loc4_16.1) [symbolic = %F.type (constants.%F.type.46c)] // CHECK:STDOUT: %F: @HasF.%F.type (%F.type.46c) = struct_value () [symbolic = %F (constants.%F.823)] -// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF, @HasF(%T.loc4_16.2) [symbolic = %HasF.assoc_type (constants.%HasF.assoc_type.dd8)] +// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF, @HasF(%T.loc4_16.1) [symbolic = %HasF.assoc_type (constants.%HasF.assoc_type.dd8)] // CHECK:STDOUT: %assoc0.loc5_21.2: @HasF.%HasF.assoc_type (%HasF.assoc_type.dd8) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.d31)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -891,14 +891,14 @@ fn G(x: A) { // CHECK:STDOUT: %self.patt: @F.loc5.%pattern_type (%pattern_type.dfb) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc5.%pattern_type (%pattern_type.dfb) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_14.2: @F.loc5.%HasF.type (%HasF.type.901) = specific_constant @HasF.%Self.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.322)] // CHECK:STDOUT: %Self.ref: @F.loc5.%HasF.type (%HasF.type.901) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.322)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.%HasF.assoc_type (%HasF.assoc_type.dd8) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.d31)] // CHECK:STDOUT: @@ -935,14 +935,14 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc5(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { +// CHECK:STDOUT: generic fn @F.loc5(@HasF.%T.loc4_16.2: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.901)] // CHECK:STDOUT: %Self: @F.loc5.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.322)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.dfb)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.dfb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc9(@HasF.impl.%T.loc8_14.1: type) { @@ -972,7 +972,7 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%T) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%T +// CHECK:STDOUT: %T.loc4_16.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 @@ -987,7 +987,7 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 // CHECK:STDOUT: %Self => constants.%Self.322 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfb // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1008,12 +1008,12 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 // CHECK:STDOUT: %Self => constants.%HasF.facet.566 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_struct_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%empty_struct_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a96 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc4_16.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.072 @@ -1109,13 +1109,13 @@ fn G(x: A) { // CHECK:STDOUT: %self.patt: @F.loc5.%pattern_type (%pattern_type.28f) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc5.%pattern_type (%pattern_type.28f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1152,10 +1152,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.28f)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.28f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc13(@HasF.impl.%T.loc12_14.1: type, @HasF.impl.%U.loc12_24.1: type) { @@ -1181,7 +1181,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.28f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1256,7 +1256,7 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.decl: %HasF.type.fe3 = interface_decl @HasF [concrete = constants.%HasF.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @HasF.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -1281,15 +1281,15 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @HasF(%T.loc4_16.2: type) { +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.2)> [symbolic = %HasF.type (constants.%HasF.type.901)] +// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T.loc4_16.1)> [symbolic = %HasF.type (constants.%HasF.type.901)] // CHECK:STDOUT: %Self.2: @HasF.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.322)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @HasF(%T.loc4_16.2) [symbolic = %F.type (constants.%F.type.46c)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc5, @HasF(%T.loc4_16.1) [symbolic = %F.type (constants.%F.type.46c)] // CHECK:STDOUT: %F: @HasF.%F.type (%F.type.46c) = struct_value () [symbolic = %F (constants.%F.823)] -// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF, @HasF(%T.loc4_16.2) [symbolic = %HasF.assoc_type (constants.%HasF.assoc_type.dd8)] +// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF, @HasF(%T.loc4_16.1) [symbolic = %HasF.assoc_type (constants.%HasF.assoc_type.dd8)] // CHECK:STDOUT: %assoc0.loc5_21.2: @HasF.%HasF.assoc_type (%HasF.assoc_type.dd8) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.d31)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -1298,14 +1298,14 @@ fn G(x: A) { // CHECK:STDOUT: %self.patt: @F.loc5.%pattern_type (%pattern_type.dfb) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc5.%pattern_type (%pattern_type.dfb) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_14.2: @F.loc5.%HasF.type (%HasF.type.901) = specific_constant @HasF.%Self.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.322)] // CHECK:STDOUT: %Self.ref: @F.loc5.%HasF.type (%HasF.type.901) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.322)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.%HasF.assoc_type (%HasF.assoc_type.dd8) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.d31)] // CHECK:STDOUT: @@ -1360,14 +1360,14 @@ fn G(x: A) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc5(@HasF.%T.loc4_16.1: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { +// CHECK:STDOUT: generic fn @F.loc5(@HasF.%T.loc4_16.2: type, @HasF.%Self.1: @HasF.%HasF.type (%HasF.type.901)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.901)] // CHECK:STDOUT: %Self: @F.loc5.%HasF.type (%HasF.type.901) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.322)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.dfb)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.dfb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc9(@HasF.impl.%T.loc8_14.1: type) { @@ -1395,7 +1395,7 @@ fn G(x: A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%T) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%T +// CHECK:STDOUT: %T.loc4_16.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 @@ -1410,7 +1410,7 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 // CHECK:STDOUT: %Self => constants.%Self.322 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.dfb // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1434,12 +1434,12 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF(constants.%B) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%B +// CHECK:STDOUT: %T.loc4_16.1 => constants.%B // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %HasF.type => constants.%HasF.type.2f5 diff --git a/toolchain/check/testdata/impl/lookup/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/impl_forall.carbon index a3a01e97eef1..8e352c465222 100644 --- a/toolchain/check/testdata/impl/lookup/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/impl_forall.carbon @@ -133,10 +133,10 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %F.specific_fn: = specific_function %F.158, @F.loc12(%empty_struct_type) [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.d5a: %Op.type.069 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.1(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -160,12 +160,12 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %A.decl: %A.type = class_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc3_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc3_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl: %I.type.dac = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc7_13.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc7_13.2 (constants.%U)] +// CHECK:STDOUT: %U.loc7_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc7_13.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @I.impl [concrete] { // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 0 [concrete] @@ -187,17 +187,17 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %return.patt: @TestGeneric.%pattern_type.loc17_35 (%pattern_type.7dcd0a.3) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @TestGeneric.%pattern_type.loc17_35 (%pattern_type.7dcd0a.3) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %W.ref.loc17_38: type = name_ref W, %W.loc17_16.1 [symbolic = %W.loc17_16.2 (constants.%W)] -// CHECK:STDOUT: %W.loc17_16.1: type = bind_symbolic_name W, 0 [symbolic = %W.loc17_16.2 (constants.%W)] -// CHECK:STDOUT: %a.param: @TestGeneric.%A.loc17_32.2 (%A.13025a.3) = value_param call_param0 -// CHECK:STDOUT: %.loc17: type = splice_block %A.loc17_32.1 [symbolic = %A.loc17_32.2 (constants.%A.13025a.3)] { +// CHECK:STDOUT: %W.ref.loc17_38: type = name_ref W, %W.loc17_16.2 [symbolic = %W.loc17_16.1 (constants.%W)] +// CHECK:STDOUT: %W.loc17_16.2: type = bind_symbolic_name W, 0 [symbolic = %W.loc17_16.1 (constants.%W)] +// CHECK:STDOUT: %a.param: @TestGeneric.%A.loc17_32.1 (%A.13025a.3) = value_param call_param0 +// CHECK:STDOUT: %.loc17: type = splice_block %A.loc17_32.2 [symbolic = %A.loc17_32.1 (constants.%A.13025a.3)] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [concrete = constants.%A.generic] -// CHECK:STDOUT: %W.ref.loc17_31: type = name_ref W, %W.loc17_16.1 [symbolic = %W.loc17_16.2 (constants.%W)] -// CHECK:STDOUT: %A.loc17_32.1: type = class_type @A, @A(constants.%W) [symbolic = %A.loc17_32.2 (constants.%A.13025a.3)] +// CHECK:STDOUT: %W.ref.loc17_31: type = name_ref W, %W.loc17_16.2 [symbolic = %W.loc17_16.1 (constants.%W)] +// CHECK:STDOUT: %A.loc17_32.2: type = class_type @A, @A(constants.%W) [symbolic = %A.loc17_32.1 (constants.%A.13025a.3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @TestGeneric.%A.loc17_32.2 (%A.13025a.3) = bind_name a, %a.param -// CHECK:STDOUT: %return.param: ref @TestGeneric.%W.loc17_16.2 (%W) = out_param call_param1 -// CHECK:STDOUT: %return: ref @TestGeneric.%W.loc17_16.2 (%W) = return_slot %return.param +// CHECK:STDOUT: %a: @TestGeneric.%A.loc17_32.1 (%A.13025a.3) = bind_name a, %a.param +// CHECK:STDOUT: %return.param: ref @TestGeneric.%W.loc17_16.1 (%W) = out_param call_param1 +// CHECK:STDOUT: %return: ref @TestGeneric.%W.loc17_16.1 (%W) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %TestSpecific.decl: %TestSpecific.type = fn_decl @TestSpecific [concrete = constants.%TestSpecific] { // CHECK:STDOUT: %a.patt: %pattern_type.496 = binding_pattern a [concrete] @@ -220,15 +220,15 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%U.loc7_13.1: type) { -// CHECK:STDOUT: %U.loc7_13.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc7_13.2 (constants.%U)] +// CHECK:STDOUT: generic interface @I(%U.loc7_13.2: type) { +// CHECK:STDOUT: %U.loc7_13.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc7_13.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc7_13.2)> [symbolic = %I.type (constants.%I.type.325e65.1)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U.loc7_13.1)> [symbolic = %I.type (constants.%I.type.325e65.1)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325e65.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.209206.1)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @I(%U.loc7_13.2) [symbolic = %F.type (constants.%F.type.2aef59.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @I(%U.loc7_13.1) [symbolic = %F.type (constants.%F.type.2aef59.1)] // CHECK:STDOUT: %F: @I.%F.type (%F.type.2aef59.1) = struct_value () [symbolic = %F (constants.%F.bb2dd4.1)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%U.loc7_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5078.1)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%U.loc7_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5078.1)] // CHECK:STDOUT: %assoc0.loc8_26.2: @I.%I.assoc_type (%I.assoc_type.1e5078.1) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc8_26.2 (constants.%assoc0.8f0422.1)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -239,15 +239,15 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %return.patt: @F.loc8.%pattern_type.loc8_22 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc8.%pattern_type.loc8_22 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: type = name_ref U, @I.%U.loc7_13.1 [symbolic = %U (constants.%U)] -// CHECK:STDOUT: %self.param: @F.loc8.%Self.as_type.loc8_14.1 (%Self.as_type.928) = value_param call_param0 -// CHECK:STDOUT: %.loc8_14.1: type = splice_block %.loc8_14.3 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.928)] { +// CHECK:STDOUT: %U.ref: type = name_ref U, @I.%U.loc7_13.2 [symbolic = %U (constants.%U)] +// CHECK:STDOUT: %self.param: @F.loc8.%Self.as_type.loc8_14.2 (%Self.as_type.928) = value_param call_param0 +// CHECK:STDOUT: %.loc8_14.1: type = splice_block %.loc8_14.3 [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type.928)] { // CHECK:STDOUT: %.loc8_14.2: @F.loc8.%I.type (%I.type.325e65.1) = specific_constant @I.%Self.1, @I(constants.%U) [symbolic = %Self (constants.%Self.209206.1)] // CHECK:STDOUT: %Self.ref: @F.loc8.%I.type (%I.type.325e65.1) = name_ref Self, %.loc8_14.2 [symbolic = %Self (constants.%Self.209206.1)] -// CHECK:STDOUT: %Self.as_type.loc8_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.928)] -// CHECK:STDOUT: %.loc8_14.3: type = converted %Self.ref, %Self.as_type.loc8_14.2 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.928)] +// CHECK:STDOUT: %Self.as_type.loc8_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type.928)] +// CHECK:STDOUT: %.loc8_14.3: type = converted %Self.ref, %Self.as_type.loc8_14.1 [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type.928)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc8.%Self.as_type.loc8_14.1 (%Self.as_type.928) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc8.%Self.as_type.loc8_14.2 (%Self.as_type.928) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @F.loc8.%U (%U) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.loc8.%U (%U) = return_slot %return.param // CHECK:STDOUT: } @@ -294,18 +294,18 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @A(%T.loc3_9.1: type) { -// CHECK:STDOUT: %T.loc3_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @A(%T.loc3_9.2: type) { +// CHECK:STDOUT: %T.loc3_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc3_9.2 [symbolic = %require_complete (constants.%require_complete.4aeca8.1)] -// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc3_9.2) [symbolic = %A (constants.%A.13025a.1)] -// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %T.loc3_9.2 [symbolic = %A.elem (constants.%A.elem.1ceb36.1)] -// CHECK:STDOUT: %struct_type.n.loc5_1.2: type = struct_type {.n: @A.%T.loc3_9.2 (%T)} [symbolic = %struct_type.n.loc5_1.2 (constants.%struct_type.n.848971.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc3_9.1 [symbolic = %require_complete (constants.%require_complete.4aeca8.1)] +// CHECK:STDOUT: %A: type = class_type @A, @A(%T.loc3_9.1) [symbolic = %A (constants.%A.13025a.1)] +// CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %T.loc3_9.1 [symbolic = %A.elem (constants.%A.elem.1ceb36.1)] +// CHECK:STDOUT: %struct_type.n.loc5_1.2: type = struct_type {.n: @A.%T.loc3_9.1 (%T)} [symbolic = %struct_type.n.loc5_1.2 (constants.%struct_type.n.848971.1)] // CHECK:STDOUT: %complete_type.loc5_1.2: = complete_type_witness %struct_type.n.loc5_1.2 [symbolic = %complete_type.loc5_1.2 (constants.%complete_type.84bb3d.1)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc3_9.1 [symbolic = %T.loc3_9.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc3_9.2 [symbolic = %T.loc3_9.1 (constants.%T)] // CHECK:STDOUT: %.loc4: @A.%A.elem (%A.elem.1ceb36.1) = field_decl n, element0 [concrete] // CHECK:STDOUT: %struct_type.n.loc5_1.1: type = struct_type {.n: %T} [symbolic = %struct_type.n.loc5_1.2 (constants.%struct_type.n.848971.1)] // CHECK:STDOUT: %complete_type.loc5_1.1: = complete_type_witness %struct_type.n.loc5_1.1 [symbolic = %complete_type.loc5_1.2 (constants.%complete_type.84bb3d.1)] @@ -318,15 +318,15 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc8(@I.%U.loc7_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325e65.1)) { +// CHECK:STDOUT: generic fn @F.loc8(@I.%U.loc7_13.2: type, @I.%Self.1: @I.%I.type (%I.type.325e65.1)) { // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%U)> [symbolic = %I.type (constants.%I.type.325e65.1)] // CHECK:STDOUT: %Self: @F.loc8.%I.type (%I.type.325e65.1) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.209206.1)] -// CHECK:STDOUT: %Self.as_type.loc8_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.928)] -// CHECK:STDOUT: %pattern_type.loc8_8: type = pattern_type %Self.as_type.loc8_14.1 [symbolic = %pattern_type.loc8_8 (constants.%pattern_type.4be)] +// CHECK:STDOUT: %Self.as_type.loc8_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type.928)] +// CHECK:STDOUT: %pattern_type.loc8_8: type = pattern_type %Self.as_type.loc8_14.2 [symbolic = %pattern_type.loc8_8 (constants.%pattern_type.4be)] // CHECK:STDOUT: %pattern_type.loc8_22: type = pattern_type %U [symbolic = %pattern_type.loc8_22 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc8.%Self.as_type.loc8_14.1 (%Self.as_type.928)) -> @F.loc8.%U (%U); +// CHECK:STDOUT: fn(%self.param: @F.loc8.%Self.as_type.loc8_14.2 (%Self.as_type.928)) -> @F.loc8.%U (%U); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc12(@I.impl.%V.loc11_14.1: type) { @@ -350,31 +350,31 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TestGeneric(%W.loc17_16.1: type) { -// CHECK:STDOUT: %W.loc17_16.2: type = bind_symbolic_name W, 0 [symbolic = %W.loc17_16.2 (constants.%W)] -// CHECK:STDOUT: %A.loc17_32.2: type = class_type @A, @A(%W.loc17_16.2) [symbolic = %A.loc17_32.2 (constants.%A.13025a.3)] -// CHECK:STDOUT: %pattern_type.loc17_26: type = pattern_type %A.loc17_32.2 [symbolic = %pattern_type.loc17_26 (constants.%pattern_type.68d8d3.2)] -// CHECK:STDOUT: %pattern_type.loc17_35: type = pattern_type %W.loc17_16.2 [symbolic = %pattern_type.loc17_35 (constants.%pattern_type.7dcd0a.3)] +// CHECK:STDOUT: generic fn @TestGeneric(%W.loc17_16.2: type) { +// CHECK:STDOUT: %W.loc17_16.1: type = bind_symbolic_name W, 0 [symbolic = %W.loc17_16.1 (constants.%W)] +// CHECK:STDOUT: %A.loc17_32.1: type = class_type @A, @A(%W.loc17_16.1) [symbolic = %A.loc17_32.1 (constants.%A.13025a.3)] +// CHECK:STDOUT: %pattern_type.loc17_26: type = pattern_type %A.loc17_32.1 [symbolic = %pattern_type.loc17_26 (constants.%pattern_type.68d8d3.2)] +// CHECK:STDOUT: %pattern_type.loc17_35: type = pattern_type %W.loc17_16.1 [symbolic = %pattern_type.loc17_35 (constants.%pattern_type.7dcd0a.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17_35: = require_complete_type %W.loc17_16.2 [symbolic = %require_complete.loc17_35 (constants.%require_complete.4aeca8.3)] -// CHECK:STDOUT: %require_complete.loc17_27: = require_complete_type %A.loc17_32.2 [symbolic = %require_complete.loc17_27 (constants.%require_complete.5b8aee.2)] -// CHECK:STDOUT: %I.type.loc18_16.2: type = facet_type <@I, @I(%W.loc17_16.2)> [symbolic = %I.type.loc18_16.2 (constants.%I.type.325e65.3)] +// CHECK:STDOUT: %require_complete.loc17_35: = require_complete_type %W.loc17_16.1 [symbolic = %require_complete.loc17_35 (constants.%require_complete.4aeca8.3)] +// CHECK:STDOUT: %require_complete.loc17_27: = require_complete_type %A.loc17_32.1 [symbolic = %require_complete.loc17_27 (constants.%require_complete.5b8aee.2)] +// CHECK:STDOUT: %I.type.loc18_16.2: type = facet_type <@I, @I(%W.loc17_16.1)> [symbolic = %I.type.loc18_16.2 (constants.%I.type.325e65.3)] // CHECK:STDOUT: %require_complete.loc18: = require_complete_type %I.type.loc18_16.2 [symbolic = %require_complete.loc18 (constants.%require_complete.cfebb2.2)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%W.loc17_16.2) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5078.3)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%W.loc17_16.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5078.3)] // CHECK:STDOUT: %assoc0: @TestGeneric.%I.assoc_type (%I.assoc_type.1e5078.3) = assoc_entity element0, @I.%F.decl [symbolic = %assoc0 (constants.%assoc0.8f0422.3)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %A.loc17_32.2, @I, @I(%W.loc17_16.2) [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @I(%W.loc17_16.2) [symbolic = %F.type (constants.%F.type.2aef59.3)] -// CHECK:STDOUT: %I.facet: @TestGeneric.%I.type.loc18_16.2 (%I.type.325e65.3) = facet_value %A.loc17_32.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet.6d2)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %A.loc17_32.1, @I, @I(%W.loc17_16.1) [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc8, @I(%W.loc17_16.1) [symbolic = %F.type (constants.%F.type.2aef59.3)] +// CHECK:STDOUT: %I.facet: @TestGeneric.%I.type.loc18_16.2 (%I.type.325e65.3) = facet_value %A.loc17_32.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet.6d2)] // CHECK:STDOUT: %.loc18_11: type = fn_type_with_self_type %F.type, %I.facet [symbolic = %.loc18_11 (constants.%.fe1)] // CHECK:STDOUT: %impl.elem0.loc18_11.2: @TestGeneric.%.loc18_11 (%.fe1) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @F.loc8(%W.loc17_16.2, %I.facet) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @F.loc8(%W.loc17_16.1, %I.facet) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @TestGeneric.%A.loc17_32.2 (%A.13025a.3)) -> @TestGeneric.%W.loc17_16.2 (%W) { +// CHECK:STDOUT: fn(%a.param: @TestGeneric.%A.loc17_32.1 (%A.13025a.3)) -> @TestGeneric.%W.loc17_16.1 (%W) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @TestGeneric.%A.loc17_32.2 (%A.13025a.3) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @TestGeneric.%A.loc17_32.1 (%A.13025a.3) = name_ref a, %a // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [concrete = constants.%I.generic] -// CHECK:STDOUT: %W.ref.loc18: type = name_ref W, %W.loc17_16.1 [symbolic = %W.loc17_16.2 (constants.%W)] +// CHECK:STDOUT: %W.ref.loc18: type = name_ref W, %W.loc17_16.2 [symbolic = %W.loc17_16.1 (constants.%W)] // CHECK:STDOUT: %I.type.loc18_16.1: type = facet_type <@I, @I(constants.%W)> [symbolic = %I.type.loc18_16.2 (constants.%I.type.325e65.3)] // CHECK:STDOUT: %.loc18_17: @TestGeneric.%I.assoc_type (%I.assoc_type.1e5078.3) = specific_constant @I.%assoc0.loc8_26.1, @I(constants.%W) [symbolic = %assoc0 (constants.%assoc0.8f0422.3)] // CHECK:STDOUT: %F.ref: @TestGeneric.%I.assoc_type (%I.assoc_type.1e5078.3) = name_ref F, %.loc18_17 [symbolic = %assoc0 (constants.%assoc0.8f0422.3)] @@ -382,9 +382,9 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %bound_method.loc18_11: = bound_method %a.ref, %impl.elem0.loc18_11.1 // CHECK:STDOUT: %specific_impl_fn.loc18_11.1: = specific_impl_function %impl.elem0.loc18_11.1, @F.loc8(constants.%W, constants.%I.facet.6d2) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc18_21: = bound_method %a.ref, %specific_impl_fn.loc18_11.1 -// CHECK:STDOUT: %.loc18_21: init @TestGeneric.%W.loc17_16.2 (%W) = call %bound_method.loc18_21(%a.ref) -// CHECK:STDOUT: %.loc18_22.1: @TestGeneric.%W.loc17_16.2 (%W) = value_of_initializer %.loc18_21 -// CHECK:STDOUT: %.loc18_22.2: @TestGeneric.%W.loc17_16.2 (%W) = converted %.loc18_21, %.loc18_22.1 +// CHECK:STDOUT: %.loc18_21: init @TestGeneric.%W.loc17_16.1 (%W) = call %bound_method.loc18_21(%a.ref) +// CHECK:STDOUT: %.loc18_22.1: @TestGeneric.%W.loc17_16.1 (%W) = value_of_initializer %.loc18_21 +// CHECK:STDOUT: %.loc18_22.2: @TestGeneric.%W.loc17_16.1 (%W) = converted %.loc18_21, %.loc18_22.1 // CHECK:STDOUT: return %.loc18_22.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -408,7 +408,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc22_23: %empty_struct_type = converted %F.call, %empty_struct [concrete = constants.%empty_struct] // CHECK:STDOUT: %Op.bound: = bound_method %.loc22_22.1, constants.%Op.d5a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d5a, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d5a, @Op.1(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc22_22.2: = bound_method %.loc22_22.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %.loc22_22.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc22_22.2(%addr) @@ -416,24 +416,24 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { -// CHECK:STDOUT: %T.loc3_9.2 => constants.%T +// CHECK:STDOUT: %T.loc3_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%U) { -// CHECK:STDOUT: %U.loc7_13.2 => constants.%U +// CHECK:STDOUT: %U.loc7_13.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc8(constants.%U, constants.%Self.209206.1) { // CHECK:STDOUT: %U => constants.%U // CHECK:STDOUT: %I.type => constants.%I.type.325e65.1 // CHECK:STDOUT: %Self => constants.%Self.209206.1 -// CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%Self.as_type.928 +// CHECK:STDOUT: %Self.as_type.loc8_14.2 => constants.%Self.as_type.928 // CHECK:STDOUT: %pattern_type.loc8_8 => constants.%pattern_type.4be // CHECK:STDOUT: %pattern_type.loc8_22 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%V) { -// CHECK:STDOUT: %T.loc3_9.2 => constants.%V +// CHECK:STDOUT: %T.loc3_9.1 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.2 @@ -444,7 +444,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%V) { -// CHECK:STDOUT: %U.loc7_13.2 => constants.%V +// CHECK:STDOUT: %U.loc7_13.1 => constants.%V // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 @@ -478,13 +478,13 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %U => constants.%V // CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 // CHECK:STDOUT: %Self => constants.%I.facet.de3 -// CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%A.13025a.2 +// CHECK:STDOUT: %Self.as_type.loc8_14.2 => constants.%A.13025a.2 // CHECK:STDOUT: %pattern_type.loc8_8 => constants.%pattern_type.68d8d3.1 // CHECK:STDOUT: %pattern_type.loc8_22 => constants.%pattern_type.7dcd0a.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { -// CHECK:STDOUT: %T.loc3_9.2 => constants.%W +// CHECK:STDOUT: %T.loc3_9.1 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete.4aeca8.3 @@ -495,14 +495,14 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TestGeneric(constants.%W) { -// CHECK:STDOUT: %W.loc17_16.2 => constants.%W -// CHECK:STDOUT: %A.loc17_32.2 => constants.%A.13025a.3 +// CHECK:STDOUT: %W.loc17_16.1 => constants.%W +// CHECK:STDOUT: %A.loc17_32.1 => constants.%A.13025a.3 // CHECK:STDOUT: %pattern_type.loc17_26 => constants.%pattern_type.68d8d3.2 // CHECK:STDOUT: %pattern_type.loc17_35 => constants.%pattern_type.7dcd0a.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%W) { -// CHECK:STDOUT: %U.loc7_13.2 => constants.%W +// CHECK:STDOUT: %U.loc7_13.1 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.325e65.3 @@ -529,13 +529,13 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %U => constants.%W // CHECK:STDOUT: %I.type => constants.%I.type.325e65.3 // CHECK:STDOUT: %Self => constants.%I.facet.6d2 -// CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%A.13025a.3 +// CHECK:STDOUT: %Self.as_type.loc8_14.2 => constants.%A.13025a.3 // CHECK:STDOUT: %pattern_type.loc8_8 => constants.%pattern_type.68d8d3.2 // CHECK:STDOUT: %pattern_type.loc8_22 => constants.%pattern_type.7dcd0a.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc3_9.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc3_9.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 @@ -546,7 +546,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%empty_struct_type) { -// CHECK:STDOUT: %U.loc7_13.2 => constants.%empty_struct_type +// CHECK:STDOUT: %U.loc7_13.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.885 diff --git a/toolchain/check/testdata/impl/lookup/import.carbon b/toolchain/check/testdata/impl/lookup/import.carbon index 4c4f0c2c372d..10934ebd3678 100644 --- a/toolchain/check/testdata/impl/lookup/import.carbon +++ b/toolchain/check/testdata/impl/lookup/import.carbon @@ -274,13 +274,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %self.patt: @F.loc5.%pattern_type (%pattern_type.28f) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc5.%pattern_type (%pattern_type.28f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -316,10 +316,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.28f)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.28f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc12(%self.param: %C) { @@ -329,13 +329,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.28f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%HasF.facet) { // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -435,13 +435,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %self.patt: @G.loc7.%pattern_type (%pattern_type.293) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @G.loc7.%pattern_type (%pattern_type.293) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G.loc7.%Self.as_type.loc7_14.1 (%Self.as_type.133) = value_param call_param0 -// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.133)] { +// CHECK:STDOUT: %self.param: @G.loc7.%Self.as_type.loc7_14.2 (%Self.as_type.133) = value_param call_param0 +// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type.133)] { // CHECK:STDOUT: %Self.ref: %HasG.type = name_ref Self, @HasG.%Self [symbolic = %Self (constants.%Self.d42)] -// CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.133)] -// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.133)] +// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type.133)] +// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type.loc7_14.1 [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type.133)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.loc7.%Self.as_type.loc7_14.1 (%Self.as_type.133) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G.loc7.%Self.as_type.loc7_14.2 (%Self.as_type.133) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, %G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -521,10 +521,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.loc7(@HasG.%Self: %HasG.type) { // CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.d42)] -// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.133)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.1 [symbolic = %pattern_type (constants.%pattern_type.293)] +// CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type.133)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.2 [symbolic = %pattern_type (constants.%pattern_type.293)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G.loc7.%Self.as_type.loc7_14.1 (%Self.as_type.133)); +// CHECK:STDOUT: fn(%self.param: @G.loc7.%Self.as_type.loc7_14.2 (%Self.as_type.133)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.loc14(%self.param: %C) { @@ -552,13 +552,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc7(constants.%Self.d42) { // CHECK:STDOUT: %Self => constants.%Self.d42 -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type.133 +// CHECK:STDOUT: %Self.as_type.loc7_14.2 => constants.%Self.as_type.133 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.293 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc7(constants.%HasG.facet.704) { // CHECK:STDOUT: %Self => constants.%HasG.facet.704 -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc7_14.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8e5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -576,7 +576,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc7(constants.%HasG.facet.9c8) { // CHECK:STDOUT: %Self => constants.%HasG.facet.9c8 -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%D +// CHECK:STDOUT: %Self.as_type.loc7_14.2 => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.510 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -594,14 +594,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.ab2 [concrete] -// CHECK:STDOUT: %F.type.dbc: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.type.dbc: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a2b: %F.type.dbc = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type.dc3: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness imports.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete] // CHECK:STDOUT: %.d3f: type = fn_type_with_self_type %F.type.dbc, %HasF.facet [concrete] -// CHECK:STDOUT: %F.type.4e3: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.type.4e3: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.857: %F.type.4e3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -683,7 +683,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%PackageA.import_ref.e73: %HasF.type) [from "package_a.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%PackageA.import_ref.e73: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dc3)] @@ -691,9 +691,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2 [from "package_a.carbon"]; +// CHECK:STDOUT: fn @F.1 [from "package_a.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self) { +// CHECK:STDOUT: specific @F.2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.dc3 @@ -713,7 +713,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.cf3: %HasF.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.ab2 [concrete] -// CHECK:STDOUT: %F.type.dbc: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.type.dbc: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a2b: %F.type.dbc = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cf3 [symbolic] // CHECK:STDOUT: %pattern_type.dc3: type = pattern_type %Self.as_type [symbolic] @@ -722,7 +722,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %HasF.impl_witness: = impl_witness imports.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%HasF.impl_witness) [concrete] // CHECK:STDOUT: %.bc0: type = fn_type_with_self_type %F.type.dbc, %HasF.facet [concrete] -// CHECK:STDOUT: %F.type.394: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.type.394: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.1fc: %F.type.394 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -852,7 +852,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%PackageA.import_ref.e73: %HasF.type) [from "package_a.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%PackageA.import_ref.e73: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.cf3)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.dc3)] @@ -860,9 +860,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2 [from "package_b.carbon"]; +// CHECK:STDOUT: fn @F.1 [from "package_b.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.cf3) { +// CHECK:STDOUT: specific @F.2(constants.%Self.cf3) { // CHECK:STDOUT: %Self => constants.%Self.cf3 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.dc3 @@ -882,7 +882,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.fcb: %HasG.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.70a [concrete] -// CHECK:STDOUT: %G.type.d9e: type = fn_type @G.1 [concrete] +// CHECK:STDOUT: %G.type.d9e: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.cd6: %G.type.d9e = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.fcb [symbolic] // CHECK:STDOUT: %pattern_type.76a: type = pattern_type %Self.as_type [symbolic] @@ -891,7 +891,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %HasG.impl_witness: = impl_witness imports.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%HasG.impl_witness) [concrete] // CHECK:STDOUT: %.a26: type = fn_type_with_self_type %G.type.d9e, %HasG.facet [concrete] -// CHECK:STDOUT: %G.type.18e: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.type.18e: type = fn_type @G.1 [concrete] // CHECK:STDOUT: %G.dbb: %G.type.18e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1021,7 +1021,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G.1(imports.%PackageB.import_ref.ef5: %HasG.type) [from "package_b.carbon"] { +// CHECK:STDOUT: generic fn @G.2(imports.%PackageB.import_ref.ef5: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.fcb)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.76a)] @@ -1029,9 +1029,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G.2 [from "package_b.carbon"]; +// CHECK:STDOUT: fn @G.1 [from "package_b.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.fcb) { +// CHECK:STDOUT: specific @G.2(constants.%Self.fcb) { // CHECK:STDOUT: %Self => constants.%Self.fcb // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.76a @@ -1051,7 +1051,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.fcb: %HasG.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.70a [concrete] -// CHECK:STDOUT: %G.type.d9e: type = fn_type @G.1 [concrete] +// CHECK:STDOUT: %G.type.d9e: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.cd6: %G.type.d9e = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.fcb [symbolic] // CHECK:STDOUT: %pattern_type.76a: type = pattern_type %Self.as_type [symbolic] @@ -1060,7 +1060,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %HasG.impl_witness: = impl_witness imports.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %D, (%HasG.impl_witness) [concrete] // CHECK:STDOUT: %.132: type = fn_type_with_self_type %G.type.d9e, %HasG.facet [concrete] -// CHECK:STDOUT: %G.type.405: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.type.405: type = fn_type @G.1 [concrete] // CHECK:STDOUT: %G.703: %G.type.405 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1177,7 +1177,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G.1(imports.%PackageB.import_ref.ef5: %HasG.type) [from "package_b.carbon"] { +// CHECK:STDOUT: generic fn @G.2(imports.%PackageB.import_ref.ef5: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.fcb)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.76a)] @@ -1185,9 +1185,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G.2 [from "package_b.carbon"]; +// CHECK:STDOUT: fn @G.1 [from "package_b.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%Self.fcb) { +// CHECK:STDOUT: specific @G.2(constants.%Self.fcb) { // CHECK:STDOUT: %Self => constants.%Self.fcb // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.76a @@ -1241,13 +1241,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %self.patt: @H.loc5.%pattern_type (%pattern_type.a40) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @H.loc5.%pattern_type (%pattern_type.a40) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @H.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @H.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @H.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @H.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %H.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1274,10 +1274,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @H.loc5(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.a40)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.a40)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @H.loc5.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @H.loc5.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @H.loc9(%self.param: %empty_tuple.type) { @@ -1287,13 +1287,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @H.loc5(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a40 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H.loc5(constants.%Z.facet) { // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1307,14 +1307,14 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, imports.%PackageAssociatedInterface.import_ref.250 [concrete] -// CHECK:STDOUT: %H.type.386: type = fn_type @H.1 [concrete] +// CHECK:STDOUT: %H.type.386: type = fn_type @H.2 [concrete] // CHECK:STDOUT: %H.246: %H.type.386 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %pattern_type.75f: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Z.impl_witness: = impl_witness imports.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness) [concrete] // CHECK:STDOUT: %.7f5: type = fn_type_with_self_type %H.type.386, %Z.facet [concrete] -// CHECK:STDOUT: %H.type.ab3: type = fn_type @H.2 [concrete] +// CHECK:STDOUT: %H.type.ab3: type = fn_type @H.1 [concrete] // CHECK:STDOUT: %H.c25: %H.type.ab3 = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } @@ -1378,7 +1378,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @H.1(imports.%PackageAssociatedInterface.import_ref.d26: %Z.type) [from "associated_interface.carbon"] { +// CHECK:STDOUT: generic fn @H.2(imports.%PackageAssociatedInterface.import_ref.d26: %Z.type) [from "associated_interface.carbon"] { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.75f)] @@ -1386,9 +1386,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @H.2 [from "associated_interface.carbon"]; +// CHECK:STDOUT: fn @H.1 [from "associated_interface.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @H.1(constants.%Self) { +// CHECK:STDOUT: specific @H.2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.75f @@ -1435,9 +1435,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %X.patt: @AnyParam.%pattern_type (%pattern_type.7dc) = symbolic_binding_pattern X, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [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: %X.loc4_26.1: @AnyParam.%T.loc4_16.2 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc4_26.2 (constants.%X)] +// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_16.2 [symbolic = %T.loc4_16.1 (constants.%T)] +// CHECK:STDOUT: %X.loc4_26.2: @AnyParam.%T.loc4_16.1 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc4_26.1 (constants.%X)] // CHECK:STDOUT: } // CHECK:STDOUT: %Y.decl: type = interface_decl @Y [concrete = constants.%Y.type] {} {} // CHECK:STDOUT: } @@ -1448,13 +1448,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %self.patt: @K.%pattern_type (%pattern_type.f04) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @K.%pattern_type (%pattern_type.f04) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @K.%Self.as_type.loc7_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @K.%Self.as_type.loc7_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Y.type = name_ref Self, @Y.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type.loc7_14.1 [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @K.%Self.as_type.loc7_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @K.%Self.as_type.loc7_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, %K.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1464,10 +1464,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: witness = (%K.decl) // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @AnyParam(%T.loc4_16.1: type, %X.loc4_26.1: @AnyParam.%T.loc4_16.2 (%T)) { -// CHECK:STDOUT: %T.loc4_16.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.2 (constants.%T)] -// CHECK:STDOUT: %X.loc4_26.2: @AnyParam.%T.loc4_16.2 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc4_26.2 (constants.%X)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_16.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic class @AnyParam(%T.loc4_16.2: type, %X.loc4_26.2: @AnyParam.%T.loc4_16.1 (%T)) { +// CHECK:STDOUT: %T.loc4_16.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_16.1 (constants.%T)] +// CHECK:STDOUT: %X.loc4_26.1: @AnyParam.%T.loc4_16.1 (%T) = bind_symbolic_name X, 1 [symbolic = %X.loc4_26.1 (constants.%X)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_16.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1483,27 +1483,27 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @K(@Y.%Self: %Y.type) { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.1 [symbolic = %pattern_type (constants.%pattern_type.f04)] +// CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.2 [symbolic = %pattern_type (constants.%pattern_type.f04)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc7_14.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc7_14.2 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @K.%Self.as_type.loc7_14.1 (%Self.as_type)) { +// CHECK:STDOUT: fn(%self.param: @K.%Self.as_type.loc7_14.2 (%Self.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AnyParam(constants.%T, constants.%X) { -// CHECK:STDOUT: %T.loc4_16.2 => constants.%T -// CHECK:STDOUT: %X.loc4_26.2 => constants.%X +// CHECK:STDOUT: %T.loc4_16.1 => constants.%T +// CHECK:STDOUT: %X.loc4_26.1 => constants.%X // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc7_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f04 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1545,10 +1545,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] // CHECK:STDOUT: %.0fb: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.5fc: type = fn_type @Op.2, @Destroy.impl(%AnyParam.241) [concrete] +// CHECK:STDOUT: %Op.type.5fc: type = fn_type @Op.1, @Destroy.impl(%AnyParam.241) [concrete] // CHECK:STDOUT: %Op.6f3: %Op.type.5fc = struct_value () [concrete] // CHECK:STDOUT: %ptr.301: type = ptr_type %AnyParam.241 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.6f3, @Op.2(%AnyParam.241) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.6f3, @Op.1(%AnyParam.241) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1588,7 +1588,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %GenericInterface.decl: %GenericInterface.type.c92 = interface_decl @GenericInterface [concrete = constants.%GenericInterface.generic] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc6_28.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_28.2 (constants.%U)] +// CHECK:STDOUT: %U.loc6_28.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_28.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Y.impl [concrete] {} { // CHECK:STDOUT: %PackageHasParam.ref.loc8_6: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] @@ -1603,11 +1603,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %L.decl: %L.type = fn_decl @L [concrete = constants.%L] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericInterface(%U.loc6_28.1: type) { -// CHECK:STDOUT: %U.loc6_28.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_28.2 (constants.%U)] +// CHECK:STDOUT: generic interface @GenericInterface(%U.loc6_28.2: type) { +// CHECK:STDOUT: %U.loc6_28.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_28.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U.loc6_28.2)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.3fe)] +// CHECK:STDOUT: %GenericInterface.type: type = facet_type <@GenericInterface, @GenericInterface(%U.loc6_28.1)> [symbolic = %GenericInterface.type (constants.%GenericInterface.type.3fe)] // CHECK:STDOUT: %Self.2: @GenericInterface.%GenericInterface.type (%GenericInterface.type.3fe) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a1c)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -1699,7 +1699,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %.loc14: %AnyParam.241 = bind_value %obj.ref // CHECK:STDOUT: %K.call: init %empty_tuple.type = call %bound_method.loc14(%.loc14) // CHECK:STDOUT: %Op.bound: = bound_method %obj.var, constants.%Op.6f3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.6f3, @Op.2(constants.%AnyParam.241) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.6f3, @Op.1(constants.%AnyParam.241) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %obj.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc13(%addr) @@ -1707,7 +1707,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericInterface(constants.%U) { -// CHECK:STDOUT: %U.loc6_28.2 => constants.%U +// CHECK:STDOUT: %U.loc6_28.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AnyParam(constants.%T, constants.%X) { @@ -1762,7 +1762,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.f64: %Y.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] -// CHECK:STDOUT: %K.type.311: type = fn_type @K.1 [concrete] +// CHECK:STDOUT: %K.type.311: type = fn_type @K.2 [concrete] // CHECK:STDOUT: %K.7a1: %K.type.311 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type.61d: type = facet_access_type %Self.f64 [symbolic] // CHECK:STDOUT: %pattern_type.cb4: type = pattern_type %Self.as_type.61d [symbolic] @@ -1771,7 +1771,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.861, (%Y.impl_witness) [concrete] // CHECK:STDOUT: %.e17: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] -// CHECK:STDOUT: %K.type.7f9: type = fn_type @K.2 [concrete] +// CHECK:STDOUT: %K.type.7f9: type = fn_type @K.1 [concrete] // CHECK:STDOUT: %K.c3c: %K.type.7f9 = struct_value () [concrete] // CHECK:STDOUT: %Op.type.77e: type = fn_type @Op.1, @Destroy.impl(%AnyParam.861) [concrete] // CHECK:STDOUT: %Op.49f: %Op.type.77e = struct_value () [concrete] @@ -1905,7 +1905,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @K.1(imports.%PackageHasParam.import_ref.292: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: generic fn @K.2(imports.%PackageHasParam.import_ref.292: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.f64)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.61d)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.cb4)] @@ -1916,7 +1916,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @K.2 [from "has_generic_interface.carbon"]; +// CHECK:STDOUT: fn @K.1 [from "has_generic_interface.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: specific @AnyParam(constants.%T, constants.%X) { // CHECK:STDOUT: %T => constants.%T @@ -1936,7 +1936,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K.1(constants.%Self.f64) { +// CHECK:STDOUT: specific @K.2(constants.%Self.f64) { // CHECK:STDOUT: %Self => constants.%Self.f64 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.61d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb4 @@ -1979,10 +1979,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] // CHECK:STDOUT: %.701: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.f56: type = fn_type @Op.2, @Destroy.impl(%AnyParam.0dd) [concrete] +// CHECK:STDOUT: %Op.type.f56: type = fn_type @Op.1, @Destroy.impl(%AnyParam.0dd) [concrete] // CHECK:STDOUT: %Op.1fa: %Op.type.f56 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d96: type = ptr_type %AnyParam.0dd [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1fa, @Op.2(%AnyParam.0dd) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1fa, @Op.1(%AnyParam.0dd) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2022,7 +2022,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %GenericClass.decl: %GenericClass.type = class_decl @GenericClass [concrete = constants.%GenericClass.generic] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.loc6_20.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_20.2 (constants.%U)] +// CHECK:STDOUT: %U.loc6_20.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_20.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Y.impl [concrete] {} { // CHECK:STDOUT: %PackageHasParam.ref.loc8_6: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] @@ -2059,8 +2059,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: witness = file.%Y.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @GenericClass(%U.loc6_20.1: type) { -// CHECK:STDOUT: %U.loc6_20.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_20.2 (constants.%U)] +// CHECK:STDOUT: generic class @GenericClass(%U.loc6_20.2: type) { +// CHECK:STDOUT: %U.loc6_20.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc6_20.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -2132,7 +2132,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %.loc14: %AnyParam.0dd = bind_value %obj.ref // CHECK:STDOUT: %K.call: init %empty_tuple.type = call %bound_method.loc14(%.loc14) // CHECK:STDOUT: %Op.bound: = bound_method %obj.var, constants.%Op.1fa -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1fa, @Op.2(constants.%AnyParam.0dd) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1fa, @Op.1(constants.%AnyParam.0dd) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d96 = addr_of %obj.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc13(%addr) @@ -2140,7 +2140,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericClass(constants.%U) { -// CHECK:STDOUT: %U.loc6_20.2 => constants.%U +// CHECK:STDOUT: %U.loc6_20.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AnyParam(constants.%T, constants.%X) { @@ -2193,7 +2193,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.f64: %Y.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] -// CHECK:STDOUT: %K.type.311: type = fn_type @K.1 [concrete] +// CHECK:STDOUT: %K.type.311: type = fn_type @K.2 [concrete] // CHECK:STDOUT: %K.7a1: %K.type.311 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type.61d: type = facet_access_type %Self.f64 [symbolic] // CHECK:STDOUT: %pattern_type.cb4: type = pattern_type %Self.as_type.61d [symbolic] @@ -2202,7 +2202,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.d71, (%Y.impl_witness) [concrete] // CHECK:STDOUT: %.0dd: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] -// CHECK:STDOUT: %K.type.9cf: type = fn_type @K.2 [concrete] +// CHECK:STDOUT: %K.type.9cf: type = fn_type @K.1 [concrete] // CHECK:STDOUT: %K.039: %K.type.9cf = struct_value () [concrete] // CHECK:STDOUT: %Op.type.051: type = fn_type @Op.1, @Destroy.impl(%AnyParam.d71) [concrete] // CHECK:STDOUT: %Op.d0b: %Op.type.051 = struct_value () [concrete] @@ -2336,7 +2336,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @K.1(imports.%PackageHasParam.import_ref.292: %Y.type) [from "has_param.carbon"] { +// CHECK:STDOUT: generic fn @K.2(imports.%PackageHasParam.import_ref.292: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.f64)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.61d)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.cb4)] @@ -2347,7 +2347,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @K.2 [from "has_generic_class.carbon"]; +// CHECK:STDOUT: fn @K.1 [from "has_generic_class.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: specific @AnyParam(constants.%T, constants.%X) { // CHECK:STDOUT: %T => constants.%T @@ -2367,7 +2367,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @K.1(constants.%Self.f64) { +// CHECK:STDOUT: specific @K.2(constants.%Self.f64) { // CHECK:STDOUT: %Self => constants.%Self.f64 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.61d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb4 @@ -2450,7 +2450,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc13_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc13_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: impl_decl @I.impl [concrete] {} { @@ -2542,13 +2542,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %self.patt: @F.loc14.%pattern_type (%pattern_type.6de) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc14.%pattern_type (%pattern_type.6de) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc14.%Self.as_type.loc14_26.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.2 [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc14.%Self.as_type.loc14_26.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.2 [symbolic = %Self.as_type.loc14_26.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc14_26.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc14_26.2: type = converted %Self.ref, %Self.as_type.loc14_26.2 [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc14_26.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_26.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc14_26.2: type = converted %Self.ref, %Self.as_type.loc14_26.1 [symbolic = %Self.as_type.loc14_26.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc14.%Self.as_type.loc14_26.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc14.%Self.as_type.loc14_26.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -2573,8 +2573,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: witness = file.%I.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc13_9.1: type) { -// CHECK:STDOUT: %T.loc13_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc13_9.2: type) { +// CHECK:STDOUT: %T.loc13_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc13_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -2590,10 +2590,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc14(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc14_26.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_26.1 [symbolic = %pattern_type (constants.%pattern_type.6de)] +// CHECK:STDOUT: %Self.as_type.loc14_26.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_26.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_26.2 [symbolic = %pattern_type (constants.%pattern_type.6de)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc14.%Self.as_type.loc14_26.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.loc14.%Self.as_type.loc14_26.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc17(%self.param: %C.69b) { @@ -2602,24 +2602,24 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc13_9.2 => constants.%T +// CHECK:STDOUT: %T.loc13_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc14(constants.%Self.826) { // CHECK:STDOUT: %Self => constants.%Self.826 -// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc14_26.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.type.15d) { -// CHECK:STDOUT: %T.loc13_9.2 => constants.%tuple.type.15d +// CHECK:STDOUT: %T.loc13_9.1 => constants.%tuple.type.15d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc14(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%C.69b +// CHECK:STDOUT: %Self.as_type.loc14_26.2 => constants.%C.69b // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e23 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index b0e20f1899a5..6c02409f47ff 100644 --- a/toolchain/check/testdata/impl/lookup/instance_method.carbon +++ b/toolchain/check/testdata/impl/lookup/instance_method.carbon @@ -103,13 +103,13 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %self.param: @F.loc18.%Self.as_type.loc18_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc18_14.1: type = splice_block %.loc18_14.2 [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc18.%Self.as_type.loc18_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc18_14.1: type = splice_block %.loc18_14.2 [symbolic = %Self.as_type.loc18_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc18_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc18_14.2: type = converted %Self.ref, %Self.as_type.loc18_14.2 [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc18_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc18_14.2: type = converted %Self.ref, %Self.as_type.loc18_14.1 [symbolic = %Self.as_type.loc18_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc18.%Self.as_type.loc18_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc18.%Self.as_type.loc18_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -162,10 +162,10 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc18(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc18_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_14.1 [symbolic = %pattern_type (constants.%pattern_type.6de)] +// CHECK:STDOUT: %Self.as_type.loc18_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_14.2 [symbolic = %pattern_type (constants.%pattern_type.6de)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc18.%Self.as_type.loc18_14.1 (%Self.as_type)) -> %i32; +// CHECK:STDOUT: fn(%self.param: @F.loc18.%Self.as_type.loc18_14.2 (%Self.as_type)) -> %i32; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc23(%self.param: %C) -> %i32; @@ -184,13 +184,13 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc18(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc18_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc18(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc18_14.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon index 2558681edd1f..14deebdb5c5a 100644 --- a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon +++ b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon @@ -167,7 +167,7 @@ fn F() { // CHECK:STDOUT: %Outer.decl: %Outer.type = class_decl @Outer [concrete = constants.%Outer.generic] { // CHECK:STDOUT: %OuterParam.patt: %pattern_type.98f = symbolic_binding_pattern OuterParam, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %OuterParam.loc49_13.1: type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc49_13.2 (constants.%OuterParam)] +// CHECK:STDOUT: %OuterParam.loc49_13.2: type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc49_13.1 (constants.%OuterParam)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @Y.impl [concrete] {} { @@ -197,7 +197,7 @@ fn F() { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Y(@Outer.%OuterParam.loc49_13.1: type) { +// CHECK:STDOUT: generic interface @Y(@Outer.%OuterParam.loc49_13.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam: type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.49b)] @@ -218,7 +218,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @T(@Outer.%OuterParam.loc49_13.1: type, @Y.%Self.1: @Y.%Y.type (%Y.type.49b)) { +// CHECK:STDOUT: generic assoc_const @T(@Outer.%OuterParam.loc49_13.2: type, @Y.%Self.1: @Y.%Y.type (%Y.type.49b)) { // CHECK:STDOUT: assoc_const T:! type; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -227,12 +227,12 @@ fn F() { // CHECK:STDOUT: witness = file.%Y.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Outer(%OuterParam.loc49_13.1: type) { -// CHECK:STDOUT: %OuterParam.loc49_13.2: type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc49_13.2 (constants.%OuterParam)] +// CHECK:STDOUT: generic class @Outer(%OuterParam.loc49_13.2: type) { +// CHECK:STDOUT: %OuterParam.loc49_13.1: type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc49_13.1 (constants.%OuterParam)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc49_13.2)> [symbolic = %Y.type (constants.%Y.type.49b)] -// CHECK:STDOUT: %G.type: type = fn_type @G, @Outer(%OuterParam.loc49_13.2) [symbolic = %G.type (constants.%G.type.d49)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc49_13.1)> [symbolic = %Y.type (constants.%Y.type.49b)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @Outer(%OuterParam.loc49_13.1) [symbolic = %G.type (constants.%G.type.d49)] // CHECK:STDOUT: %G: @Outer.%G.type (%G.type.d49) = struct_value () [symbolic = %G (constants.%G.f3c)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -243,20 +243,20 @@ fn F() { // CHECK:STDOUT: %.loc54_14.1: type = splice_block %.loc54_14.2 [symbolic = %Y_where.type (constants.%Y_where.type.324)] { // CHECK:STDOUT: %.loc54_12: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.49b)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc54_12 [symbolic = %Y.type (constants.%Y.type.49b)] -// CHECK:STDOUT: %.Self.2: @G.%Y.type (%Y.type.49b) = bind_symbolic_name .Self [symbolic = %.Self.1 (constants.%.Self.c19)] -// CHECK:STDOUT: %.Self.ref: @G.%Y.type (%Y.type.49b) = name_ref .Self, %.Self.2 [symbolic = %.Self.1 (constants.%.Self.c19)] +// CHECK:STDOUT: %.Self.1: @G.%Y.type (%Y.type.49b) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.c19)] +// CHECK:STDOUT: %.Self.ref: @G.%Y.type (%Y.type.49b) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.c19)] // CHECK:STDOUT: %.loc54_20.1: @G.%Y.assoc_type (%Y.assoc_type.56e) = specific_constant @T.%assoc0, @Y(constants.%OuterParam) [symbolic = %assoc0 (constants.%assoc0.044)] // CHECK:STDOUT: %T.ref: @G.%Y.assoc_type (%Y.assoc_type.56e) = name_ref T, %.loc54_20.1 [symbolic = %assoc0 (constants.%assoc0.044)] -// CHECK:STDOUT: %.Self.as_type.loc54_20.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc54_20.1 (constants.%.Self.as_type.4b2)] -// CHECK:STDOUT: %.loc54_20.2: type = converted %.Self.ref, %.Self.as_type.loc54_20.2 [symbolic = %.Self.as_type.loc54_20.1 (constants.%.Self.as_type.4b2)] -// CHECK:STDOUT: %impl.elem0.loc54_20.2: type = impl_witness_access constants.%Y.lookup_impl_witness.369, element0 [symbolic = %impl.elem0.loc54_20.1 (constants.%impl.elem0.409)] +// CHECK:STDOUT: %.Self.as_type.loc54_20.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc54_20.2 (constants.%.Self.as_type.4b2)] +// CHECK:STDOUT: %.loc54_20.2: type = converted %.Self.ref, %.Self.as_type.loc54_20.1 [symbolic = %.Self.as_type.loc54_20.2 (constants.%.Self.as_type.4b2)] +// CHECK:STDOUT: %impl.elem0.loc54_20.1: type = impl_witness_access constants.%Y.lookup_impl_witness.369, element0 [symbolic = %impl.elem0.loc54_20.2 (constants.%impl.elem0.409)] // CHECK:STDOUT: %.loc54_26.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc54_26.2: type = converted %.loc54_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc54_14.2: type = where_expr %.Self.2 [symbolic = %Y_where.type (constants.%Y_where.type.324)] { -// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc54_20.2, %.loc54_26.2 +// CHECK:STDOUT: %.loc54_14.2: type = where_expr %.Self.1 [symbolic = %Y_where.type (constants.%Y_where.type.324)] { +// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc54_20.1, %.loc54_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %H.loc54_8.2: @G.%Y_where.type (%Y_where.type.324) = bind_symbolic_name H, 1 [symbolic = %H.loc54_8.1 (constants.%H)] +// CHECK:STDOUT: %H.loc54_8.1: @G.%Y_where.type (%Y_where.type.324) = bind_symbolic_name H, 1 [symbolic = %H.loc54_8.2 (constants.%H)] // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357] @@ -271,18 +271,18 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: class @C; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Outer.%OuterParam.loc49_13.1: type, %H.loc54_8.2: @G.%Y_where.type (%Y_where.type.324)) { +// CHECK:STDOUT: generic fn @G(@Outer.%OuterParam.loc49_13.2: type, %H.loc54_8.1: @G.%Y_where.type (%Y_where.type.324)) { // CHECK:STDOUT: %OuterParam: type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.49b)] -// CHECK:STDOUT: %.Self.1: @G.%Y.type (%Y.type.49b) = bind_symbolic_name .Self [symbolic = %.Self.1 (constants.%.Self.c19)] +// CHECK:STDOUT: %.Self.2: @G.%Y.type (%Y.type.49b) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.c19)] // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.56e)] // CHECK:STDOUT: %assoc0: @G.%Y.assoc_type (%Y.assoc_type.56e) = assoc_entity element0, @Y.%T [symbolic = %assoc0 (constants.%assoc0.044)] -// CHECK:STDOUT: %.Self.as_type.loc54_20.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc54_20.1 (constants.%.Self.as_type.4b2)] -// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.369)] -// CHECK:STDOUT: %impl.elem0.loc54_20.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc54_20.1 (constants.%impl.elem0.409)] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc54_20.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.324)] -// CHECK:STDOUT: %H.loc54_8.1: @G.%Y_where.type (%Y_where.type.324) = bind_symbolic_name H, 1 [symbolic = %H.loc54_8.1 (constants.%H)] +// CHECK:STDOUT: %.Self.as_type.loc54_20.2: type = facet_access_type %.Self.2 [symbolic = %.Self.as_type.loc54_20.2 (constants.%.Self.as_type.4b2)] +// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.2, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.369)] +// CHECK:STDOUT: %impl.elem0.loc54_20.2: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc54_20.2 (constants.%impl.elem0.409)] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc54_20.2 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.324)] +// CHECK:STDOUT: %H.loc54_8.2: @G.%Y_where.type (%Y_where.type.324) = bind_symbolic_name H, 1 [symbolic = %H.loc54_8.2 (constants.%H)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Y_where.type [symbolic = %pattern_type (constants.%pattern_type.f71)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -310,7 +310,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%OuterParam) { -// CHECK:STDOUT: %OuterParam.loc49_13.2 => constants.%OuterParam +// CHECK:STDOUT: %OuterParam.loc49_13.1 => constants.%OuterParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y.type => constants.%Y.type.49b @@ -334,20 +334,20 @@ fn F() { // CHECK:STDOUT: specific @G(constants.%OuterParam, constants.%H) { // CHECK:STDOUT: %OuterParam => constants.%OuterParam // CHECK:STDOUT: %Y.type => constants.%Y.type.49b -// CHECK:STDOUT: %.Self.1 => constants.%.Self.c19 +// CHECK:STDOUT: %.Self.2 => constants.%.Self.c19 // CHECK:STDOUT: %require_complete => constants.%require_complete // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.56e // CHECK:STDOUT: %assoc0 => constants.%assoc0.044 -// CHECK:STDOUT: %.Self.as_type.loc54_20.1 => constants.%.Self.as_type.4b2 +// CHECK:STDOUT: %.Self.as_type.loc54_20.2 => constants.%.Self.as_type.4b2 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.369 -// CHECK:STDOUT: %impl.elem0.loc54_20.1 => constants.%impl.elem0.409 +// CHECK:STDOUT: %impl.elem0.loc54_20.2 => constants.%impl.elem0.409 // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.324 -// CHECK:STDOUT: %H.loc54_8.1 => constants.%H +// CHECK:STDOUT: %H.loc54_8.2 => constants.%H // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%empty_tuple.type) { -// CHECK:STDOUT: %OuterParam.loc49_13.2 => constants.%empty_tuple.type +// CHECK:STDOUT: %OuterParam.loc49_13.1 => constants.%empty_tuple.type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y.type => constants.%Y.type.080 @@ -369,15 +369,15 @@ fn F() { // CHECK:STDOUT: specific @G(constants.%empty_tuple.type, constants.%facet_value) { // CHECK:STDOUT: %OuterParam => constants.%empty_tuple.type // CHECK:STDOUT: %Y.type => constants.%Y.type.080 -// CHECK:STDOUT: %.Self.1 => constants.%.Self.37b +// CHECK:STDOUT: %.Self.2 => constants.%.Self.37b // CHECK:STDOUT: %require_complete => constants.%complete_type.12f // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.06e // CHECK:STDOUT: %assoc0 => constants.%assoc0.0a6 -// CHECK:STDOUT: %.Self.as_type.loc54_20.1 => constants.%.Self.as_type.03a +// CHECK:STDOUT: %.Self.as_type.loc54_20.2 => constants.%.Self.as_type.03a // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.218 -// CHECK:STDOUT: %impl.elem0.loc54_20.1 => constants.%impl.elem0.a8c +// CHECK:STDOUT: %impl.elem0.loc54_20.2 => constants.%impl.elem0.a8c // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.8eb -// CHECK:STDOUT: %H.loc54_8.1 => constants.%facet_value +// CHECK:STDOUT: %H.loc54_8.2 => constants.%facet_value // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ce4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -423,11 +423,11 @@ fn F() { // CHECK:STDOUT: %BitAndWith.type.f2e: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.f2e = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.type.e8c: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] -// CHECK:STDOUT: %Op.type.9a3: type = fn_type @Op.1, @BitAndWith(type) [concrete] +// CHECK:STDOUT: %Op.type.9a3: type = fn_type @Op.2, @BitAndWith(type) [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] // CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.e8c = facet_value type, (%BitAndWith.impl_witness) [concrete] // CHECK:STDOUT: %.2af: type = fn_type_with_self_type %Op.type.9a3, %BitAndWith.facet [concrete] -// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.2 [concrete] +// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %Op.ff4: %Op.type.1cc = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %Z1.type, %Op.ff4 [concrete] // CHECK:STDOUT: %facet_type: type = facet_type <@Z1 & @Z2> [concrete] @@ -480,7 +480,7 @@ fn F() { // CHECK:STDOUT: %OuterParam.patt: %pattern_type.79b = symbolic_binding_pattern OuterParam, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Z1.ref: type = name_ref Z1, file.%Z1.decl [concrete = constants.%Z1.type] -// CHECK:STDOUT: %OuterParam.loc6_13.1: %Z1.type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc6_13.2 (constants.%OuterParam)] +// CHECK:STDOUT: %OuterParam.loc6_13.2: %Z1.type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc6_13.1 (constants.%OuterParam)] // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @Z1.impl [concrete] {} { // CHECK:STDOUT: %.loc17_7.1: %empty_tuple.type = tuple_literal () @@ -515,7 +515,7 @@ fn F() { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Y(@Outer.%OuterParam.loc6_13.1: %Z1.type) { +// CHECK:STDOUT: generic interface @Y(@Outer.%OuterParam.loc6_13.2: %Z1.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OuterParam: %Z1.type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.5e4)] @@ -536,11 +536,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @T(@Outer.%OuterParam.loc6_13.1: %Z1.type, @Y.%Self.1: @Y.%Y.type (%Y.type.5e4)) { +// CHECK:STDOUT: generic assoc_const @T(@Outer.%OuterParam.loc6_13.2: %Z1.type, @Y.%Self.1: @Y.%Y.type (%Y.type.5e4)) { // CHECK:STDOUT: assoc_const T:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @Y.impl(@Outer.%OuterParam.loc6_13.1: %Z1.type) { +// CHECK:STDOUT: generic impl @Y.impl(@Outer.%OuterParam.loc6_13.2: %Z1.type) { // CHECK:STDOUT: %OuterParam: %Z1.type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] // CHECK:STDOUT: %C: type = class_type @C, @C(%OuterParam) [symbolic = %C (constants.%C.4b0)] // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.5e4)] @@ -573,14 +573,14 @@ fn F() { // CHECK:STDOUT: witness = file.%Z2.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Outer(%OuterParam.loc6_13.1: %Z1.type) { -// CHECK:STDOUT: %OuterParam.loc6_13.2: %Z1.type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc6_13.2 (constants.%OuterParam)] +// CHECK:STDOUT: generic class @Outer(%OuterParam.loc6_13.2: %Z1.type) { +// CHECK:STDOUT: %OuterParam.loc6_13.1: %Z1.type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam.loc6_13.1 (constants.%OuterParam)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc6_13.2)> [symbolic = %Y.type (constants.%Y.type.5e4)] -// CHECK:STDOUT: %G.type: type = fn_type @G, @Outer(%OuterParam.loc6_13.2) [symbolic = %G.type (constants.%G.type.854)] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam.loc6_13.1)> [symbolic = %Y.type (constants.%Y.type.5e4)] +// CHECK:STDOUT: %G.type: type = fn_type @G, @Outer(%OuterParam.loc6_13.1) [symbolic = %G.type (constants.%G.type.854)] // CHECK:STDOUT: %G: @Outer.%G.type (%G.type.854) = struct_value () [symbolic = %G (constants.%G.e2b)] -// CHECK:STDOUT: %C: type = class_type @C, @C(%OuterParam.loc6_13.2) [symbolic = %C (constants.%C.4b0)] +// CHECK:STDOUT: %C: type = class_type @C, @C(%OuterParam.loc6_13.1) [symbolic = %C (constants.%C.4b0)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Y.decl: type = interface_decl @Y [symbolic = @Outer.%Y.type (constants.%Y.type.5e4)] {} {} @@ -590,20 +590,20 @@ fn F() { // CHECK:STDOUT: %.loc11_14.1: type = splice_block %.loc11_14.2 [symbolic = %Y_where.type (constants.%Y_where.type.fee)] { // CHECK:STDOUT: %.loc11_12: type = specific_constant @Outer.%Y.decl, @Outer(constants.%OuterParam) [symbolic = %Y.type (constants.%Y.type.5e4)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc11_12 [symbolic = %Y.type (constants.%Y.type.5e4)] -// CHECK:STDOUT: %.Self.2: @G.%Y.type (%Y.type.5e4) = bind_symbolic_name .Self [symbolic = %.Self.1 (constants.%.Self.99e)] -// CHECK:STDOUT: %.Self.ref: @G.%Y.type (%Y.type.5e4) = name_ref .Self, %.Self.2 [symbolic = %.Self.1 (constants.%.Self.99e)] +// CHECK:STDOUT: %.Self.1: @G.%Y.type (%Y.type.5e4) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.99e)] +// CHECK:STDOUT: %.Self.ref: @G.%Y.type (%Y.type.5e4) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.99e)] // CHECK:STDOUT: %.loc11_20.1: @G.%Y.assoc_type (%Y.assoc_type.2a6) = specific_constant @T.%assoc0, @Y(constants.%OuterParam) [symbolic = %assoc0 (constants.%assoc0.603)] // CHECK:STDOUT: %T.ref: @G.%Y.assoc_type (%Y.assoc_type.2a6) = name_ref T, %.loc11_20.1 [symbolic = %assoc0 (constants.%assoc0.603)] -// CHECK:STDOUT: %.Self.as_type.loc11_20.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_20.1 (constants.%.Self.as_type.3b9)] -// CHECK:STDOUT: %.loc11_20.2: type = converted %.Self.ref, %.Self.as_type.loc11_20.2 [symbolic = %.Self.as_type.loc11_20.1 (constants.%.Self.as_type.3b9)] -// CHECK:STDOUT: %impl.elem0.loc11_20.2: type = impl_witness_access constants.%Y.lookup_impl_witness.c65, element0 [symbolic = %impl.elem0.loc11_20.1 (constants.%impl.elem0.23d)] +// CHECK:STDOUT: %.Self.as_type.loc11_20.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_20.2 (constants.%.Self.as_type.3b9)] +// CHECK:STDOUT: %.loc11_20.2: type = converted %.Self.ref, %.Self.as_type.loc11_20.1 [symbolic = %.Self.as_type.loc11_20.2 (constants.%.Self.as_type.3b9)] +// CHECK:STDOUT: %impl.elem0.loc11_20.1: type = impl_witness_access constants.%Y.lookup_impl_witness.c65, element0 [symbolic = %impl.elem0.loc11_20.2 (constants.%impl.elem0.23d)] // CHECK:STDOUT: %.loc11_26.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc11_26.2: type = converted %.loc11_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc11_14.2: type = where_expr %.Self.2 [symbolic = %Y_where.type (constants.%Y_where.type.fee)] { -// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc11_20.2, %.loc11_26.2 +// CHECK:STDOUT: %.loc11_14.2: type = where_expr %.Self.1 [symbolic = %Y_where.type (constants.%Y_where.type.fee)] { +// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc11_20.1, %.loc11_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %H.loc11_8.2: @G.%Y_where.type (%Y_where.type.fee) = bind_symbolic_name H, 1 [symbolic = %H.loc11_8.1 (constants.%H)] +// CHECK:STDOUT: %H.loc11_8.1: @G.%Y_where.type (%Y_where.type.fee) = bind_symbolic_name H, 1 [symbolic = %H.loc11_8.2 (constants.%H)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [symbolic = @Outer.%C (constants.%C.4b0)] {} {} // CHECK:STDOUT: impl_decl @Y.impl [concrete] {} { @@ -639,22 +639,22 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(@Outer.%OuterParam.loc6_13.1: %Z1.type) { +// CHECK:STDOUT: generic class @C(@Outer.%OuterParam.loc6_13.2: %Z1.type) { // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@Outer.%OuterParam.loc6_13.1: %Z1.type, %H.loc11_8.2: @G.%Y_where.type (%Y_where.type.fee)) { +// CHECK:STDOUT: generic fn @G(@Outer.%OuterParam.loc6_13.2: %Z1.type, %H.loc11_8.1: @G.%Y_where.type (%Y_where.type.fee)) { // CHECK:STDOUT: %OuterParam: %Z1.type = bind_symbolic_name OuterParam, 0 [symbolic = %OuterParam (constants.%OuterParam)] // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.5e4)] -// CHECK:STDOUT: %.Self.1: @G.%Y.type (%Y.type.5e4) = bind_symbolic_name .Self [symbolic = %.Self.1 (constants.%.Self.99e)] +// CHECK:STDOUT: %.Self.2: @G.%Y.type (%Y.type.5e4) = bind_symbolic_name .Self [symbolic = %.Self.2 (constants.%.Self.99e)] // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete.d37)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.2a6)] // CHECK:STDOUT: %assoc0: @G.%Y.assoc_type (%Y.assoc_type.2a6) = assoc_entity element0, @Y.%T [symbolic = %assoc0 (constants.%assoc0.603)] -// CHECK:STDOUT: %.Self.as_type.loc11_20.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc11_20.1 (constants.%.Self.as_type.3b9)] -// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.c65)] -// CHECK:STDOUT: %impl.elem0.loc11_20.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_20.1 (constants.%impl.elem0.23d)] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc11_20.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.fee)] -// CHECK:STDOUT: %H.loc11_8.1: @G.%Y_where.type (%Y_where.type.fee) = bind_symbolic_name H, 1 [symbolic = %H.loc11_8.1 (constants.%H)] +// CHECK:STDOUT: %.Self.as_type.loc11_20.2: type = facet_access_type %.Self.2 [symbolic = %.Self.as_type.loc11_20.2 (constants.%.Self.as_type.3b9)] +// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.2, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.c65)] +// CHECK:STDOUT: %impl.elem0.loc11_20.2: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_20.2 (constants.%impl.elem0.23d)] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc11_20.2 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.fee)] +// CHECK:STDOUT: %H.loc11_8.2: @G.%Y_where.type (%Y_where.type.fee) = bind_symbolic_name H, 1 [symbolic = %H.loc11_8.2 (constants.%H)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Y_where.type [symbolic = %pattern_type (constants.%pattern_type.b86)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -709,7 +709,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%OuterParam) { -// CHECK:STDOUT: %OuterParam.loc6_13.2 => constants.%OuterParam +// CHECK:STDOUT: %OuterParam.loc6_13.1 => constants.%OuterParam // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y.type => constants.%Y.type.5e4 @@ -734,15 +734,15 @@ fn F() { // CHECK:STDOUT: specific @G(constants.%OuterParam, constants.%H) { // CHECK:STDOUT: %OuterParam => constants.%OuterParam // CHECK:STDOUT: %Y.type => constants.%Y.type.5e4 -// CHECK:STDOUT: %.Self.1 => constants.%.Self.99e +// CHECK:STDOUT: %.Self.2 => constants.%.Self.99e // CHECK:STDOUT: %require_complete => constants.%require_complete.d37 // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.2a6 // CHECK:STDOUT: %assoc0 => constants.%assoc0.603 -// CHECK:STDOUT: %.Self.as_type.loc11_20.1 => constants.%.Self.as_type.3b9 +// CHECK:STDOUT: %.Self.as_type.loc11_20.2 => constants.%.Self.as_type.3b9 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.c65 -// CHECK:STDOUT: %impl.elem0.loc11_20.1 => constants.%impl.elem0.23d +// CHECK:STDOUT: %impl.elem0.loc11_20.2 => constants.%impl.elem0.23d // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.fee -// CHECK:STDOUT: %H.loc11_8.1 => constants.%H +// CHECK:STDOUT: %H.loc11_8.2 => constants.%H // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b86 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -765,7 +765,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%Z1.facet) { -// CHECK:STDOUT: %OuterParam.loc6_13.2 => constants.%Z1.facet +// CHECK:STDOUT: %OuterParam.loc6_13.1 => constants.%Z1.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y.type => constants.%Y.type.927 @@ -806,15 +806,15 @@ fn F() { // CHECK:STDOUT: specific @G(constants.%Z1.facet, constants.%facet_value.ed1) { // CHECK:STDOUT: %OuterParam => constants.%Z1.facet // CHECK:STDOUT: %Y.type => constants.%Y.type.927 -// CHECK:STDOUT: %.Self.1 => constants.%.Self.3de +// CHECK:STDOUT: %.Self.2 => constants.%.Self.3de // CHECK:STDOUT: %require_complete => constants.%complete_type.066 // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.93b // CHECK:STDOUT: %assoc0 => constants.%assoc0.aa8 -// CHECK:STDOUT: %.Self.as_type.loc11_20.1 => constants.%.Self.as_type.7ce +// CHECK:STDOUT: %.Self.as_type.loc11_20.2 => constants.%.Self.as_type.7ce // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.a49 -// CHECK:STDOUT: %impl.elem0.loc11_20.1 => constants.%impl.elem0.8ce +// CHECK:STDOUT: %impl.elem0.loc11_20.2 => constants.%impl.elem0.8ce // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.6af -// CHECK:STDOUT: %H.loc11_8.1 => constants.%facet_value.ed1 +// CHECK:STDOUT: %H.loc11_8.2 => constants.%facet_value.ed1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b1a // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon index 00514fb66972..fcaf038a6b7f 100644 --- a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon +++ b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon @@ -166,7 +166,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.decl: %Z.type.9fb = interface_decl @Z [concrete = constants.%Z.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc3_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc3_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @Z.impl.119 [concrete] { @@ -228,24 +228,24 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.049] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc13_6.1: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T.62d)] -// CHECK:STDOUT: %t.param: @F.%T.as_type.loc13_19.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc13_19.1: type = splice_block %.loc13_19.2 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc13: %Z.type.049 = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T.62d)] -// CHECK:STDOUT: %T.as_type.loc13_19.1: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc13_19.2: type = converted %T.ref.loc13, %T.as_type.loc13_19.1 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc13_6.2: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T.62d)] +// CHECK:STDOUT: %t.param: @F.%T.as_type.loc13_19.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc13_19.1: type = splice_block %.loc13_19.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc13: %Z.type.049 = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T.62d)] +// CHECK:STDOUT: %T.as_type.loc13_19.2: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_19.2: type = converted %T.ref.loc13, %T.as_type.loc13_19.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.%T.as_type.loc13_19.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.%T.as_type.loc13_19.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Z(%T.loc3_13.1: type) { -// CHECK:STDOUT: %T.loc3_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic interface @Z(%T.loc3_13.2: type) { +// CHECK:STDOUT: %T.loc3_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_13.2)> [symbolic = %Z.type (constants.%Z.type.a61)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_13.1)> [symbolic = %Z.type (constants.%Z.type.a61)] // CHECK:STDOUT: %Self.2: @Z.%Z.type (%Z.type.a61) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2bc)] -// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%T.loc3_13.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.26e)] +// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%T.loc3_13.1) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.26e)] // CHECK:STDOUT: %assoc0: @Z.%Z.assoc_type (%Z.assoc_type.26e) = assoc_entity element0, %X [symbolic = %assoc0 (constants.%assoc0.1cd)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -261,7 +261,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @X(@Z.%T.loc3_13.1: type, @Z.%Self.1: @Z.%Z.type (%Z.type.a61)) { +// CHECK:STDOUT: generic assoc_const @X(@Z.%T.loc3_13.2: type, @Z.%Self.1: @Z.%Z.type (%Z.type.a61)) { // CHECK:STDOUT: assoc_const X:! type; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -311,44 +311,44 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc13_6.1: %Z.type.049) { -// CHECK:STDOUT: %T.loc13_6.2: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T.62d)] -// CHECK:STDOUT: %T.as_type.loc13_19.2: type = facet_access_type %T.loc13_6.2 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc13_19.2 [symbolic = %pattern_type (constants.%pattern_type.d8b)] +// CHECK:STDOUT: generic fn @F(%T.loc13_6.2: %Z.type.049) { +// CHECK:STDOUT: %T.loc13_6.1: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T.62d)] +// CHECK:STDOUT: %T.as_type.loc13_19.1: type = facet_access_type %T.loc13_6.1 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc13_19.1 [symbolic = %pattern_type (constants.%pattern_type.d8b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc13_19.2 [symbolic = %require_complete (constants.%require_complete.2b1)] -// CHECK:STDOUT: %Z.impl_witness: = impl_witness file.%Z.impl_witness_table.loc11, @Z.impl.62c(%T.as_type.loc13_19.2) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.7c2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc13_19.1 [symbolic = %require_complete (constants.%require_complete.2b1)] +// CHECK:STDOUT: %Z.impl_witness: = impl_witness file.%Z.impl_witness_table.loc11, @Z.impl.62c(%T.as_type.loc13_19.1) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.7c2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_19.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_19.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.d8b) = binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_19.2 (%T.as_type) = name_ref t, %t -// CHECK:STDOUT: %.loc15_11.1: type = splice_block %impl.elem0 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc15: %Z.type.049 = name_ref T, %T.loc13_6.1 [symbolic = %T.loc13_6.2 (constants.%T.62d)] +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_19.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %.loc15_11.1: type = splice_block %impl.elem0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc15: %Z.type.049 = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T.62d)] // CHECK:STDOUT: %.loc15_11.2: %Z.assoc_type.252 = specific_constant @X.%assoc0, @Z(constants.%C) [concrete = constants.%assoc0.ea4] // CHECK:STDOUT: %X.ref: %Z.assoc_type.252 = name_ref X, %.loc15_11.2 [concrete = constants.%assoc0.ea4] -// CHECK:STDOUT: %T.as_type.loc15_11.1: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc15_11.3: type = converted %T.ref.loc15, %T.as_type.loc15_11.1 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_type.loc15_11.2: type = facet_access_type constants.%T.62d [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc15_11.4: type = converted constants.%T.62d, %T.as_type.loc15_11.2 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.7c2, element0 [symbolic = %T.as_type.loc13_19.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc15_11.1: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_11.3: type = converted %T.ref.loc15, %T.as_type.loc15_11.1 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc15_11.2: type = facet_access_type constants.%T.62d [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_11.4: type = converted constants.%T.62d, %T.as_type.loc15_11.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.7c2, element0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%T.as_type.loc13_19.2 (%T.as_type) = bind_name a, %t.ref +// CHECK:STDOUT: %a: @F.%T.as_type.loc13_19.1 (%T.as_type) = bind_name a, %t.ref // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc3_13.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc3_13.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%T.8b3, constants.%Self.2bc) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%S) { -// CHECK:STDOUT: %T.loc3_13.2 => constants.%S +// CHECK:STDOUT: %T.loc3_13.1 => constants.%S // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Z.type => constants.%Z.type.8e9 @@ -376,7 +376,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%C) { -// CHECK:STDOUT: %T.loc3_13.2 => constants.%C +// CHECK:STDOUT: %T.loc3_13.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Z.type => constants.%Z.type.049 @@ -395,8 +395,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.62d) { -// CHECK:STDOUT: %T.loc13_6.2 => constants.%T.62d -// CHECK:STDOUT: %T.as_type.loc13_19.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc13_6.1 => constants.%T.62d +// CHECK:STDOUT: %T.as_type.loc13_19.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.d8b // CHECK:STDOUT: } // CHECK:STDOUT: @@ -503,7 +503,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.decl: %Z.type.9fb = interface_decl @Z [concrete = constants.%Z.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc3_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc3_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %Y.decl: type = interface_decl @Y [concrete = constants.%Y.type] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} @@ -566,24 +566,24 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.049] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc14_6.1: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc14_6.2 (constants.%T.62d)] -// CHECK:STDOUT: %t.param: @F.%T.as_type.loc14_19.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_19.1: type = splice_block %.loc14_19.2 [symbolic = %T.as_type.loc14_19.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc14: %Z.type.049 = name_ref T, %T.loc14_6.1 [symbolic = %T.loc14_6.2 (constants.%T.62d)] -// CHECK:STDOUT: %T.as_type.loc14_19.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc14_19.2: type = converted %T.ref.loc14, %T.as_type.loc14_19.1 [symbolic = %T.as_type.loc14_19.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc14_6.2: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc14_6.1 (constants.%T.62d)] +// CHECK:STDOUT: %t.param: @F.%T.as_type.loc14_19.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_19.1: type = splice_block %.loc14_19.2 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc14: %Z.type.049 = name_ref T, %T.loc14_6.2 [symbolic = %T.loc14_6.1 (constants.%T.62d)] +// CHECK:STDOUT: %T.as_type.loc14_19.2: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc14_19.2: type = converted %T.ref.loc14, %T.as_type.loc14_19.2 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.%T.as_type.loc14_19.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.%T.as_type.loc14_19.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Z(%T.loc3_13.1: type) { -// CHECK:STDOUT: %T.loc3_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic interface @Z(%T.loc3_13.2: type) { +// CHECK:STDOUT: %T.loc3_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_13.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_13.2)> [symbolic = %Z.type (constants.%Z.type.a61)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%T.loc3_13.1)> [symbolic = %Z.type (constants.%Z.type.a61)] // CHECK:STDOUT: %Self.2: @Z.%Z.type (%Z.type.a61) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2bc)] -// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%T.loc3_13.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.26e)] +// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%T.loc3_13.1) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.26e)] // CHECK:STDOUT: %assoc0: @Z.%Z.assoc_type (%Z.assoc_type.26e) = assoc_entity element0, %X [symbolic = %assoc0 (constants.%assoc0.1cd)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -607,7 +607,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @X(@Z.%T.loc3_13.1: type, @Z.%Self.1: @Z.%Z.type (%Z.type.a61)) { +// CHECK:STDOUT: generic assoc_const @X(@Z.%T.loc3_13.2: type, @Z.%Self.1: @Z.%Z.type (%Z.type.a61)) { // CHECK:STDOUT: assoc_const X:! type; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -657,14 +657,14 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc14_6.1: %Z.type.049) { -// CHECK:STDOUT: %T.loc14_6.2: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc14_6.2 (constants.%T.62d)] -// CHECK:STDOUT: %T.as_type.loc14_19.2: type = facet_access_type %T.loc14_6.2 [symbolic = %T.as_type.loc14_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc14: type = pattern_type %T.as_type.loc14_19.2 [symbolic = %pattern_type.loc14 (constants.%pattern_type.d8b)] +// CHECK:STDOUT: generic fn @F(%T.loc14_6.2: %Z.type.049) { +// CHECK:STDOUT: %T.loc14_6.1: %Z.type.049 = bind_symbolic_name T, 0 [symbolic = %T.loc14_6.1 (constants.%T.62d)] +// CHECK:STDOUT: %T.as_type.loc14_19.1: type = facet_access_type %T.loc14_6.1 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc14: type = pattern_type %T.as_type.loc14_19.1 [symbolic = %pattern_type.loc14 (constants.%pattern_type.d8b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc14_19.2 [symbolic = %require_complete.loc14 (constants.%require_complete.2b1)] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc14_6.2, @Z, @Z(constants.%C) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.103)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc14_19.1 [symbolic = %require_complete.loc14 (constants.%require_complete.2b1)] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc14_6.1, @Z, @Z(constants.%C) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.103)] // CHECK:STDOUT: %impl.elem0.loc22_11.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_11.2 (constants.%impl.elem0.284)] // CHECK:STDOUT: %require_complete.loc22_11: = require_complete_type %impl.elem0.loc22_11.2 [symbolic = %require_complete.loc22_11 (constants.%require_complete.3ef)] // CHECK:STDOUT: %pattern_type.loc22: type = pattern_type %impl.elem0.loc22_11.2 [symbolic = %pattern_type.loc22 (constants.%pattern_type.722)] @@ -673,18 +673,18 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%impl.elem0.loc22_11.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.bd9)] // CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.bd9) = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic = %assoc0 (constants.%assoc0.428)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc14_19.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc14_19.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: @F.%pattern_type.loc22 (%pattern_type.722) = binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc14_19.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc14_19.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %.loc22_11.1: type = splice_block %impl.elem0.loc22_11.1 [symbolic = %impl.elem0.loc22_11.2 (constants.%impl.elem0.284)] { -// CHECK:STDOUT: %T.ref.loc22: %Z.type.049 = name_ref T, %T.loc14_6.1 [symbolic = %T.loc14_6.2 (constants.%T.62d)] +// CHECK:STDOUT: %T.ref.loc22: %Z.type.049 = name_ref T, %T.loc14_6.2 [symbolic = %T.loc14_6.1 (constants.%T.62d)] // CHECK:STDOUT: %.loc22_11.2: %Z.assoc_type.252 = specific_constant @X.%assoc0, @Z(constants.%C) [concrete = constants.%assoc0.ea4] // CHECK:STDOUT: %X.ref: %Z.assoc_type.252 = name_ref X, %.loc22_11.2 [concrete = constants.%assoc0.ea4] -// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc14_19.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc22_11.3: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.as_type.loc14_19.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc22_11.3: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc22_11.1: type = impl_witness_access constants.%Z.lookup_impl_witness.103, element0 [symbolic = %impl.elem0.loc22_11.2 (constants.%impl.elem0.284)] // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.type.loc22_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%impl.elem0.284)> [symbolic = %ImplicitAs.type.loc22_16.2 (constants.%ImplicitAs.type.199)] @@ -697,13 +697,13 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc3_13.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc3_13.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%T.8b3, constants.%Self.2bc) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%S) { -// CHECK:STDOUT: %T.loc3_13.2 => constants.%S +// CHECK:STDOUT: %T.loc3_13.1 => constants.%S // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Z.type => constants.%Z.type.8e9 @@ -731,7 +731,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%C) { -// CHECK:STDOUT: %T.loc3_13.2 => constants.%C +// CHECK:STDOUT: %T.loc3_13.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Z.type => constants.%Z.type.049 @@ -750,8 +750,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.62d) { -// CHECK:STDOUT: %T.loc14_6.2 => constants.%T.62d -// CHECK:STDOUT: %T.as_type.loc14_19.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc14_6.1 => constants.%T.62d +// CHECK:STDOUT: %T.as_type.loc14_19.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.d8b // CHECK:STDOUT: } // CHECK:STDOUT: @@ -833,16 +833,16 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_26 (%pattern_type.afe) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_26 (%pattern_type.afe) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc9_29: type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %Ptr.facet.loc9_30.1: %Ptr.type = facet_value constants.%T, (constants.%Ptr.impl_witness.e8ce81.2) [symbolic = %Ptr.facet.loc9_30.2 (constants.%Ptr.facet.bbf)] -// CHECK:STDOUT: %.loc9: %Ptr.type = converted %T.ref.loc9_29, %Ptr.facet.loc9_30.1 [symbolic = %Ptr.facet.loc9_30.2 (constants.%Ptr.facet.bbf)] +// CHECK:STDOUT: %Ptr.facet.loc9_30.2: %Ptr.type = facet_value constants.%T, (constants.%Ptr.impl_witness.e8ce81.2) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.bbf)] +// CHECK:STDOUT: %.loc9: %Ptr.type = converted %T.ref.loc9_29, %Ptr.facet.loc9_30.2 [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.bbf)] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.impl_witness.e8ce81.2, element0 [symbolic = %ptr (constants.%ptr.79f131.2)] -// CHECK:STDOUT: %T.loc9_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %t.param: ref @F.%T.loc9_6.2 (%T) = ref_param call_param0 -// CHECK:STDOUT: %T.ref.loc9_23: type = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %t: ref @F.%T.loc9_6.2 (%T) = bind_name t, %t.param +// CHECK:STDOUT: %T.loc9_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %t.param: ref @F.%T.loc9_6.1 (%T) = ref_param call_param0 +// CHECK:STDOUT: %T.ref.loc9_23: type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %t: ref @F.%T.loc9_6.1 (%T) = bind_name t, %t.param // CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.79f131.2) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%ptr (%ptr.79f131.2) = return_slot %return.param // CHECK:STDOUT: } @@ -879,21 +879,21 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc9_6.1: type) { -// CHECK:STDOUT: %T.loc9_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.loc9_6.2 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.7dc)] -// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @Ptr.impl(%T.loc9_6.2) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.e8ce81.2)] -// CHECK:STDOUT: %Ptr.facet.loc9_30.2: %Ptr.type = facet_value %T.loc9_6.2, (%Ptr.impl_witness) [symbolic = %Ptr.facet.loc9_30.2 (constants.%Ptr.facet.bbf)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.loc9_6.2 [symbolic = %ptr (constants.%ptr.79f131.2)] +// CHECK:STDOUT: generic fn @F(%T.loc9_6.2: type) { +// CHECK:STDOUT: %T.loc9_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.loc9_6.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @Ptr.impl(%T.loc9_6.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.e8ce81.2)] +// CHECK:STDOUT: %Ptr.facet.loc9_30.1: %Ptr.type = facet_value %T.loc9_6.1, (%Ptr.impl_witness) [symbolic = %Ptr.facet.loc9_30.1 (constants.%Ptr.facet.bbf)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.loc9_6.1 [symbolic = %ptr (constants.%ptr.79f131.2)] // CHECK:STDOUT: %pattern_type.loc9_26: type = pattern_type %ptr [symbolic = %pattern_type.loc9_26 (constants.%pattern_type.afe)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_26: = require_complete_type %ptr [symbolic = %require_complete.loc9_26 (constants.%require_complete.6e5)] -// CHECK:STDOUT: %require_complete.loc9_16: = require_complete_type %T.loc9_6.2 [symbolic = %require_complete.loc9_16 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %require_complete.loc9_16: = require_complete_type %T.loc9_6.1 [symbolic = %require_complete.loc9_16 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.loc9_6.2 (%T)) -> @F.%ptr (%ptr.79f131.2) { +// CHECK:STDOUT: fn(%t.param: @F.%T.loc9_6.1 (%T)) -> @F.%ptr (%ptr.79f131.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.loc9_6.2 (%T) = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref @F.%T.loc9_6.1 (%T) = name_ref t, %t // CHECK:STDOUT: %addr: @F.%ptr (%ptr.79f131.2) = addr_of %t.ref // CHECK:STDOUT: return %addr // CHECK:STDOUT: } @@ -924,10 +924,10 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: specific @Type(constants.%Ptr.facet.bbf) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T +// CHECK:STDOUT: %T.loc9_6.1 => constants.%T // CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.7dc // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.e8ce81.2 -// CHECK:STDOUT: %Ptr.facet.loc9_30.2 => constants.%Ptr.facet.bbf +// CHECK:STDOUT: %Ptr.facet.loc9_30.1 => constants.%Ptr.facet.bbf // CHECK:STDOUT: %ptr => constants.%ptr.79f131.2 // CHECK:STDOUT: %pattern_type.loc9_26 => constants.%pattern_type.afe // CHECK:STDOUT: } @@ -1010,22 +1010,22 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.a95) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.a95) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T)] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc9_29.1: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_29.1: type = converted %T.ref.loc9_28, %T.as_type.loc9_29.1 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_type.loc9_29.2: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_29.2: type = converted constants.%T, %T.as_type.loc9_29.2 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_29.1: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_29.1: type = converted %T.ref.loc9_28, %T.as_type.loc9_29.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_29.2: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_29.2: type = converted constants.%T, %T.as_type.loc9_29.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.impl_witness.5aa, element0 [symbolic = %ptr (constants.%ptr.900)] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] -// CHECK:STDOUT: %T.loc9_6.1: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.2 (%T.as_type) = ref_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.1 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc9_6.2: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type) = ref_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.900) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%ptr (%ptr.900) = return_slot %return.param // CHECK:STDOUT: } @@ -1062,21 +1062,21 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc9_6.1: %Ptr.type) { -// CHECK:STDOUT: %T.loc9_6.2: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.loc9_6.2 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.as_type.loc9_22.2 [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.87e)] -// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @Ptr.impl(%T.as_type.loc9_22.2) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.5aa)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.2 [symbolic = %ptr (constants.%ptr.900)] +// CHECK:STDOUT: generic fn @F(%T.loc9_6.2: %Ptr.type) { +// CHECK:STDOUT: %T.loc9_6.1: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.87e)] +// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.5aa)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.900)] // CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.a95)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.df6)] -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.2 [symbolic = %require_complete.loc9_15 (constants.%require_complete.020)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.020)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc9_22.2 (%T.as_type)) -> @F.%ptr (%ptr.900) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc9_22.1 (%T.as_type)) -> @F.%ptr (%ptr.900) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %addr: @F.%ptr (%ptr.900) = addr_of %t.ref // CHECK:STDOUT: return %addr // CHECK:STDOUT: } @@ -1107,8 +1107,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: specific @Type(constants.%Ptr.facet.db8) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc9_22.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc9_6.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc9_19 => constants.%pattern_type.87e // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.5aa // CHECK:STDOUT: %ptr => constants.%ptr.900 @@ -1193,21 +1193,21 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.a95) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.a95) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T)] // CHECK:STDOUT: %Ptr.ref.loc9_31: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_29: type = converted constants.%T, %T.as_type.loc9_29 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type constants.%T [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_29: type = converted constants.%T, %T.as_type.loc9_29 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.impl_witness.5aa, element0 [symbolic = %ptr (constants.%ptr.900)] // CHECK:STDOUT: %Ptr.ref.loc9_10: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] -// CHECK:STDOUT: %T.loc9_6.1: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.2 (%T.as_type) = ref_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_6.1 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.1 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc9_6.2: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type) = ref_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.900) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.%ptr (%ptr.900) = return_slot %return.param // CHECK:STDOUT: } @@ -1244,21 +1244,21 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc9_6.1: %Ptr.type) { -// CHECK:STDOUT: %T.loc9_6.2: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.loc9_6.2 [symbolic = %T.as_type.loc9_22.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.as_type.loc9_22.2 [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.87e)] -// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @Ptr.impl(%T.as_type.loc9_22.2) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.5aa)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.2 [symbolic = %ptr (constants.%ptr.900)] +// CHECK:STDOUT: generic fn @F(%T.loc9_6.2: %Ptr.type) { +// CHECK:STDOUT: %T.loc9_6.1: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.87e)] +// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.5aa)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.900)] // CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.a95)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.df6)] -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.2 [symbolic = %require_complete.loc9_15 (constants.%require_complete.020)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.020)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc9_22.2 (%T.as_type)) -> @F.%ptr (%ptr.900) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc9_22.1 (%T.as_type)) -> @F.%ptr (%ptr.900) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %addr: @F.%ptr (%ptr.900) = addr_of %t.ref // CHECK:STDOUT: return %addr // CHECK:STDOUT: } @@ -1289,8 +1289,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: specific @Type(constants.%Ptr.facet.db8) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc9_22.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc9_6.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc9_19 => constants.%pattern_type.87e // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.5aa // CHECK:STDOUT: %ptr => constants.%ptr.900 diff --git a/toolchain/check/testdata/impl/lookup/specific_args.carbon b/toolchain/check/testdata/impl/lookup/specific_args.carbon index 12f1e1adb33d..c41dc2942dd5 100644 --- a/toolchain/check/testdata/impl/lookup/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/specific_args.carbon @@ -87,25 +87,25 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.decl: %I.type.dac = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc5_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc5_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%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: generic interface @I(%T.loc4_13.2: type) { +// CHECK:STDOUT: %T.loc4_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc4_13.1)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc4_13.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc4_13.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @I.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc4_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc4_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type)] // CHECK:STDOUT: %assoc0.loc4_43.2: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc4_43.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -114,14 +114,14 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type.4be) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.%pattern_type (%pattern_type.4be) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc4_36.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.3 [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc4_36.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.3 [symbolic = %Self.as_type.loc4_36.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc4_36.2: @F.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @F.%I.type (%I.type.325) = name_ref Self, %.loc4_36.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_36.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc4_36.3: type = converted %Self.ref, %Self.as_type.loc4_36.2 [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_36.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_36.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_36.3: type = converted %Self.ref, %Self.as_type.loc4_36.1 [symbolic = %Self.as_type.loc4_36.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc4_36.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc4_36.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc4_43.1: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc4_43.2 (constants.%assoc0)] // CHECK:STDOUT: @@ -132,8 +132,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc5_9.1: type) { -// CHECK:STDOUT: %T.loc5_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc5_9.2: type) { +// CHECK:STDOUT: %T.loc5_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -156,30 +156,30 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: .Self = constants.%X // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%T.loc4_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { +// CHECK:STDOUT: generic fn @F(@I.%T.loc4_13.2: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self: @F.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_36.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_36.1 [symbolic = %pattern_type (constants.%pattern_type.4be)] +// CHECK:STDOUT: %Self.as_type.loc4_36.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_36.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_36.2 [symbolic = %pattern_type (constants.%pattern_type.4be)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc4_36.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc4_36.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.loc4_13.2 => constants.%T +// CHECK:STDOUT: %T.loc4_13.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_36.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc4_36.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4be // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc5_9.2 => constants.%T +// CHECK:STDOUT: %T.loc5_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- impl_in_interface_args.carbon diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index c7493f9ec3de..5efbf01453c5 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -82,13 +82,13 @@ fn Call() { // CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc4_26.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.2 [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc4_26.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.2 [symbolic = %Self.as_type.loc4_26.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_26.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc4_26.2: type = converted %Self.ref, %Self.as_type.loc4_26.2 [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_26.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_26.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_26.2: type = converted %Self.ref, %Self.as_type.loc4_26.1 [symbolic = %Self.as_type.loc4_26.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc4_26.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc4_26.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -100,15 +100,15 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_26.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_26.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc4_26.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_26.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_26.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc4_26.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc4_26.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_26.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc4_26.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,20 +279,20 @@ fn Call() { // CHECK:STDOUT: %Self.826: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0.3f3: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e03 [concrete] -// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [concrete] +// CHECK:STDOUT: %F.type.cf0: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type.b70: type = facet_access_type %Self.826 [symbolic] // CHECK:STDOUT: %pattern_type.6de: type = pattern_type %Self.as_type.b70 [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %.1b3: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] -// CHECK:STDOUT: %F.type.5d6: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.type.5d6: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.a2e: %F.type.5d6 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -362,7 +362,7 @@ fn Call() { // CHECK:STDOUT: %.loc9_7.3: %C = bind_value %.loc9_7.2 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %bound_method.loc9_8(%.loc9_7.3) // CHECK:STDOUT: %Op.bound: = bound_method %.loc9_7.1, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_7: = bound_method %.loc9_7.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc9_7.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc9_7(%addr) @@ -371,7 +371,7 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Get [from "get.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.1(imports.%Main.import_ref.5dd: %I.type) [from "i.carbon"] { +// CHECK:STDOUT: generic fn @F.2(imports.%Main.import_ref.5dd: %I.type) [from "i.carbon"] { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.b70)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.6de)] @@ -379,9 +379,9 @@ fn Call() { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F.2 [from "c.carbon"]; +// CHECK:STDOUT: fn @F.1 [from "c.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%Self.826) { +// CHECK:STDOUT: specific @F.2(constants.%Self.826) { // CHECK:STDOUT: %Self => constants.%Self.826 // CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.b70 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de diff --git a/toolchain/check/testdata/impl/self_in_class.carbon b/toolchain/check/testdata/impl/self_in_class.carbon index 6bf2b6862a19..bf779614e8d6 100644 --- a/toolchain/check/testdata/impl/self_in_class.carbon +++ b/toolchain/check/testdata/impl/self_in_class.carbon @@ -67,10 +67,10 @@ class A { // CHECK:STDOUT: %return.param_patt: @Make.loc16.%pattern_type (%pattern_type.839) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: %DefaultConstructible.type = name_ref Self, @DefaultConstructible.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc16_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc16: type = converted %Self.ref, %Self.as_type.loc16_16.2 [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %return.param: ref @Make.loc16.%Self.as_type.loc16_16.1 (%Self.as_type) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Make.loc16.%Self.as_type.loc16_16.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %Self.as_type.loc16_16.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_16.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16: type = converted %Self.ref, %Self.as_type.loc16_16.1 [symbolic = %Self.as_type.loc16_16.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %return.param: ref @Make.loc16.%Self.as_type.loc16_16.2 (%Self.as_type) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Make.loc16.%Self.as_type.loc16_16.2 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %DefaultConstructible.assoc_type = assoc_entity element0, %Make.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -123,10 +123,10 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Make.loc16(@DefaultConstructible.%Self: %DefaultConstructible.type) { // CHECK:STDOUT: %Self: %DefaultConstructible.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc16_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_16.1 [symbolic = %pattern_type (constants.%pattern_type.839)] +// CHECK:STDOUT: %Self.as_type.loc16_16.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_16.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_16.2 [symbolic = %pattern_type (constants.%pattern_type.839)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @Make.loc16.%Self.as_type.loc16_16.1 (%Self.as_type); +// CHECK:STDOUT: fn() -> @Make.loc16.%Self.as_type.loc16_16.2 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make.loc25() -> %return.param: %C { @@ -139,13 +139,13 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: specific @Make.loc16(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc16_16.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.839 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Make.loc16(constants.%DefaultConstructible.facet) { // CHECK:STDOUT: %Self => constants.%DefaultConstructible.facet -// CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc16_16.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/self_in_signature.carbon b/toolchain/check/testdata/impl/self_in_signature.carbon index 2a28f61b0070..2c97fc0f82d9 100644 --- a/toolchain/check/testdata/impl/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/self_in_signature.carbon @@ -146,24 +146,24 @@ impl D as SelfNested { // CHECK:STDOUT: %return.param_patt: @F.loc16.%pattern_type (%pattern_type.3ef) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.085)] -// CHECK:STDOUT: %Self.as_type.loc16_32: type = facet_access_type %Self.ref.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] -// CHECK:STDOUT: %.loc16_32: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] -// CHECK:STDOUT: %self.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] { +// CHECK:STDOUT: %Self.as_type.loc16_32: type = facet_access_type %Self.ref.loc16_32 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %.loc16_32: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %self.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] { // CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.085)] -// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.1 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599) = bind_name self, %self.param -// CHECK:STDOUT: %x.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599) = value_param call_param1 -// CHECK:STDOUT: %.loc16_23.1: type = splice_block %.loc16_23.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] { +// CHECK:STDOUT: %self: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599) = bind_name self, %self.param +// CHECK:STDOUT: %x.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599) = value_param call_param1 +// CHECK:STDOUT: %.loc16_23.1: type = splice_block %.loc16_23.2 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] { // CHECK:STDOUT: %Self.ref.loc16_23: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.085)] -// CHECK:STDOUT: %Self.as_type.loc16_23: type = facet_access_type %Self.ref.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] -// CHECK:STDOUT: %.loc16_23.2: type = converted %Self.ref.loc16_23, %Self.as_type.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %Self.as_type.loc16_23: type = facet_access_type %Self.ref.loc16_23 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %.loc16_23.2: type = converted %Self.ref.loc16_23, %Self.as_type.loc16_23 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599) = out_param call_param2 -// CHECK:STDOUT: %return: ref @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599) = return_slot %return.param +// CHECK:STDOUT: %x: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599) = out_param call_param2 +// CHECK:STDOUT: %return: ref @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.24c] // CHECK:STDOUT: @@ -182,16 +182,16 @@ impl D as SelfNested { // CHECK:STDOUT: %x.param: @F.loc32.%tuple.type (%tuple.type.46b) = value_param call_param0 // CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.46b)] { // CHECK:STDOUT: %Self.ref.loc32_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] -// CHECK:STDOUT: %Self.as_type.loc32_16.2: type = facet_access_type %Self.ref.loc32_12 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %.loc32_16: type = converted %Self.ref.loc32_12, %Self.as_type.loc32_16.2 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.1 (constants.%ptr.e87)] +// CHECK:STDOUT: %Self.as_type.loc32_16.1: type = facet_access_type %Self.ref.loc32_12 [symbolic = %Self.as_type.loc32_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %.loc32_16: type = converted %Self.ref.loc32_12, %Self.as_type.loc32_16.1 [symbolic = %Self.as_type.loc32_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.2 (constants.%ptr.e87)] // CHECK:STDOUT: %Self.ref.loc32_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.2ff)] -// CHECK:STDOUT: %Self.as_type.loc32_24: type = facet_access_type %Self.ref.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %.loc32_24: type = converted %Self.ref.loc32_24, %Self.as_type.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %Self.as_type.loc32_24: type = facet_access_type %Self.ref.loc32_24 [symbolic = %Self.as_type.loc32_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %.loc32_24: type = converted %Self.ref.loc32_24, %Self.as_type.loc32_24 [symbolic = %Self.as_type.loc32_16.2 (constants.%Self.as_type.e1e)] // CHECK:STDOUT: %.loc32_35.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc32_35.2: type = converted %.loc32_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %struct_type.x.y.loc32_36.2: type = struct_type {.x: @F.loc32.%Self.as_type.loc32_16.1 (%Self.as_type.e1e), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.270)] -// CHECK:STDOUT: %.loc32_37.2: %tuple.type.24b = tuple_literal (%ptr.loc32_16.2, %struct_type.x.y.loc32_36.2) +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @F.loc32.%Self.as_type.loc32_16.2 (%Self.as_type.e1e), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.2 (constants.%struct_type.x.y.270)] +// CHECK:STDOUT: %.loc32_37.2: %tuple.type.24b = tuple_literal (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) // CHECK:STDOUT: %.loc32_37.3: type = converted %.loc32_37.2, constants.%tuple.type.46b [symbolic = %tuple.type (constants.%tuple.type.46b)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: @F.loc32.%tuple.type (%tuple.type.46b) = bind_name x, %x.param @@ -324,10 +324,10 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc16(@UseSelf.%Self: %UseSelf.type) { // CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.085)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.599)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.3ef)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type.599)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.2 [symbolic = %pattern_type (constants.%pattern_type.3ef)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599), %x.param: @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599)) -> @F.loc16.%Self.as_type.loc16_14.1 (%Self.as_type.599); +// CHECK:STDOUT: fn(%self.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599), %x.param: @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599)) -> @F.loc16.%Self.as_type.loc16_14.2 (%Self.as_type.599); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc24(%self.param: %C, %x.param: %C) -> %return.param: %C { @@ -348,10 +348,10 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc32(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2ff)] -// CHECK:STDOUT: %Self.as_type.loc32_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.e1e)] -// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %Self.as_type.loc32_16.1 [symbolic = %ptr.loc32_16.1 (constants.%ptr.e87)] -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @F.loc32.%Self.as_type.loc32_16.1 (%Self.as_type.e1e), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.270)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.46b)] +// CHECK:STDOUT: %Self.as_type.loc32_16.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc32_16.2 (constants.%Self.as_type.e1e)] +// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %Self.as_type.loc32_16.2 [symbolic = %ptr.loc32_16.2 (constants.%ptr.e87)] +// CHECK:STDOUT: %struct_type.x.y.loc32_36.2: type = struct_type {.x: @F.loc32.%Self.as_type.loc32_16.2 (%Self.as_type.e1e), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.2 (constants.%struct_type.x.y.270)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.2, %struct_type.x.y.loc32_36.2) [symbolic = %tuple.type (constants.%tuple.type.46b)] // CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.5a1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @F.loc32.%tuple.type (%tuple.type.46b)); @@ -363,45 +363,45 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%Self.085) { // CHECK:STDOUT: %Self => constants.%Self.085 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.599 +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%Self.as_type.599 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.3ef // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%UseSelf.facet.727) { // CHECK:STDOUT: %Self => constants.%UseSelf.facet.727 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc16(constants.%UseSelf.facet.d11) { // CHECK:STDOUT: %Self => constants.%UseSelf.facet.d11 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%D +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.510 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc32(constants.%Self.2ff) { // CHECK:STDOUT: %Self => constants.%Self.2ff -// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%Self.as_type.e1e -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.e87 -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.270 +// CHECK:STDOUT: %Self.as_type.loc32_16.2 => constants.%Self.as_type.e1e +// CHECK:STDOUT: %ptr.loc32_16.2 => constants.%ptr.e87 +// CHECK:STDOUT: %struct_type.x.y.loc32_36.2 => constants.%struct_type.x.y.270 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.46b // CHECK:STDOUT: %pattern_type => constants.%pattern_type.5a1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc32(constants.%SelfNested.facet.2b2) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.2b2 -// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%C -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.019 -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.2f0 +// CHECK:STDOUT: %Self.as_type.loc32_16.2 => constants.%C +// CHECK:STDOUT: %ptr.loc32_16.2 => constants.%ptr.019 +// CHECK:STDOUT: %struct_type.x.y.loc32_36.2 => constants.%struct_type.x.y.2f0 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a17 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.809 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc32(constants.%SelfNested.facet.f2c) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.f2c -// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%D -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.19c -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.527 +// CHECK:STDOUT: %Self.as_type.loc32_16.2 => constants.%D +// CHECK:STDOUT: %ptr.loc32_16.2 => constants.%ptr.19c +// CHECK:STDOUT: %struct_type.x.y.loc32_36.2 => constants.%struct_type.x.y.527 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b43 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/use_assoc_const.carbon b/toolchain/check/testdata/impl/use_assoc_const.carbon index 561509d6726a..73c48b01d0c1 100644 --- a/toolchain/check/testdata/impl/use_assoc_const.carbon +++ b/toolchain/check/testdata/impl/use_assoc_const.carbon @@ -320,20 +320,20 @@ fn F() { // CHECK:STDOUT: %F.46e: %F.type.7d4 = struct_value () [concrete] // CHECK:STDOUT: %J.facet.ecc: %J.type = facet_value %empty_tuple.type, (%J.impl_witness.e42) [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] -// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] -// CHECK:STDOUT: %Op.type.fc5: type = fn_type @Op.2, @Negate.impl.47e(%N) [symbolic] +// CHECK:STDOUT: %Op.type.fc5: type = fn_type @Op.1, @Negate.impl.47e(%N) [symbolic] // CHECK:STDOUT: %Op.8d0: %Op.type.fc5 = struct_value () [symbolic] // CHECK:STDOUT: %Negate.impl_witness.943: = impl_witness imports.%Negate.impl_witness_table, @Negate.impl.47e(%int_32) [concrete] -// CHECK:STDOUT: %Op.type.66f: type = fn_type @Op.2, @Negate.impl.47e(%int_32) [concrete] +// CHECK:STDOUT: %Op.type.66f: type = fn_type @Op.1, @Negate.impl.47e(%int_32) [concrete] // CHECK:STDOUT: %Op.5c0: %Op.type.66f = struct_value () [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %i32, (%Negate.impl_witness.943) [concrete] // CHECK:STDOUT: %.6f0: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5c0, @Op.2(%int_32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5c0, @Op.1(%int_32) [concrete] // CHECK:STDOUT: %CallMethod.type: type = fn_type @CallMethod [concrete] // CHECK:STDOUT: %CallMethod: %CallMethod.type = struct_value () [concrete] // CHECK:STDOUT: %.597: type = fn_type_with_self_type %F.type.c14, %J.facet.ecc [concrete] @@ -456,23 +456,23 @@ fn F() { // CHECK:STDOUT: %return.patt: @F.loc5.%pattern_type.loc5_20 (%pattern_type.b98) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type.loc5_20 (%pattern_type.b98) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.3df) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.3df)] { +// CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.3df) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.3df)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.ccd)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.3df)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.3df)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.3df) = bind_name self, %self.param -// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.11f) = value_param call_param1 -// CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11f)] { -// CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_23: type = name_ref U, %impl.elem0.loc5_23.2 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.3df) = bind_name self, %self.param +// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.11f) = value_param call_param1 +// CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11f)] { +// CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_23: type = name_ref U, %impl.elem0.loc5_23.1 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.11f) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.11f) = out_param call_param2 -// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.11f) = return_slot %return.param +// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.11f) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.11f) = out_param call_param2 +// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.11f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1.572] // CHECK:STDOUT: @@ -555,13 +555,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.3df)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.4ca)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.4ca)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.646)] -// CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.b98)] +// CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.2 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.b98)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.3df), %u.param: @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.11f)) -> @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.11f); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.3df), %u.param: @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.11f)) -> @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.11f); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc9(%self.param: %empty_tuple.type, %u.param: %i32) -> %i32 { @@ -569,7 +569,7 @@ fn F() { // CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u // CHECK:STDOUT: %impl.elem1: %.6f0 = impl_witness_access constants.%Negate.impl_witness.943, element1 [concrete = constants.%Op.5c0] // CHECK:STDOUT: %bound_method.loc9_44.1: = bound_method %u.ref, %impl.elem1 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.2(constants.%int_32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.1(constants.%int_32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_44.2: = bound_method %u.ref, %specific_fn // CHECK:STDOUT: %int.snegate: init %i32 = call %bound_method.loc9_44.2(%u.ref) // CHECK:STDOUT: %.loc9_46.1: %i32 = value_of_initializer %int.snegate @@ -610,10 +610,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.3df +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type.3df // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.4ca // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.646 -// CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.11f +// CHECK:STDOUT: %impl.elem0.loc5_23.2 => constants.%impl.elem0.11f // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.b98 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -621,19 +621,19 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%J.facet.ecc) { // CHECK:STDOUT: %Self => constants.%J.facet.ecc -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.e42 -// CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%i32 +// CHECK:STDOUT: %impl.elem0.loc5_23.2 => constants.%i32 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%J.facet.30e) { // CHECK:STDOUT: %Self => constants.%J.facet.30e -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%C // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.c48 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.12d -// CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%C +// CHECK:STDOUT: %impl.elem0.loc5_23.2 => constants.%C // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -672,20 +672,20 @@ fn F() { // CHECK:STDOUT: %F.b9c: %F.type.5d3 = struct_value () [concrete] // CHECK:STDOUT: %J.facet.183: %J.type = facet_value %D, (%J.impl_witness) [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] -// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] -// CHECK:STDOUT: %Op.type.fc5: type = fn_type @Op.2, @Negate.impl.47e(%N) [symbolic] +// CHECK:STDOUT: %Op.type.fc5: type = fn_type @Op.1, @Negate.impl.47e(%N) [symbolic] // CHECK:STDOUT: %Op.8d0: %Op.type.fc5 = struct_value () [symbolic] // CHECK:STDOUT: %Negate.impl_witness.943: = impl_witness imports.%Negate.impl_witness_table, @Negate.impl.47e(%int_32) [concrete] -// CHECK:STDOUT: %Op.type.66f: type = fn_type @Op.2, @Negate.impl.47e(%int_32) [concrete] +// CHECK:STDOUT: %Op.type.66f: type = fn_type @Op.1, @Negate.impl.47e(%int_32) [concrete] // CHECK:STDOUT: %Op.5c0: %Op.type.66f = struct_value () [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %i32, (%Negate.impl_witness.943) [concrete] // CHECK:STDOUT: %.6f0: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5c0, @Op.2(%int_32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5c0, @Op.1(%int_32) [concrete] // CHECK:STDOUT: %CallFunction.type: type = fn_type @CallFunction [concrete] // CHECK:STDOUT: %CallFunction: %CallFunction.type = struct_value () [concrete] // CHECK:STDOUT: %.490: type = fn_type_with_self_type %F.type.c14, %J.facet.183 [concrete] @@ -771,16 +771,16 @@ fn F() { // CHECK:STDOUT: %return.patt: @F.loc5.%pattern_type (%pattern_type.b98) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type (%pattern_type.b98) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = value_param call_param0 -// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] { -// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.2 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = value_param call_param0 +// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] { +// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.1 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = return_slot %return.param +// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1.572] // CHECK:STDOUT: @@ -831,10 +831,10 @@ fn F() { // CHECK:STDOUT: generic fn @F.loc5(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.646)] -// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.1 [symbolic = %pattern_type (constants.%pattern_type.b98)] +// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.2 [symbolic = %pattern_type (constants.%pattern_type.b98)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f)) -> @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f); +// CHECK:STDOUT: fn(%u.param: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f)) -> @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc11(%u.param: %i32) -> %i32 { @@ -842,7 +842,7 @@ fn F() { // CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u // CHECK:STDOUT: %impl.elem1: %.6f0 = impl_witness_access constants.%Negate.impl_witness.943, element1 [concrete = constants.%Op.5c0] // CHECK:STDOUT: %bound_method.loc11_32.1: = bound_method %u.ref, %impl.elem1 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.2(constants.%int_32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.1(constants.%int_32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_32.2: = bound_method %u.ref, %specific_fn // CHECK:STDOUT: %int.snegate: init %i32 = call %bound_method.loc11_32.2(%u.ref) // CHECK:STDOUT: %.loc11_34.1: %i32 = value_of_initializer %int.snegate @@ -879,7 +879,7 @@ fn F() { // CHECK:STDOUT: specific @F.loc5(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.646 -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%impl.elem0.11f +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%impl.elem0.11f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b98 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -888,7 +888,7 @@ fn F() { // CHECK:STDOUT: specific @F.loc5(constants.%J.facet.183) { // CHECK:STDOUT: %Self => constants.%J.facet.183 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: @@ -936,20 +936,20 @@ fn F() { // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] -// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] -// CHECK:STDOUT: %Op.type.fc5: type = fn_type @Op.2, @Negate.impl.47e(%N) [symbolic] +// CHECK:STDOUT: %Op.type.fc5: type = fn_type @Op.1, @Negate.impl.47e(%N) [symbolic] // CHECK:STDOUT: %Op.8d0: %Op.type.fc5 = struct_value () [symbolic] // CHECK:STDOUT: %Negate.impl_witness.943: = impl_witness imports.%Negate.impl_witness_table, @Negate.impl.47e(%int_32) [concrete] -// CHECK:STDOUT: %Op.type.66f: type = fn_type @Op.2, @Negate.impl.47e(%int_32) [concrete] +// CHECK:STDOUT: %Op.type.66f: type = fn_type @Op.1, @Negate.impl.47e(%int_32) [concrete] // CHECK:STDOUT: %Op.5c0: %Op.type.66f = struct_value () [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %i32, (%Negate.impl_witness.943) [concrete] // CHECK:STDOUT: %.6f0: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5c0, @Op.2(%int_32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5c0, @Op.1(%int_32) [concrete] // CHECK:STDOUT: %CallBoth.type: type = fn_type @CallBoth [concrete] // CHECK:STDOUT: %CallBoth: %CallBoth.type = struct_value () [concrete] // CHECK:STDOUT: %.29b: type = fn_type_with_self_type %F.type.c14, %J.facet.ee5 [concrete] @@ -1049,31 +1049,31 @@ fn F() { // CHECK:STDOUT: %return.patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.b984e7.2) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.b984e7.2) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc28_41: %J.type = name_ref T, %T.loc28_17.1 [symbolic = %T.loc28_17.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc28_41: %J.type = name_ref T, %T.loc28_17.2 [symbolic = %T.loc28_17.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc28_42: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// CHECK:STDOUT: %T.as_type.loc28_42: type = facet_access_type %T.ref.loc28_41 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc28_42: type = converted %T.ref.loc28_41, %T.as_type.loc28_42 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc28_42: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc28_34.2 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %T.as_type.loc28_42: type = facet_access_type %T.ref.loc28_41 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc28_42: type = converted %T.ref.loc28_41, %T.as_type.loc28_42 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0.loc28_42: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.11fef0.2)] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %T.loc28_17.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc28_17.2 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericCallF.%T.as_type.loc28_27.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc28_27.1: type = splice_block %.loc28_27.2 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc28_27: %J.type = name_ref T, %T.loc28_17.1 [symbolic = %T.loc28_17.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc28_27.1: type = facet_access_type %T.ref.loc28_27 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc28_27.2: type = converted %T.ref.loc28_27, %T.as_type.loc28_27.1 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc28_17.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc28_17.1 (constants.%T)] +// CHECK:STDOUT: %t.param: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc28_27.1: type = splice_block %.loc28_27.2 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc28_27: %J.type = name_ref T, %T.loc28_17.2 [symbolic = %T.loc28_17.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc28_27.2: type = facet_access_type %T.ref.loc28_27 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc28_27.2: type = converted %T.ref.loc28_27, %T.as_type.loc28_27.2 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericCallF.%T.as_type.loc28_27.2 (%T.as_type) = bind_name t, %t.param -// CHECK:STDOUT: %u.param: @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = value_param call_param1 -// CHECK:STDOUT: %.loc28_34.1: type = splice_block %impl.elem0.loc28_34.1 [symbolic = %impl.elem0.loc28_34.2 (constants.%impl.elem0.11fef0.2)] { -// CHECK:STDOUT: %T.ref.loc28_33: %J.type = name_ref T, %T.loc28_17.1 [symbolic = %T.loc28_17.2 (constants.%T)] +// CHECK:STDOUT: %t: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = value_param call_param1 +// CHECK:STDOUT: %.loc28_34.1: type = splice_block %impl.elem0.loc28_34.2 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.11fef0.2)] { +// CHECK:STDOUT: %T.ref.loc28_33: %J.type = name_ref T, %T.loc28_17.2 [symbolic = %T.loc28_17.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc28_34: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// CHECK:STDOUT: %T.as_type.loc28_34: type = facet_access_type %T.ref.loc28_33 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc28_34.2: type = converted %T.ref.loc28_33, %T.as_type.loc28_34 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc28_34.1: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc28_34.2 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %T.as_type.loc28_34: type = facet_access_type %T.ref.loc28_33 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc28_34.2: type = converted %T.ref.loc28_33, %T.as_type.loc28_34 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0.loc28_34.2: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.11fef0.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = out_param call_param2 -// CHECK:STDOUT: %return: ref @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = return_slot %return.param +// CHECK:STDOUT: %u: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = out_param call_param2 +// CHECK:STDOUT: %return: ref @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [concrete = constants.%CallGeneric] { // CHECK:STDOUT: %e.patt: %pattern_type.a4a = binding_pattern e [concrete] @@ -1102,16 +1102,16 @@ fn F() { // CHECK:STDOUT: %return.patt: @F.loc5.%pattern_type (%pattern_type.b984e7.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type (%pattern_type.b984e7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11fef0.1) = value_param call_param0 -// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11fef0.1)] { -// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.2 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11fef0.1) = value_param call_param0 +// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11fef0.1)] { +// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.1 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11fef0.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11fef0.1) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11fef0.1) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11fef0.1) = return_slot %return.param +// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11fef0.1) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11fef0.1) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11fef0.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1.572] // CHECK:STDOUT: %G.decl: %G.type.285 = fn_decl @G.loc6 [concrete = constants.%G.e4b] { @@ -1122,23 +1122,23 @@ fn F() { // CHECK:STDOUT: %return.patt: @G.loc6.%pattern_type.loc6_20 (%pattern_type.b984e7.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.loc6.%pattern_type.loc6_20 (%pattern_type.b984e7.1) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc6_29: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %U.ref.loc6_29: type = name_ref U, %impl.elem0.loc6_29 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %self.param: @G.loc6.%Self.as_type.loc6_14.1 (%Self.as_type.3df) = value_param call_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.3df)] { +// CHECK:STDOUT: %impl.elem0.loc6_29: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc6_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %U.ref.loc6_29: type = name_ref U, %impl.elem0.loc6_29 [symbolic = %impl.elem0.loc6_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %self.param: @G.loc6.%Self.as_type.loc6_14.2 (%Self.as_type.3df) = value_param call_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type.3df)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.ccd)] -// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.3df)] -// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.1 [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type.3df)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.loc6.%Self.as_type.loc6_14.1 (%Self.as_type.3df) = bind_name self, %self.param -// CHECK:STDOUT: %v.param: @G.loc6.%impl.elem0.loc6_23.1 (%impl.elem0.11fef0.1) = value_param call_param1 -// CHECK:STDOUT: %.loc6_23: type = splice_block %U.ref.loc6_23 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.11fef0.1)] { -// CHECK:STDOUT: %impl.elem0.loc6_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %U.ref.loc6_23: type = name_ref U, %impl.elem0.loc6_23.2 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %self: @G.loc6.%Self.as_type.loc6_14.2 (%Self.as_type.3df) = bind_name self, %self.param +// CHECK:STDOUT: %v.param: @G.loc6.%impl.elem0.loc6_23.2 (%impl.elem0.11fef0.1) = value_param call_param1 +// CHECK:STDOUT: %.loc6_23: type = splice_block %U.ref.loc6_23 [symbolic = %impl.elem0.loc6_23.2 (constants.%impl.elem0.11fef0.1)] { +// CHECK:STDOUT: %impl.elem0.loc6_23.1: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc6_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %U.ref.loc6_23: type = name_ref U, %impl.elem0.loc6_23.1 [symbolic = %impl.elem0.loc6_23.2 (constants.%impl.elem0.11fef0.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @G.loc6.%impl.elem0.loc6_23.1 (%impl.elem0.11fef0.1) = bind_name v, %v.param -// CHECK:STDOUT: %return.param: ref @G.loc6.%impl.elem0.loc6_23.1 (%impl.elem0.11fef0.1) = out_param call_param2 -// CHECK:STDOUT: %return: ref @G.loc6.%impl.elem0.loc6_23.1 (%impl.elem0.11fef0.1) = return_slot %return.param +// CHECK:STDOUT: %v: @G.loc6.%impl.elem0.loc6_23.2 (%impl.elem0.11fef0.1) = bind_name v, %v.param +// CHECK:STDOUT: %return.param: ref @G.loc6.%impl.elem0.loc6_23.2 (%impl.elem0.11fef0.1) = out_param call_param2 +// CHECK:STDOUT: %return: ref @G.loc6.%impl.elem0.loc6_23.2 (%impl.elem0.11fef0.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc2: %J.assoc_type = assoc_entity element2, %G.decl [concrete = constants.%assoc2] // CHECK:STDOUT: @@ -1235,21 +1235,21 @@ fn F() { // CHECK:STDOUT: generic fn @F.loc5(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.1)] -// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.1 [symbolic = %pattern_type (constants.%pattern_type.b984e7.1)] +// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.2 [symbolic = %pattern_type (constants.%pattern_type.b984e7.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11fef0.1)) -> @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11fef0.1); +// CHECK:STDOUT: fn(%u.param: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11fef0.1)) -> @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11fef0.1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.loc6(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] -// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.3df)] -// CHECK:STDOUT: %pattern_type.loc6_8: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type.loc6_8 (constants.%pattern_type.4ca604.1)] +// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type.3df)] +// CHECK:STDOUT: %pattern_type.loc6_8: type = pattern_type %Self.as_type.loc6_14.2 [symbolic = %pattern_type.loc6_8 (constants.%pattern_type.4ca604.1)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.1)] -// CHECK:STDOUT: %impl.elem0.loc6_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %pattern_type.loc6_20: type = pattern_type %impl.elem0.loc6_23.1 [symbolic = %pattern_type.loc6_20 (constants.%pattern_type.b984e7.1)] +// CHECK:STDOUT: %impl.elem0.loc6_23.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %pattern_type.loc6_20: type = pattern_type %impl.elem0.loc6_23.2 [symbolic = %pattern_type.loc6_20 (constants.%pattern_type.b984e7.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G.loc6.%Self.as_type.loc6_14.1 (%Self.as_type.3df), %v.param: @G.loc6.%impl.elem0.loc6_23.1 (%impl.elem0.11fef0.1)) -> @G.loc6.%impl.elem0.loc6_23.1 (%impl.elem0.11fef0.1); +// CHECK:STDOUT: fn(%self.param: @G.loc6.%Self.as_type.loc6_14.2 (%Self.as_type.3df), %v.param: @G.loc6.%impl.elem0.loc6_23.2 (%impl.elem0.11fef0.1)) -> @G.loc6.%impl.elem0.loc6_23.2 (%impl.elem0.11fef0.1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc11(%u.param: %i32) -> %i32 { @@ -1257,7 +1257,7 @@ fn F() { // CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u // CHECK:STDOUT: %impl.elem1: %.6f0 = impl_witness_access constants.%Negate.impl_witness.943, element1 [concrete = constants.%Op.5c0] // CHECK:STDOUT: %bound_method.loc12_14.1: = bound_method %u.ref, %impl.elem1 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.2(constants.%int_32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.1(constants.%int_32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc12_14.2: = bound_method %u.ref, %specific_fn // CHECK:STDOUT: %int.snegate: init %i32 = call %bound_method.loc12_14.2(%u.ref) // CHECK:STDOUT: %.loc12_16.1: %i32 = value_of_initializer %int.snegate @@ -1270,7 +1270,7 @@ fn F() { // CHECK:STDOUT: %v.ref: %i32 = name_ref v, %v // CHECK:STDOUT: %impl.elem1: %.6f0 = impl_witness_access constants.%Negate.impl_witness.943, element1 [concrete = constants.%Op.5c0] // CHECK:STDOUT: %bound_method.loc15_14.1: = bound_method %v.ref, %impl.elem1 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.2(constants.%int_32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem1, @Op.1(constants.%int_32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_14.2: = bound_method %v.ref, %specific_fn // CHECK:STDOUT: %int.snegate: init %i32 = call %bound_method.loc15_14.2(%v.ref) // CHECK:STDOUT: %.loc15_16.1: %i32 = value_of_initializer %int.snegate @@ -1398,34 +1398,34 @@ fn F() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GenericCallF(%T.loc28_17.1: %J.type) { -// CHECK:STDOUT: %T.loc28_17.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc28_17.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc28_27.2: type = facet_access_type %T.loc28_17.2 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc28_24: type = pattern_type %T.as_type.loc28_27.2 [symbolic = %pattern_type.loc28_24 (constants.%pattern_type.4ca604.2)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc28_17.2, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] -// CHECK:STDOUT: %impl.elem0.loc28_34.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_34.2 (constants.%impl.elem0.11fef0.2)] -// CHECK:STDOUT: %pattern_type.loc28_30: type = pattern_type %impl.elem0.loc28_34.2 [symbolic = %pattern_type.loc28_30 (constants.%pattern_type.b984e7.2)] +// CHECK:STDOUT: generic fn @GenericCallF(%T.loc28_17.2: %J.type) { +// CHECK:STDOUT: %T.loc28_17.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc28_17.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc28_27.1: type = facet_access_type %T.loc28_17.1 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc28_24: type = pattern_type %T.as_type.loc28_27.1 [symbolic = %pattern_type.loc28_24 (constants.%pattern_type.4ca604.2)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc28_17.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] +// CHECK:STDOUT: %impl.elem0.loc28_34.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %pattern_type.loc28_30: type = pattern_type %impl.elem0.loc28_34.1 [symbolic = %pattern_type.loc28_30 (constants.%pattern_type.b984e7.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc28_38: = require_complete_type %impl.elem0.loc28_34.2 [symbolic = %require_complete.loc28_38 (constants.%require_complete.58f)] -// CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.as_type.loc28_27.2 [symbolic = %require_complete.loc28_25 (constants.%require_complete.2a5)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc28_27.2, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.5210a7.2)] +// CHECK:STDOUT: %require_complete.loc28_38: = require_complete_type %impl.elem0.loc28_34.1 [symbolic = %require_complete.loc28_38 (constants.%require_complete.58f)] +// CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.as_type.loc28_27.1 [symbolic = %require_complete.loc28_25 (constants.%require_complete.2a5)] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc28_27.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.5210a7.2)] // CHECK:STDOUT: %.loc29_11.2: type = fn_type_with_self_type constants.%F.type.c14, %J.facet [symbolic = %.loc29_11.2 (constants.%.d43)] // CHECK:STDOUT: %impl.elem1.loc29_11.2: @GenericCallF.%.loc29_11.2 (%.d43) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc29_11.2: = specific_impl_function %impl.elem1.loc29_11.2, @F.loc5(%J.facet) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericCallF.%T.as_type.loc28_27.2 (%T.as_type), %u.param: @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2)) -> @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) { +// CHECK:STDOUT: fn(%t.param: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type), %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2)) -> @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallF.%T.as_type.loc28_27.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1.572] -// CHECK:STDOUT: %T.as_type.loc29: type = facet_access_type constants.%T [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc29_11.1: type = converted constants.%T, %T.as_type.loc29 [symbolic = %T.as_type.loc28_27.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc29: type = facet_access_type constants.%T [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc29_11.1: type = converted constants.%T, %T.as_type.loc29 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem1.loc29_11.1: @GenericCallF.%.loc29_11.2 (%.d43) = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %u.ref: @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = name_ref u, %u +// CHECK:STDOUT: %u.ref: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = name_ref u, %u // CHECK:STDOUT: %specific_impl_fn.loc29_11.1: = specific_impl_function %impl.elem1.loc29_11.1, @F.loc5(constants.%J.facet.5210a7.2) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %.loc29_15: init @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = call %specific_impl_fn.loc29_11.1(%u.ref) -// CHECK:STDOUT: %.loc29_16.1: @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = value_of_initializer %.loc29_15 -// CHECK:STDOUT: %.loc29_16.2: @GenericCallF.%impl.elem0.loc28_34.2 (%impl.elem0.11fef0.2) = converted %.loc29_15, %.loc29_16.1 +// CHECK:STDOUT: %.loc29_15: init @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = call %specific_impl_fn.loc29_11.1(%u.ref) +// CHECK:STDOUT: %.loc29_16.1: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = value_of_initializer %.loc29_15 +// CHECK:STDOUT: %.loc29_16.2: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.11fef0.2) = converted %.loc29_15, %.loc29_16.1 // CHECK:STDOUT: return %.loc29_16.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1460,16 +1460,16 @@ fn F() { // CHECK:STDOUT: specific @F.loc5(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.1 -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%impl.elem0.11fef0.1 +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%impl.elem0.11fef0.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b984e7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc6(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type.3df +// CHECK:STDOUT: %Self.as_type.loc6_14.2 => constants.%Self.as_type.3df // CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.4ca604.1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.1 -// CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%impl.elem0.11fef0.1 +// CHECK:STDOUT: %impl.elem0.loc6_23.2 => constants.%impl.elem0.11fef0.1 // CHECK:STDOUT: %pattern_type.loc6_20 => constants.%pattern_type.b984e7.1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1478,43 +1478,43 @@ fn F() { // CHECK:STDOUT: specific @F.loc5(constants.%J.facet.ee5) { // CHECK:STDOUT: %Self => constants.%J.facet.ee5 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc6(constants.%J.facet.ee5) { // CHECK:STDOUT: %Self => constants.%J.facet.ee5 -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%E +// CHECK:STDOUT: %Self.as_type.loc6_14.2 => constants.%E // CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.a4a // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness -// CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%i32 +// CHECK:STDOUT: %impl.elem0.loc6_23.2 => constants.%i32 // CHECK:STDOUT: %pattern_type.loc6_20 => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%J.facet.5210a7.2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallF(constants.%T) { -// CHECK:STDOUT: %T.loc28_17.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc28_27.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc28_17.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc28_27.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.4ca604.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.2 -// CHECK:STDOUT: %impl.elem0.loc28_34.2 => constants.%impl.elem0.11fef0.2 +// CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%impl.elem0.11fef0.2 // CHECK:STDOUT: %pattern_type.loc28_30 => constants.%pattern_type.b984e7.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%J.facet.5210a7.2) { // CHECK:STDOUT: %Self => constants.%J.facet.5210a7.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.2 -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%impl.elem0.11fef0.2 +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%impl.elem0.11fef0.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b984e7.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallF(constants.%J.facet.ee5) { -// CHECK:STDOUT: %T.loc28_17.2 => constants.%J.facet.ee5 -// CHECK:STDOUT: %T.as_type.loc28_27.2 => constants.%E +// CHECK:STDOUT: %T.loc28_17.1 => constants.%J.facet.ee5 +// CHECK:STDOUT: %T.as_type.loc28_27.1 => constants.%E // CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.a4a // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness -// CHECK:STDOUT: %impl.elem0.loc28_34.2 => constants.%i32 +// CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%i32 // CHECK:STDOUT: %pattern_type.loc28_30 => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1599,35 +1599,35 @@ fn F() { // CHECK:STDOUT: %return.patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.74afd4.2) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.74afd4.2) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc12_42: %J.type = name_ref T, %T.loc12_18.1 [symbolic = %T.loc12_18.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc12_42: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc12_43: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.5be] -// CHECK:STDOUT: %T.as_type.loc12_43: type = facet_access_type %T.ref.loc12_42 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc12_43.1: type = converted %T.ref.loc12_42, %T.as_type.loc12_43 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc12_43: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] -// CHECK:STDOUT: %as_type.loc12_43: type = facet_access_type %impl.elem0.loc12_43 [symbolic = %as_type.loc12_35.2 (constants.%as_type.f5d8f3.2)] -// CHECK:STDOUT: %.loc12_43.2: type = converted %impl.elem0.loc12_43, %as_type.loc12_43 [symbolic = %as_type.loc12_35.2 (constants.%as_type.f5d8f3.2)] +// CHECK:STDOUT: %T.as_type.loc12_43: type = facet_access_type %T.ref.loc12_42 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_43.1: type = converted %T.ref.loc12_42, %T.as_type.loc12_43 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0.loc12_43: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %as_type.loc12_43: type = facet_access_type %impl.elem0.loc12_43 [symbolic = %as_type.loc12_35.1 (constants.%as_type.f5d8f3.2)] +// CHECK:STDOUT: %.loc12_43.2: type = converted %impl.elem0.loc12_43, %as_type.loc12_43 [symbolic = %as_type.loc12_35.1 (constants.%as_type.f5d8f3.2)] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %T.loc12_18.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_18.2 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericResult.%T.as_type.loc12_28.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc12_28.1: type = splice_block %.loc12_28.2 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc12_28: %J.type = name_ref T, %T.loc12_18.1 [symbolic = %T.loc12_18.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc12_28.1: type = facet_access_type %T.ref.loc12_28 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc12_28.2: type = converted %T.ref.loc12_28, %T.as_type.loc12_28.1 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc12_18.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_18.1 (constants.%T)] +// CHECK:STDOUT: %t.param: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc12_28.1: type = splice_block %.loc12_28.2 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc12_28: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc12_28.2: type = facet_access_type %T.ref.loc12_28 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_28.2: type = converted %T.ref.loc12_28, %T.as_type.loc12_28.2 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericResult.%T.as_type.loc12_28.2 (%T.as_type) = bind_name t, %t.param -// CHECK:STDOUT: %u.param: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = value_param call_param1 -// CHECK:STDOUT: %.loc12_35.1: type = splice_block %.loc12_35.3 [symbolic = %as_type.loc12_35.2 (constants.%as_type.f5d8f3.2)] { -// CHECK:STDOUT: %T.ref.loc12_34: %J.type = name_ref T, %T.loc12_18.1 [symbolic = %T.loc12_18.2 (constants.%T)] +// CHECK:STDOUT: %t: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %u.param: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = value_param call_param1 +// CHECK:STDOUT: %.loc12_35.1: type = splice_block %.loc12_35.3 [symbolic = %as_type.loc12_35.1 (constants.%as_type.f5d8f3.2)] { +// CHECK:STDOUT: %T.ref.loc12_34: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc12_35: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.5be] -// CHECK:STDOUT: %T.as_type.loc12_35: type = facet_access_type %T.ref.loc12_34 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc12_35.2: type = converted %T.ref.loc12_34, %T.as_type.loc12_35 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc12_35.1: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] -// CHECK:STDOUT: %as_type.loc12_35.1: type = facet_access_type %impl.elem0.loc12_35.1 [symbolic = %as_type.loc12_35.2 (constants.%as_type.f5d8f3.2)] -// CHECK:STDOUT: %.loc12_35.3: type = converted %impl.elem0.loc12_35.1, %as_type.loc12_35.1 [symbolic = %as_type.loc12_35.2 (constants.%as_type.f5d8f3.2)] +// CHECK:STDOUT: %T.as_type.loc12_35: type = facet_access_type %T.ref.loc12_34 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_35.2: type = converted %T.ref.loc12_34, %T.as_type.loc12_35 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0.loc12_35.2: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %as_type.loc12_35.2: type = facet_access_type %impl.elem0.loc12_35.2 [symbolic = %as_type.loc12_35.1 (constants.%as_type.f5d8f3.2)] +// CHECK:STDOUT: %.loc12_35.3: type = converted %impl.elem0.loc12_35.2, %as_type.loc12_35.2 [symbolic = %as_type.loc12_35.1 (constants.%as_type.f5d8f3.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = out_param call_param2 -// CHECK:STDOUT: %return: ref @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = return_slot %return.param +// CHECK:STDOUT: %u: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = out_param call_param2 +// CHECK:STDOUT: %return: ref @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1642,24 +1642,24 @@ fn F() { // CHECK:STDOUT: %return.param_patt: @Op.%pattern_type (%pattern_type.6de) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc4_33: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc4_33: type = facet_access_type %Self.ref.loc4_33 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc4_33: type = converted %Self.ref.loc4_33, %Self.as_type.loc4_33 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %self.param: @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %Self.as_type.loc4_33: type = facet_access_type %Self.ref.loc4_33 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc4_33: type = converted %Self.ref.loc4_33, %Self.as_type.loc4_33 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %self.param: @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] { // CHECK:STDOUT: %Self.ref.loc4_15: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref.loc4_15 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref.loc4_15, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self.ref.loc4_15 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref.loc4_15, %Self.as_type.loc4_15.1 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70) = bind_name self, %self.param -// CHECK:STDOUT: %b.param: @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70) = value_param call_param1 -// CHECK:STDOUT: %.loc4_24.1: type = splice_block %.loc4_24.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %self: @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70) = bind_name self, %self.param +// CHECK:STDOUT: %b.param: @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70) = value_param call_param1 +// CHECK:STDOUT: %.loc4_24.1: type = splice_block %.loc4_24.2 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] { // CHECK:STDOUT: %Self.ref.loc4_24: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc4_24: type = facet_access_type %Self.ref.loc4_24 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc4_24.2: type = converted %Self.ref.loc4_24, %Self.as_type.loc4_24 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %Self.as_type.loc4_24: type = facet_access_type %Self.ref.loc4_24 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc4_24.2: type = converted %Self.ref.loc4_24, %Self.as_type.loc4_24 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70) = bind_name b, %b.param -// CHECK:STDOUT: %return.param: ref @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70) = return_slot %return.param +// CHECK:STDOUT: %b: @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70) = bind_name b, %b.param +// CHECK:STDOUT: %return.param: ref @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %Op.decl [concrete = constants.%assoc0.ea8] // CHECK:STDOUT: @@ -1680,14 +1680,14 @@ fn F() { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.74afd4.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.74afd4.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc9_17: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc9_11.1 (constants.%impl.elem0.5205fd.1)] -// CHECK:STDOUT: %U.ref.loc9_17: %I.type = name_ref U, %impl.elem0.loc9_17 [symbolic = %impl.elem0.loc9_11.1 (constants.%impl.elem0.5205fd.1)] +// CHECK:STDOUT: %impl.elem0.loc9_17: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.5205fd.1)] +// CHECK:STDOUT: %U.ref.loc9_17: %I.type = name_ref U, %impl.elem0.loc9_17 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.5205fd.1)] // CHECK:STDOUT: %U.as_type.loc9_17: type = facet_access_type %U.ref.loc9_17 [symbolic = %as_type (constants.%as_type.f5d8f3.1)] // CHECK:STDOUT: %.loc9_17: type = converted %U.ref.loc9_17, %U.as_type.loc9_17 [symbolic = %as_type (constants.%as_type.f5d8f3.1)] // CHECK:STDOUT: %u.param: @F.%as_type (%as_type.f5d8f3.1) = value_param call_param0 // CHECK:STDOUT: %.loc9_11.1: type = splice_block %.loc9_11.2 [symbolic = %as_type (constants.%as_type.f5d8f3.1)] { -// CHECK:STDOUT: %impl.elem0.loc9_11.2: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc9_11.1 (constants.%impl.elem0.5205fd.1)] -// CHECK:STDOUT: %U.ref.loc9_11: %I.type = name_ref U, %impl.elem0.loc9_11.2 [symbolic = %impl.elem0.loc9_11.1 (constants.%impl.elem0.5205fd.1)] +// CHECK:STDOUT: %impl.elem0.loc9_11.1: %I.type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.5205fd.1)] +// CHECK:STDOUT: %U.ref.loc9_11: %I.type = name_ref U, %impl.elem0.loc9_11.1 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.5205fd.1)] // CHECK:STDOUT: %U.as_type.loc9_11: type = facet_access_type %U.ref.loc9_11 [symbolic = %as_type (constants.%as_type.f5d8f3.1)] // CHECK:STDOUT: %.loc9_11.2: type = converted %U.ref.loc9_11, %U.as_type.loc9_11 [symbolic = %as_type (constants.%as_type.f5d8f3.1)] // CHECK:STDOUT: } @@ -1711,88 +1711,88 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Op(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.6de)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.2 [symbolic = %pattern_type (constants.%pattern_type.6de)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70), %b.param: @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70)) -> @Op.%Self.as_type.loc4_15.1 (%Self.as_type.b70); +// CHECK:STDOUT: fn(%self.param: @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70), %b.param: @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70)) -> @Op.%Self.as_type.loc4_15.2 (%Self.as_type.b70); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.1)] -// CHECK:STDOUT: %impl.elem0.loc9_11.1: %I.type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.1 (constants.%impl.elem0.5205fd.1)] -// CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0.loc9_11.1 [symbolic = %as_type (constants.%as_type.f5d8f3.1)] +// CHECK:STDOUT: %impl.elem0.loc9_11.2: %I.type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.5205fd.1)] +// CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0.loc9_11.2 [symbolic = %as_type (constants.%as_type.f5d8f3.1)] // CHECK:STDOUT: %pattern_type: type = pattern_type %as_type [symbolic = %pattern_type (constants.%pattern_type.74afd4.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%u.param: @F.%as_type (%as_type.f5d8f3.1)) -> @F.%as_type (%as_type.f5d8f3.1); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GenericResult(%T.loc12_18.1: %J.type) { -// CHECK:STDOUT: %T.loc12_18.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_18.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc12_28.2: type = facet_access_type %T.loc12_18.2 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc12_25: type = pattern_type %T.as_type.loc12_28.2 [symbolic = %pattern_type.loc12_25 (constants.%pattern_type.4ca)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc12_18.2, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] -// CHECK:STDOUT: %impl.elem0.loc12_35.2: %I.type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] -// CHECK:STDOUT: %as_type.loc12_35.2: type = facet_access_type %impl.elem0.loc12_35.2 [symbolic = %as_type.loc12_35.2 (constants.%as_type.f5d8f3.2)] -// CHECK:STDOUT: %pattern_type.loc12_31: type = pattern_type %as_type.loc12_35.2 [symbolic = %pattern_type.loc12_31 (constants.%pattern_type.74afd4.2)] +// CHECK:STDOUT: generic fn @GenericResult(%T.loc12_18.2: %J.type) { +// CHECK:STDOUT: %T.loc12_18.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_18.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc12_28.1: type = facet_access_type %T.loc12_18.1 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc12_25: type = pattern_type %T.as_type.loc12_28.1 [symbolic = %pattern_type.loc12_25 (constants.%pattern_type.4ca)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc12_18.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] +// CHECK:STDOUT: %impl.elem0.loc12_35.1: %I.type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %as_type.loc12_35.1: type = facet_access_type %impl.elem0.loc12_35.1 [symbolic = %as_type.loc12_35.1 (constants.%as_type.f5d8f3.2)] +// CHECK:STDOUT: %pattern_type.loc12_31: type = pattern_type %as_type.loc12_35.1 [symbolic = %pattern_type.loc12_31 (constants.%pattern_type.74afd4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc12_39: = require_complete_type %as_type.loc12_35.2 [symbolic = %require_complete.loc12_39 (constants.%require_complete.b33)] -// CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.as_type.loc12_28.2 [symbolic = %require_complete.loc12_26 (constants.%require_complete.2a5)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc12_28.2, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.5210a7.2)] +// CHECK:STDOUT: %require_complete.loc12_39: = require_complete_type %as_type.loc12_35.1 [symbolic = %require_complete.loc12_39 (constants.%require_complete.b33)] +// CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.as_type.loc12_28.1 [symbolic = %require_complete.loc12_26 (constants.%require_complete.2a5)] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc12_28.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.5210a7.2)] // CHECK:STDOUT: %.loc13_11.2: type = fn_type_with_self_type constants.%F.type, %J.facet [symbolic = %.loc13_11.2 (constants.%.d43)] // CHECK:STDOUT: %impl.elem1.loc13_11.2: @GenericResult.%.loc13_11.2 (%.d43) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc13_11.2: = specific_impl_function %impl.elem1.loc13_11.2, @F(%J.facet) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.fe8)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %impl.elem0.loc12_35.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %as_type.loc12_35.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %impl.elem0.loc12_35.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %as_type.loc12_35.1, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] // CHECK:STDOUT: %.loc13_16: type = fn_type_with_self_type constants.%Op.type, %I.facet [symbolic = %.loc13_16 (constants.%.c9a)] // CHECK:STDOUT: %impl.elem0.loc13_16.2: @GenericResult.%.loc13_16 (%.c9a) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_16.2 (constants.%impl.elem0.45a)] // CHECK:STDOUT: %specific_impl_fn.loc13_16.2: = specific_impl_function %impl.elem0.loc13_16.2, @Op(%I.facet) [symbolic = %specific_impl_fn.loc13_16.2 (constants.%specific_impl_fn.2ec)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericResult.%T.as_type.loc12_28.2 (%T.as_type), %u.param: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2)) -> @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) { +// CHECK:STDOUT: fn(%t.param: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type), %u.param: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2)) -> @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericResult.%T.as_type.loc12_28.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref.loc13_11: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %T.as_type.loc13_11: type = facet_access_type constants.%T [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc13_11.1: type = converted constants.%T, %T.as_type.loc13_11 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc13_11: type = facet_access_type constants.%T [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_11.1: type = converted constants.%T, %T.as_type.loc13_11 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem1.loc13_11.1: @GenericResult.%.loc13_11.2 (%.d43) = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %u.ref.loc13_14: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = name_ref u, %u -// CHECK:STDOUT: %.loc13_15.1: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] -// CHECK:STDOUT: %.loc13_15.2: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %u.ref.loc13_14: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = name_ref u, %u +// CHECK:STDOUT: %.loc13_15.1: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %.loc13_15.2: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] // CHECK:STDOUT: %specific_impl_fn.loc13_11.1: = specific_impl_function %impl.elem1.loc13_11.1, @F(constants.%J.facet.5210a7.2) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.fe8)] -// CHECK:STDOUT: %.loc13_15.3: init @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = call %specific_impl_fn.loc13_11.1(%u.ref.loc13_14) +// CHECK:STDOUT: %.loc13_15.3: init @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = call %specific_impl_fn.loc13_11.1(%u.ref.loc13_14) // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %Op.ref: %I.assoc_type = name_ref Op, @I.%assoc0 [concrete = constants.%assoc0.ea8] // CHECK:STDOUT: %impl.elem0.loc13_16.1: @GenericResult.%.loc13_16 (%.c9a) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_16.2 (constants.%impl.elem0.45a)] // CHECK:STDOUT: %bound_method.loc13_16: = bound_method %.loc13_15.3, %impl.elem0.loc13_16.1 -// CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc12_18.1 [symbolic = %T.loc12_18.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %F.ref.loc13_25: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %T.as_type.loc13_25: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc13_25: type = converted %T.ref.loc13, %T.as_type.loc13_25 [symbolic = %T.as_type.loc12_28.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc13_25: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_25: type = converted %T.ref.loc13, %T.as_type.loc13_25 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem1.loc13_25: @GenericResult.%.loc13_11.2 (%.d43) = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %u.ref.loc13_28: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = name_ref u, %u -// CHECK:STDOUT: %.loc13_29.1: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] -// CHECK:STDOUT: %.loc13_29.2: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %u.ref.loc13_28: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = name_ref u, %u +// CHECK:STDOUT: %.loc13_29.1: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %.loc13_29.2: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] // CHECK:STDOUT: %specific_impl_fn.loc13_25: = specific_impl_function %impl.elem1.loc13_25, @F(constants.%J.facet.5210a7.2) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.fe8)] -// CHECK:STDOUT: %.loc13_29.3: init @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = call %specific_impl_fn.loc13_25(%u.ref.loc13_28) -// CHECK:STDOUT: %.loc13_30.1: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] -// CHECK:STDOUT: %.loc13_30.2: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.2 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %.loc13_29.3: init @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = call %specific_impl_fn.loc13_25(%u.ref.loc13_28) +// CHECK:STDOUT: %.loc13_30.1: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] +// CHECK:STDOUT: %.loc13_30.2: %I.type = converted constants.%as_type.f5d8f3.2, constants.%impl.elem0.5205fd.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.5205fd.2)] // CHECK:STDOUT: %specific_impl_fn.loc13_16.1: = specific_impl_function %impl.elem0.loc13_16.1, @Op(constants.%I.facet) [symbolic = %specific_impl_fn.loc13_16.2 (constants.%specific_impl_fn.2ec)] // CHECK:STDOUT: %bound_method.loc13_30: = bound_method %.loc13_15.3, %specific_impl_fn.loc13_16.1 -// CHECK:STDOUT: %.loc13_15.4: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = value_of_initializer %.loc13_15.3 -// CHECK:STDOUT: %.loc13_15.5: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = converted %.loc13_15.3, %.loc13_15.4 -// CHECK:STDOUT: %.loc13_29.4: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = value_of_initializer %.loc13_29.3 -// CHECK:STDOUT: %.loc13_29.5: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = converted %.loc13_29.3, %.loc13_29.4 -// CHECK:STDOUT: %.loc13_30.3: init @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = call %bound_method.loc13_30(%.loc13_15.5, %.loc13_29.5) -// CHECK:STDOUT: %.loc13_31.1: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = value_of_initializer %.loc13_30.3 -// CHECK:STDOUT: %.loc13_31.2: @GenericResult.%as_type.loc12_35.2 (%as_type.f5d8f3.2) = converted %.loc13_30.3, %.loc13_31.1 +// CHECK:STDOUT: %.loc13_15.4: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = value_of_initializer %.loc13_15.3 +// CHECK:STDOUT: %.loc13_15.5: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = converted %.loc13_15.3, %.loc13_15.4 +// CHECK:STDOUT: %.loc13_29.4: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = value_of_initializer %.loc13_29.3 +// CHECK:STDOUT: %.loc13_29.5: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = converted %.loc13_29.3, %.loc13_29.4 +// CHECK:STDOUT: %.loc13_30.3: init @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = call %bound_method.loc13_30(%.loc13_15.5, %.loc13_29.5) +// CHECK:STDOUT: %.loc13_31.1: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = value_of_initializer %.loc13_30.3 +// CHECK:STDOUT: %.loc13_31.2: @GenericResult.%as_type.loc12_35.1 (%as_type.f5d8f3.2) = converted %.loc13_30.3, %.loc13_31.1 // CHECK:STDOUT: return %.loc13_31.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op(constants.%Self.826) { // CHECK:STDOUT: %Self => constants.%Self.826 -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type.b70 +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%Self.as_type.b70 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1803,7 +1803,7 @@ fn F() { // CHECK:STDOUT: specific @F(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.1 -// CHECK:STDOUT: %impl.elem0.loc9_11.1 => constants.%impl.elem0.5205fd.1 +// CHECK:STDOUT: %impl.elem0.loc9_11.2 => constants.%impl.elem0.5205fd.1 // CHECK:STDOUT: %as_type => constants.%as_type.f5d8f3.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.74afd4.1 // CHECK:STDOUT: } @@ -1811,26 +1811,26 @@ fn F() { // CHECK:STDOUT: specific @U(constants.%J.facet.5210a7.2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericResult(constants.%T) { -// CHECK:STDOUT: %T.loc12_18.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc12_28.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc12_18.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc12_28.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc12_25 => constants.%pattern_type.4ca // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.2 -// CHECK:STDOUT: %impl.elem0.loc12_35.2 => constants.%impl.elem0.5205fd.2 -// CHECK:STDOUT: %as_type.loc12_35.2 => constants.%as_type.f5d8f3.2 +// CHECK:STDOUT: %impl.elem0.loc12_35.1 => constants.%impl.elem0.5205fd.2 +// CHECK:STDOUT: %as_type.loc12_35.1 => constants.%as_type.f5d8f3.2 // CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.74afd4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%J.facet.5210a7.2) { // CHECK:STDOUT: %Self => constants.%J.facet.5210a7.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.2 -// CHECK:STDOUT: %impl.elem0.loc9_11.1 => constants.%impl.elem0.5205fd.2 +// CHECK:STDOUT: %impl.elem0.loc9_11.2 => constants.%impl.elem0.5205fd.2 // CHECK:STDOUT: %as_type => constants.%as_type.f5d8f3.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.74afd4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Op(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%as_type.f5d8f3.2 +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%as_type.f5d8f3.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.74afd4.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1891,31 +1891,31 @@ fn F() { // CHECK:STDOUT: %return.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.b984e7.2) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.b984e7.2) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc8_58: %J.type = name_ref T, %T.loc8_34.1 [symbolic = %T.loc8_34.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc8_58: %J.type = name_ref T, %T.loc8_34.2 [symbolic = %T.loc8_34.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc8_59: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc8_59: type = facet_access_type %T.ref.loc8_58 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_59: type = converted %T.ref.loc8_58, %T.as_type.loc8_59 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc8_59: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc8_51.2 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %T.as_type.loc8_59: type = facet_access_type %T.ref.loc8_58 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_59: type = converted %T.ref.loc8_58, %T.as_type.loc8_59 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0.loc8_59: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.11fef0.2)] // CHECK:STDOUT: %J.ref.loc8: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %T.loc8_34.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_34.2 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericCallInterfaceQualified.%T.as_type.loc8_44.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_44.1: type = splice_block %.loc8_44.2 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc8_44: %J.type = name_ref T, %T.loc8_34.1 [symbolic = %T.loc8_34.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_44.1: type = facet_access_type %T.ref.loc8_44 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_44.2: type = converted %T.ref.loc8_44, %T.as_type.loc8_44.1 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc8_34.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_34.1 (constants.%T)] +// CHECK:STDOUT: %t.param: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_44.1: type = splice_block %.loc8_44.2 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc8_44: %J.type = name_ref T, %T.loc8_34.2 [symbolic = %T.loc8_34.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc8_44.2: type = facet_access_type %T.ref.loc8_44 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_44.2: type = converted %T.ref.loc8_44, %T.as_type.loc8_44.2 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericCallInterfaceQualified.%T.as_type.loc8_44.2 (%T.as_type) = bind_name t, %t.param -// CHECK:STDOUT: %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = value_param call_param1 -// CHECK:STDOUT: %.loc8_51.1: type = splice_block %impl.elem0.loc8_51.1 [symbolic = %impl.elem0.loc8_51.2 (constants.%impl.elem0.11fef0.2)] { -// CHECK:STDOUT: %T.ref.loc8_50: %J.type = name_ref T, %T.loc8_34.1 [symbolic = %T.loc8_34.2 (constants.%T)] +// CHECK:STDOUT: %t: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = value_param call_param1 +// CHECK:STDOUT: %.loc8_51.1: type = splice_block %impl.elem0.loc8_51.2 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.11fef0.2)] { +// CHECK:STDOUT: %T.ref.loc8_50: %J.type = name_ref T, %T.loc8_34.2 [symbolic = %T.loc8_34.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc8_51: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc8_51: type = facet_access_type %T.ref.loc8_50 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_51.2: type = converted %T.ref.loc8_50, %T.as_type.loc8_51 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc8_51.1: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc8_51.2 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %T.as_type.loc8_51: type = facet_access_type %T.ref.loc8_50 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_51.2: type = converted %T.ref.loc8_50, %T.as_type.loc8_51 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0.loc8_51.2: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.11fef0.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = out_param call_param2 -// CHECK:STDOUT: %return: ref @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = return_slot %return.param +// CHECK:STDOUT: %u: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = out_param call_param2 +// CHECK:STDOUT: %return: ref @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1932,23 +1932,23 @@ fn F() { // CHECK:STDOUT: %return.patt: @G.%pattern_type.loc5_20 (%pattern_type.b984e7.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc5_20 (%pattern_type.b984e7.1) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %self.param: @G.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %self.param: @G.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %v.param: @G.%impl.elem0.loc5_23.1 (%impl.elem0.11fef0.1) = value_param call_param1 -// CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11fef0.1)] { -// CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %U.ref.loc5_23: type = name_ref U, %impl.elem0.loc5_23.2 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %self: @G.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %v.param: @G.%impl.elem0.loc5_23.2 (%impl.elem0.11fef0.1) = value_param call_param1 +// CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11fef0.1)] { +// CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %U.ref.loc5_23: type = name_ref U, %impl.elem0.loc5_23.1 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11fef0.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @G.%impl.elem0.loc5_23.1 (%impl.elem0.11fef0.1) = bind_name v, %v.param -// CHECK:STDOUT: %return.param: ref @G.%impl.elem0.loc5_23.1 (%impl.elem0.11fef0.1) = out_param call_param2 -// CHECK:STDOUT: %return: ref @G.%impl.elem0.loc5_23.1 (%impl.elem0.11fef0.1) = return_slot %return.param +// CHECK:STDOUT: %v: @G.%impl.elem0.loc5_23.2 (%impl.elem0.11fef0.1) = bind_name v, %v.param +// CHECK:STDOUT: %return.param: ref @G.%impl.elem0.loc5_23.2 (%impl.elem0.11fef0.1) = out_param call_param2 +// CHECK:STDOUT: %return: ref @G.%impl.elem0.loc5_23.2 (%impl.elem0.11fef0.1) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %G.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -1965,44 +1965,44 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.4ca604.1)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.4ca604.1)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.1)] -// CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.b984e7.1)] +// CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.2 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.b984e7.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G.%Self.as_type.loc5_14.1 (%Self.as_type), %v.param: @G.%impl.elem0.loc5_23.1 (%impl.elem0.11fef0.1)) -> @G.%impl.elem0.loc5_23.1 (%impl.elem0.11fef0.1); +// CHECK:STDOUT: fn(%self.param: @G.%Self.as_type.loc5_14.2 (%Self.as_type), %v.param: @G.%impl.elem0.loc5_23.2 (%impl.elem0.11fef0.1)) -> @G.%impl.elem0.loc5_23.2 (%impl.elem0.11fef0.1); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GenericCallInterfaceQualified(%T.loc8_34.1: %J.type) { -// CHECK:STDOUT: %T.loc8_34.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_34.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_44.2: type = facet_access_type %T.loc8_34.2 [symbolic = %T.as_type.loc8_44.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_41: type = pattern_type %T.as_type.loc8_44.2 [symbolic = %pattern_type.loc8_41 (constants.%pattern_type.4ca604.2)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_34.2, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] -// CHECK:STDOUT: %impl.elem0.loc8_51.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_51.2 (constants.%impl.elem0.11fef0.2)] -// CHECK:STDOUT: %pattern_type.loc8_47: type = pattern_type %impl.elem0.loc8_51.2 [symbolic = %pattern_type.loc8_47 (constants.%pattern_type.b984e7.2)] +// CHECK:STDOUT: generic fn @GenericCallInterfaceQualified(%T.loc8_34.2: %J.type) { +// CHECK:STDOUT: %T.loc8_34.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_34.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc8_44.1: type = facet_access_type %T.loc8_34.1 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc8_41: type = pattern_type %T.as_type.loc8_44.1 [symbolic = %pattern_type.loc8_41 (constants.%pattern_type.4ca604.2)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_34.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] +// CHECK:STDOUT: %impl.elem0.loc8_51.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %pattern_type.loc8_47: type = pattern_type %impl.elem0.loc8_51.1 [symbolic = %pattern_type.loc8_47 (constants.%pattern_type.b984e7.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8_55: = require_complete_type %impl.elem0.loc8_51.2 [symbolic = %require_complete.loc8_55 (constants.%require_complete.58f)] -// CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.as_type.loc8_44.2 [symbolic = %require_complete.loc8_42 (constants.%require_complete.2a5)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_44.2, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.5210a7.2)] +// CHECK:STDOUT: %require_complete.loc8_55: = require_complete_type %impl.elem0.loc8_51.1 [symbolic = %require_complete.loc8_55 (constants.%require_complete.58f)] +// CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.as_type.loc8_44.1 [symbolic = %require_complete.loc8_42 (constants.%require_complete.2a5)] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_44.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.5210a7.2)] // CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type constants.%G.type, %J.facet [symbolic = %.loc9_11 (constants.%.442)] // CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallInterfaceQualified.%.loc9_11 (%.442) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem1.loc9_11.2, @G(%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericCallInterfaceQualified.%T.as_type.loc8_44.2 (%T.as_type), %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2)) -> @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) { +// CHECK:STDOUT: fn(%t.param: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type), %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2)) -> @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallInterfaceQualified.%T.as_type.loc8_44.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %J.ref.loc9: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %G.ref: %J.assoc_type = name_ref G, @J.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallInterfaceQualified.%.loc9_11 (%.442) = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %bound_method.loc9_11: = bound_method %t.ref, %impl.elem1.loc9_11.1 -// CHECK:STDOUT: %u.ref: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = name_ref u, %u +// CHECK:STDOUT: %u.ref: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = name_ref u, %u // CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem1.loc9_11.1, @G(constants.%J.facet.5210a7.2) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc9_19: = bound_method %t.ref, %specific_impl_fn.loc9_11.1 -// CHECK:STDOUT: %.loc9_19: init @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = call %bound_method.loc9_19(%t.ref, %u.ref) -// CHECK:STDOUT: %.loc9_20.1: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = value_of_initializer %.loc9_19 -// CHECK:STDOUT: %.loc9_20.2: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.2 (%impl.elem0.11fef0.2) = converted %.loc9_19, %.loc9_20.1 +// CHECK:STDOUT: %.loc9_19: init @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = call %bound_method.loc9_19(%t.ref, %u.ref) +// CHECK:STDOUT: %.loc9_20.1: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = value_of_initializer %.loc9_19 +// CHECK:STDOUT: %.loc9_20.2: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.11fef0.2) = converted %.loc9_19, %.loc9_20.1 // CHECK:STDOUT: return %.loc9_20.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -2013,30 +2013,30 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.4ca604.1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.1 -// CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.11fef0.1 +// CHECK:STDOUT: %impl.elem0.loc5_23.2 => constants.%impl.elem0.11fef0.1 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.b984e7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%J.facet.5210a7.2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallInterfaceQualified(constants.%T) { -// CHECK:STDOUT: %T.loc8_34.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_44.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc8_34.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc8_44.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc8_41 => constants.%pattern_type.4ca604.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.2 -// CHECK:STDOUT: %impl.elem0.loc8_51.2 => constants.%impl.elem0.11fef0.2 +// CHECK:STDOUT: %impl.elem0.loc8_51.1 => constants.%impl.elem0.11fef0.2 // CHECK:STDOUT: %pattern_type.loc8_47 => constants.%pattern_type.b984e7.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%J.facet.5210a7.2) { // CHECK:STDOUT: %Self => constants.%J.facet.5210a7.2 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%T.as_type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.4ca604.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.2 -// CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.11fef0.2 +// CHECK:STDOUT: %impl.elem0.loc5_23.2 => constants.%impl.elem0.11fef0.2 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.b984e7.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2082,17 +2082,17 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: } @@ -2141,14 +2141,14 @@ fn F() { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc8, %i32.loc8_37 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc8_20.1: %J_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.2 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericCallFI32.%T.as_type.loc8_45.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_45.1: type = splice_block %.loc8_45.2 [symbolic = %T.as_type.loc8_45.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %J_where.type = name_ref T, %T.loc8_20.1 [symbolic = %T.loc8_20.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_45.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_45.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_45.2: type = converted %T.ref, %T.as_type.loc8_45.1 [symbolic = %T.as_type.loc8_45.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc8_20.2: %J_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.1 (constants.%T)] +// CHECK:STDOUT: %t.param: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_45.1: type = splice_block %.loc8_45.2 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %J_where.type = name_ref T, %T.loc8_20.2 [symbolic = %T.loc8_20.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc8_45.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_45.2: type = converted %T.ref, %T.as_type.loc8_45.2 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericCallFI32.%T.as_type.loc8_45.2 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = bind_name t, %t.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -2165,16 +2165,16 @@ fn F() { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.b98) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.b98) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %u.param: @F.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = value_param call_param0 -// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] { -// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.2 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %u.param: @F.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = value_param call_param0 +// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] { +// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.1 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @F.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @F.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = return_slot %return.param +// CHECK:STDOUT: %u: @F.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @F.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -2192,37 +2192,37 @@ fn F() { // CHECK:STDOUT: generic fn @F(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.646)] -// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.1 [symbolic = %pattern_type (constants.%pattern_type.b98)] +// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.2 [symbolic = %pattern_type (constants.%pattern_type.b98)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @F.%impl.elem0.loc5_11.1 (%impl.elem0.11f)) -> @F.%impl.elem0.loc5_11.1 (%impl.elem0.11f); +// CHECK:STDOUT: fn(%u.param: @F.%impl.elem0.loc5_11.2 (%impl.elem0.11f)) -> @F.%impl.elem0.loc5_11.2 (%impl.elem0.11f); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @GenericCallFI32(%T.loc8_20.1: %J_where.type) { -// CHECK:STDOUT: %T.loc8_20.2: %J_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_45.2: type = facet_access_type %T.loc8_20.2 [symbolic = %T.as_type.loc8_45.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_45.2 [symbolic = %pattern_type (constants.%pattern_type.b32)] +// CHECK:STDOUT: generic fn @GenericCallFI32(%T.loc8_20.2: %J_where.type) { +// CHECK:STDOUT: %T.loc8_20.1: %J_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc8_45.1: type = facet_access_type %T.loc8_20.1 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_45.1 [symbolic = %pattern_type (constants.%pattern_type.b32)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_45.2 [symbolic = %require_complete (constants.%require_complete.5de)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_20.2, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.bee)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_45.2, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.487)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_45.1 [symbolic = %require_complete (constants.%require_complete.5de)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_20.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.bee)] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_45.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet.487)] // CHECK:STDOUT: %.loc9_11.2: type = fn_type_with_self_type constants.%F.type, %J.facet [symbolic = %.loc9_11.2 (constants.%.9b0)] // CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallFI32.%.loc9_11.2 (%.9b0) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem1.loc9_11.2, @F(%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericCallFI32.%T.as_type.loc8_45.2 (%T.as_type)) -> %i32 { +// CHECK:STDOUT: fn(%t.param: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallFI32.%T.as_type.loc8_45.2 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_45.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_11.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_45.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_11.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallFI32.%.loc9_11.2 (%.9b0) = impl_witness_access constants.%J.lookup_impl_witness.bee, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem1.loc9_11.1, @F(constants.%J.facet.487) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %impl.elem0.loc9: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_14.1: = bound_method %int_2, %impl.elem0.loc9 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_14.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc9_14.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc9_14.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] @@ -2241,22 +2241,22 @@ fn F() { // CHECK:STDOUT: specific @F(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.646 -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%impl.elem0.11f +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%impl.elem0.11f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%J.facet.330) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallFI32(constants.%T) { -// CHECK:STDOUT: %T.loc8_20.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_45.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc8_20.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc8_45.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%J.facet.487) { // CHECK:STDOUT: %Self => constants.%J.facet.487 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.bee -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2332,16 +2332,16 @@ fn F() { // CHECK:STDOUT: %return.patt: @F.loc5.%pattern_type (%pattern_type.b98) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type (%pattern_type.b98) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = value_param call_param0 -// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] { -// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.2 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %impl.elem0.loc5_17: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_17: type = name_ref U, %impl.elem0.loc5_17 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %u.param: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = value_param call_param0 +// CHECK:STDOUT: %.loc5: type = splice_block %U.ref.loc5_11 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] { +// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access constants.%J.lookup_impl_witness.646, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %U.ref.loc5_11: type = name_ref U, %impl.elem0.loc5_11.1 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f) = return_slot %return.param +// CHECK:STDOUT: %u: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = bind_name u, %u.param +// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -2425,10 +2425,10 @@ fn F() { // CHECK:STDOUT: generic fn @F.loc5(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.ccd)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.646)] -// CHECK:STDOUT: %impl.elem0.loc5_11.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.1 (constants.%impl.elem0.11f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.1 [symbolic = %pattern_type (constants.%pattern_type.b98)] +// CHECK:STDOUT: %impl.elem0.loc5_11.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_11.2 (constants.%impl.elem0.11f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc5_11.2 [symbolic = %pattern_type (constants.%pattern_type.b98)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f)) -> @F.loc5.%impl.elem0.loc5_11.1 (%impl.elem0.11f); +// CHECK:STDOUT: fn(%u.param: @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f)) -> @F.loc5.%impl.elem0.loc5_11.2 (%impl.elem0.11f); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc24_21.1(%u.param: ) -> { @@ -2453,7 +2453,7 @@ fn F() { // CHECK:STDOUT: specific @F.loc5(constants.%Self.ccd) { // CHECK:STDOUT: %Self => constants.%Self.ccd // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.646 -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%impl.elem0.11f +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%impl.elem0.11f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b98 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2462,7 +2462,7 @@ fn F() { // CHECK:STDOUT: specific @F.loc5(constants.%J.facet.f43) { // CHECK:STDOUT: %Self => constants.%J.facet.f43 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness -// CHECK:STDOUT: %impl.elem0.loc5_11.1 => constants.%i32 +// CHECK:STDOUT: %impl.elem0.loc5_11.2 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2574,13 +2574,13 @@ fn F() { // CHECK:STDOUT: %return.param_patt: = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc19_35: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %self.param: @F.loc19.%Self.as_type.loc19_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc19_14.1: type = splice_block %.loc19_14.2 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.loc19.%Self.as_type.loc19_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc19_14.1: type = splice_block %.loc19_14.2 [symbolic = %Self.as_type.loc19_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc19_14: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc19_14.2: type = facet_access_type %Self.ref.loc19_14 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc19_14.2: type = converted %Self.ref.loc19_14, %Self.as_type.loc19_14.2 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc19_14.1: type = facet_access_type %Self.ref.loc19_14 [symbolic = %Self.as_type.loc19_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc19_14.2: type = converted %Self.ref.loc19_14, %Self.as_type.loc19_14.1 [symbolic = %Self.as_type.loc19_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc19.%Self.as_type.loc19_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc19.%Self.as_type.loc19_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %z.param: = value_param call_param1 // CHECK:STDOUT: %Self.ref.loc19_23: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %z: = bind_name z, %z.param @@ -2694,10 +2694,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc19(@J2.%Self: %J2.type) { // CHECK:STDOUT: %Self: %J2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc19_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_14.1 [symbolic = %pattern_type (constants.%pattern_type.969)] +// CHECK:STDOUT: %Self.as_type.loc19_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_14.2 [symbolic = %pattern_type (constants.%pattern_type.969)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc19.%Self.as_type.loc19_14.1 (%Self.as_type), %z.param: ) -> ; +// CHECK:STDOUT: fn(%self.param: @F.loc19.%Self.as_type.loc19_14.2 (%Self.as_type), %z.param: ) -> ; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc30_33.1(%self.param: %empty_tuple.type, %z.param: %empty_struct_type) -> %empty_struct_type { @@ -2736,7 +2736,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc19(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc19_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.969 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2744,13 +2744,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc19(constants.%J2.facet.86f) { // CHECK:STDOUT: %Self => constants.%J2.facet.86f -// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc19_14.2 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc19(constants.%J2.facet.c3f) { // CHECK:STDOUT: %Self => constants.%J2.facet.c3f -// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%C2 +// CHECK:STDOUT: %Self.as_type.loc19_14.2 => constants.%C2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.838 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2839,23 +2839,23 @@ fn F() { // CHECK:STDOUT: %return.patt: @F.loc5.%pattern_type.loc5_20 (%pattern_type.6c7) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type.loc5_20 (%pattern_type.6c7) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%K.lookup_impl_witness.da8, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.75d)] -// CHECK:STDOUT: %V.ref.loc5_29: type = name_ref V, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.75d)] -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%K.lookup_impl_witness.da8, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.75d)] +// CHECK:STDOUT: %V.ref.loc5_29: type = name_ref V, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.75d)] +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %K.type = name_ref Self, @K.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %v.param: @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.75d) = value_param call_param1 -// CHECK:STDOUT: %.loc5_23: type = splice_block %V.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.75d)] { -// CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%K.lookup_impl_witness.da8, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.75d)] -// CHECK:STDOUT: %V.ref.loc5_23: type = name_ref V, %impl.elem0.loc5_23.2 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.75d)] +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %v.param: @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.75d) = value_param call_param1 +// CHECK:STDOUT: %.loc5_23: type = splice_block %V.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.75d)] { +// CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access constants.%K.lookup_impl_witness.da8, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.75d)] +// CHECK:STDOUT: %V.ref.loc5_23: type = name_ref V, %impl.elem0.loc5_23.1 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.75d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.75d) = bind_name v, %v.param -// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.75d) = out_param call_param2 -// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.75d) = return_slot %return.param +// CHECK:STDOUT: %v: @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.75d) = bind_name v, %v.param +// CHECK:STDOUT: %return.param: ref @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.75d) = out_param call_param2 +// CHECK:STDOUT: %return: ref @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.75d) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %K.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -2918,13 +2918,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@K.%Self: %K.type) { // CHECK:STDOUT: %Self: %K.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.ca1)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.ca1)] // CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %Self, @K [symbolic = %K.lookup_impl_witness (constants.%K.lookup_impl_witness.da8)] -// CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %K.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.75d)] -// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.6c7)] +// CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access %K.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.2 (constants.%impl.elem0.75d)] +// CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.2 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.6c7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type), %v.param: @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.75d)) -> @F.loc5.%impl.elem0.loc5_23.1 (%impl.elem0.75d); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type), %v.param: @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.75d)) -> @F.loc5.%impl.elem0.loc5_23.2 (%impl.elem0.75d); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc16_45.1(%self.param: %empty_tuple.type, %v.param: %struct_type.x) -> %struct_type.x { @@ -2948,10 +2948,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.ca1 // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.lookup_impl_witness.da8 -// CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.75d +// CHECK:STDOUT: %impl.elem0.loc5_23.2 => constants.%impl.elem0.75d // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.6c7 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2959,10 +2959,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%K.facet.e32) { // CHECK:STDOUT: %Self => constants.%K.facet.e32 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.impl_witness -// CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%struct_type.a +// CHECK:STDOUT: %impl.elem0.loc5_23.2 => constants.%struct_type.a // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.e85 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3164,7 +3164,7 @@ fn F() { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc3_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc3_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %M.decl: type = interface_decl @M [concrete = constants.%M.type] {} {} // CHECK:STDOUT: impl_decl @M.impl.8b4 [concrete] {} { @@ -3272,8 +3272,8 @@ fn F() { // CHECK:STDOUT: witness = file.%M.impl_witness.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc3_9.1: type) { -// CHECK:STDOUT: %T.loc3_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc3_9.2: type) { +// CHECK:STDOUT: %T.loc3_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc3_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -3320,7 +3320,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc3_9.2 => constants.%T +// CHECK:STDOUT: %T.loc3_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%Self) {} @@ -3328,7 +3328,7 @@ fn F() { // CHECK:STDOUT: specific @G.loc7(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc3_9.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc3_9.1 => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%M.facet.caa) {} @@ -3338,7 +3338,7 @@ fn F() { // CHECK:STDOUT: specific @Z(constants.%M.facet.1dc) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_tuple.type) { -// CHECK:STDOUT: %T.loc3_9.2 => constants.%empty_tuple.type +// CHECK:STDOUT: %T.loc3_9.1 => constants.%empty_tuple.type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc7(constants.%M.facet.80d) {} @@ -3367,20 +3367,20 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.2fd: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [concrete] +// CHECK:STDOUT: %Convert.type.71e: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %From: Core.IntLiteral = bind_symbolic_name From, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.708: type = fn_type @Convert.3, @ImplicitAs.impl.971(%From) [symbolic] +// CHECK:STDOUT: %Convert.type.708: type = fn_type @Convert.1, @ImplicitAs.impl.971(%From) [symbolic] // CHECK:STDOUT: %Convert.c68: %Convert.type.708 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.a11: = impl_witness imports.%ImplicitAs.impl_witness_table.1d9, @ImplicitAs.impl.971(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @ImplicitAs.impl.971(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.1, @ImplicitAs.impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.f49: %ImplicitAs.type.2fd = facet_value %i32, (%ImplicitAs.impl_witness.a11) [concrete] // CHECK:STDOUT: %.0ea: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.f49 [concrete] // CHECK:STDOUT: %Convert.bound.44d: = bound_method %impl.elem0.fab, %Convert.960 [symbolic] -// CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.81c: = bound_method %impl.elem0.fab, %Convert.specific_fn.8a8 [symbolic] // CHECK:STDOUT: %int.convert_checked: init Core.IntLiteral = call %bound_method.81c(%impl.elem0.fab) [symbolic] // CHECK:STDOUT: %array_type.377: type = array_type %int.convert_checked, bool [symbolic] @@ -3395,14 +3395,14 @@ fn F() { // CHECK:STDOUT: %impl.elem0.d4d: %i32 = impl_witness_access %I.lookup_impl_witness.5f5, element0 [symbolic_self] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.3, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.921: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.921 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b92: = bound_method %int_2.ecc, %Convert.specific_fn.b6f [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0.d4d = %int_2.ef8> [concrete] @@ -3460,7 +3460,7 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc8_25: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_2, %impl.elem0.loc8_25 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc8_25, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc8_25, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_25.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc8_25.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] @@ -3486,27 +3486,27 @@ fn F() { // CHECK:STDOUT: %return.param_patt: @F.loc5.%pattern_type.loc5_22 (%pattern_type.bc6) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %impl.elem0.loc5_37.2: %i32 = impl_witness_access constants.%I.lookup_impl_witness.5d6, element0 [symbolic = %impl.elem0.loc5_37.1 (constants.%impl.elem0.fab)] -// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %impl.elem0.loc5_37.2 [symbolic = %impl.elem0.loc5_37.1 (constants.%impl.elem0.fab)] +// CHECK:STDOUT: %impl.elem0.loc5_37.1: %i32 = impl_witness_access constants.%I.lookup_impl_witness.5d6, element0 [symbolic = %impl.elem0.loc5_37.3 (constants.%impl.elem0.fab)] +// CHECK:STDOUT: %N.ref: %i32 = name_ref N, %impl.elem0.loc5_37.1 [symbolic = %impl.elem0.loc5_37.3 (constants.%impl.elem0.fab)] // CHECK:STDOUT: %.loc5_31.1: type = value_of_initializer %bool.make_type [concrete = bool] // CHECK:STDOUT: %.loc5_31.2: type = converted %bool.make_type, %.loc5_31.1 [concrete = bool] -// CHECK:STDOUT: %impl.elem0.loc5_37.3: %.0ea = impl_witness_access constants.%ImplicitAs.impl_witness.a11, element0 [concrete = constants.%Convert.960] -// CHECK:STDOUT: %bound_method.loc5_37.2: = bound_method %N.ref, %impl.elem0.loc5_37.3 [symbolic = %Convert.bound (constants.%Convert.bound.44d)] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc5_37.3, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] -// CHECK:STDOUT: %bound_method.loc5_37.3: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc5_37.1 (constants.%bound_method.81c)] -// CHECK:STDOUT: %int.convert_checked.loc5_37.2: init Core.IntLiteral = call %bound_method.loc5_37.3(%N.ref) [symbolic = %int.convert_checked.loc5_37.1 (constants.%int.convert_checked)] -// CHECK:STDOUT: %.loc5_37.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc5_37.2 [symbolic = %int.convert_checked.loc5_37.1 (constants.%int.convert_checked)] -// CHECK:STDOUT: %.loc5_37.2: Core.IntLiteral = converted %N.ref, %.loc5_37.1 [symbolic = %int.convert_checked.loc5_37.1 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc5_38.2: type = array_type %.loc5_37.2, %.loc5_31.2 [symbolic = %array_type.loc5_38.1 (constants.%array_type.377)] -// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.b70) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.b70)] { +// CHECK:STDOUT: %impl.elem0.loc5_37.2: %.0ea = impl_witness_access constants.%ImplicitAs.impl_witness.a11, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %bound_method.loc5_37.1: = bound_method %N.ref, %impl.elem0.loc5_37.2 [symbolic = %Convert.bound (constants.%Convert.bound.44d)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc5_37.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] +// CHECK:STDOUT: %bound_method.loc5_37.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc5_37.3 (constants.%bound_method.81c)] +// CHECK:STDOUT: %int.convert_checked.loc5_37.1: init Core.IntLiteral = call %bound_method.loc5_37.2(%N.ref) [symbolic = %int.convert_checked.loc5_37.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %.loc5_37.1: Core.IntLiteral = value_of_initializer %int.convert_checked.loc5_37.1 [symbolic = %int.convert_checked.loc5_37.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %.loc5_37.2: Core.IntLiteral = converted %N.ref, %.loc5_37.1 [symbolic = %int.convert_checked.loc5_37.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %array_type.loc5_38.1: type = array_type %.loc5_37.2, %.loc5_31.2 [symbolic = %array_type.loc5_38.2 (constants.%array_type.377)] +// CHECK:STDOUT: %self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.b70) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.b70)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.b70)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.b70) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @F.loc5.%array_type.loc5_38.1 (%array_type.377) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc5.%array_type.loc5_38.1 (%array_type.377) = return_slot %return.param +// CHECK:STDOUT: %self: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.b70) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @F.loc5.%array_type.loc5_38.2 (%array_type.377) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc5.%array_type.loc5_38.2 (%array_type.377) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -3547,17 +3547,17 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc5(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.826)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.b70)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.6de)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type.b70)] +// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.6de)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.5d6)] -// CHECK:STDOUT: %impl.elem0.loc5_37.1: %i32 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_37.1 (constants.%impl.elem0.fab)] -// CHECK:STDOUT: %Convert.bound: = bound_method %impl.elem0.loc5_37.1, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound.44d)] -// CHECK:STDOUT: %bound_method.loc5_37.1: = bound_method %impl.elem0.loc5_37.1, constants.%Convert.specific_fn.8a8 [symbolic = %bound_method.loc5_37.1 (constants.%bound_method.81c)] -// CHECK:STDOUT: %int.convert_checked.loc5_37.1: init Core.IntLiteral = call %bound_method.loc5_37.1(%impl.elem0.loc5_37.1) [symbolic = %int.convert_checked.loc5_37.1 (constants.%int.convert_checked)] -// CHECK:STDOUT: %array_type.loc5_38.1: type = array_type %int.convert_checked.loc5_37.1, bool [symbolic = %array_type.loc5_38.1 (constants.%array_type.377)] -// CHECK:STDOUT: %pattern_type.loc5_22: type = pattern_type %array_type.loc5_38.1 [symbolic = %pattern_type.loc5_22 (constants.%pattern_type.bc6)] +// CHECK:STDOUT: %impl.elem0.loc5_37.3: %i32 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_37.3 (constants.%impl.elem0.fab)] +// CHECK:STDOUT: %Convert.bound: = bound_method %impl.elem0.loc5_37.3, constants.%Convert.960 [symbolic = %Convert.bound (constants.%Convert.bound.44d)] +// CHECK:STDOUT: %bound_method.loc5_37.3: = bound_method %impl.elem0.loc5_37.3, constants.%Convert.specific_fn.8a8 [symbolic = %bound_method.loc5_37.3 (constants.%bound_method.81c)] +// CHECK:STDOUT: %int.convert_checked.loc5_37.2: init Core.IntLiteral = call %bound_method.loc5_37.3(%impl.elem0.loc5_37.3) [symbolic = %int.convert_checked.loc5_37.2 (constants.%int.convert_checked)] +// CHECK:STDOUT: %array_type.loc5_38.2: type = array_type %int.convert_checked.loc5_37.2, bool [symbolic = %array_type.loc5_38.2 (constants.%array_type.377)] +// CHECK:STDOUT: %pattern_type.loc5_22: type = pattern_type %array_type.loc5_38.2 [symbolic = %pattern_type.loc5_22 (constants.%pattern_type.bc6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.1 (%Self.as_type.b70)) -> @F.loc5.%array_type.loc5_38.1 (%array_type.377); +// CHECK:STDOUT: fn(%self.param: @F.loc5.%Self.as_type.loc5_14.2 (%Self.as_type.b70)) -> @F.loc5.%array_type.loc5_38.2 (%array_type.377); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F.loc9(%self.param: %empty_tuple.type) -> %return.param: %array_type.c9b { @@ -3582,14 +3582,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%Self.826) { // CHECK:STDOUT: %Self => constants.%Self.826 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.b70 +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type.b70 // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.6de // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.5d6 -// CHECK:STDOUT: %impl.elem0.loc5_37.1 => constants.%impl.elem0.fab +// CHECK:STDOUT: %impl.elem0.loc5_37.3 => constants.%impl.elem0.fab // CHECK:STDOUT: %Convert.bound => constants.%Convert.bound.44d -// CHECK:STDOUT: %bound_method.loc5_37.1 => constants.%bound_method.81c -// CHECK:STDOUT: %int.convert_checked.loc5_37.1 => constants.%int.convert_checked -// CHECK:STDOUT: %array_type.loc5_38.1 => constants.%array_type.377 +// CHECK:STDOUT: %bound_method.loc5_37.3 => constants.%bound_method.81c +// CHECK:STDOUT: %int.convert_checked.loc5_37.2 => constants.%int.convert_checked +// CHECK:STDOUT: %array_type.loc5_38.2 => constants.%array_type.377 // CHECK:STDOUT: %pattern_type.loc5_22 => constants.%pattern_type.bc6 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3597,14 +3597,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc5(constants.%I.facet.85d) { // CHECK:STDOUT: %Self => constants.%I.facet.85d -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness -// CHECK:STDOUT: %impl.elem0.loc5_37.1 => constants.%int_2.ef8 +// CHECK:STDOUT: %impl.elem0.loc5_37.3 => constants.%int_2.ef8 // CHECK:STDOUT: %Convert.bound => constants.%Convert.bound.fbf -// CHECK:STDOUT: %bound_method.loc5_37.1 => constants.%bound_method.992 -// CHECK:STDOUT: %int.convert_checked.loc5_37.1 => constants.%int_2.ecc -// CHECK:STDOUT: %array_type.loc5_38.1 => constants.%array_type.c9b +// CHECK:STDOUT: %bound_method.loc5_37.3 => constants.%bound_method.992 +// CHECK:STDOUT: %int.convert_checked.loc5_37.2 => constants.%int_2.ecc +// CHECK:STDOUT: %array_type.loc5_38.2 => constants.%array_type.c9b // CHECK:STDOUT: %pattern_type.loc5_22 => constants.%pattern_type.5d5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3642,10 +3642,10 @@ fn F() { // CHECK:STDOUT: %pattern_type.7f8: type = pattern_type %C.131 [concrete] // CHECK:STDOUT: %C.val: %C.131 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.b84: type = fn_type @Op.2, @Destroy.impl(%C.131) [concrete] +// CHECK:STDOUT: %Op.type.b84: type = fn_type @Op.1, @Destroy.impl(%C.131) [concrete] // CHECK:STDOUT: %Op.e16: %Op.type.b84 = struct_value () [concrete] // CHECK:STDOUT: %ptr.aaa: type = ptr_type %C.131 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e16, @Op.2(%C.131) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e16, @Op.1(%C.131) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3670,7 +3670,7 @@ fn F() { // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: impl_decl @Z.impl [concrete] { @@ -3729,8 +3729,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%T.loc6_9.1: type) { -// CHECK:STDOUT: %T.loc6_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.2 (constants.%T)] +// CHECK:STDOUT: generic class @C(%T.loc6_9.2: type) { +// CHECK:STDOUT: %T.loc6_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -3777,7 +3777,7 @@ fn F() { // CHECK:STDOUT: %.loc12_23.2: %C.131 = bind_value %.loc12_23.1 // CHECK:STDOUT: %a: %C.131 = bind_name a, %.loc12_23.2 // CHECK:STDOUT: %Op.bound: = bound_method %.loc12_21.2, constants.%Op.e16 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e16, @Op.2(constants.%C.131) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e16, @Op.1(constants.%C.131) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc12_21.2, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.aaa = addr_of %.loc12_21.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -3787,7 +3787,7 @@ fn F() { // CHECK:STDOUT: specific @X(constants.%Self.6e6) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%T +// CHECK:STDOUT: %T.loc6_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%Z.facet.2a2) {} @@ -3811,7 +3811,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%D) { -// CHECK:STDOUT: %T.loc6_9.2 => constants.%D +// CHECK:STDOUT: %T.loc6_9.1 => constants.%D // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index f3f2248281d8..ab562ae60f35 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -55,17 +55,17 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -85,13 +85,13 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %bound_method.1da: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.1, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.3(%ptr.235) [concrete] -// CHECK:STDOUT: %Op.type.1e4: type = fn_type @Op.3, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.1(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.1e4: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.f0b: %Op.type.1e4 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.c51: = specific_function %Op.f0b, @Op.3(%array_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.c51: = specific_function %Op.f0b, @Op.1(%array_type) [concrete] // CHECK:STDOUT: %ValueBinding.type: type = fn_type @ValueBinding [concrete] // CHECK:STDOUT: %ValueBinding: %ValueBinding.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -173,7 +173,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc18_34.1: %tuple.type = tuple_literal (%int_1.loc18_27, %int_2.loc18_30, %int_3.loc18_33) // CHECK:STDOUT: %impl.elem0.loc18_34.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_34.1: = bound_method %int_1.loc18_27, %impl.elem0.loc18_34.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc18_34.1: = specific_function %impl.elem0.loc18_34.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_34.1: = specific_function %impl.elem0.loc18_34.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_34.2: = bound_method %int_1.loc18_27, %specific_fn.loc18_34.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc18_34.1: init %i32 = call %bound_method.loc18_34.2(%int_1.loc18_27) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc18_34.2: init %i32 = converted %int_1.loc18_27, %int.convert_checked.loc18_34.1 [concrete = constants.%int_1.5d2] @@ -182,7 +182,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc18_34.4: init %i32 = initialize_from %.loc18_34.2 to %.loc18_34.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc18_34.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_34.3: = bound_method %int_2.loc18_30, %impl.elem0.loc18_34.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc18_34.2: = specific_function %impl.elem0.loc18_34.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_34.2: = specific_function %impl.elem0.loc18_34.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_34.4: = bound_method %int_2.loc18_30, %specific_fn.loc18_34.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc18_34.2: init %i32 = call %bound_method.loc18_34.4(%int_2.loc18_30) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc18_34.5: init %i32 = converted %int_2.loc18_30, %int.convert_checked.loc18_34.2 [concrete = constants.%int_2.ef8] @@ -191,7 +191,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc18_34.7: init %i32 = initialize_from %.loc18_34.5 to %.loc18_34.6 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %impl.elem0.loc18_34.3: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_34.5: = bound_method %int_3.loc18_33, %impl.elem0.loc18_34.3 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc18_34.3: = specific_function %impl.elem0.loc18_34.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc18_34.3: = specific_function %impl.elem0.loc18_34.3, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_34.6: = bound_method %int_3.loc18_33, %specific_fn.loc18_34.3 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc18_34.3: init %i32 = call %bound_method.loc18_34.6(%int_3.loc18_33) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc18_34.8: init %i32 = converted %int_3.loc18_33, %int.convert_checked.loc18_34.3 [concrete = constants.%int_3.822] @@ -219,7 +219,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc21_22: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc21: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_21.1: = bound_method %int_0.loc21, %impl.elem0.loc21 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_21.2: = bound_method %int_0.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %bound_method.loc21_21.2(%int_0.loc21) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc21_21.1: %i32 = value_of_initializer %int.convert_checked.loc21 [concrete = constants.%int_0.6a9] @@ -239,7 +239,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc22: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc22_5: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_0.loc22, %impl.elem0.loc22_5 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc22_5: = specific_function %impl.elem0.loc22_5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc22_5: = specific_function %impl.elem0.loc22_5, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_0.loc22, %specific_fn.loc22_5 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc22_5: init %i32 = call %bound_method.loc22_5.2(%int_0.loc22) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc22_5.1: %i32 = value_of_initializer %int.convert_checked.loc22_5 [concrete = constants.%int_0.6a9] @@ -248,18 +248,18 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc22_8: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_8.1: = bound_method %int_4, %impl.elem0.loc22_8 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc22_8: = specific_function %impl.elem0.loc22_8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc22_8: = specific_function %impl.elem0.loc22_8, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_8.2: = bound_method %int_4, %specific_fn.loc22_8 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc22_8: init %i32 = call %bound_method.loc22_8.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc22_8: init %i32 = converted %int_4, %int.convert_checked.loc22_8 [concrete = constants.%int_4.940] // CHECK:STDOUT: assign %.loc22_6, %.loc22_8 // CHECK:STDOUT: %Op.bound.loc21: = bound_method %pa.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc21_3: = bound_method %pa.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc21_3: %ptr.5d5 = addr_of %pa.var // CHECK:STDOUT: %no_op.loc21: init %empty_tuple.type = call %bound_method.loc21_3(%addr.loc21_3) // CHECK:STDOUT: %Op.bound.loc18: = bound_method %a.var, constants.%Op.f0b -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f0b, @Op.3(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f0b, @Op.1(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18: %ptr.f01 = addr_of %a.var // CHECK:STDOUT: %no_op.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18) @@ -279,7 +279,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc26_34.1: %tuple.type = tuple_literal (%int_1.loc26_27, %int_2.loc26_30, %int_3.loc26_33) // CHECK:STDOUT: %impl.elem0.loc26_34.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_34.1: = bound_method %int_1.loc26_27, %impl.elem0.loc26_34.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc26_34.1: = specific_function %impl.elem0.loc26_34.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc26_34.1: = specific_function %impl.elem0.loc26_34.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_34.2: = bound_method %int_1.loc26_27, %specific_fn.loc26_34.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc26_34.1: init %i32 = call %bound_method.loc26_34.2(%int_1.loc26_27) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc26_34.2: init %i32 = converted %int_1.loc26_27, %int.convert_checked.loc26_34.1 [concrete = constants.%int_1.5d2] @@ -288,7 +288,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc26_34.4: init %i32 = initialize_from %.loc26_34.2 to %.loc26_34.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc26_34.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_34.3: = bound_method %int_2.loc26_30, %impl.elem0.loc26_34.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc26_34.2: = specific_function %impl.elem0.loc26_34.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc26_34.2: = specific_function %impl.elem0.loc26_34.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_34.4: = bound_method %int_2.loc26_30, %specific_fn.loc26_34.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc26_34.2: init %i32 = call %bound_method.loc26_34.4(%int_2.loc26_30) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc26_34.5: init %i32 = converted %int_2.loc26_30, %int.convert_checked.loc26_34.2 [concrete = constants.%int_2.ef8] @@ -297,7 +297,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc26_34.7: init %i32 = initialize_from %.loc26_34.5 to %.loc26_34.6 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %impl.elem0.loc26_34.3: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_34.5: = bound_method %int_3.loc26_33, %impl.elem0.loc26_34.3 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc26_34.3: = specific_function %impl.elem0.loc26_34.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc26_34.3: = specific_function %impl.elem0.loc26_34.3, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_34.6: = bound_method %int_3.loc26_33, %specific_fn.loc26_34.3 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc26_34.3: init %i32 = call %bound_method.loc26_34.6(%int_3.loc26_33) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc26_34.8: init %i32 = converted %int_3.loc26_33, %int.convert_checked.loc26_34.3 [concrete = constants.%int_3.822] @@ -320,7 +320,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc30: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc30: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc30_5.1: = bound_method %int_0.loc30, %impl.elem0.loc30 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc30_5.2: = bound_method %int_0.loc30, %specific_fn.loc30 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc30: init %i32 = call %bound_method.loc30_5.2(%int_0.loc30) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc30_5.1: %i32 = value_of_initializer %int.convert_checked.loc30 [concrete = constants.%int_0.6a9] @@ -332,7 +332,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc31: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc31: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc31_5.1: = bound_method %int_0.loc31, %impl.elem0.loc31 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_5.2: = bound_method %int_0.loc31, %specific_fn.loc31 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc31: init %i32 = call %bound_method.loc31_5.2(%int_0.loc31) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc31_5.1: %i32 = value_of_initializer %int.convert_checked.loc31 [concrete = constants.%int_0.6a9] @@ -349,7 +349,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc32: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc32_7.1: = bound_method %int_0.loc32, %impl.elem0.loc32 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc32_7.2: = bound_method %int_0.loc32, %specific_fn.loc32 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc32: init %i32 = call %bound_method.loc32_7.2(%int_0.loc32) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc32_7.1: %i32 = value_of_initializer %int.convert_checked.loc32 [concrete = constants.%int_0.6a9] @@ -357,12 +357,12 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc32_8.1: ref %i32 = array_index %.loc32_5.2, %.loc32_7.2 // CHECK:STDOUT: %.loc32_8.2: %i32 = bind_value %.loc32_8.1 // CHECK:STDOUT: %Op.bound.loc32: = bound_method %.loc32_5.1, constants.%Op.f0b -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.f0b, @Op.3(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.f0b, @Op.1(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] // CHECK:STDOUT: %bound_method.loc32_5: = bound_method %.loc32_5.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc32: %ptr.f01 = addr_of %.loc32_5.1 // CHECK:STDOUT: %no_op.loc32: init %empty_tuple.type = call %bound_method.loc32_5(%addr.loc32) // CHECK:STDOUT: %Op.bound.loc26: = bound_method %a.var, constants.%Op.f0b -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f0b, @Op.3(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f0b, @Op.1(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] // CHECK:STDOUT: %bound_method.loc26_3: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.f01 = addr_of %a.var // CHECK:STDOUT: %no_op.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index 553fc17dda8d..f10ec62588db 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -63,17 +63,17 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] @@ -81,13 +81,13 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %bound_method.1da: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.1e4: type = fn_type @Op.3, @Destroy.impl(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.1e4: type = fn_type @Op.1, @Destroy.impl(%array_type) [concrete] // CHECK:STDOUT: %Op.f0b: %Op.type.1e4 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.c51: = specific_function %Op.f0b, @Op.3(%array_type) [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.specific_fn.c51: = specific_function %Op.f0b, @Op.1(%array_type) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.1, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.3(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.1(%ptr.235) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -153,7 +153,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc23_22: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc23: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_21.1: = bound_method %int_0.loc23, %impl.elem0.loc23 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_21.2: = bound_method %int_0.loc23, %specific_fn.loc23 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc23: init %i32 = call %bound_method.loc23_21.2(%int_0.loc23) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc23_21.1: %i32 = value_of_initializer %int.convert_checked.loc23 [concrete = constants.%int_0.6a9] @@ -175,7 +175,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc28: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc28_5: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc28_5.1: = bound_method %int_0.loc28, %impl.elem0.loc28_5 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc28_5: = specific_function %impl.elem0.loc28_5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc28_5: = specific_function %impl.elem0.loc28_5, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc28_5.2: = bound_method %int_0.loc28, %specific_fn.loc28_5 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc28_5: init %i32 = call %bound_method.loc28_5.2(%int_0.loc28) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc28_5.1: %i32 = value_of_initializer %int.convert_checked.loc28_5 [concrete = constants.%int_0.6a9] @@ -186,7 +186,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %int_4.loc28: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc28_8: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc28_8.1: = bound_method %int_4.loc28, %impl.elem0.loc28_8 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc28_8: = specific_function %impl.elem0.loc28_8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc28_8: = specific_function %impl.elem0.loc28_8, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc28_8.2: = bound_method %int_4.loc28, %specific_fn.loc28_8 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc28_8: init %i32 = call %bound_method.loc28_8.2(%int_4.loc28) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc28_8: init %i32 = converted %int_4.loc28, %int.convert_checked.loc28_8 [concrete = constants.%int_4.940] @@ -205,7 +205,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc36_24: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc36: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc36_23.1: = bound_method %int_0.loc36, %impl.elem0.loc36 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc36: = specific_function %impl.elem0.loc36, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc36: = specific_function %impl.elem0.loc36, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc36_23.2: = bound_method %int_0.loc36, %specific_fn.loc36 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc36: init %i32 = call %bound_method.loc36_23.2(%int_0.loc36) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc36_23.1: %i32 = value_of_initializer %int.convert_checked.loc36 [concrete = constants.%int_0.6a9] @@ -229,7 +229,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %i32.loc41: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc41_7: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc41_7.1: = bound_method %int_0.loc41, %impl.elem0.loc41_7 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc41_7: = specific_function %impl.elem0.loc41_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc41_7: = specific_function %impl.elem0.loc41_7, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc41_7.2: = bound_method %int_0.loc41, %specific_fn.loc41_7 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc41_7: init %i32 = call %bound_method.loc41_7.2(%int_0.loc41) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc41_7.1: %i32 = value_of_initializer %int.convert_checked.loc41_7 [concrete = constants.%int_0.6a9] @@ -239,28 +239,28 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %int_4.loc41: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc41_10: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc41_10.1: = bound_method %int_4.loc41, %impl.elem0.loc41_10 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc41_10: = specific_function %impl.elem0.loc41_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc41_10: = specific_function %impl.elem0.loc41_10, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc41_10.2: = bound_method %int_4.loc41, %specific_fn.loc41_10 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc41_10: init %i32 = call %bound_method.loc41_10.2(%int_4.loc41) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc41_10: init %i32 = converted %int_4.loc41, %int.convert_checked.loc41_10 [concrete = constants.%int_4.940] // CHECK:STDOUT: assign %.loc41_8.2, %.loc41_10 // CHECK:STDOUT: %Op.bound.loc41: = bound_method %.loc41_5.1, constants.%Op.f0b -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.f0b, @Op.3(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.f0b, @Op.1(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] // CHECK:STDOUT: %bound_method.loc41_5: = bound_method %.loc41_5.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.f01 = addr_of %.loc41_5.1 // CHECK:STDOUT: %no_op.loc41: init %empty_tuple.type = call %bound_method.loc41_5(%addr.loc41) // CHECK:STDOUT: %Op.bound.loc36_21: = bound_method %.loc36_21.1, constants.%Op.f0b -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f0b, @Op.3(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.f0b, @Op.1(constants.%array_type) [concrete = constants.%Op.specific_fn.c51] // CHECK:STDOUT: %bound_method.loc36_21: = bound_method %.loc36_21.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc36_21: %ptr.f01 = addr_of %.loc36_21.1 // CHECK:STDOUT: %no_op.loc36_21: init %empty_tuple.type = call %bound_method.loc36_21(%addr.loc36_21) // CHECK:STDOUT: %Op.bound.loc36_3: = bound_method %pf.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc36_3: = bound_method %pf.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc36_3: %ptr.5d5 = addr_of %pf.var // CHECK:STDOUT: %no_op.loc36_3: init %empty_tuple.type = call %bound_method.loc36_3(%addr.loc36_3) // CHECK:STDOUT: %Op.bound.loc23: = bound_method %pb.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc23_3: = bound_method %pb.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23_3: %ptr.5d5 = addr_of %pb.var // CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) diff --git a/toolchain/check/testdata/index/fail_name_not_found.carbon b/toolchain/check/testdata/index/fail_name_not_found.carbon index a3fee2c4f490..29317b50d3fb 100644 --- a/toolchain/check/testdata/index/fail_name_not_found.carbon +++ b/toolchain/check/testdata/index/fail_name_not_found.carbon @@ -33,10 +33,10 @@ fn Main() { // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -76,7 +76,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %Op.bound: = bound_method %b.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %b.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %b.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/interface/as_type_of_type.carbon b/toolchain/check/testdata/interface/as_type_of_type.carbon index ed6a8d7787ac..e7433a5939d7 100644 --- a/toolchain/check/testdata/interface/as_type_of_type.carbon +++ b/toolchain/check/testdata/interface/as_type_of_type.carbon @@ -63,7 +63,7 @@ fn F(T:! Empty) { // CHECK:STDOUT: %T.patt: %pattern_type.6c3 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.type] -// CHECK:STDOUT: %T.loc17_6.1: %Empty.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_6.2 (constants.%T.193)] +// CHECK:STDOUT: %T.loc17_6.2: %Empty.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_6.1 (constants.%T.193)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -75,14 +75,14 @@ fn F(T:! Empty) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc17_6.1: %Empty.type) { -// CHECK:STDOUT: %T.loc17_6.2: %Empty.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_6.2 (constants.%T.193)] +// CHECK:STDOUT: generic fn @F(%T.loc17_6.2: %Empty.type) { +// CHECK:STDOUT: %T.loc17_6.1: %Empty.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_6.1 (constants.%T.193)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc18_10.2: type = facet_access_type %T.loc17_6.2 [symbolic = %T.as_type.loc18_10.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc18_10.2: type = facet_access_type %T.loc17_6.1 [symbolic = %T.as_type.loc18_10.2 (constants.%T.as_type)] // CHECK:STDOUT: %require_complete.loc18_10: = require_complete_type %T.as_type.loc18_10.2 [symbolic = %require_complete.loc18_10 (constants.%require_complete.449)] // CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_10.2 [symbolic = %pattern_type (constants.%pattern_type.dad)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc17_6.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc17_6.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.as_type.loc18_10.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] // CHECK:STDOUT: %.loc18_3.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc18_3.3 (constants.%.868)] // CHECK:STDOUT: %impl.elem0.loc18_3.2: @F.%.loc18_3.3 (%.868) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_3.2 (constants.%impl.elem0)] @@ -98,7 +98,7 @@ fn F(T:! Empty) { // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref @F.%T.as_type.loc18_10.2 (%T.as_type) = var %x.var_patt // CHECK:STDOUT: %.loc18_10.1: type = splice_block %.loc18_10.2 [symbolic = %T.as_type.loc18_10.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc17_6.1 [symbolic = %T.loc17_6.2 (constants.%T.193)] +// CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc17_6.2 [symbolic = %T.loc17_6.1 (constants.%T.193)] // CHECK:STDOUT: %T.as_type.loc18_10.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_10.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc18_10.2: type = converted %T.ref, %T.as_type.loc18_10.1 [symbolic = %T.as_type.loc18_10.2 (constants.%T.as_type)] // CHECK:STDOUT: } @@ -116,6 +116,6 @@ fn F(T:! Empty) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.193) { -// CHECK:STDOUT: %T.loc17_6.2 => constants.%T.193 +// CHECK:STDOUT: %T.loc17_6.1 => constants.%T.193 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/assoc_const_in_generic.carbon b/toolchain/check/testdata/interface/assoc_const_in_generic.carbon index 796616728dc8..1bf72d2cee4b 100644 --- a/toolchain/check/testdata/interface/assoc_const_in_generic.carbon +++ b/toolchain/check/testdata/interface/assoc_const_in_generic.carbon @@ -70,25 +70,25 @@ fn H() { // CHECK:STDOUT: %I.decl: %I.type.dac = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc19_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc19_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%T.loc15_13.1: type) { -// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: generic interface @I(%T.loc15_13.2: type) { +// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_13.1)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.209)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc15_13.2) [symbolic = %F.type (constants.%F.type.2ae)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @I(%T.loc15_13.1) [symbolic = %F.type (constants.%F.type.2ae)] // CHECK:STDOUT: %F: @I.%F.type (%F.type.2ae) = struct_value () [symbolic = %F (constants.%F.bb2)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc15_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc15_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5)] // CHECK:STDOUT: %assoc0.loc16_22.2: @I.%I.assoc_type (%I.assoc_type.1e5) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc16_22.2 (constants.%assoc0.8f0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -98,10 +98,10 @@ fn H() { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.20f) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.20f) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc16_8.2 [symbolic = %U.loc16_8.1 (constants.%U)] -// CHECK:STDOUT: %U.loc16_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc16_8.1 (constants.%U)] -// CHECK:STDOUT: %return.param: ref @F.%U.loc16_8.1 (%U) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.%U.loc16_8.1 (%U) = return_slot %return.param +// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc16_8.1 [symbolic = %U.loc16_8.2 (constants.%U)] +// CHECK:STDOUT: %U.loc16_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc16_8.2 (constants.%U)] +// CHECK:STDOUT: %return.param: ref @F.%U.loc16_8.2 (%U) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.%U.loc16_8.2 (%U) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc16_22.1: @I.%I.assoc_type (%I.assoc_type.1e5) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc16_22.2 (constants.%assoc0.8f0)] // CHECK:STDOUT: @@ -112,27 +112,27 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%T.loc15_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325), %U.loc16_8.2: type) { -// CHECK:STDOUT: %U.loc16_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc16_8.1 (constants.%U)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.loc16_8.1 [symbolic = %pattern_type (constants.%pattern_type.20f)] +// CHECK:STDOUT: generic fn @F(@I.%T.loc15_13.2: type, @I.%Self.1: @I.%I.type (%I.type.325), %U.loc16_8.1: type) { +// CHECK:STDOUT: %U.loc16_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc16_8.2 (constants.%U)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.loc16_8.2 [symbolic = %pattern_type (constants.%pattern_type.20f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.%U.loc16_8.1 (%U); +// CHECK:STDOUT: fn() -> @F.%U.loc16_8.2 (%U); // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic fn @G(%T.loc19_6.2: type) { +// CHECK:STDOUT: %T.loc19_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc19_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type.loc23_6.2: type = facet_type <@I, @I(%T.loc19_6.2)> [symbolic = %I.type.loc23_6.2 (constants.%I.type.325)] +// CHECK:STDOUT: %I.type.loc23_6.2: type = facet_type <@I, @I(%T.loc19_6.1)> [symbolic = %I.type.loc23_6.2 (constants.%I.type.325)] // CHECK:STDOUT: %require_complete.loc23_7.1: = require_complete_type %I.type.loc23_6.2 [symbolic = %require_complete.loc23_7.1 (constants.%require_complete.cfe)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc19_6.2) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc19_6.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.1e5)] // CHECK:STDOUT: %assoc0: @G.%I.assoc_type (%I.assoc_type.1e5) = assoc_entity element0, @I.%F.decl [symbolic = %assoc0 (constants.%assoc0.8f0)] // CHECK:STDOUT: %require_complete.loc23_7.2: = require_complete_type %I.assoc_type [symbolic = %require_complete.loc23_7.2 (constants.%require_complete.f84)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [concrete = constants.%I.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc19_6.1 [symbolic = %T.loc19_6.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc19_6.2 [symbolic = %T.loc19_6.1 (constants.%T)] // CHECK:STDOUT: %I.type.loc23_6.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc23_6.2 (constants.%I.type.325)] // CHECK:STDOUT: %.loc23: @G.%I.assoc_type (%I.assoc_type.1e5) = specific_constant @I.%assoc0.loc16_22.1, @I(constants.%T) [symbolic = %assoc0 (constants.%assoc0.8f0)] // CHECK:STDOUT: %F.ref: @G.%I.assoc_type (%I.assoc_type.1e5) = name_ref F, %.loc23 [symbolic = %assoc0 (constants.%assoc0.8f0)] @@ -151,7 +151,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%T +// CHECK:STDOUT: %T.loc15_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.325 @@ -163,16 +163,16 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self.209, constants.%U) { -// CHECK:STDOUT: %U.loc16_8.1 => constants.%U +// CHECK:STDOUT: %U.loc16_8.2 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.20f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.loc19_6.2 => constants.%T +// CHECK:STDOUT: %T.loc19_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc19_6.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc19_6.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type.loc23_6.2 => constants.%I.type.885 @@ -183,7 +183,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%empty_struct_type) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%empty_struct_type +// CHECK:STDOUT: %T.loc15_13.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.885 diff --git a/toolchain/check/testdata/interface/compound_member_access.carbon b/toolchain/check/testdata/interface/compound_member_access.carbon index e1108a655ef3..de8e3a7aed94 100644 --- a/toolchain/check/testdata/interface/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/compound_member_access.carbon @@ -240,29 +240,29 @@ fn Works() { // CHECK:STDOUT: %S.patt: @Simple1.%pattern_type (%pattern_type.b984e7.1) = symbolic_binding_pattern S, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %T.loc8_12.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] -// CHECK:STDOUT: %.loc8_24.1: type = splice_block %impl.elem0.loc8_24.1 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.11fef0.1)] { -// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc8_12.1 [symbolic = %T.loc8_12.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_12.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] +// CHECK:STDOUT: %.loc8_24.1: type = splice_block %impl.elem0.loc8_24.2 [symbolic = %impl.elem0.loc8_24.1 (constants.%impl.elem0.11fef0.1)] { +// CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc8_12.2 [symbolic = %T.loc8_12.1 (constants.%T)] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc8_24.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_24.2: type = converted %T.ref, %T.as_type.loc8_24.1 [symbolic = %T.as_type.loc8_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc8_24.1: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %T.as_type.loc8_24.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_24.2: type = converted %T.ref, %T.as_type.loc8_24.2 [symbolic = %T.as_type.loc8_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %impl.elem0.loc8_24.2: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.1, element0 [symbolic = %impl.elem0.loc8_24.1 (constants.%impl.elem0.11fef0.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.11fef0.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.2 (constants.%S)] +// CHECK:STDOUT: %S.loc8_19.2: @Simple1.%impl.elem0.loc8_24.1 (%impl.elem0.11fef0.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.1 (constants.%S)] // CHECK:STDOUT: } // CHECK:STDOUT: %Compound1.decl: %Compound1.type = fn_decl @Compound1 [concrete = constants.%Compound1] { // CHECK:STDOUT: %V.patt: %pattern_type.28e = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: %W.patt: @Compound1.%pattern_type (%pattern_type.b984e7.2) = symbolic_binding_pattern W, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %J.ref.loc11_18: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %V.loc11_14.1: %J.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)] -// CHECK:STDOUT: %.loc11: type = splice_block %impl.elem0.loc11_26.1 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.11fef0.2)] { -// CHECK:STDOUT: %V.ref: %J.type = name_ref V, %V.loc11_14.1 [symbolic = %V.loc11_14.2 (constants.%V)] +// CHECK:STDOUT: %V.loc11_14.2: %J.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.1 (constants.%V)] +// CHECK:STDOUT: %.loc11: type = splice_block %impl.elem0.loc11_26.2 [symbolic = %impl.elem0.loc11_26.1 (constants.%impl.elem0.11fef0.2)] { +// CHECK:STDOUT: %V.ref: %J.type = name_ref V, %V.loc11_14.2 [symbolic = %V.loc11_14.1 (constants.%V)] // CHECK:STDOUT: %J.ref.loc11_28: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc11_26.1: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %impl.elem0.loc11_26.2: type = impl_witness_access constants.%J.lookup_impl_witness.64628e.2, element0 [symbolic = %impl.elem0.loc11_26.1 (constants.%impl.elem0.11fef0.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.11fef0.2) = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.2 (constants.%W)] +// CHECK:STDOUT: %W.loc11_21.2: @Compound1.%impl.elem0.loc11_26.1 (%impl.elem0.11fef0.2) = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -282,13 +282,13 @@ fn Works() { // CHECK:STDOUT: assoc_const U:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Simple1(%T.loc8_12.1: %J.type, %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.11fef0.1)) { -// CHECK:STDOUT: %T.loc8_12.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_24.2: type = facet_access_type %T.loc8_12.2 [symbolic = %T.as_type.loc8_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.2, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.1)] -// CHECK:STDOUT: %impl.elem0.loc8_24.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.11fef0.1)] -// CHECK:STDOUT: %S.loc8_19.2: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.11fef0.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.2 (constants.%S)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc8_24.2 [symbolic = %pattern_type (constants.%pattern_type.b984e7.1)] +// CHECK:STDOUT: generic fn @Simple1(%T.loc8_12.2: %J.type, %S.loc8_19.2: @Simple1.%impl.elem0.loc8_24.1 (%impl.elem0.11fef0.1)) { +// CHECK:STDOUT: %T.loc8_12.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc8_24.1: type = facet_access_type %T.loc8_12.1 [symbolic = %T.as_type.loc8_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.1)] +// CHECK:STDOUT: %impl.elem0.loc8_24.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_24.1 (constants.%impl.elem0.11fef0.1)] +// CHECK:STDOUT: %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.1 (%impl.elem0.11fef0.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.1 (constants.%S)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc8_24.1 [symbolic = %pattern_type (constants.%pattern_type.b984e7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -298,12 +298,12 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Compound1(%V.loc11_14.1: %J.type, %W.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.11fef0.2)) { -// CHECK:STDOUT: %V.loc11_14.2: %J.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)] -// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %V.loc11_14.2, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] -// CHECK:STDOUT: %impl.elem0.loc11_26.2: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.11fef0.2)] -// CHECK:STDOUT: %W.loc11_21.2: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.11fef0.2) = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.2 (constants.%W)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc11_26.2 [symbolic = %pattern_type (constants.%pattern_type.b984e7.2)] +// CHECK:STDOUT: generic fn @Compound1(%V.loc11_14.2: %J.type, %W.loc11_21.2: @Compound1.%impl.elem0.loc11_26.1 (%impl.elem0.11fef0.2)) { +// CHECK:STDOUT: %V.loc11_14.1: %J.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.1 (constants.%V)] +// CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %V.loc11_14.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.64628e.2)] +// CHECK:STDOUT: %impl.elem0.loc11_26.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_26.1 (constants.%impl.elem0.11fef0.2)] +// CHECK:STDOUT: %W.loc11_21.1: @Compound1.%impl.elem0.loc11_26.1 (%impl.elem0.11fef0.2) = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.1 (constants.%W)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc11_26.1 [symbolic = %pattern_type (constants.%pattern_type.b984e7.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -318,21 +318,21 @@ fn Works() { // CHECK:STDOUT: specific @U(constants.%J.facet.5210a7.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple1(constants.%T, constants.%S) { -// CHECK:STDOUT: %T.loc8_12.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_24.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc8_12.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc8_24.1 => constants.%T.as_type // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.1 -// CHECK:STDOUT: %impl.elem0.loc8_24.2 => constants.%impl.elem0.11fef0.1 -// CHECK:STDOUT: %S.loc8_19.2 => constants.%S +// CHECK:STDOUT: %impl.elem0.loc8_24.1 => constants.%impl.elem0.11fef0.1 +// CHECK:STDOUT: %S.loc8_19.1 => constants.%S // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b984e7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%J.facet.5210a7.2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound1(constants.%V, constants.%W) { -// CHECK:STDOUT: %V.loc11_14.2 => constants.%V +// CHECK:STDOUT: %V.loc11_14.1 => constants.%V // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.64628e.2 -// CHECK:STDOUT: %impl.elem0.loc11_26.2 => constants.%impl.elem0.11fef0.2 -// CHECK:STDOUT: %W.loc11_21.2 => constants.%W +// CHECK:STDOUT: %impl.elem0.loc11_26.1 => constants.%impl.elem0.11fef0.2 +// CHECK:STDOUT: %W.loc11_21.1 => constants.%W // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b984e7.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -387,13 +387,13 @@ fn Works() { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %K1.ref: type = name_ref K1, file.%K1.decl [concrete = constants.%K1.type] -// CHECK:STDOUT: %T.loc8_12.1: %K1.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_12.2: %K1.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Compound2.decl: %Compound2.type = fn_decl @Compound2 [concrete = constants.%Compound2] { // CHECK:STDOUT: %V.patt: %pattern_type = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %K1.ref.loc13: type = name_ref K1, file.%K1.decl [concrete = constants.%K1.type] -// CHECK:STDOUT: %V.loc13_14.1: %K1.type = bind_symbolic_name V, 0 [symbolic = %V.loc13_14.2 (constants.%V)] +// CHECK:STDOUT: %V.loc13_14.2: %K1.type = bind_symbolic_name V, 0 [symbolic = %V.loc13_14.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -412,12 +412,12 @@ fn Works() { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Simple2(%T.loc8_12.1: %K1.type) { -// CHECK:STDOUT: %T.loc8_12.2: %K1.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] +// CHECK:STDOUT: generic fn @Simple2(%T.loc8_12.2: %K1.type) { +// CHECK:STDOUT: %T.loc8_12.1: %K1.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_12.2 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.2, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.d8ae08.1)] +// CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_12.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.d8ae08.1)] // CHECK:STDOUT: %K1.facet: %K1.type = facet_value %T.as_type.loc9_4.2, (%K1.lookup_impl_witness) [symbolic = %K1.facet (constants.%K1.facet.9e06af.1)] // CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%Q1.type, %K1.facet [symbolic = %.loc9_4.2 (constants.%.484362.1)] // CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.484362.1) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.9661c0.1)] @@ -425,7 +425,7 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %K1.type = name_ref T, %T.loc8_12.1 [symbolic = %T.loc8_12.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: %K1.type = name_ref T, %T.loc8_12.2 [symbolic = %T.loc8_12.1 (constants.%T)] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc9_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_4.1: type = converted %T.ref, %T.as_type.loc9_4.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] @@ -436,12 +436,12 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Compound2(%V.loc13_14.1: %K1.type) { -// CHECK:STDOUT: %V.loc13_14.2: %K1.type = bind_symbolic_name V, 0 [symbolic = %V.loc13_14.2 (constants.%V)] +// CHECK:STDOUT: generic fn @Compound2(%V.loc13_14.2: %K1.type) { +// CHECK:STDOUT: %V.loc13_14.1: %K1.type = bind_symbolic_name V, 0 [symbolic = %V.loc13_14.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %V.loc13_14.2, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.d8ae08.2)] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.loc13_14.2 [symbolic = %V.as_type (constants.%V.as_type)] +// CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %V.loc13_14.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.d8ae08.2)] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.loc13_14.1 [symbolic = %V.as_type (constants.%V.as_type)] // CHECK:STDOUT: %K1.facet: %K1.type = facet_value %V.as_type, (%K1.lookup_impl_witness) [symbolic = %K1.facet (constants.%K1.facet.9e06af.2)] // CHECK:STDOUT: %.loc14_4: type = fn_type_with_self_type constants.%Q1.type, %K1.facet [symbolic = %.loc14_4 (constants.%.484362.2)] // CHECK:STDOUT: %impl.elem0.loc14_4.2: @Compound2.%.loc14_4 (%.484362.2) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.9661c0.2)] @@ -449,7 +449,7 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %V.ref: %K1.type = name_ref V, %V.loc13_14.1 [symbolic = %V.loc13_14.2 (constants.%V)] +// CHECK:STDOUT: %V.ref: %K1.type = name_ref V, %V.loc13_14.2 [symbolic = %V.loc13_14.1 (constants.%V)] // CHECK:STDOUT: %K1.ref.loc14: type = name_ref K1, file.%K1.decl [concrete = constants.%K1.type] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc14_4.1: @Compound2.%.loc14_4 (%.484362.2) = impl_witness_access constants.%K1.lookup_impl_witness.d8ae08.2, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.9661c0.2)] @@ -462,13 +462,13 @@ fn Works() { // CHECK:STDOUT: specific @Q1(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple2(constants.%T) { -// CHECK:STDOUT: %T.loc8_12.2 => constants.%T +// CHECK:STDOUT: %T.loc8_12.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Q1(constants.%K1.facet.9e06af.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound2(constants.%V) { -// CHECK:STDOUT: %V.loc13_14.2 => constants.%V +// CHECK:STDOUT: %V.loc13_14.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Q1(constants.%K1.facet.9e06af.2) {} @@ -529,14 +529,14 @@ fn Works() { // CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.466ee6.1) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %K2.ref: type = name_ref K2, file.%K2.decl [concrete = constants.%K2.type] -// CHECK:STDOUT: %T.loc8_12.1: %K2.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] -// CHECK:STDOUT: %x.param: @Simple3.%T.as_type.loc8_23.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_23.1: type = splice_block %.loc8_23.2 [symbolic = %T.as_type.loc8_23.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref: %K2.type = name_ref T, %T.loc8_12.1 [symbolic = %T.loc8_12.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_23.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_23.2: type = converted %T.ref, %T.as_type.loc8_23.1 [symbolic = %T.as_type.loc8_23.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc8_12.2: %K2.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] +// CHECK:STDOUT: %x.param: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_23.1: type = splice_block %.loc8_23.2 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref: %K2.type = name_ref T, %T.loc8_12.2 [symbolic = %T.loc8_12.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc8_23.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_23.2: type = converted %T.ref, %T.as_type.loc8_23.2 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Simple3.%T.as_type.loc8_23.2 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %x: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound3.decl: %Compound3.type = fn_decl @Compound3 [concrete = constants.%Compound3] { // CHECK:STDOUT: %V.patt: %pattern_type.fda = symbolic_binding_pattern V, 0 [concrete] @@ -544,14 +544,14 @@ fn Works() { // CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.466ee6.2) = value_param_pattern %y.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %K2.ref.loc14: type = name_ref K2, file.%K2.decl [concrete = constants.%K2.type] -// CHECK:STDOUT: %V.loc14_14.1: %K2.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_14.2 (constants.%V)] -// CHECK:STDOUT: %y.param: @Compound3.%V.as_type.loc14_25.2 (%V.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_25.1: type = splice_block %.loc14_25.2 [symbolic = %V.as_type.loc14_25.2 (constants.%V.as_type)] { -// CHECK:STDOUT: %V.ref: %K2.type = name_ref V, %V.loc14_14.1 [symbolic = %V.loc14_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc14_25.1: type = facet_access_type %V.ref [symbolic = %V.as_type.loc14_25.2 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc14_25.2: type = converted %V.ref, %V.as_type.loc14_25.1 [symbolic = %V.as_type.loc14_25.2 (constants.%V.as_type)] +// CHECK:STDOUT: %V.loc14_14.2: %K2.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_14.1 (constants.%V)] +// CHECK:STDOUT: %y.param: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_25.1: type = splice_block %.loc14_25.2 [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] { +// CHECK:STDOUT: %V.ref: %K2.type = name_ref V, %V.loc14_14.2 [symbolic = %V.loc14_14.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc14_25.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc14_25.2: type = converted %V.ref, %V.as_type.loc14_25.2 [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @Compound3.%V.as_type.loc14_25.2 (%V.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %y: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = bind_name y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -570,25 +570,25 @@ fn Works() { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Simple3(%T.loc8_12.1: %K2.type) { -// CHECK:STDOUT: %T.loc8_12.2: %K2.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_23.2: type = facet_access_type %T.loc8_12.2 [symbolic = %T.as_type.loc8_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_23.2 [symbolic = %pattern_type (constants.%pattern_type.466ee6.1)] +// CHECK:STDOUT: generic fn @Simple3(%T.loc8_12.2: %K2.type) { +// CHECK:STDOUT: %T.loc8_12.1: %K2.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] +// CHECK:STDOUT: %T.as_type.loc8_23.1: type = facet_access_type %T.loc8_12.1 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_23.1 [symbolic = %pattern_type (constants.%pattern_type.466ee6.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_23.2 [symbolic = %require_complete (constants.%require_complete.022e81.1)] -// CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.2, @K2 [symbolic = %K2.lookup_impl_witness (constants.%K2.lookup_impl_witness)] -// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type.loc8_23.2, (%K2.lookup_impl_witness) [symbolic = %K2.facet (constants.%K2.facet)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_23.1 [symbolic = %require_complete (constants.%require_complete.022e81.1)] +// CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @K2 [symbolic = %K2.lookup_impl_witness (constants.%K2.lookup_impl_witness)] +// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type.loc8_23.1, (%K2.lookup_impl_witness) [symbolic = %K2.facet (constants.%K2.facet)] // CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%Q2.type, %K2.facet [symbolic = %.loc9_4.2 (constants.%.8de)] // CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple3.%.loc9_4.2 (%.8de) = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @Q2(%K2.facet) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Simple3.%T.as_type.loc8_23.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @Simple3.%T.as_type.loc8_23.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Simple3.%T.as_type.loc8_23.2 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.%assoc0 [concrete = constants.%assoc0.d67] -// CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_4.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_23.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_4.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple3.%.loc9_4.2 (%.8de) = impl_witness_access constants.%K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @Q2(constants.%K2.facet) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc9_8: init %empty_tuple.type = call %specific_impl_fn.loc9_4.1() @@ -596,17 +596,17 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Compound3(%V.loc14_14.1: %K2.type) { -// CHECK:STDOUT: %V.loc14_14.2: %K2.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc14_25.2: type = facet_access_type %V.loc14_14.2 [symbolic = %V.as_type.loc14_25.2 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc14_25.2 [symbolic = %pattern_type (constants.%pattern_type.466ee6.2)] +// CHECK:STDOUT: generic fn @Compound3(%V.loc14_14.2: %K2.type) { +// CHECK:STDOUT: %V.loc14_14.1: %K2.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_14.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc14_25.1: type = facet_access_type %V.loc14_14.1 [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc14_25.1 [symbolic = %pattern_type (constants.%pattern_type.466ee6.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc14_25.2 [symbolic = %require_complete (constants.%require_complete.022e81.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc14_25.1 [symbolic = %require_complete (constants.%require_complete.022e81.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @Compound3.%V.as_type.loc14_25.2 (%V.as_type)) { +// CHECK:STDOUT: fn(%y.param: @Compound3.%V.as_type.loc14_25.1 (%V.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %y.ref: @Compound3.%V.as_type.loc14_25.2 (%V.as_type) = name_ref y, %y +// CHECK:STDOUT: %y.ref: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: %K2.ref.loc22: type = name_ref K2, file.%K2.decl [concrete = constants.%K2.type] // CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.%assoc0 [concrete = constants.%assoc0.d67] // CHECK:STDOUT: %.loc22: %K2.type = converted %y.ref, [concrete = ] @@ -617,16 +617,16 @@ fn Works() { // CHECK:STDOUT: specific @Q2(constants.%Self.0ce) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple3(constants.%T) { -// CHECK:STDOUT: %T.loc8_12.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_23.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc8_12.1 => constants.%T +// CHECK:STDOUT: %T.as_type.loc8_23.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.466ee6.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Q2(constants.%K2.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound3(constants.%V) { -// CHECK:STDOUT: %V.loc14_14.2 => constants.%V -// CHECK:STDOUT: %V.as_type.loc14_25.2 => constants.%V.as_type +// CHECK:STDOUT: %V.loc14_14.1 => constants.%V +// CHECK:STDOUT: %V.as_type.loc14_25.1 => constants.%V.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.466ee6.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -721,14 +721,14 @@ fn Works() { // CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type (%pattern_type.ad3e89.2) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %L1.ref: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] -// CHECK:STDOUT: %T.loc9_12.1: %L1.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_12.2 (constants.%T.04c)] -// CHECK:STDOUT: %x.param: @Simple4.%T.as_type.loc9_23.2 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.2 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc9: %L1.type = name_ref T, %T.loc9_12.1 [symbolic = %T.loc9_12.2 (constants.%T.04c)] -// CHECK:STDOUT: %T.as_type.loc9_23.1: type = facet_access_type %T.ref.loc9 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref.loc9, %T.as_type.loc9_23.1 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.loc9_12.2: %L1.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_12.1 (constants.%T.04c)] +// CHECK:STDOUT: %x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc9: %L1.type = name_ref T, %T.loc9_12.2 [symbolic = %T.loc9_12.1 (constants.%T.04c)] +// CHECK:STDOUT: %T.as_type.loc9_23.2: type = facet_access_type %T.ref.loc9 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref.loc9, %T.as_type.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Simple4.%T.as_type.loc9_23.2 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %x: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound4.decl: %Compound4.type = fn_decl @Compound4 [concrete = constants.%Compound4] { // CHECK:STDOUT: %V.patt: %pattern_type.5da = symbolic_binding_pattern V, 0 [concrete] @@ -736,14 +736,14 @@ fn Works() { // CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type (%pattern_type.ad3e89.3) = value_param_pattern %y.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %L1.ref.loc16: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] -// CHECK:STDOUT: %V.loc16_14.1: %L1.type = bind_symbolic_name V, 0 [symbolic = %V.loc16_14.2 (constants.%V)] -// CHECK:STDOUT: %y.param: @Compound4.%V.as_type.loc16_25.2 (%V.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc16_25.1: type = splice_block %.loc16_25.2 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] { -// CHECK:STDOUT: %V.ref.loc16: %L1.type = name_ref V, %V.loc16_14.1 [symbolic = %V.loc16_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc16_25.1: type = facet_access_type %V.ref.loc16 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc16_25.2: type = converted %V.ref.loc16, %V.as_type.loc16_25.1 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] +// CHECK:STDOUT: %V.loc16_14.2: %L1.type = bind_symbolic_name V, 0 [symbolic = %V.loc16_14.1 (constants.%V)] +// CHECK:STDOUT: %y.param: @Compound4.%V.as_type.loc16_25.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc16_25.1: type = splice_block %.loc16_25.2 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] { +// CHECK:STDOUT: %V.ref.loc16: %L1.type = name_ref V, %V.loc16_14.2 [symbolic = %V.loc16_14.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc16_25.2: type = facet_access_type %V.ref.loc16 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc16_25.2: type = converted %V.ref.loc16, %V.as_type.loc16_25.2 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @Compound4.%V.as_type.loc16_25.2 (%V.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %y: @Compound4.%V.as_type.loc16_25.1 (%V.as_type) = bind_name y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -753,13 +753,13 @@ fn Works() { // CHECK:STDOUT: %self.patt: @R1.%pattern_type (%pattern_type.ad3e89.1) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @R1.%pattern_type (%pattern_type.ad3e89.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @R1.%Self.as_type.loc4_15.1 (%Self.as_type.759) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.759)] { +// CHECK:STDOUT: %self.param: @R1.%Self.as_type.loc4_15.2 (%Self.as_type.759) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.759)] { // CHECK:STDOUT: %Self.ref: %L1.type = name_ref Self, @L1.%Self [symbolic = %Self (constants.%Self.04c)] -// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.759)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.759)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.759)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.1 [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.759)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @R1.%Self.as_type.loc4_15.1 (%Self.as_type.759) = bind_name self, %self.param +// CHECK:STDOUT: %self: @R1.%Self.as_type.loc4_15.2 (%Self.as_type.759) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L1.assoc_type = assoc_entity element0, %R1.decl [concrete = constants.%assoc0.8b4] // CHECK:STDOUT: %S1.decl: %S1.type = fn_decl @S1 [concrete = constants.%S1] { @@ -767,14 +767,14 @@ fn Works() { // CHECK:STDOUT: %self.param_patt: @S1.%pattern_type (%pattern_type.53384b.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %.loc5_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @S1.%ptr.loc5_24.1 (%ptr.72f01d.1) = value_param call_param0 -// CHECK:STDOUT: %.loc5_24.1: type = splice_block %ptr.loc5_24.2 [symbolic = %ptr.loc5_24.1 (constants.%ptr.72f01d.1)] { +// CHECK:STDOUT: %self.param: @S1.%ptr.loc5_24.2 (%ptr.72f01d.1) = value_param call_param0 +// CHECK:STDOUT: %.loc5_24.1: type = splice_block %ptr.loc5_24.1 [symbolic = %ptr.loc5_24.2 (constants.%ptr.72f01d.1)] { // CHECK:STDOUT: %Self.ref: %L1.type = name_ref Self, @L1.%Self [symbolic = %Self (constants.%Self.04c)] -// CHECK:STDOUT: %Self.as_type.loc5_24.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_24.1 (constants.%Self.as_type.759)] -// CHECK:STDOUT: %.loc5_24.2: type = converted %Self.ref, %Self.as_type.loc5_24.2 [symbolic = %Self.as_type.loc5_24.1 (constants.%Self.as_type.759)] -// CHECK:STDOUT: %ptr.loc5_24.2: type = ptr_type %.loc5_24.2 [symbolic = %ptr.loc5_24.1 (constants.%ptr.72f01d.1)] +// CHECK:STDOUT: %Self.as_type.loc5_24.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_24.2 (constants.%Self.as_type.759)] +// CHECK:STDOUT: %.loc5_24.2: type = converted %Self.ref, %Self.as_type.loc5_24.1 [symbolic = %Self.as_type.loc5_24.2 (constants.%Self.as_type.759)] +// CHECK:STDOUT: %ptr.loc5_24.1: type = ptr_type %.loc5_24.2 [symbolic = %ptr.loc5_24.2 (constants.%ptr.72f01d.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @S1.%ptr.loc5_24.1 (%ptr.72f01d.1) = bind_name self, %self.param +// CHECK:STDOUT: %self: @S1.%ptr.loc5_24.2 (%ptr.72f01d.1) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %L1.assoc_type = assoc_entity element1, %S1.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -787,50 +787,50 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @R1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.04c)] -// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.759)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.ad3e89.1)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.2 (constants.%Self.as_type.759)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.2 [symbolic = %pattern_type (constants.%pattern_type.ad3e89.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @R1.%Self.as_type.loc4_15.1 (%Self.as_type.759)); +// CHECK:STDOUT: fn(%self.param: @R1.%Self.as_type.loc4_15.2 (%Self.as_type.759)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @S1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.04c)] -// CHECK:STDOUT: %Self.as_type.loc5_24.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_24.1 (constants.%Self.as_type.759)] -// CHECK:STDOUT: %ptr.loc5_24.1: type = ptr_type %Self.as_type.loc5_24.1 [symbolic = %ptr.loc5_24.1 (constants.%ptr.72f01d.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc5_24.1 [symbolic = %pattern_type (constants.%pattern_type.53384b.1)] +// CHECK:STDOUT: %Self.as_type.loc5_24.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_24.2 (constants.%Self.as_type.759)] +// CHECK:STDOUT: %ptr.loc5_24.2: type = ptr_type %Self.as_type.loc5_24.2 [symbolic = %ptr.loc5_24.2 (constants.%ptr.72f01d.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc5_24.2 [symbolic = %pattern_type (constants.%pattern_type.53384b.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @S1.%ptr.loc5_24.1 (%ptr.72f01d.1)); +// CHECK:STDOUT: fn(%self.param: @S1.%ptr.loc5_24.2 (%ptr.72f01d.1)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Simple4(%T.loc9_12.1: %L1.type) { -// CHECK:STDOUT: %T.loc9_12.2: %L1.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_12.2 (constants.%T.04c)] -// CHECK:STDOUT: %T.as_type.loc9_23.2: type = facet_access_type %T.loc9_12.2 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_23.2 [symbolic = %pattern_type (constants.%pattern_type.ad3e89.2)] +// CHECK:STDOUT: generic fn @Simple4(%T.loc9_12.2: %L1.type) { +// CHECK:STDOUT: %T.loc9_12.1: %L1.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_12.1 (constants.%T.04c)] +// CHECK:STDOUT: %T.as_type.loc9_23.1: type = facet_access_type %T.loc9_12.1 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type (constants.%pattern_type.ad3e89.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_23.2 [symbolic = %require_complete.loc9 (constants.%require_complete.97cd40.1)] -// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %T.loc9_12.2, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.0a136b.1)] -// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %T.as_type.loc9_23.2, (%L1.lookup_impl_witness) [symbolic = %L1.facet (constants.%L1.facet.ed78cc.1)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete.loc9 (constants.%require_complete.97cd40.1)] +// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %T.loc9_12.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.0a136b.1)] +// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %T.as_type.loc9_23.1, (%L1.lookup_impl_witness) [symbolic = %L1.facet (constants.%L1.facet.ed78cc.1)] // CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%R1.type, %L1.facet [symbolic = %.loc10_4.2 (constants.%.3b7304.1)] // CHECK:STDOUT: %impl.elem0.loc10_4.2: @Simple4.%.loc10_4.2 (%.3b7304.1) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.a7f881.1)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @R1(%L1.facet) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.f11365.1)] // CHECK:STDOUT: %.loc12_8.2: type = fn_type_with_self_type constants.%S1.type, %L1.facet [symbolic = %.loc12_8.2 (constants.%.e9a411.1)] // CHECK:STDOUT: %impl.elem1.loc12_8.2: @Simple4.%.loc12_8.2 (%.e9a411.1) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc12_8.2 (constants.%impl.elem1.a8c6e3.1)] // CHECK:STDOUT: %specific_impl_fn.loc12_8.2: = specific_impl_function %impl.elem1.loc12_8.2, @S1(%L1.facet) [symbolic = %specific_impl_fn.loc12_8.2 (constants.%specific_impl_fn.bbb82e.1)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_23.2 [symbolic = %ptr (constants.%ptr.72f01d.2)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_23.1 [symbolic = %ptr (constants.%ptr.72f01d.2)] // CHECK:STDOUT: %require_complete.loc12: = require_complete_type %ptr [symbolic = %require_complete.loc12 (constants.%require_complete.9326df.1)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc9_12.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.87177a.1)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.as_type.loc9_23.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.a7da23.1)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc9_12.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.87177a.1)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %T.as_type.loc9_23.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.a7da23.1)] // CHECK:STDOUT: %.loc11_3.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc11_3.3 (constants.%.0f4deb.1)] // CHECK:STDOUT: %impl.elem0.loc11_3.2: @Simple4.%.loc11_3.3 (%.0f4deb.1) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_3.2 (constants.%impl.elem0.71dfa9.1)] // CHECK:STDOUT: %specific_impl_fn.loc11_3.2: = specific_impl_function %impl.elem0.loc11_3.2, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc11_3.2 (constants.%specific_impl_fn.5803ed.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Simple4.%T.as_type.loc9_23.2 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc10: @Simple4.%T.as_type.loc9_23.2 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc10: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.%assoc0 [concrete = constants.%assoc0.8b4] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T.04c [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_4.1: type = converted constants.%T.04c, %T.as_type.loc10 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type constants.%T.04c [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_4.1: type = converted constants.%T.04c, %T.as_type.loc10 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc10_4.1: @Simple4.%.loc10_4.2 (%.3b7304.1) = impl_witness_access constants.%L1.lookup_impl_witness.0a136b.1, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.a7f881.1)] // CHECK:STDOUT: %bound_method.loc10_4: = bound_method %x.ref.loc10, %impl.elem0.loc10_4.1 // CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @R1(constants.%L1.facet.ed78cc.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.f11365.1)] @@ -840,27 +840,27 @@ fn Works() { // CHECK:STDOUT: %xcopy.patt: @Simple4.%pattern_type (%pattern_type.ad3e89.2) = binding_pattern xcopy [concrete] // CHECK:STDOUT: %xcopy.var_patt: @Simple4.%pattern_type (%pattern_type.ad3e89.2) = var_pattern %xcopy.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %xcopy.var: ref @Simple4.%T.as_type.loc9_23.2 (%T.as_type) = var %xcopy.var_patt -// CHECK:STDOUT: %x.ref.loc11: @Simple4.%T.as_type.loc9_23.2 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %xcopy.var: ref @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = var %xcopy.var_patt +// CHECK:STDOUT: %x.ref.loc11: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: assign %xcopy.var, %x.ref.loc11 -// CHECK:STDOUT: %.loc11_14.1: type = splice_block %.loc11_14.2 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] { -// CHECK:STDOUT: %T.ref.loc11: %L1.type = name_ref T, %T.loc9_12.1 [symbolic = %T.loc9_12.2 (constants.%T.04c)] -// CHECK:STDOUT: %T.as_type.loc11_14: type = facet_access_type %T.ref.loc11 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc11_14.2: type = converted %T.ref.loc11, %T.as_type.loc11_14 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc11_14.1: type = splice_block %.loc11_14.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %T.ref.loc11: %L1.type = name_ref T, %T.loc9_12.2 [symbolic = %T.loc9_12.1 (constants.%T.04c)] +// CHECK:STDOUT: %T.as_type.loc11_14: type = facet_access_type %T.ref.loc11 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc11_14.2: type = converted %T.ref.loc11, %T.as_type.loc11_14 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %xcopy: ref @Simple4.%T.as_type.loc9_23.2 (%T.as_type) = bind_name xcopy, %xcopy.var -// CHECK:STDOUT: %xcopy.ref: ref @Simple4.%T.as_type.loc9_23.2 (%T.as_type) = name_ref xcopy, %xcopy +// CHECK:STDOUT: %xcopy: ref @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = bind_name xcopy, %xcopy.var +// CHECK:STDOUT: %xcopy.ref: ref @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = name_ref xcopy, %xcopy // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %T.as_type.loc12: type = facet_access_type constants.%T.04c [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc12_8.1: type = converted constants.%T.04c, %T.as_type.loc12 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc12: type = facet_access_type constants.%T.04c [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_8.1: type = converted constants.%T.04c, %T.as_type.loc12 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem1.loc12_8.1: @Simple4.%.loc12_8.2 (%.e9a411.1) = impl_witness_access constants.%L1.lookup_impl_witness.0a136b.1, element1 [symbolic = %impl.elem1.loc12_8.2 (constants.%impl.elem1.a8c6e3.1)] // CHECK:STDOUT: %bound_method.loc12_8: = bound_method %xcopy.ref, %impl.elem1.loc12_8.1 // CHECK:STDOUT: %specific_impl_fn.loc12_8.1: = specific_impl_function %impl.elem1.loc12_8.1, @S1(constants.%L1.facet.ed78cc.1) [symbolic = %specific_impl_fn.loc12_8.2 (constants.%specific_impl_fn.bbb82e.1)] // CHECK:STDOUT: %bound_method.loc12_12: = bound_method %xcopy.ref, %specific_impl_fn.loc12_8.1 // CHECK:STDOUT: %addr.loc12: @Simple4.%ptr (%ptr.72f01d.2) = addr_of %xcopy.ref // CHECK:STDOUT: %.loc12_12: init %empty_tuple.type = call %bound_method.loc12_12(%addr.loc12) -// CHECK:STDOUT: %T.as_type.loc11_3: type = facet_access_type constants.%T.04c [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc11_3.1: type = converted constants.%T.04c, %T.as_type.loc11_3 [symbolic = %T.as_type.loc9_23.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc11_3: type = facet_access_type constants.%T.04c [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc11_3.1: type = converted constants.%T.04c, %T.as_type.loc11_3 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc11_3.1: @Simple4.%.loc11_3.3 (%.0f4deb.1) = impl_witness_access constants.%Destroy.lookup_impl_witness.87177a.1, element0 [symbolic = %impl.elem0.loc11_3.2 (constants.%impl.elem0.71dfa9.1)] // CHECK:STDOUT: %bound_method.loc11_3.1: = bound_method %xcopy.var, %impl.elem0.loc11_3.1 // CHECK:STDOUT: %specific_impl_fn.loc11_3.1: = specific_impl_function %impl.elem0.loc11_3.1, @Op.1(constants.%Destroy.facet.a7da23.1) [symbolic = %specific_impl_fn.loc11_3.2 (constants.%specific_impl_fn.5803ed.1)] @@ -871,32 +871,32 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Compound4(%V.loc16_14.1: %L1.type) { -// CHECK:STDOUT: %V.loc16_14.2: %L1.type = bind_symbolic_name V, 0 [symbolic = %V.loc16_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc16_25.2: type = facet_access_type %V.loc16_14.2 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc16_25.2 [symbolic = %pattern_type (constants.%pattern_type.ad3e89.3)] +// CHECK:STDOUT: generic fn @Compound4(%V.loc16_14.2: %L1.type) { +// CHECK:STDOUT: %V.loc16_14.1: %L1.type = bind_symbolic_name V, 0 [symbolic = %V.loc16_14.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc16_25.1: type = facet_access_type %V.loc16_14.1 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc16_25.1 [symbolic = %pattern_type (constants.%pattern_type.ad3e89.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %V.as_type.loc16_25.2 [symbolic = %require_complete.loc16 (constants.%require_complete.97cd40.2)] -// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %V.loc16_14.2, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.0a136b.2)] -// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %V.as_type.loc16_25.2, (%L1.lookup_impl_witness) [symbolic = %L1.facet (constants.%L1.facet.ed78cc.2)] +// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %V.as_type.loc16_25.1 [symbolic = %require_complete.loc16 (constants.%require_complete.97cd40.2)] +// CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %V.loc16_14.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.0a136b.2)] +// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %V.as_type.loc16_25.1, (%L1.lookup_impl_witness) [symbolic = %L1.facet (constants.%L1.facet.ed78cc.2)] // CHECK:STDOUT: %.loc17_4: type = fn_type_with_self_type constants.%R1.type, %L1.facet [symbolic = %.loc17_4 (constants.%.3b7304.2)] // CHECK:STDOUT: %impl.elem0.loc17_4.2: @Compound4.%.loc17_4 (%.3b7304.2) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc17_4.2 (constants.%impl.elem0.a7f881.2)] // CHECK:STDOUT: %specific_impl_fn.loc17_4.2: = specific_impl_function %impl.elem0.loc17_4.2, @R1(%L1.facet) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.f11365.2)] // CHECK:STDOUT: %.loc19_8: type = fn_type_with_self_type constants.%S1.type, %L1.facet [symbolic = %.loc19_8 (constants.%.e9a411.2)] // CHECK:STDOUT: %impl.elem1.loc19_8.2: @Compound4.%.loc19_8 (%.e9a411.2) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc19_8.2 (constants.%impl.elem1.a8c6e3.2)] // CHECK:STDOUT: %specific_impl_fn.loc19_8.2: = specific_impl_function %impl.elem1.loc19_8.2, @S1(%L1.facet) [symbolic = %specific_impl_fn.loc19_8.2 (constants.%specific_impl_fn.bbb82e.2)] -// CHECK:STDOUT: %ptr: type = ptr_type %V.as_type.loc16_25.2 [symbolic = %ptr (constants.%ptr.72f01d.3)] +// CHECK:STDOUT: %ptr: type = ptr_type %V.as_type.loc16_25.1 [symbolic = %ptr (constants.%ptr.72f01d.3)] // CHECK:STDOUT: %require_complete.loc19: = require_complete_type %ptr [symbolic = %require_complete.loc19 (constants.%require_complete.9326df.2)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %V.loc16_14.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.87177a.2)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %V.as_type.loc16_25.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.a7da23.2)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %V.loc16_14.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.87177a.2)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %V.as_type.loc16_25.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.a7da23.2)] // CHECK:STDOUT: %.loc18_3.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc18_3.3 (constants.%.0f4deb.2)] // CHECK:STDOUT: %impl.elem0.loc18_3.2: @Compound4.%.loc18_3.3 (%.0f4deb.2) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_3.2 (constants.%impl.elem0.71dfa9.2)] // CHECK:STDOUT: %specific_impl_fn.loc18_3.2: = specific_impl_function %impl.elem0.loc18_3.2, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc18_3.2 (constants.%specific_impl_fn.5803ed.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @Compound4.%V.as_type.loc16_25.2 (%V.as_type)) { +// CHECK:STDOUT: fn(%y.param: @Compound4.%V.as_type.loc16_25.1 (%V.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %y.ref.loc17: @Compound4.%V.as_type.loc16_25.2 (%V.as_type) = name_ref y, %y +// CHECK:STDOUT: %y.ref.loc17: @Compound4.%V.as_type.loc16_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: %L1.ref.loc17: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.%assoc0 [concrete = constants.%assoc0.8b4] // CHECK:STDOUT: %impl.elem0.loc17_4.1: @Compound4.%.loc17_4 (%.3b7304.2) = impl_witness_access constants.%L1.lookup_impl_witness.0a136b.2, element0 [symbolic = %impl.elem0.loc17_4.2 (constants.%impl.elem0.a7f881.2)] @@ -908,16 +908,16 @@ fn Works() { // CHECK:STDOUT: %ycopy.patt: @Compound4.%pattern_type (%pattern_type.ad3e89.3) = binding_pattern ycopy [concrete] // CHECK:STDOUT: %ycopy.var_patt: @Compound4.%pattern_type (%pattern_type.ad3e89.3) = var_pattern %ycopy.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %ycopy.var: ref @Compound4.%V.as_type.loc16_25.2 (%V.as_type) = var %ycopy.var_patt -// CHECK:STDOUT: %y.ref.loc18: @Compound4.%V.as_type.loc16_25.2 (%V.as_type) = name_ref y, %y +// CHECK:STDOUT: %ycopy.var: ref @Compound4.%V.as_type.loc16_25.1 (%V.as_type) = var %ycopy.var_patt +// CHECK:STDOUT: %y.ref.loc18: @Compound4.%V.as_type.loc16_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: assign %ycopy.var, %y.ref.loc18 -// CHECK:STDOUT: %.loc18_14.1: type = splice_block %.loc18_14.2 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] { -// CHECK:STDOUT: %V.ref.loc18: %L1.type = name_ref V, %V.loc16_14.1 [symbolic = %V.loc16_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc18_14: type = facet_access_type %V.ref.loc18 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc18_14.2: type = converted %V.ref.loc18, %V.as_type.loc18_14 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc18_14.1: type = splice_block %.loc18_14.2 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] { +// CHECK:STDOUT: %V.ref.loc18: %L1.type = name_ref V, %V.loc16_14.2 [symbolic = %V.loc16_14.1 (constants.%V)] +// CHECK:STDOUT: %V.as_type.loc18_14: type = facet_access_type %V.ref.loc18 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc18_14.2: type = converted %V.ref.loc18, %V.as_type.loc18_14 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %ycopy: ref @Compound4.%V.as_type.loc16_25.2 (%V.as_type) = bind_name ycopy, %ycopy.var -// CHECK:STDOUT: %ycopy.ref: ref @Compound4.%V.as_type.loc16_25.2 (%V.as_type) = name_ref ycopy, %ycopy +// CHECK:STDOUT: %ycopy: ref @Compound4.%V.as_type.loc16_25.1 (%V.as_type) = bind_name ycopy, %ycopy.var +// CHECK:STDOUT: %ycopy.ref: ref @Compound4.%V.as_type.loc16_25.1 (%V.as_type) = name_ref ycopy, %ycopy // CHECK:STDOUT: %L1.ref.loc19: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc19_8.1: @Compound4.%.loc19_8 (%.e9a411.2) = impl_witness_access constants.%L1.lookup_impl_witness.0a136b.2, element1 [symbolic = %impl.elem1.loc19_8.2 (constants.%impl.elem1.a8c6e3.2)] @@ -926,8 +926,8 @@ fn Works() { // CHECK:STDOUT: %bound_method.loc19_17: = bound_method %ycopy.ref, %specific_impl_fn.loc19_8.1 // CHECK:STDOUT: %addr.loc19: @Compound4.%ptr (%ptr.72f01d.3) = addr_of %ycopy.ref // CHECK:STDOUT: %.loc19_17: init %empty_tuple.type = call %bound_method.loc19_17(%addr.loc19) -// CHECK:STDOUT: %V.as_type.loc18_3: type = facet_access_type constants.%V [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc18_3.1: type = converted constants.%V, %V.as_type.loc18_3 [symbolic = %V.as_type.loc16_25.2 (constants.%V.as_type)] +// CHECK:STDOUT: %V.as_type.loc18_3: type = facet_access_type constants.%V [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc18_3.1: type = converted constants.%V, %V.as_type.loc18_3 [symbolic = %V.as_type.loc16_25.1 (constants.%V.as_type)] // CHECK:STDOUT: %impl.elem0.loc18_3.1: @Compound4.%.loc18_3.3 (%.0f4deb.2) = impl_witness_access constants.%Destroy.lookup_impl_witness.87177a.2, element0 [symbolic = %impl.elem0.loc18_3.2 (constants.%impl.elem0.71dfa9.2)] // CHECK:STDOUT: %bound_method.loc18_3.1: = bound_method %ycopy.var, %impl.elem0.loc18_3.1 // CHECK:STDOUT: %specific_impl_fn.loc18_3.1: = specific_impl_function %impl.elem0.loc18_3.1, @Op.1(constants.%Destroy.facet.a7da23.2) [symbolic = %specific_impl_fn.loc18_3.2 (constants.%specific_impl_fn.5803ed.2)] @@ -940,52 +940,52 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @R1(constants.%Self.04c) { // CHECK:STDOUT: %Self => constants.%Self.04c -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type.759 +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%Self.as_type.759 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ad3e89.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @S1(constants.%Self.04c) { // CHECK:STDOUT: %Self => constants.%Self.04c -// CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%Self.as_type.759 -// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.72f01d.1 +// CHECK:STDOUT: %Self.as_type.loc5_24.2 => constants.%Self.as_type.759 +// CHECK:STDOUT: %ptr.loc5_24.2 => constants.%ptr.72f01d.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.53384b.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple4(constants.%T.04c) { -// CHECK:STDOUT: %T.loc9_12.2 => constants.%T.04c -// CHECK:STDOUT: %T.as_type.loc9_23.2 => constants.%T.as_type +// CHECK:STDOUT: %T.loc9_12.1 => constants.%T.04c +// CHECK:STDOUT: %T.as_type.loc9_23.1 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ad3e89.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @R1(constants.%L1.facet.ed78cc.1) { // CHECK:STDOUT: %Self => constants.%L1.facet.ed78cc.1 -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%T.as_type +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ad3e89.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @S1(constants.%L1.facet.ed78cc.1) { // CHECK:STDOUT: %Self => constants.%L1.facet.ed78cc.1 -// CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.72f01d.2 +// CHECK:STDOUT: %Self.as_type.loc5_24.2 => constants.%T.as_type +// CHECK:STDOUT: %ptr.loc5_24.2 => constants.%ptr.72f01d.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.53384b.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound4(constants.%V) { -// CHECK:STDOUT: %V.loc16_14.2 => constants.%V -// CHECK:STDOUT: %V.as_type.loc16_25.2 => constants.%V.as_type +// CHECK:STDOUT: %V.loc16_14.1 => constants.%V +// CHECK:STDOUT: %V.as_type.loc16_25.1 => constants.%V.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ad3e89.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @R1(constants.%L1.facet.ed78cc.2) { // CHECK:STDOUT: %Self => constants.%L1.facet.ed78cc.2 -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%V.as_type +// CHECK:STDOUT: %Self.as_type.loc4_15.2 => constants.%V.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ad3e89.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @S1(constants.%L1.facet.ed78cc.2) { // CHECK:STDOUT: %Self => constants.%L1.facet.ed78cc.2 -// CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%V.as_type -// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.72f01d.3 +// CHECK:STDOUT: %Self.as_type.loc5_24.2 => constants.%V.as_type +// CHECK:STDOUT: %ptr.loc5_24.2 => constants.%ptr.72f01d.3 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.53384b.3 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1048,13 +1048,13 @@ fn Works() { // CHECK:STDOUT: %T.patt: %pattern_type.1c0 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %L2.ref: type = name_ref L2, file.%L2.decl [concrete = constants.%L2.type] -// CHECK:STDOUT: %T.loc10_12.1: %L2.type = bind_symbolic_name T, 0 [symbolic = %T.loc10_12.2 (constants.%T)] +// CHECK:STDOUT: %T.loc10_12.2: %L2.type = bind_symbolic_name T, 0 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %Compound5.decl: %Compound5.type = fn_decl @Compound5 [concrete = constants.%Compound5] { // CHECK:STDOUT: %V.patt: %pattern_type.1c0 = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %L2.ref.loc30: type = name_ref L2, file.%L2.decl [concrete = constants.%L2.type] -// CHECK:STDOUT: %V.loc30_14.1: %L2.type = bind_symbolic_name V, 0 [symbolic = %V.loc30_14.2 (constants.%V)] +// CHECK:STDOUT: %V.loc30_14.2: %L2.type = bind_symbolic_name V, 0 [symbolic = %V.loc30_14.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1064,13 +1064,13 @@ fn Works() { // CHECK:STDOUT: %self.patt: @R2.%pattern_type (%pattern_type.47b45b.1) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @R2.%pattern_type (%pattern_type.47b45b.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @R2.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @R2.%Self.as_type.loc5_15.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %L2.type = name_ref Self, @L2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref, %Self.as_type.loc5_15.1 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @R2.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @R2.%Self.as_type.loc5_15.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L2.assoc_type = assoc_entity element0, %R2.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %S2.decl: %S2.type = fn_decl @S2 [concrete = constants.%S2] { @@ -1078,14 +1078,14 @@ fn Works() { // CHECK:STDOUT: %self.param_patt: @S2.%pattern_type (%pattern_type.696b36.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %.loc6_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @S2.%ptr.loc6_24.1 (%ptr.f3e54b.1) = value_param call_param0 -// CHECK:STDOUT: %.loc6_24.1: type = splice_block %ptr.loc6_24.2 [symbolic = %ptr.loc6_24.1 (constants.%ptr.f3e54b.1)] { +// CHECK:STDOUT: %self.param: @S2.%ptr.loc6_24.2 (%ptr.f3e54b.1) = value_param call_param0 +// CHECK:STDOUT: %.loc6_24.1: type = splice_block %ptr.loc6_24.1 [symbolic = %ptr.loc6_24.2 (constants.%ptr.f3e54b.1)] { // CHECK:STDOUT: %Self.ref: %L2.type = name_ref Self, @L2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc6_24.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc6_24.2: type = converted %Self.ref, %Self.as_type.loc6_24.2 [symbolic = %Self.as_type.loc6_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc6_24.2: type = ptr_type %.loc6_24.2 [symbolic = %ptr.loc6_24.1 (constants.%ptr.f3e54b.1)] +// CHECK:STDOUT: %Self.as_type.loc6_24.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_24.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc6_24.2: type = converted %Self.ref, %Self.as_type.loc6_24.1 [symbolic = %Self.as_type.loc6_24.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %ptr.loc6_24.1: type = ptr_type %.loc6_24.2 [symbolic = %ptr.loc6_24.2 (constants.%ptr.f3e54b.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @S2.%ptr.loc6_24.1 (%ptr.f3e54b.1) = bind_name self, %self.param +// CHECK:STDOUT: %self: @S2.%ptr.loc6_24.2 (%ptr.f3e54b.1) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %L2.assoc_type = assoc_entity element1, %S2.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -1098,27 +1098,27 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @R2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.47b45b.1)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.2 [symbolic = %pattern_type (constants.%pattern_type.47b45b.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @R2.%Self.as_type.loc5_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @R2.%Self.as_type.loc5_15.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @S2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc6_24.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc6_24.1: type = ptr_type %Self.as_type.loc6_24.1 [symbolic = %ptr.loc6_24.1 (constants.%ptr.f3e54b.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc6_24.1 [symbolic = %pattern_type (constants.%pattern_type.696b36.1)] +// CHECK:STDOUT: %Self.as_type.loc6_24.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_24.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %ptr.loc6_24.2: type = ptr_type %Self.as_type.loc6_24.2 [symbolic = %ptr.loc6_24.2 (constants.%ptr.f3e54b.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc6_24.2 [symbolic = %pattern_type (constants.%pattern_type.696b36.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @S2.%ptr.loc6_24.1 (%ptr.f3e54b.1)); +// CHECK:STDOUT: fn(%self.param: @S2.%ptr.loc6_24.2 (%ptr.f3e54b.1)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Simple5(%T.loc10_12.1: %L2.type) { -// CHECK:STDOUT: %T.loc10_12.2: %L2.type = bind_symbolic_name T, 0 [symbolic = %T.loc10_12.2 (constants.%T)] +// CHECK:STDOUT: generic fn @Simple5(%T.loc10_12.2: %L2.type) { +// CHECK:STDOUT: %T.loc10_12.1: %L2.type = bind_symbolic_name T, 0 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc18_4.2: type = facet_access_type %T.loc10_12.2 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T.loc10_12.2, @L2 [symbolic = %L2.lookup_impl_witness (constants.%L2.lookup_impl_witness)] +// CHECK:STDOUT: %T.as_type.loc18_4.2: type = facet_access_type %T.loc10_12.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T.loc10_12.1, @L2 [symbolic = %L2.lookup_impl_witness (constants.%L2.lookup_impl_witness)] // CHECK:STDOUT: %L2.facet: %L2.type = facet_value %T.as_type.loc18_4.2, (%L2.lookup_impl_witness) [symbolic = %L2.facet (constants.%L2.facet)] // CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type constants.%R2.type, %L2.facet [symbolic = %.loc18_4.2 (constants.%.c42)] // CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.c42) = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] @@ -1129,14 +1129,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref.loc18: %L2.type = name_ref T, %T.loc10_12.1 [symbolic = %T.loc10_12.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc18: %L2.type = name_ref T, %T.loc10_12.2 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: %R2.ref: %L2.assoc_type = name_ref R2, @L2.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc18_4.1: type = facet_access_type %T.ref.loc18 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc18_4.1: type = converted %T.ref.loc18, %T.as_type.loc18_4.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.c42) = impl_witness_access constants.%L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc18_4.1: = specific_impl_function %impl.elem0.loc18_4.1, @R2(constants.%L2.facet) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.7ee)] // CHECK:STDOUT: %.loc18_8: init %empty_tuple.type = call %specific_impl_fn.loc18_4.1() [concrete = ] -// CHECK:STDOUT: %T.ref.loc26: %L2.type = name_ref T, %T.loc10_12.1 [symbolic = %T.loc10_12.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc26: %L2.type = name_ref T, %T.loc10_12.2 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: %S2.ref: %L2.assoc_type = name_ref S2, @L2.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_4.1: type = converted %T.ref.loc26, %T.as_type.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] @@ -1148,17 +1148,17 @@ fn Works() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Compound5(%V.loc30_14.1: %L2.type) { -// CHECK:STDOUT: %V.loc30_14.2: %L2.type = bind_symbolic_name V, 0 [symbolic = %V.loc30_14.2 (constants.%V)] +// CHECK:STDOUT: generic fn @Compound5(%V.loc30_14.2: %L2.type) { +// CHECK:STDOUT: %V.loc30_14.1: %L2.type = bind_symbolic_name V, 0 [symbolic = %V.loc30_14.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %V.ref.loc35: %L2.type = name_ref V, %V.loc30_14.1 [symbolic = %V.loc30_14.2 (constants.%V)] +// CHECK:STDOUT: %V.ref.loc35: %L2.type = name_ref V, %V.loc30_14.2 [symbolic = %V.loc30_14.1 (constants.%V)] // CHECK:STDOUT: %L2.ref.loc35: type = name_ref L2, file.%L2.decl [concrete = constants.%L2.type] // CHECK:STDOUT: %R2.ref: %L2.assoc_type = name_ref R2, @L2.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %V.ref.loc40: %L2.type = name_ref V, %V.loc30_14.1 [symbolic = %V.loc30_14.2 (constants.%V)] +// CHECK:STDOUT: %V.ref.loc40: %L2.type = name_ref V, %V.loc30_14.2 [symbolic = %V.loc30_14.1 (constants.%V)] // CHECK:STDOUT: %L2.ref.loc40: type = name_ref L2, file.%L2.decl [concrete = constants.%L2.type] // CHECK:STDOUT: %S2.ref: %L2.assoc_type = name_ref S2, @L2.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: return @@ -1167,36 +1167,36 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @R2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.47b45b.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @S2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc6_24.1 => constants.%Self.as_type -// CHECK:STDOUT: %ptr.loc6_24.1 => constants.%ptr.f3e54b.1 +// CHECK:STDOUT: %Self.as_type.loc6_24.2 => constants.%Self.as_type +// CHECK:STDOUT: %ptr.loc6_24.2 => constants.%ptr.f3e54b.1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.696b36.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple5(constants.%T) { -// CHECK:STDOUT: %T.loc10_12.2 => constants.%T +// CHECK:STDOUT: %T.loc10_12.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @R2(constants.%L2.facet) { // CHECK:STDOUT: %Self => constants.%L2.facet -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%T.as_type +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%T.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.47b45b.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @S2(constants.%L2.facet) { // CHECK:STDOUT: %Self => constants.%L2.facet -// CHECK:STDOUT: %Self.as_type.loc6_24.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc6_24.1 => constants.%ptr.f3e54b.2 +// CHECK:STDOUT: %Self.as_type.loc6_24.2 => constants.%T.as_type +// CHECK:STDOUT: %ptr.loc6_24.2 => constants.%ptr.f3e54b.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.696b36.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound5(constants.%V) { -// CHECK:STDOUT: %V.loc30_14.2 => constants.%V +// CHECK:STDOUT: %V.loc30_14.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_combine_non_instance.carbon @@ -1222,20 +1222,20 @@ fn Works() { // CHECK:STDOUT: %BitAndWith.type.f2e: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.f2e = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.type.e8c: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] -// CHECK:STDOUT: %Op.type.9a3: type = fn_type @Op.1, @BitAndWith(type) [concrete] +// CHECK:STDOUT: %Op.type.9a3: type = fn_type @Op.3, @BitAndWith(type) [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] // CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.e8c = facet_value type, (%BitAndWith.impl_witness) [concrete] // CHECK:STDOUT: %.2af: type = fn_type_with_self_type %Op.type.9a3, %BitAndWith.facet [concrete] -// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.2 [concrete] +// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %Op.ff4: %Op.type.1cc = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %A.type, %Op.ff4 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.4, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.4(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1371,17 +1371,17 @@ fn Works() { // CHECK:STDOUT: %G.ref.loc38: %A.assoc_type = name_ref G, @A.%assoc0 [concrete = constants.%assoc0.d52] // CHECK:STDOUT: %.loc38_32: %A.type = converted %.loc38_8, [concrete = ] // CHECK:STDOUT: %Op.bound.loc38: = bound_method %.loc38_6.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.4(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc38_6: = bound_method %.loc38_6.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc38: %ptr.019 = addr_of %.loc38_6.2 // CHECK:STDOUT: %no_op.loc38: init %empty_tuple.type = call %bound_method.loc38_6(%addr.loc38) // CHECK:STDOUT: %Op.bound.loc30: = bound_method %.loc30_6.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5d7, @Op.4(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc30_6: = bound_method %.loc30_6.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.019 = addr_of %.loc30_6.2 // CHECK:STDOUT: %no_op.loc30: init %empty_tuple.type = call %bound_method.loc30_6(%addr.loc30) // CHECK:STDOUT: %Op.bound.loc22: = bound_method %.loc22_5.2, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.5d7, @Op.4(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc22_5: = bound_method %.loc22_5.2, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.019 = addr_of %.loc22_5.2 // CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22_5(%addr.loc22) @@ -1414,11 +1414,11 @@ fn Works() { // CHECK:STDOUT: %BitAndWith.type.f2e: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.f2e = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.type.e8c: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] -// CHECK:STDOUT: %Op.type.9a3: type = fn_type @Op.1, @BitAndWith(type) [concrete] +// CHECK:STDOUT: %Op.type.9a3: type = fn_type @Op.2, @BitAndWith(type) [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness imports.%BitAndWith.impl_witness_table [concrete] // CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.e8c = facet_value type, (%BitAndWith.impl_witness) [concrete] // CHECK:STDOUT: %.2af: type = fn_type_with_self_type %Op.type.9a3, %BitAndWith.facet [concrete] -// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.2 [concrete] +// CHECK:STDOUT: %Op.type.1cc: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %Op.ff4: %Op.type.1cc = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %A.type, %Op.ff4 [concrete] // CHECK:STDOUT: %.e63: type = fn_type_with_self_type %G.type.c3a, %A.facet [concrete] diff --git a/toolchain/check/testdata/interface/default_fn.carbon b/toolchain/check/testdata/interface/default_fn.carbon index 3b8528da8638..57fc67ec7303 100644 --- a/toolchain/check/testdata/interface/default_fn.carbon +++ b/toolchain/check/testdata/interface/default_fn.carbon @@ -51,10 +51,10 @@ class C { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.e5b: type = fn_type_with_self_type %F.type.0b5, %I.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.2(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.1(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -81,13 +81,13 @@ class C { // CHECK:STDOUT: %self.patt: @F.loc18.%pattern_type (%pattern_type.b2f) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.loc18.%pattern_type (%pattern_type.b2f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.loc18.%Self.as_type.loc18_16.1 (%Self.as_type.390) = value_param call_param0 -// CHECK:STDOUT: %.loc18_16.1: type = splice_block %.loc18_16.2 [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)] { +// CHECK:STDOUT: %self.param: @F.loc18.%Self.as_type.loc18_16.2 (%Self.as_type.390) = value_param call_param0 +// CHECK:STDOUT: %.loc18_16.1: type = splice_block %.loc18_16.2 [symbolic = %Self.as_type.loc18_16.2 (constants.%Self.as_type.390)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.6ef)] -// CHECK:STDOUT: %Self.as_type.loc18_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)] -// CHECK:STDOUT: %.loc18_16.2: type = converted %Self.ref, %Self.as_type.loc18_16.2 [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)] +// CHECK:STDOUT: %Self.as_type.loc18_16.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_16.2 (constants.%Self.as_type.390)] +// CHECK:STDOUT: %.loc18_16.2: type = converted %Self.ref, %Self.as_type.loc18_16.1 [symbolic = %Self.as_type.loc18_16.2 (constants.%Self.as_type.390)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc18.%Self.as_type.loc18_16.1 (%Self.as_type.390) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.loc18.%Self.as_type.loc18_16.2 (%Self.as_type.390) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.a33] // CHECK:STDOUT: @@ -134,13 +134,13 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc18(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.6ef)] -// CHECK:STDOUT: %Self.as_type.loc18_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_16.1 [symbolic = %pattern_type (constants.%pattern_type.b2f)] +// CHECK:STDOUT: %Self.as_type.loc18_16.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_16.2 (constants.%Self.as_type.390)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_16.2 [symbolic = %pattern_type (constants.%pattern_type.b2f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc18_16.1 [symbolic = %require_complete (constants.%require_complete.8cb)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc18_16.2 [symbolic = %require_complete (constants.%require_complete.8cb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc18.%Self.as_type.loc18_16.1 (%Self.as_type.390)) { +// CHECK:STDOUT: fn(%self.param: @F.loc18.%Self.as_type.loc18_16.2 (%Self.as_type.390)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %c.patt: %pattern_type.c48 = binding_pattern c [concrete] @@ -161,7 +161,7 @@ class C { // CHECK:STDOUT: %.loc21: %C = bind_value %c.ref // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %bound_method.loc21(%.loc21) // CHECK:STDOUT: %Op.bound: = bound_method %c.var, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.2(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.1(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20: = bound_method %c.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc20(%addr) @@ -176,13 +176,13 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc18(constants.%Self.6ef) { // CHECK:STDOUT: %Self => constants.%Self.6ef -// CHECK:STDOUT: %Self.as_type.loc18_16.1 => constants.%Self.as_type.390 +// CHECK:STDOUT: %Self.as_type.loc18_16.2 => constants.%Self.as_type.390 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.b2f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc18(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc18_16.1 => constants.%C +// CHECK:STDOUT: %Self.as_type.loc18_16.2 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon index d9eea32ad80a..bc392aa2723a 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon @@ -111,19 +111,19 @@ interface C { // CHECK:STDOUT: %ImplicitAs.decl: %ImplicitAs.type.96f = interface_decl @ImplicitAs [concrete = constants.%ImplicitAs.generic] { // CHECK:STDOUT: %Dest.patt: %pattern_type.98f = symbolic_binding_pattern Dest, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Dest.loc3_22.1: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.2 (constants.%Dest)] +// CHECK:STDOUT: %Dest.loc3_22.2: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.1 (constants.%Dest)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @ImplicitAs(%Dest.loc3_22.1: type) { -// CHECK:STDOUT: %Dest.loc3_22.2: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.2 (constants.%Dest)] +// CHECK:STDOUT: generic interface @ImplicitAs(%Dest.loc3_22.2: type) { +// CHECK:STDOUT: %Dest.loc3_22.1: type = bind_symbolic_name Dest, 0 [symbolic = %Dest.loc3_22.1 (constants.%Dest)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_22.2)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_22.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Dest.loc3_22.2) [symbolic = %Convert.type (constants.%Convert.type)] +// CHECK:STDOUT: %Convert.type: type = fn_type @Convert, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %Convert.type (constants.%Convert.type)] // CHECK:STDOUT: %Convert: @ImplicitAs.%Convert.type (%Convert.type) = struct_value () [symbolic = %Convert (constants.%Convert)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest.loc3_22.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type)] // CHECK:STDOUT: %assoc0.loc4_35.2: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type) = assoc_entity element0, %Convert.decl [symbolic = %assoc0.loc4_35.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -134,15 +134,15 @@ interface C { // CHECK:STDOUT: %return.patt: @Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.1 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %self.param: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] +// CHECK:STDOUT: %self.param: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc4_20.2: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.1 [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -156,26 +156,26 @@ interface C { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Convert(@ImplicitAs.%Dest.loc3_22.1: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { +// CHECK:STDOUT: generic fn @Convert(@ImplicitAs.%Dest.loc3_22.2: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.07f)) { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.07f)] // CHECK:STDOUT: %Self: @Convert.%ImplicitAs.type (%ImplicitAs.type.07f) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.a93)] +// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_20.2 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.a93)] // CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> @Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @Convert.%Self.as_type.loc4_20.2 (%Self.as_type)) -> @Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { -// CHECK:STDOUT: %Dest.loc3_22.2 => constants.%Dest +// CHECK:STDOUT: %Dest.loc3_22.1 => constants.%Dest // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Convert(constants.%Dest, constants.%Self) { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.07f // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc4_20.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.a93 // CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } @@ -354,16 +354,16 @@ interface C { // CHECK:STDOUT: %return.patt: @F2.%pattern_type (%pattern_type.f9d) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F2.%pattern_type (%pattern_type.f9d) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc15_14.2: type = facet_access_type constants.%Self.541 [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc15_14.1: type = converted constants.%Self.541, %Self.as_type.loc15_14.2 [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc15_14.1: type = facet_access_type constants.%Self.541 [symbolic = %Self.as_type.loc15_14.3 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc15_14.1: type = converted constants.%Self.541, %Self.as_type.loc15_14.1 [symbolic = %Self.as_type.loc15_14.3 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc15_14.2: %J2.type = converted %.loc15_14.1, constants.%Self.541 [symbolic = %Self (constants.%Self.541)] -// CHECK:STDOUT: %Self.as_type.loc15_14.3: type = facet_access_type constants.%Self.541 [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %I2.facet.loc15_14.2: %I2.type = facet_value %Self.as_type.loc15_14.3, (constants.%I2.lookup_impl_witness.487) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet.758)] -// CHECK:STDOUT: %.loc15_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc15_14.2 [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet.758)] -// CHECK:STDOUT: %impl.elem0.loc15_14.2: type = impl_witness_access constants.%I2.lookup_impl_witness.487, element0 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.7c7)] -// CHECK:STDOUT: %U2.ref: type = name_ref U2, %impl.elem0.loc15_14.2 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.7c7)] -// CHECK:STDOUT: %return.param: ref @F2.%impl.elem0.loc15_14.1 (%impl.elem0.7c7) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F2.%impl.elem0.loc15_14.1 (%impl.elem0.7c7) = return_slot %return.param +// CHECK:STDOUT: %Self.as_type.loc15_14.2: type = facet_access_type constants.%Self.541 [symbolic = %Self.as_type.loc15_14.3 (constants.%Self.as_type)] +// CHECK:STDOUT: %I2.facet.loc15_14.1: %I2.type = facet_value %Self.as_type.loc15_14.2, (constants.%I2.lookup_impl_witness.487) [symbolic = %I2.facet.loc15_14.2 (constants.%I2.facet.758)] +// CHECK:STDOUT: %.loc15_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc15_14.1 [symbolic = %I2.facet.loc15_14.2 (constants.%I2.facet.758)] +// CHECK:STDOUT: %impl.elem0.loc15_14.1: type = impl_witness_access constants.%I2.lookup_impl_witness.487, element0 [symbolic = %impl.elem0.loc15_14.2 (constants.%impl.elem0.7c7)] +// CHECK:STDOUT: %U2.ref: type = name_ref U2, %impl.elem0.loc15_14.1 [symbolic = %impl.elem0.loc15_14.2 (constants.%impl.elem0.7c7)] +// CHECK:STDOUT: %return.param: ref @F2.%impl.elem0.loc15_14.2 (%impl.elem0.7c7) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F2.%impl.elem0.loc15_14.2 (%impl.elem0.7c7) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Self.as_type: type = facet_access_type constants.%Self.541 [symbolic = constants.%Self.as_type] // CHECK:STDOUT: %.loc15_14.1: type = converted constants.%Self.541, %Self.as_type [symbolic = constants.%Self.as_type] @@ -397,13 +397,13 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F2(@J2.%Self: %J2.type) { // CHECK:STDOUT: %Self: %J2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.541)] -// CHECK:STDOUT: %Self.as_type.loc15_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc15_14.3: type = facet_access_type %Self [symbolic = %Self.as_type.loc15_14.3 (constants.%Self.as_type)] // CHECK:STDOUT: %I2.lookup_impl_witness: = lookup_impl_witness %Self, @I2 [symbolic = %I2.lookup_impl_witness (constants.%I2.lookup_impl_witness.487)] -// CHECK:STDOUT: %I2.facet.loc15_14.1: %I2.type = facet_value %Self.as_type.loc15_14.1, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet.758)] -// CHECK:STDOUT: %impl.elem0.loc15_14.1: type = impl_witness_access %I2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.7c7)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc15_14.1 [symbolic = %pattern_type (constants.%pattern_type.f9d)] +// CHECK:STDOUT: %I2.facet.loc15_14.2: %I2.type = facet_value %Self.as_type.loc15_14.3, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc15_14.2 (constants.%I2.facet.758)] +// CHECK:STDOUT: %impl.elem0.loc15_14.2: type = impl_witness_access %I2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_14.2 (constants.%impl.elem0.7c7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc15_14.2 [symbolic = %pattern_type (constants.%pattern_type.f9d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F2.%impl.elem0.loc15_14.1 (%impl.elem0.7c7); +// CHECK:STDOUT: fn() -> @F2.%impl.elem0.loc15_14.2 (%impl.elem0.7c7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T2(constants.%Self.c7b) {} @@ -428,10 +428,10 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @F2(constants.%Self.541) { // CHECK:STDOUT: %Self => constants.%Self.541 -// CHECK:STDOUT: %Self.as_type.loc15_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc15_14.3 => constants.%Self.as_type // CHECK:STDOUT: %I2.lookup_impl_witness => constants.%I2.lookup_impl_witness.487 -// CHECK:STDOUT: %I2.facet.loc15_14.1 => constants.%I2.facet.758 -// CHECK:STDOUT: %impl.elem0.loc15_14.1 => constants.%impl.elem0.7c7 +// CHECK:STDOUT: %I2.facet.loc15_14.2 => constants.%I2.facet.758 +// CHECK:STDOUT: %impl.elem0.loc15_14.2 => constants.%impl.elem0.7c7 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f9d // CHECK:STDOUT: } // CHECK:STDOUT: @@ -480,13 +480,13 @@ interface C { // CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc6_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc6_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %A.type = name_ref Self, @A.%Self [symbolic = %Self (constants.%Self.31d)] -// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.1 [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc6_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc6_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref type = out_param call_param1 // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } @@ -523,10 +523,10 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@A.%Self: %A.type) { // CHECK:STDOUT: %Self: %A.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.31d)] -// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type (constants.%pattern_type.f98)] +// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_14.2 [symbolic = %pattern_type (constants.%pattern_type.f98)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc6_14.1 (%Self.as_type)) -> type; +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc6_14.2 (%Self.as_type)) -> type; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(@B.%Self: %B.type) { @@ -535,7 +535,7 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self.31d) { // CHECK:STDOUT: %Self => constants.%Self.31d -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc6_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.f98 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -585,26 +585,26 @@ interface C { // CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc6_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc6_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %C.type = name_ref Self, @C.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.1 [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc6_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc6_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %C.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %self.patt: @G.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @G.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G.%Self.as_type.loc8_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_14.1: type = splice_block %.loc8_14.2 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @G.%Self.as_type.loc8_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_14.1: type = splice_block %.loc8_14.2 [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %C.type = name_ref Self, @C.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc8_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc8_14.2: type = converted %Self.ref, %Self.as_type.loc8_14.2 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc8_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc8_14.2: type = converted %Self.ref, %Self.as_type.loc8_14.1 [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.%Self.as_type.loc8_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G.%Self.as_type.loc8_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %C.assoc_type = assoc_entity element1, %G.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -617,37 +617,37 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@C.%Self: %C.type) { // CHECK:STDOUT: %Self: %C.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_14.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc6_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc6_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(@C.%Self: %C.type) { // CHECK:STDOUT: %Self: %C.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc8_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_14.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc8_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_14.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc8_14.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc8_14.2 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %C.lookup_impl_witness: = lookup_impl_witness %Self, @C [symbolic = %C.lookup_impl_witness (constants.%C.lookup_impl_witness)] -// CHECK:STDOUT: %C.facet: %C.type = facet_value %Self.as_type.loc8_14.1, (%C.lookup_impl_witness) [symbolic = %C.facet (constants.%C.facet)] +// CHECK:STDOUT: %C.facet: %C.type = facet_value %Self.as_type.loc8_14.2, (%C.lookup_impl_witness) [symbolic = %C.facet (constants.%C.facet)] // CHECK:STDOUT: %.loc9_9.2: type = fn_type_with_self_type constants.%F.type, %C.facet [symbolic = %.loc9_9.2 (constants.%.54d)] // CHECK:STDOUT: %impl.elem0.loc9_9.2: @G.%.loc9_9.2 (%.54d) = impl_witness_access %C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_9.2: = specific_impl_function %impl.elem0.loc9_9.2, @F(%C.facet) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G.%Self.as_type.loc8_14.1 (%Self.as_type)) { +// CHECK:STDOUT: fn(%self.param: @G.%Self.as_type.loc8_14.2 (%Self.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref.loc9: @G.%Self.as_type.loc8_14.1 (%Self.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref.loc9: @G.%Self.as_type.loc8_14.2 (%Self.as_type) = name_ref self, %self // CHECK:STDOUT: %F.ref.loc9: %C.assoc_type = name_ref F, @C.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %Self.as_type.loc9: type = facet_access_type constants.%Self [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc9_9.1: type = converted constants.%Self, %Self.as_type.loc9 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9: type = facet_access_type constants.%Self [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9_9.1: type = converted constants.%Self, %Self.as_type.loc9 [symbolic = %Self.as_type.loc8_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: %impl.elem0.loc9_9.1: @G.%.loc9_9.2 (%.54d) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc9_9: = bound_method %self.ref.loc9, %impl.elem0.loc9_9.1 // CHECK:STDOUT: %specific_impl_fn.loc9_9.1: = specific_impl_function %impl.elem0.loc9_9.1, @F(constants.%C.facet) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc9_12: = bound_method %self.ref.loc9, %specific_impl_fn.loc9_9.1 // CHECK:STDOUT: %.loc9_12: init %empty_tuple.type = call %bound_method.loc9_12(%self.ref.loc9) -// CHECK:STDOUT: %self.ref.loc10: @G.%Self.as_type.loc8_14.1 (%Self.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref.loc10: @G.%Self.as_type.loc8_14.2 (%Self.as_type) = name_ref self, %self // CHECK:STDOUT: %impl.elem0.loc10: @G.%.loc9_9.2 (%.54d) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %F.ref.loc10: @G.%.loc9_9.2 (%.54d) = name_ref F, %impl.elem0.loc10 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_9: = bound_method %self.ref.loc10, %F.ref.loc10 @@ -660,19 +660,19 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc6_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc8_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%C.facet) { // CHECK:STDOUT: %Self => constants.%C.facet -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc6_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_assoc_const_not_binding.carbon b/toolchain/check/testdata/interface/fail_assoc_const_not_binding.carbon index c3069403cecc..436f948b12a3 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_not_binding.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_not_binding.carbon @@ -91,9 +91,9 @@ interface I { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const @T T:! type; +// CHECK:STDOUT: assoc_const @ T:! type; // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const @U U:! type; +// CHECK:STDOUT: assoc_const @ U:! type; // CHECK:STDOUT: // CHECK:STDOUT: --- fail_tuple_pattern_with_default.carbon // CHECK:STDOUT: @@ -118,9 +118,9 @@ interface I { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const @T T:! type; +// CHECK:STDOUT: assoc_const @ T:! type; // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const @U U:! type; +// CHECK:STDOUT: assoc_const @ U:! type; // CHECK:STDOUT: // CHECK:STDOUT: --- fail_var_pattern.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon index 56c34547d4c3..526d44e1defe 100644 --- a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon @@ -61,7 +61,7 @@ fn Use(T:! I) { // CHECK:STDOUT: %T.patt: %pattern_type.2b5 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %T.loc8_8.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_8.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -71,13 +71,13 @@ fn Use(T:! I) { // CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type.6de) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.%pattern_type (%pattern_type.6de) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc5_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.1 [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc5_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -89,18 +89,18 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.6de)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.2 [symbolic = %pattern_type (constants.%pattern_type.6de)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc5_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Use(%T.loc8_8.1: %I.type) { -// CHECK:STDOUT: %T.loc8_8.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.2 (constants.%T)] +// CHECK:STDOUT: generic fn @Use(%T.loc8_8.2: %I.type) { +// CHECK:STDOUT: %T.loc8_8.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc13_4.2: type = facet_access_type %T.loc8_8.2 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.2, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] +// CHECK:STDOUT: %T.as_type.loc13_4.2: type = facet_access_type %T.loc8_8.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc13_4.2, (%I.lookup_impl_witness) [symbolic = %I.facet (constants.%I.facet)] // CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type constants.%F.type, %I.facet [symbolic = %.loc13_4.2 (constants.%.ee1)] // CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.ee1) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] @@ -108,7 +108,7 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_8.1 [symbolic = %T.loc8_8.2 (constants.%T)] +// CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_8.2 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc13_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_4.1: type = converted %T.ref, %T.as_type.loc13_4.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] @@ -119,11 +119,11 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.6de // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { -// CHECK:STDOUT: %T.loc8_8.2 => constants.%T +// CHECK:STDOUT: %T.loc8_8.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_duplicate.carbon b/toolchain/check/testdata/interface/fail_duplicate.carbon index 933e74a5e7fa..ccf380e7c31a 100644 --- a/toolchain/check/testdata/interface/fail_duplicate.carbon +++ b/toolchain/check/testdata/interface/fail_duplicate.carbon @@ -157,13 +157,13 @@ interface Class { } // CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc14_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.as_type.loc14_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Interface.type.d726c6.2 = name_ref Self, @Interface.loc13.%Self [symbolic = %Self (constants.%Self.719cbb.2)] -// CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %Self.as_type.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %Self.as_type.loc14_14.1 [symbolic = %Self.as_type.loc14_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc14_14.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -175,15 +175,15 @@ interface Class { } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@Interface.loc13.%Self: %Interface.type.d726c6.2) { // CHECK:STDOUT: %Self: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.719cbb.2)] -// CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_14.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_14.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc14_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc14_14.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self.719cbb.2) { // CHECK:STDOUT: %Self => constants.%Self.719cbb.2 -// CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc14_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon b/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon index e45822e12413..e501345e5b18 100644 --- a/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon +++ b/toolchain/check/testdata/interface/fail_generic_redeclaration.carbon @@ -77,18 +77,18 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %NotGeneric.decl.loc23: %NotGeneric.type.93b = interface_decl @NotGeneric.loc23 [concrete = constants.%NotGeneric.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc23_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_22.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc23_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_22.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %Generic.decl.loc25: %Generic.type.c21 = interface_decl @Generic.loc25 [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc25_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc25_19.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc25_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc25_19.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %Generic.decl.loc33: type = interface_decl @Generic.loc33 [concrete = constants.%Generic.type.c99] {} {} // CHECK:STDOUT: %DifferentParams.decl.loc35: %DifferentParams.type.d40e5c.1 = interface_decl @DifferentParams.loc35 [concrete = constants.%DifferentParams.generic.d33670.1] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc35_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc35_27.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc35_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc35_27.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %DifferentParams.decl.loc43: %DifferentParams.type.d40e5c.2 = interface_decl @DifferentParams.loc43 [concrete = constants.%DifferentParams.generic.d33670.2] { // CHECK:STDOUT: %T.patt: %pattern_type.cb1 = symbolic_binding_pattern T, 0 [concrete] @@ -97,17 +97,17 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: %.loc43_32.2: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc43_32.3: type = converted %.loc43_32.2, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc43_27.1: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc43_27.2 (constants.%T.7a6)] +// CHECK:STDOUT: %T.loc43_27.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc43_27.1 (constants.%T.7a6)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NotGeneric.loc15; // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @NotGeneric.loc23(%T.loc23_22.1: type) { -// CHECK:STDOUT: %T.loc23_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_22.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic interface @NotGeneric.loc23(%T.loc23_22.2: type) { +// CHECK:STDOUT: %T.loc23_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_22.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.loc23_22.2)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.8cb)] +// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.loc23_22.1)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.8cb)] // CHECK:STDOUT: %Self.2: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.8cb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c08)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -119,8 +119,8 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Generic.loc25(%T.loc25_19.1: type) { -// CHECK:STDOUT: %T.loc25_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc25_19.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic interface @Generic.loc25(%T.loc25_19.2: type) { +// CHECK:STDOUT: %T.loc25_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc25_19.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -133,17 +133,17 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @DifferentParams.loc35(%T.loc35_27.1: type) { -// CHECK:STDOUT: %T.loc35_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc35_27.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic interface @DifferentParams.loc35(%T.loc35_27.2: type) { +// CHECK:STDOUT: %T.loc35_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc35_27.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @DifferentParams.loc43(%T.loc43_27.1: %empty_tuple.type) { -// CHECK:STDOUT: %T.loc43_27.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc43_27.2 (constants.%T.7a6)] +// CHECK:STDOUT: generic interface @DifferentParams.loc43(%T.loc43_27.2: %empty_tuple.type) { +// CHECK:STDOUT: %T.loc43_27.1: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc43_27.1 (constants.%T.7a6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %DifferentParams.type: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.loc43_27.2)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.12c)] +// CHECK:STDOUT: %DifferentParams.type: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.loc43_27.1)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.12c)] // CHECK:STDOUT: %Self.2: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.12c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.8d7)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -156,18 +156,18 @@ interface DifferentParams(T:! ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NotGeneric.loc23(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc23_22.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc23_22.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic.loc25(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc25_19.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc25_19.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DifferentParams.loc35(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc35_27.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc35_27.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DifferentParams.loc43(constants.%T.7a6) { -// CHECK:STDOUT: %T.loc43_27.2 => constants.%T.7a6 +// CHECK:STDOUT: %T.loc43_27.1 => constants.%T.7a6 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_member_lookup.carbon b/toolchain/check/testdata/interface/fail_member_lookup.carbon index 6ba735ad4f3e..d47de0cb5dc7 100644 --- a/toolchain/check/testdata/interface/fail_member_lookup.carbon +++ b/toolchain/check/testdata/interface/fail_member_lookup.carbon @@ -97,11 +97,11 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: %return.patt: = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref: %Different.type = name_ref U, %U.loc32_6.1 [symbolic = %U.loc32_6.2 (constants.%U)] +// CHECK:STDOUT: %U.ref: %Different.type = name_ref U, %U.loc32_6.2 [symbolic = %U.loc32_6.1 (constants.%U)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %T.ref: %Interface.assoc_type = name_ref T, @T.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %Different.ref: type = name_ref Different, file.%Different.decl [concrete = constants.%Different.type] -// CHECK:STDOUT: %U.loc32_6.1: %Different.type = bind_symbolic_name U, 0 [symbolic = %U.loc32_6.2 (constants.%U)] +// CHECK:STDOUT: %U.loc32_6.2: %Different.type = bind_symbolic_name U, 0 [symbolic = %U.loc32_6.1 (constants.%U)] // CHECK:STDOUT: %return.param: ref = out_param call_param0 // CHECK:STDOUT: %return: ref = return_slot %return.param // CHECK:STDOUT: } @@ -156,8 +156,8 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%U.loc32_6.1: %Different.type) { -// CHECK:STDOUT: %U.loc32_6.2: %Different.type = bind_symbolic_name U, 0 [symbolic = %U.loc32_6.2 (constants.%U)] +// CHECK:STDOUT: generic fn @G(%U.loc32_6.2: %Different.type) { +// CHECK:STDOUT: %U.loc32_6.1: %Different.type = bind_symbolic_name U, 0 [symbolic = %U.loc32_6.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } @@ -167,6 +167,6 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: specific @T(constants.%Self.719) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { -// CHECK:STDOUT: %U.loc32_6.2 => constants.%U +// CHECK:STDOUT: %U.loc32_6.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_modifiers.carbon b/toolchain/check/testdata/interface/fail_modifiers.carbon index efef1857ecac..0b3ab291ad2d 100644 --- a/toolchain/check/testdata/interface/fail_modifiers.carbon +++ b/toolchain/check/testdata/interface/fail_modifiers.carbon @@ -178,13 +178,13 @@ interface I { // CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc9_22.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc9_22.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %Self.as_type.loc9_22.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc9_22.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %Self.ref, %Self.as_type.loc9_22.2 [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_22.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_22.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %Self.ref, %Self.as_type.loc9_22.1 [symbolic = %Self.as_type.loc9_22.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc9_22.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc9_22.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -196,15 +196,15 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc9_22.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc9_22.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc9_22.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_22.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc9_22.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc9_22.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc9_22.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc9_22.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc9_22.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -234,13 +234,13 @@ interface I { // CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc9_24.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc9_24.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %Self.as_type.loc9_24.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc9_24.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc9_24.2: type = converted %Self.ref, %Self.as_type.loc9_24.2 [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_24.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_24.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9_24.2: type = converted %Self.ref, %Self.as_type.loc9_24.1 [symbolic = %Self.as_type.loc9_24.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc9_24.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc9_24.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -252,15 +252,15 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc9_24.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc9_24.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc9_24.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_24.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc9_24.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc9_24.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc9_24.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc9_24.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc9_24.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon b/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon index 3b15c765e4fe..b85158d96453 100644 --- a/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon +++ b/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon @@ -43,17 +43,17 @@ interface I { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_42.c68: %i32 = int_value 42 [concrete] // CHECK:STDOUT: } @@ -96,7 +96,7 @@ interface I { // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_27.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_27.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc25_27.2(%int_42) [concrete = constants.%int_42.c68] // CHECK:STDOUT: %.loc25_27.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_42.c68] 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 d4b76db122df..80be69e3f316 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 @@ -245,19 +245,19 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc14_32 (%pattern_type.a32) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc14_32 (%pattern_type.a32) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref.loc20_49: type = name_ref U, %U.loc20 [symbolic = %U.loc14_22.1 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc20_49: type = name_ref U, %U.loc20 [symbolic = %U.loc14_22.2 (constants.%U)] // CHECK:STDOUT: %self.param.loc20: @F.%C (%C) = value_param call_param0 // CHECK:STDOUT: %.loc20_24.1: type = splice_block %Self.ref.loc20 [symbolic = %C (constants.%C)] { // CHECK:STDOUT: %.loc20_24.2: type = specific_constant constants.%C, @C(constants.%Self) [symbolic = %C (constants.%C)] // CHECK:STDOUT: %Self.ref.loc20: type = name_ref Self, %.loc20_24.2 [symbolic = %C (constants.%C)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc20: @F.%C (%C) = bind_name self, %self.param.loc20 -// CHECK:STDOUT: %U.loc20: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.1 (constants.%U)] -// CHECK:STDOUT: %u.param.loc20: @F.%U.loc14_22.1 (%U) = value_param call_param1 -// CHECK:STDOUT: %U.ref.loc20_43: type = name_ref U, %U.loc20 [symbolic = %U.loc14_22.1 (constants.%U)] -// CHECK:STDOUT: %u.loc20: @F.%U.loc14_22.1 (%U) = bind_name u, %u.param.loc20 -// CHECK:STDOUT: %return.param.loc20: ref @F.%U.loc14_22.1 (%U) = out_param call_param2 -// CHECK:STDOUT: %return.loc20: ref @F.%U.loc14_22.1 (%U) = return_slot %return.param.loc20 +// CHECK:STDOUT: %U.loc20: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.2 (constants.%U)] +// CHECK:STDOUT: %u.param.loc20: @F.%U.loc14_22.2 (%U) = value_param call_param1 +// CHECK:STDOUT: %U.ref.loc20_43: type = name_ref U, %U.loc20 [symbolic = %U.loc14_22.2 (constants.%U)] +// CHECK:STDOUT: %u.loc20: @F.%U.loc14_22.2 (%U) = bind_name u, %u.param.loc20 +// CHECK:STDOUT: %return.param.loc20: ref @F.%U.loc14_22.2 (%U) = out_param call_param2 +// CHECK:STDOUT: %return.loc20: ref @F.%U.loc14_22.2 (%U) = return_slot %return.param.loc20 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -287,19 +287,19 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %return.patt: @F.%pattern_type.loc14_32 (%pattern_type.a32) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc14_32 (%pattern_type.a32) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.ref.loc14_41: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)] +// CHECK:STDOUT: %U.ref.loc14_41: type = name_ref U, %U.loc14_22.1 [symbolic = %U.loc14_22.2 (constants.%U)] // CHECK:STDOUT: %self.param.loc14: @F.%C (%C) = value_param call_param0 // CHECK:STDOUT: %.loc14_16.1: type = splice_block %Self.ref.loc14 [symbolic = %C (constants.%C)] { // CHECK:STDOUT: %.loc14_16.2: type = specific_constant constants.%C, @C(constants.%Self) [symbolic = %C (constants.%C)] // CHECK:STDOUT: %Self.ref.loc14: type = name_ref Self, %.loc14_16.2 [symbolic = %C (constants.%C)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc14: @F.%C (%C) = bind_name self, %self.param.loc14 -// CHECK:STDOUT: %U.loc14_22.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.1 (constants.%U)] -// CHECK:STDOUT: %u.param.loc14: @F.%U.loc14_22.1 (%U) = value_param call_param1 -// CHECK:STDOUT: %U.ref.loc14_35: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)] -// CHECK:STDOUT: %u.loc14: @F.%U.loc14_22.1 (%U) = bind_name u, %u.param.loc14 -// CHECK:STDOUT: %return.param.loc14: ref @F.%U.loc14_22.1 (%U) = out_param call_param2 -// CHECK:STDOUT: %return.loc14: ref @F.%U.loc14_22.1 (%U) = return_slot %return.param.loc14 +// CHECK:STDOUT: %U.loc14_22.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.2 (constants.%U)] +// CHECK:STDOUT: %u.param.loc14: @F.%U.loc14_22.2 (%U) = value_param call_param1 +// CHECK:STDOUT: %U.ref.loc14_35: type = name_ref U, %U.loc14_22.1 [symbolic = %U.loc14_22.2 (constants.%U)] +// CHECK:STDOUT: %u.loc14: @F.%U.loc14_22.2 (%U) = bind_name u, %u.param.loc14 +// CHECK:STDOUT: %return.param.loc14: ref @F.%U.loc14_22.2 (%U) = out_param call_param2 +// CHECK:STDOUT: %return.loc14: ref @F.%U.loc14_22.2 (%U) = return_slot %return.param.loc14 // CHECK:STDOUT: } // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] @@ -311,20 +311,20 @@ 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_22.2: type) { +// CHECK:STDOUT: generic fn @F(@Interface.%Self: %Interface.type, %U.loc14_22.1: 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)] // CHECK:STDOUT: %pattern_type.loc14_10: type = pattern_type %C [symbolic = %pattern_type.loc14_10 (constants.%pattern_type.68b)] -// CHECK:STDOUT: %U.loc14_22.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.1 (constants.%U)] -// CHECK:STDOUT: %pattern_type.loc14_32: type = pattern_type %U.loc14_22.1 [symbolic = %pattern_type.loc14_32 (constants.%pattern_type.a32)] +// CHECK:STDOUT: %U.loc14_22.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc14_22.2 (constants.%U)] +// CHECK:STDOUT: %pattern_type.loc14_32: type = pattern_type %U.loc14_22.2 [symbolic = %pattern_type.loc14_32 (constants.%pattern_type.a32)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc20_46: = require_complete_type %U.loc14_22.1 [symbolic = %require_complete.loc20_46 (constants.%require_complete.b54)] +// CHECK:STDOUT: %require_complete.loc20_46: = require_complete_type %U.loc14_22.2 [symbolic = %require_complete.loc20_46 (constants.%require_complete.b54)] // CHECK:STDOUT: %require_complete.loc20_22: = require_complete_type %C [symbolic = %require_complete.loc20_22 (constants.%require_complete.e44)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param.loc20: @F.%C (%C), %u.param.loc20: @F.%U.loc14_22.1 (%U)) -> @F.%U.loc14_22.1 (%U) { +// CHECK:STDOUT: fn(%self.param.loc20: @F.%C (%C), %u.param.loc20: @F.%U.loc14_22.2 (%U)) -> @F.%U.loc14_22.2 (%U) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %u.ref: @F.%U.loc14_22.1 (%U) = name_ref u, %u.loc20 +// CHECK:STDOUT: %u.ref: @F.%U.loc14_22.2 (%U) = name_ref u, %u.loc20 // CHECK:STDOUT: return %u.ref // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -340,7 +340,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; } // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %C => constants.%C // CHECK:STDOUT: %pattern_type.loc14_10 => constants.%pattern_type.68b -// CHECK:STDOUT: %U.loc14_22.1 => constants.%U +// CHECK:STDOUT: %U.loc14_22.2 => constants.%U // CHECK:STDOUT: %pattern_type.loc14_32 => constants.%pattern_type.a32 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_todo_generic_default_fn.carbon b/toolchain/check/testdata/interface/fail_todo_generic_default_fn.carbon index eff9bbb2e9b5..6dca2e63e286 100644 --- a/toolchain/check/testdata/interface/fail_todo_generic_default_fn.carbon +++ b/toolchain/check/testdata/interface/fail_todo_generic_default_fn.carbon @@ -53,7 +53,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %I.decl: %I.type.dac = interface_decl @I [concrete = constants.%I.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type.2aef59.2 = fn_decl @F.loc27 [symbolic = constants.%F.bb2dd4.2] { // CHECK:STDOUT: %self.patt: @F.loc27.%pattern_type (%pattern_type.4be) = binding_pattern self [concrete] @@ -61,33 +61,33 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %return.patt: @F.loc27.%pattern_type (%pattern_type.4be) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc27.%pattern_type (%pattern_type.4be) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc27_6: type = bind_symbolic_name T, 0 [symbolic = @I.%T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc27_6: type = bind_symbolic_name T, 0 [symbolic = @I.%T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: %.loc27_35.1: @F.loc27.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref.loc27_35: @F.loc27.%I.type (%I.type.325) = name_ref Self, %.loc27_35.1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc27_35: type = facet_access_type %Self.ref.loc27_35 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc27_35.2: type = converted %Self.ref.loc27_35, %Self.as_type.loc27_35 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc27_24.1: type = splice_block %.loc27_24.3 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc27_35: type = facet_access_type %Self.ref.loc27_35 [symbolic = %Self.as_type.loc27_24.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc27_35.2: type = converted %Self.ref.loc27_35, %Self.as_type.loc27_35 [symbolic = %Self.as_type.loc27_24.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %self.param: @F.loc27.%Self.as_type.loc27_24.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc27_24.1: type = splice_block %.loc27_24.3 [symbolic = %Self.as_type.loc27_24.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc27_24.2: @F.loc27.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref.loc27_24: @F.loc27.%I.type (%I.type.325) = name_ref Self, %.loc27_24.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc27_24.1: type = facet_access_type %Self.ref.loc27_24 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc27_24.3: type = converted %Self.ref.loc27_24, %Self.as_type.loc27_24.1 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc27_24.2: type = facet_access_type %Self.ref.loc27_24 [symbolic = %Self.as_type.loc27_24.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc27_24.3: type = converted %Self.ref.loc27_24, %Self.as_type.loc27_24.2 [symbolic = %Self.as_type.loc27_24.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %self: @F.loc27.%Self.as_type.loc27_24.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @F.loc27.%Self.as_type.loc27_24.1 (%Self.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc27.%Self.as_type.loc27_24.1 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @I(%T.loc15_13.1: type) { -// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] +// CHECK:STDOUT: generic interface @I(%T.loc15_13.2: type) { +// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_13.2)> [symbolic = %I.type (constants.%I.type.325)] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_13.1)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc17, @I(%T.loc15_13.2) [symbolic = %F.type (constants.%F.type.2aef59.1)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc17, @I(%T.loc15_13.1) [symbolic = %F.type (constants.%F.type.2aef59.1)] // CHECK:STDOUT: %F: @I.%F.type (%F.type.2aef59.1) = struct_value () [symbolic = %F (constants.%F.bb2dd4.1)] -// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc15_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type)] +// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc15_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type)] // CHECK:STDOUT: %assoc0.loc17_29.2: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc17_29.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -100,18 +100,18 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_25.1: @F.loc17.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref.loc17_25: @F.loc17.%I.type (%I.type.325) = name_ref Self, %.loc17_25.1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc17_25: type = facet_access_type %Self.ref.loc17_25 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc17_25.2: type = converted %Self.ref.loc17_25, %Self.as_type.loc17_25 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_14.1: type = splice_block %.loc17_14.3 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc17_25: type = facet_access_type %Self.ref.loc17_25 [symbolic = %Self.as_type.loc17_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc17_25.2: type = converted %Self.ref.loc17_25, %Self.as_type.loc17_25 [symbolic = %Self.as_type.loc17_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %self.param: @F.loc17.%Self.as_type.loc17_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_14.1: type = splice_block %.loc17_14.3 [symbolic = %Self.as_type.loc17_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc17_14.2: @F.loc17.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref.loc17_14: @F.loc17.%I.type (%I.type.325) = name_ref Self, %.loc17_14.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc17_14.2: type = facet_access_type %Self.ref.loc17_14 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc17_14.3: type = converted %Self.ref.loc17_14, %Self.as_type.loc17_14.2 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc17_14.1: type = facet_access_type %Self.ref.loc17_14 [symbolic = %Self.as_type.loc17_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc17_14.3: type = converted %Self.ref.loc17_14, %Self.as_type.loc17_14.1 [symbolic = %Self.as_type.loc17_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %self: @F.loc17.%Self.as_type.loc17_14.2 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @F.loc17.%Self.as_type.loc17_14.2 (%Self.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.loc17.%Self.as_type.loc17_14.2 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc17_29.1: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc17_29.2 (constants.%assoc0)] // CHECK:STDOUT: @@ -122,35 +122,35 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc17(@I.%T.loc15_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) { +// CHECK:STDOUT: generic fn @F.loc17(@I.%T.loc15_13.2: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self: @F.loc17.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc17_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc17_14.1 [symbolic = %pattern_type (constants.%pattern_type.4be)] +// CHECK:STDOUT: %Self.as_type.loc17_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc17_14.2 [symbolic = %pattern_type (constants.%pattern_type.4be)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type)) -> @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type); +// CHECK:STDOUT: fn(%self.param: @F.loc17.%Self.as_type.loc17_14.2 (%Self.as_type)) -> @F.loc17.%Self.as_type.loc17_14.2 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc27(%T.loc27_6: type, @I.%Self.1: @I.%I.type (%I.type.325)) { // CHECK:STDOUT: %T.loc27_24: type = bind_symbolic_name T, 0 [symbolic = %T.loc27_24 (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc27_24)> [symbolic = %I.type (constants.%I.type.325)] // CHECK:STDOUT: %Self: @F.loc27.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc27_24.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc27_24.2 [symbolic = %pattern_type (constants.%pattern_type.4be)] +// CHECK:STDOUT: %Self.as_type.loc27_24.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc27_24.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc27_24.1 [symbolic = %pattern_type (constants.%pattern_type.4be)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc27_24.2 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc27_24.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type)) -> @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) { +// CHECK:STDOUT: fn(%self.param: @F.loc27.%Self.as_type.loc27_24.1 (%Self.as_type)) -> @F.loc27.%Self.as_type.loc27_24.1 (%Self.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref: @F.loc27.%Self.as_type.loc27_24.1 (%Self.as_type) = name_ref self, %self // CHECK:STDOUT: return %self.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { -// CHECK:STDOUT: %T.loc15_13.2 => constants.%T +// CHECK:STDOUT: %T.loc15_13.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.type => constants.%I.type.325 @@ -165,7 +165,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc17_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc17_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4be // CHECK:STDOUT: } // CHECK:STDOUT: @@ -173,7 +173,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; } // CHECK:STDOUT: %T.loc27_24 => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.325 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc27_24.2 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc27_24.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4be // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/generic.carbon b/toolchain/check/testdata/interface/generic.carbon index 032f1232923c..59f05af5bc47 100644 --- a/toolchain/check/testdata/interface/generic.carbon +++ b/toolchain/check/testdata/interface/generic.carbon @@ -125,22 +125,22 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %Simple.decl: %Simple.type.3b3 = interface_decl @Simple [concrete = constants.%Simple.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc4_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %WithAssocFn.decl: %WithAssocFn.type.509 = interface_decl @WithAssocFn [concrete = constants.%WithAssocFn.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_23.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_23.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc8_23.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_23.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %WithImplicitArgs.decl: %WithImplicitArgs.type = interface_decl @WithImplicitArgs [concrete = constants.%WithImplicitArgs.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %N.patt: @WithImplicitArgs.%pattern_type (%pattern_type.7dc) = symbolic_binding_pattern N, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc22_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_28.2 (constants.%T.8b3)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc22_28.1 [symbolic = %T.loc22_28.2 (constants.%T.8b3)] -// CHECK:STDOUT: %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3) = bind_symbolic_name N, 1 [symbolic = %N.loc22_38.2 (constants.%N)] +// CHECK:STDOUT: %T.loc22_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_28.1 (constants.%T.8b3)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc22_28.2 [symbolic = %T.loc22_28.1 (constants.%T.8b3)] +// CHECK:STDOUT: %N.loc22_38.2: @WithImplicitArgs.%T.loc22_28.1 (%T.8b3) = bind_symbolic_name N, 1 [symbolic = %N.loc22_38.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: %Receive.decl: %Receive.type = fn_decl @Receive [concrete = constants.%Receive] { // CHECK:STDOUT: %T.patt: %pattern_type.353 = symbolic_binding_pattern T, 0 [concrete] @@ -150,7 +150,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.51f] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc24_12.1: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc24_12.2 (constants.%T.692)] +// CHECK:STDOUT: %T.loc24_12.2: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc24_12.1 (constants.%T.692)] // CHECK:STDOUT: } // CHECK:STDOUT: %Pass.decl: %Pass.type = fn_decl @Pass [concrete = constants.%Pass] { // CHECK:STDOUT: %T.patt: %pattern_type.353 = symbolic_binding_pattern T, 0 [concrete] @@ -160,15 +160,15 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(constants.%C)> [concrete = constants.%Simple.type.51f] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc25_9.1: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc25_9.2 (constants.%T.692)] +// CHECK:STDOUT: %T.loc25_9.2: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc25_9.1 (constants.%T.692)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.8b3)] +// CHECK:STDOUT: generic interface @Simple(%T.loc4_18.2: type) { +// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_18.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(%T.loc4_18.2)> [symbolic = %Simple.type (constants.%Simple.type.d08)] +// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(%T.loc4_18.1)> [symbolic = %Simple.type (constants.%Simple.type.d08)] // CHECK:STDOUT: %Self.2: @Simple.%Simple.type (%Simple.type.d08) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.faf)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -180,15 +180,15 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.8b3)] +// CHECK:STDOUT: generic interface @WithAssocFn(%T.loc8_23.2: type) { +// CHECK:STDOUT: %T.loc8_23.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_23.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_23.2)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.ce6)] +// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_23.1)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.ce6)] // CHECK:STDOUT: %Self.2: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.088)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc10, @WithAssocFn(%T.loc8_23.2) [symbolic = %F.type (constants.%F.type.1af)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc10, @WithAssocFn(%T.loc8_23.1) [symbolic = %F.type (constants.%F.type.1af)] // CHECK:STDOUT: %F: @WithAssocFn.%F.type (%F.type.1af) = struct_value () [symbolic = %F (constants.%F.b7d)] -// CHECK:STDOUT: %WithAssocFn.assoc_type: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%T.loc8_23.2) [symbolic = %WithAssocFn.assoc_type (constants.%WithAssocFn.assoc_type.b2f)] +// CHECK:STDOUT: %WithAssocFn.assoc_type: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%T.loc8_23.1) [symbolic = %WithAssocFn.assoc_type (constants.%WithAssocFn.assoc_type.b2f)] // CHECK:STDOUT: %assoc0.loc10_14.2: @WithAssocFn.%WithAssocFn.assoc_type (%WithAssocFn.assoc_type.b2f) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.fc5)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -211,10 +211,10 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @WithImplicitArgs(%T.loc22_28.1: type, %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3)) { -// CHECK:STDOUT: %T.loc22_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_28.2 (constants.%T.8b3)] -// CHECK:STDOUT: %N.loc22_38.2: @WithImplicitArgs.%T.loc22_28.2 (%T.8b3) = bind_symbolic_name N, 1 [symbolic = %N.loc22_38.2 (constants.%N)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc22_28.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic interface @WithImplicitArgs(%T.loc22_28.2: type, %N.loc22_38.2: @WithImplicitArgs.%T.loc22_28.1 (%T.8b3)) { +// CHECK:STDOUT: %T.loc22_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc22_28.1 (constants.%T.8b3)] +// CHECK:STDOUT: %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.1 (%T.8b3) = bind_symbolic_name N, 1 [symbolic = %N.loc22_38.1 (constants.%N)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc22_28.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -278,7 +278,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: .X = // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc10(@WithAssocFn.%T.loc8_23.1: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6)) { +// CHECK:STDOUT: generic fn @F.loc10(@WithAssocFn.%T.loc8_23.2: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6)) { // CHECK:STDOUT: fn() -> %return.param: %X; // CHECK:STDOUT: } // CHECK:STDOUT: @@ -290,8 +290,8 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: return %.loc17_16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Receive(%T.loc24_12.1: %Simple.type.51f) { -// CHECK:STDOUT: %T.loc24_12.2: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc24_12.2 (constants.%T.692)] +// CHECK:STDOUT: generic fn @Receive(%T.loc24_12.2: %Simple.type.51f) { +// CHECK:STDOUT: %T.loc24_12.1: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc24_12.1 (constants.%T.692)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -301,16 +301,16 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Pass(%T.loc25_9.1: %Simple.type.51f) { -// CHECK:STDOUT: %T.loc25_9.2: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc25_9.2 (constants.%T.692)] +// CHECK:STDOUT: generic fn @Pass(%T.loc25_9.2: %Simple.type.51f) { +// CHECK:STDOUT: %T.loc25_9.1: %Simple.type.51f = bind_symbolic_name T, 0 [symbolic = %T.loc25_9.1 (constants.%T.692)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Receive.specific_fn.loc26_3.2: = specific_function constants.%Receive, @Receive(%T.loc25_9.2) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] +// CHECK:STDOUT: %Receive.specific_fn.loc26_3.2: = specific_function constants.%Receive, @Receive(%T.loc25_9.1) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Receive.ref: %Receive.type = name_ref Receive, file.%Receive.decl [concrete = constants.%Receive] -// CHECK:STDOUT: %T.ref: %Simple.type.51f = name_ref T, %T.loc25_9.1 [symbolic = %T.loc25_9.2 (constants.%T.692)] +// CHECK:STDOUT: %T.ref: %Simple.type.51f = name_ref T, %T.loc25_9.2 [symbolic = %T.loc25_9.1 (constants.%T.692)] // CHECK:STDOUT: %Receive.specific_fn.loc26_3.1: = specific_function %Receive.ref, @Receive(constants.%T.692) [symbolic = %Receive.specific_fn.loc26_3.2 (constants.%Receive.specific_fn)] // CHECK:STDOUT: %Receive.call: init %empty_tuple.type = call %Receive.specific_fn.loc26_3.1() // CHECK:STDOUT: return @@ -318,17 +318,17 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc4_18.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc4_18.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc8_23.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc8_23.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc10(constants.%T.8b3, constants.%Self.088) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple(constants.%C) { -// CHECK:STDOUT: %T.loc4_18.2 => constants.%C +// CHECK:STDOUT: %T.loc4_18.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Simple.type => constants.%Simple.type.51f @@ -336,7 +336,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithAssocFn(constants.%C) { -// CHECK:STDOUT: %T.loc8_23.2 => constants.%C +// CHECK:STDOUT: %T.loc8_23.1 => constants.%C // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.683 @@ -350,19 +350,19 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: specific @F.loc10(constants.%C, constants.%WithAssocFn.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @WithImplicitArgs(constants.%T.8b3, constants.%N) { -// CHECK:STDOUT: %T.loc22_28.2 => constants.%T.8b3 -// CHECK:STDOUT: %N.loc22_38.2 => constants.%N +// CHECK:STDOUT: %T.loc22_28.1 => constants.%T.8b3 +// CHECK:STDOUT: %N.loc22_38.1 => constants.%N // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Receive(constants.%T.692) { -// CHECK:STDOUT: %T.loc24_12.2 => constants.%T.692 +// CHECK:STDOUT: %T.loc24_12.1 => constants.%T.692 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Pass(constants.%T.692) { -// CHECK:STDOUT: %T.loc25_9.2 => constants.%T.692 +// CHECK:STDOUT: %T.loc25_9.1 => constants.%T.692 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatched_args.carbon @@ -401,7 +401,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %Generic.decl: %Generic.type.c21 = interface_decl @Generic [concrete = constants.%Generic.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} @@ -413,7 +413,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%A)> [concrete = constants.%Generic.type.c7c] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_6.1: %Generic.type.c7c = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.a53)] +// CHECK:STDOUT: %T.loc9_6.2: %Generic.type.c7c = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.a53)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.f4a = symbolic_binding_pattern T, 0 [concrete] @@ -423,15 +423,15 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(constants.%B)> [concrete = constants.%Generic.type.4ce] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc10_6.1: %Generic.type.4ce = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.2 (constants.%T.bae)] +// CHECK:STDOUT: %T.loc10_6.2: %Generic.type.4ce = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.1 (constants.%T.bae)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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.8b3)] +// CHECK:STDOUT: generic interface @Generic(%T.loc4_19.2: type) { +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc4_19.2)> [symbolic = %Generic.type (constants.%Generic.type.91c)] +// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc4_19.1)> [symbolic = %Generic.type (constants.%Generic.type.91c)] // CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.91c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -461,42 +461,42 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: .Self = constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc9_6.1: %Generic.type.c7c) { -// CHECK:STDOUT: %T.loc9_6.2: %Generic.type.c7c = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.2 (constants.%T.a53)] +// CHECK:STDOUT: generic fn @F(%T.loc9_6.2: %Generic.type.c7c) { +// CHECK:STDOUT: %T.loc9_6.1: %Generic.type.c7c = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.a53)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc10_6.1: %Generic.type.4ce) { -// CHECK:STDOUT: %T.loc10_6.2: %Generic.type.4ce = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.2 (constants.%T.bae)] +// CHECK:STDOUT: generic fn @G(%T.loc10_6.2: %Generic.type.4ce) { +// CHECK:STDOUT: %T.loc10_6.1: %Generic.type.4ce = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.1 (constants.%T.bae)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %T.ref: %Generic.type.4ce = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T.bae)] +// CHECK:STDOUT: %T.ref: %Generic.type.4ce = name_ref T, %T.loc10_6.2 [symbolic = %T.loc10_6.1 (constants.%T.bae)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc4_19.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%A) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%A +// CHECK:STDOUT: %T.loc4_19.1 => constants.%A // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.a53) { -// CHECK:STDOUT: %T.loc9_6.2 => constants.%T.a53 +// CHECK:STDOUT: %T.loc9_6.1 => constants.%T.a53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%B) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%B +// CHECK:STDOUT: %T.loc4_19.1 => constants.%B // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T.bae) { -// CHECK:STDOUT: %T.loc10_6.2 => constants.%T.bae +// CHECK:STDOUT: %T.loc10_6.1 => constants.%T.bae // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/generic_binding_after_assoc_const.carbon b/toolchain/check/testdata/interface/generic_binding_after_assoc_const.carbon index 5a97a2bcab10..dd20c3aa3b4a 100644 --- a/toolchain/check/testdata/interface/generic_binding_after_assoc_const.carbon +++ b/toolchain/check/testdata/interface/generic_binding_after_assoc_const.carbon @@ -49,7 +49,7 @@ interface I { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc16_8.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc16_8.1 (constants.%T)] +// CHECK:STDOUT: %T.loc16_8.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc16_8.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %U: type = assoc_const_decl @U [concrete] { @@ -58,7 +58,7 @@ interface I { // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc20_8.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc20_8.1 (constants.%T)] +// CHECK:STDOUT: %T.loc20_8.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc20_8.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %assoc2: %I.assoc_type = assoc_entity element2, %G.decl [concrete = constants.%assoc2] // CHECK:STDOUT: @@ -74,25 +74,25 @@ interface I { // CHECK:STDOUT: assoc_const U:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@I.%Self: %I.type, %T.loc16_8.2: type) { -// CHECK:STDOUT: %T.loc16_8.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc16_8.1 (constants.%T)] +// CHECK:STDOUT: generic fn @F(@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(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(@I.%Self: %I.type, %T.loc20_8.2: type) { -// CHECK:STDOUT: %T.loc20_8.1: type = bind_symbolic_name T, 1 [symbolic = %T.loc20_8.1 (constants.%T)] +// CHECK:STDOUT: generic fn @G(@I.%Self: %I.type, %T.loc20_8.1: type) { +// CHECK:STDOUT: %T.loc20_8.2: type = bind_symbolic_name T, 1 [symbolic = %T.loc20_8.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self, constants.%T) { -// CHECK:STDOUT: %T.loc16_8.1 => constants.%T +// CHECK:STDOUT: %T.loc16_8.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%Self, constants.%T) { -// CHECK:STDOUT: %T.loc20_8.1 => constants.%T +// CHECK:STDOUT: %T.loc20_8.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/generic_import.carbon b/toolchain/check/testdata/interface/generic_import.carbon index fefa7a6b74bf..0377d1419c60 100644 --- a/toolchain/check/testdata/interface/generic_import.carbon +++ b/toolchain/check/testdata/interface/generic_import.carbon @@ -53,19 +53,19 @@ impl C as AddWith(C) { // CHECK:STDOUT: %AddWith.decl: %AddWith.type.b35 = interface_decl @AddWith [concrete = constants.%AddWith.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @AddWith(%T.loc4_19.2: type) { +// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_19.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc4_19.2)> [symbolic = %AddWith.type (constants.%AddWith.type.bc7)] +// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc4_19.1)> [symbolic = %AddWith.type (constants.%AddWith.type.bc7)] // CHECK:STDOUT: %Self.2: @AddWith.%AddWith.type (%AddWith.type.bc7) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @AddWith(%T.loc4_19.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @AddWith(%T.loc4_19.1) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @AddWith.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] -// CHECK:STDOUT: %AddWith.assoc_type: type = assoc_entity_type @AddWith, @AddWith(%T.loc4_19.2) [symbolic = %AddWith.assoc_type (constants.%AddWith.assoc_type)] +// CHECK:STDOUT: %AddWith.assoc_type: type = assoc_entity_type @AddWith, @AddWith(%T.loc4_19.1) [symbolic = %AddWith.assoc_type (constants.%AddWith.assoc_type)] // CHECK:STDOUT: %assoc0.loc5_9.2: @AddWith.%AddWith.assoc_type (%AddWith.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -80,12 +80,12 @@ impl C as AddWith(C) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@AddWith.%T.loc4_19.1: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.bc7)) { +// CHECK:STDOUT: generic fn @F(@AddWith.%T.loc4_19.2: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.bc7)) { // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%T) { -// CHECK:STDOUT: %T.loc4_19.2 => constants.%T +// CHECK:STDOUT: %T.loc4_19.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T, constants.%Self) {} diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index 2211b76d05a5..8baacf67f5e9 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -136,21 +136,21 @@ fn CallIndirect() { // CHECK:STDOUT: %F.specific_fn: = specific_function %F.ce9, @F.loc16(%Z) [concrete] // CHECK:STDOUT: %Z.val: %Z = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.1 [concrete] -// CHECK:STDOUT: %Op.type.bc9: type = fn_type @Op.2, @Destroy.impl(%T.8b3) [symbolic] +// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.2 [concrete] +// CHECK:STDOUT: %Op.type.bc9: type = fn_type @Op.1, @Destroy.impl(%T.8b3) [symbolic] // CHECK:STDOUT: %Op.46f: %Op.type.bc9 = struct_value () [symbolic] -// CHECK:STDOUT: %Op.type.f73: type = fn_type @Op.2, @Destroy.impl(%Z) [concrete] +// CHECK:STDOUT: %Op.type.f73: type = fn_type @Op.1, @Destroy.impl(%Z) [concrete] // CHECK:STDOUT: %Op.6e3: %Op.type.f73 = struct_value () [concrete] // CHECK:STDOUT: %ptr.fb6: type = ptr_type %Z [concrete] -// CHECK:STDOUT: %Op.specific_fn.3b7: = specific_function %Op.6e3, @Op.2(%Z) [concrete] +// CHECK:STDOUT: %Op.specific_fn.3b7: = specific_function %Op.6e3, @Op.1(%Z) [concrete] // CHECK:STDOUT: %Destroy.impl_witness.955: = impl_witness imports.%Destroy.impl_witness_table, @Destroy.impl(%tuple.type.f6b) [concrete] -// CHECK:STDOUT: %Op.type.495: type = fn_type @Op.2, @Destroy.impl(%tuple.type.f6b) [concrete] +// CHECK:STDOUT: %Op.type.495: type = fn_type @Op.1, @Destroy.impl(%tuple.type.f6b) [concrete] // CHECK:STDOUT: %Op.51a: %Op.type.495 = struct_value () [concrete] // CHECK:STDOUT: %ptr.959: type = ptr_type %tuple.type.f6b [concrete] // CHECK:STDOUT: %complete_type.456: = complete_type_witness %ptr.959 [concrete] // CHECK:STDOUT: %Destroy.facet.1f2: %Destroy.type = facet_value %tuple.type.f6b, (%Destroy.impl_witness.955) [concrete] // CHECK:STDOUT: %.a86: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.1f2 [concrete] -// CHECK:STDOUT: %Op.specific_fn.8e5: = specific_function %Op.51a, @Op.2(%tuple.type.f6b) [concrete] +// CHECK:STDOUT: %Op.specific_fn.8e5: = specific_function %Op.51a, @Op.1(%tuple.type.f6b) [concrete] // CHECK:STDOUT: %T.9c2: %A.type.91f = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.817: type = pattern_type %A.type.91f [concrete] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] @@ -170,7 +170,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Destroy.facet.1a6: %Destroy.type = facet_value %tuple.type.e28, (%Destroy.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %.efa: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet.1a6 [symbolic] // CHECK:STDOUT: %impl.elem0.305: %.efa = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.52a: = specific_impl_function %impl.elem0.305, @Op.1(%Destroy.facet.1a6) [symbolic] +// CHECK:STDOUT: %specific_impl_fn.52a: = specific_impl_function %impl.elem0.305, @Op.2(%Destroy.facet.1a6) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%A.facet.552) [concrete] @@ -204,7 +204,7 @@ fn CallIndirect() { // CHECK:STDOUT: %A.decl: %A.type.495 = interface_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc5_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %Y.decl: type = class_decl @Y [concrete = constants.%Y] {} {} @@ -226,20 +226,20 @@ fn CallIndirect() { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.91f] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc25_16.1: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc25_16.2 (constants.%T.9c2)] +// CHECK:STDOUT: %T.loc25_16.2: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc25_16.1 (constants.%T.9c2)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @A(%T.loc5_13.1: type) { -// CHECK:STDOUT: %T.loc5_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic interface @A(%T.loc5_13.2: type) { +// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.2)> [symbolic = %A.type (constants.%A.type.75a)] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.1)> [symbolic = %A.type (constants.%A.type.75a)] // CHECK:STDOUT: %Self.2: @A.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.753)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc6, @A(%T.loc5_13.2) [symbolic = %F.type (constants.%F.type.17a)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc6, @A(%T.loc5_13.1) [symbolic = %F.type (constants.%F.type.17a)] // CHECK:STDOUT: %F: @A.%F.type (%F.type.17a) = struct_value () [symbolic = %F (constants.%F.0d8)] -// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.2) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3)] +// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.1) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3)] // CHECK:STDOUT: %assoc0.loc6_39.2: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.fcb)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -251,18 +251,18 @@ fn CallIndirect() { // CHECK:STDOUT: %return.patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.1 [symbolic = %T (constants.%T.8b3)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.8b3)] // CHECK:STDOUT: %.loc6_31: @F.loc6.%A.type (%A.type.75a) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.753)] // CHECK:STDOUT: %Self.ref: @F.loc6.%A.type (%A.type.75a) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.753)] -// CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] +// CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.1 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] // CHECK:STDOUT: %.loc6_38.1: @F.loc6.%tuple.type.loc6_38.1 (%tuple.type.e59) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37) -// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)] -// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)] +// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_38.2 (constants.%Self.as_type.81d)] +// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type.loc6_38.1 [symbolic = %Self.as_type.loc6_38.2 (constants.%Self.as_type.81d)] // CHECK:STDOUT: %.loc6_38.3: type = converted %.loc6_38.1, constants.%tuple.type.bd2 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)] -// CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] -// CHECK:STDOUT: %u.param: @F.loc6.%U.loc6_8.1 (%U.2cb) = value_param call_param0 -// CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] -// CHECK:STDOUT: %u: @F.loc6.%U.loc6_8.1 (%U.2cb) = bind_name u, %u.param +// CHECK:STDOUT: %U.loc6_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] +// CHECK:STDOUT: %u.param: @F.loc6.%U.loc6_8.2 (%U.2cb) = value_param call_param0 +// CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_8.1 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] +// CHECK:STDOUT: %u: @F.loc6.%U.loc6_8.2 (%U.2cb) = bind_name u, %u.param // CHECK:STDOUT: %return.param: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = return_slot %return.param // CHECK:STDOUT: } @@ -331,18 +331,18 @@ fn CallIndirect() { // CHECK:STDOUT: .Self = constants.%Z // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc6(@A.%T.loc5_13.1: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.2: type) { -// CHECK:STDOUT: %U.loc6_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] -// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.20f)] +// CHECK:STDOUT: generic fn @F.loc6(@A.%T.loc5_13.2: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.1: type) { +// CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] +// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.2 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.20f)] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.8b3)] // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.75a)] // CHECK:STDOUT: %Self: @F.loc6.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.753)] // CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.e59)] -// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)] -// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_8.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)] +// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.2 (constants.%Self.as_type.81d)] +// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.2, %U.loc6_8.2) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)] // CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.44c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @F.loc6.%U.loc6_8.1 (%U.2cb)) -> @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2); +// CHECK:STDOUT: fn(%u.param: @F.loc6.%U.loc6_8.2 (%U.2cb)) -> @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc16(%U.loc16_8.2: type) { @@ -401,24 +401,24 @@ fn CallIndirect() { // CHECK:STDOUT: %F.call: init %tuple.type.f6b = call %specific_fn(%.loc22_21.6) to %.loc22_22.1 // CHECK:STDOUT: %.loc22_22.2: ref %tuple.type.f6b = temporary %.loc22_22.1, %F.call // CHECK:STDOUT: %Op.bound.loc22_21: = bound_method %.loc22_21.2, constants.%Op.6e3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.6e3, @Op.2(constants.%Z) [concrete = constants.%Op.specific_fn.3b7] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.6e3, @Op.1(constants.%Z) [concrete = constants.%Op.specific_fn.3b7] // CHECK:STDOUT: %bound_method.loc22_21: = bound_method %.loc22_21.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc22_21: %ptr.fb6 = addr_of %.loc22_21.2 // CHECK:STDOUT: %no_op.loc22_21: init %empty_tuple.type = call %bound_method.loc22_21(%addr.loc22_21) // CHECK:STDOUT: %Op.bound.loc22_22: = bound_method %.loc22_22.1, constants.%Op.51a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.51a, @Op.2(constants.%tuple.type.f6b) [concrete = constants.%Op.specific_fn.8e5] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.51a, @Op.1(constants.%tuple.type.f6b) [concrete = constants.%Op.specific_fn.8e5] // CHECK:STDOUT: %bound_method.loc22_22: = bound_method %.loc22_22.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc22_22: %ptr.959 = addr_of %.loc22_22.1 // CHECK:STDOUT: %no_op.loc22_22: init %empty_tuple.type = call %bound_method.loc22_22(%addr.loc22_22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGeneric(%T.loc25_16.1: %A.type.91f) { -// CHECK:STDOUT: %T.loc25_16.2: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc25_16.2 (constants.%T.9c2)] +// CHECK:STDOUT: generic fn @CallGeneric(%T.loc25_16.2: %A.type.91f) { +// CHECK:STDOUT: %T.loc25_16.1: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc25_16.1 (constants.%T.9c2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc26_4.2: type = facet_access_type %T.loc25_16.2 [symbolic = %T.as_type.loc26_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc25_16.2, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] +// CHECK:STDOUT: %T.as_type.loc26_4.2: type = facet_access_type %T.loc25_16.1 [symbolic = %T.as_type.loc26_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc25_16.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] // CHECK:STDOUT: %A.facet: %A.type.91f = facet_value %T.as_type.loc26_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.11f)] // CHECK:STDOUT: %.loc26_4.3: type = fn_type_with_self_type constants.%F.type.13d, %A.facet [symbolic = %.loc26_4.3 (constants.%.ffa)] // CHECK:STDOUT: %impl.elem0.loc26_4.2: @CallGeneric.%.loc26_4.3 (%.ffa) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.0e5)] @@ -429,13 +429,13 @@ fn CallIndirect() { // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.1a6)] // CHECK:STDOUT: %.loc26_12.5: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc26_12.5 (constants.%.efa)] // CHECK:STDOUT: %impl.elem0.loc26_12.2: @CallGeneric.%.loc26_12.5 (%.efa) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_12.2 (constants.%impl.elem0.305)] -// CHECK:STDOUT: %specific_impl_fn.loc26_12.2: = specific_impl_function %impl.elem0.loc26_12.2, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc26_12.2 (constants.%specific_impl_fn.52a)] +// CHECK:STDOUT: %specific_impl_fn.loc26_12.2: = specific_impl_function %impl.elem0.loc26_12.2, @Op.2(%Destroy.facet) [symbolic = %specific_impl_fn.loc26_12.2 (constants.%specific_impl_fn.52a)] // CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.103)] // CHECK:STDOUT: %require_complete.loc26_12.2: = require_complete_type %ptr [symbolic = %require_complete.loc26_12.2 (constants.%require_complete.8d3)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %A.type.91f = name_ref T, %T.loc25_16.1 [symbolic = %T.loc25_16.2 (constants.%T.9c2)] +// CHECK:STDOUT: %T.ref: %A.type.91f = name_ref T, %T.loc25_16.2 [symbolic = %T.loc25_16.1 (constants.%T.9c2)] // CHECK:STDOUT: %.loc26_4.1: %A.assoc_type.296 = specific_constant @A.%assoc0.loc6_39.1, @A(constants.%X) [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %F.ref: %A.assoc_type.296 = name_ref F, %.loc26_4.1 [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %T.as_type.loc26_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc26_4.2 (constants.%T.as_type)] @@ -453,13 +453,13 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc26_12.2: init @CallGeneric.%tuple.type (%tuple.type.e28) = call %specific_impl_fn.loc26_4.1(%.loc26_11.6) to %.loc26_12.1 // CHECK:STDOUT: %.loc26_12.3: ref @CallGeneric.%tuple.type (%tuple.type.e28) = temporary %.loc26_12.1, %.loc26_12.2 // CHECK:STDOUT: %Op.bound: = bound_method %.loc26_11.2, constants.%Op.6e3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.6e3, @Op.2(constants.%Z) [concrete = constants.%Op.specific_fn.3b7] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.6e3, @Op.1(constants.%Z) [concrete = constants.%Op.specific_fn.3b7] // CHECK:STDOUT: %bound_method.loc26_11: = bound_method %.loc26_11.2, %Op.specific_fn // CHECK:STDOUT: %addr.loc26_11: %ptr.fb6 = addr_of %.loc26_11.2 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc26_11(%addr.loc26_11) // CHECK:STDOUT: %impl.elem0.loc26_12.1: @CallGeneric.%.loc26_12.5 (%.efa) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_12.2 (constants.%impl.elem0.305)] // CHECK:STDOUT: %bound_method.loc26_12.1: = bound_method %.loc26_12.1, %impl.elem0.loc26_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc26_12.1: = specific_impl_function %impl.elem0.loc26_12.1, @Op.1(constants.%Destroy.facet.1a6) [symbolic = %specific_impl_fn.loc26_12.2 (constants.%specific_impl_fn.52a)] +// CHECK:STDOUT: %specific_impl_fn.loc26_12.1: = specific_impl_function %impl.elem0.loc26_12.1, @Op.2(constants.%Destroy.facet.1a6) [symbolic = %specific_impl_fn.loc26_12.2 (constants.%specific_impl_fn.52a)] // CHECK:STDOUT: %bound_method.loc26_12.2: = bound_method %.loc26_12.1, %specific_impl_fn.loc26_12.1 // CHECK:STDOUT: %addr.loc26_12: @CallGeneric.%ptr (%ptr.103) = addr_of %.loc26_12.1 // CHECK:STDOUT: %.loc26_12.4: init %empty_tuple.type = call %bound_method.loc26_12.2(%addr.loc26_12) @@ -479,23 +479,23 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc5_13.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%T.8b3, constants.%Self.753, constants.%U.2cb) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.2cb +// CHECK:STDOUT: %U.loc6_8.2 => constants.%U.2cb // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.20f // CHECK:STDOUT: %T => constants.%T.8b3 // CHECK:STDOUT: %A.type => constants.%A.type.75a // CHECK:STDOUT: %Self => constants.%Self.753 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.e59 -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Self.as_type.81d +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%Self.as_type.81d // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.bd2 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.44c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%X) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%X +// CHECK:STDOUT: %T.loc5_13.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A.type => constants.%A.type.91f @@ -514,13 +514,13 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.552, constants.%U.8b3) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.8b3 +// CHECK:STDOUT: %U.loc6_8.2 => constants.%U.8b3 // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.7dc // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.91f // CHECK:STDOUT: %Self => constants.%A.facet.552 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.a0c -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Y +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.765 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.340 // CHECK:STDOUT: } @@ -538,23 +538,23 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.9c2) { -// CHECK:STDOUT: %T.loc25_16.2 => constants.%T.9c2 +// CHECK:STDOUT: %T.loc25_16.1 => constants.%T.9c2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.11f, constants.%Z) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z +// CHECK:STDOUT: %U.loc6_8.2 => constants.%Z // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.91f // CHECK:STDOUT: %Self => constants.%A.facet.11f // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.a0c -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%T.as_type +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%T.as_type // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.e28 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.f25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%A.facet.552) { -// CHECK:STDOUT: %T.loc25_16.2 => constants.%A.facet.552 +// CHECK:STDOUT: %T.loc25_16.1 => constants.%A.facet.552 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc26_4.2 => constants.%Y @@ -575,13 +575,13 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.552, constants.%Z) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z +// CHECK:STDOUT: %U.loc6_8.2 => constants.%Z // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.91f // CHECK:STDOUT: %Self => constants.%A.facet.552 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.a0c -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Y +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.f6b // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.ef1 // CHECK:STDOUT: } @@ -734,7 +734,7 @@ fn CallIndirect() { // CHECK:STDOUT: %A.decl: %A.type.495 = interface_decl @A [concrete = constants.%A.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: %T.loc5_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.8b3)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %Y1.decl: type = class_decl @Y1 [concrete = constants.%Y1] {} {} @@ -767,20 +767,20 @@ fn CallIndirect() { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(constants.%X)> [concrete = constants.%A.type.91f] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc27_16.1: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc27_16.2 (constants.%T.9c2)] +// CHECK:STDOUT: %T.loc27_16.2: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc27_16.1 (constants.%T.9c2)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @A(%T.loc5_13.1: type) { -// CHECK:STDOUT: %T.loc5_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.2 (constants.%T.8b3)] +// CHECK:STDOUT: generic interface @A(%T.loc5_13.2: type) { +// CHECK:STDOUT: %T.loc5_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.8b3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.2)> [symbolic = %A.type (constants.%A.type.75a)] +// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.1)> [symbolic = %A.type (constants.%A.type.75a)] // CHECK:STDOUT: %Self.2: @A.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.753)] -// CHECK:STDOUT: %F.type: type = fn_type @F.loc6, @A(%T.loc5_13.2) [symbolic = %F.type (constants.%F.type.17a)] +// CHECK:STDOUT: %F.type: type = fn_type @F.loc6, @A(%T.loc5_13.1) [symbolic = %F.type (constants.%F.type.17a)] // CHECK:STDOUT: %F: @A.%F.type (%F.type.17a) = struct_value () [symbolic = %F (constants.%F.0d8)] -// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.2) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3)] +// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.1) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3)] // CHECK:STDOUT: %assoc0.loc6_39.2: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.fcb)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -792,18 +792,18 @@ fn CallIndirect() { // CHECK:STDOUT: %return.patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.1 [symbolic = %T (constants.%T.8b3)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.8b3)] // CHECK:STDOUT: %.loc6_31: @F.loc6.%A.type (%A.type.75a) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.753)] // CHECK:STDOUT: %Self.ref: @F.loc6.%A.type (%A.type.75a) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.753)] -// CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] +// CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.1 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] // CHECK:STDOUT: %.loc6_38.1: @F.loc6.%tuple.type.loc6_38.1 (%tuple.type.e59) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37) -// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)] -// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)] +// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_38.2 (constants.%Self.as_type.81d)] +// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type.loc6_38.1 [symbolic = %Self.as_type.loc6_38.2 (constants.%Self.as_type.81d)] // CHECK:STDOUT: %.loc6_38.3: type = converted %.loc6_38.1, constants.%tuple.type.bd2 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)] -// CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] -// CHECK:STDOUT: %u.param: @F.loc6.%U.loc6_8.1 (%U.2cb) = value_param call_param0 -// CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] -// CHECK:STDOUT: %u: @F.loc6.%U.loc6_8.1 (%U.2cb) = bind_name u, %u.param +// CHECK:STDOUT: %U.loc6_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] +// CHECK:STDOUT: %u.param: @F.loc6.%U.loc6_8.2 (%U.2cb) = value_param call_param0 +// CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_8.1 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] +// CHECK:STDOUT: %u: @F.loc6.%U.loc6_8.2 (%U.2cb) = bind_name u, %u.param // CHECK:STDOUT: %return.param: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = out_param call_param1 // CHECK:STDOUT: %return: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = return_slot %return.param // CHECK:STDOUT: } @@ -899,18 +899,18 @@ fn CallIndirect() { // CHECK:STDOUT: .Self = constants.%Z // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc6(@A.%T.loc5_13.1: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.2: type) { -// CHECK:STDOUT: %U.loc6_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] -// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.20f)] +// CHECK:STDOUT: generic fn @F.loc6(@A.%T.loc5_13.2: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.1: type) { +// CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.2 (constants.%U.2cb)] +// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.2 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.20f)] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.8b3)] // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.75a)] // CHECK:STDOUT: %Self: @F.loc6.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.753)] // CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.e59)] -// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)] -// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_8.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)] +// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.2 (constants.%Self.as_type.81d)] +// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.2, %U.loc6_8.2) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)] // CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.44c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @F.loc6.%U.loc6_8.1 (%U.2cb)) -> @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2); +// CHECK:STDOUT: fn(%u.param: @F.loc6.%U.loc6_8.2 (%U.2cb)) -> @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F.loc17(@A.impl.%V1.loc14_14.1: type, @A.impl.%V2.loc14_25.1: type, @A.impl.%W.loc14_36.1: type, %U.loc17_8.2: type) { @@ -996,12 +996,12 @@ fn CallIndirect() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CallGeneric(%T.loc27_16.1: %A.type.91f) { -// CHECK:STDOUT: %T.loc27_16.2: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc27_16.2 (constants.%T.9c2)] +// CHECK:STDOUT: generic fn @CallGeneric(%T.loc27_16.2: %A.type.91f) { +// CHECK:STDOUT: %T.loc27_16.1: %A.type.91f = bind_symbolic_name T, 0 [symbolic = %T.loc27_16.1 (constants.%T.9c2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc27_16.2 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc27_16.2, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] +// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc27_16.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc27_16.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] // CHECK:STDOUT: %A.facet: %A.type.91f = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.11f)] // CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%F.type.13d, %A.facet [symbolic = %.loc28_4.3 (constants.%.ffa)] // CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.ffa) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.0e5)] @@ -1018,7 +1018,7 @@ fn CallIndirect() { // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %T.ref: %A.type.91f = name_ref T, %T.loc27_16.1 [symbolic = %T.loc27_16.2 (constants.%T.9c2)] +// CHECK:STDOUT: %T.ref: %A.type.91f = name_ref T, %T.loc27_16.2 [symbolic = %T.loc27_16.1 (constants.%T.9c2)] // CHECK:STDOUT: %.loc28_4.1: %A.assoc_type.296 = specific_constant @A.%assoc0.loc6_39.1, @A(constants.%X) [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %F.ref: %A.assoc_type.296 = name_ref F, %.loc28_4.1 [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] @@ -1065,23 +1065,23 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.8b3) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%T.8b3 +// CHECK:STDOUT: %T.loc5_13.1 => constants.%T.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%T.8b3, constants.%Self.753, constants.%U.2cb) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.2cb +// CHECK:STDOUT: %U.loc6_8.2 => constants.%U.2cb // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.20f // CHECK:STDOUT: %T => constants.%T.8b3 // CHECK:STDOUT: %A.type => constants.%A.type.75a // CHECK:STDOUT: %Self => constants.%Self.753 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.e59 -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Self.as_type.81d +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%Self.as_type.81d // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.bd2 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.44c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%W +// CHECK:STDOUT: %T.loc5_13.1 => constants.%W // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A.type => constants.%A.type.f21 @@ -1132,19 +1132,19 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%W, constants.%A.facet.461, constants.%U.753) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.753 +// CHECK:STDOUT: %U.loc6_8.2 => constants.%U.753 // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.549 // CHECK:STDOUT: %T => constants.%W // CHECK:STDOUT: %A.type => constants.%A.type.f21 // CHECK:STDOUT: %Self => constants.%A.facet.461 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.136 -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.30b +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%tuple.type.30b // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.8ae // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.d4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%X) { -// CHECK:STDOUT: %T.loc5_13.2 => constants.%X +// CHECK:STDOUT: %T.loc5_13.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %A.type => constants.%A.type.91f @@ -1195,23 +1195,23 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.9c2) { -// CHECK:STDOUT: %T.loc27_16.2 => constants.%T.9c2 +// CHECK:STDOUT: %T.loc27_16.1 => constants.%T.9c2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.11f, constants.%Z) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z +// CHECK:STDOUT: %U.loc6_8.2 => constants.%Z // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.91f // CHECK:STDOUT: %Self => constants.%A.facet.11f // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.a0c -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%T.as_type +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%T.as_type // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.e28 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.f25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%A.facet.414) { -// CHECK:STDOUT: %T.loc27_16.2 => constants.%A.facet.414 +// CHECK:STDOUT: %T.loc27_16.1 => constants.%A.facet.414 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%tuple.type.a46 @@ -1232,13 +1232,13 @@ fn CallIndirect() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.414, constants.%Z) { -// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z +// CHECK:STDOUT: %U.loc6_8.2 => constants.%Z // CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.91f // CHECK:STDOUT: %Self => constants.%A.facet.414 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.a0c -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.a46 +// CHECK:STDOUT: %Self.as_type.loc6_38.2 => constants.%tuple.type.a46 // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.415 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.0b2 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/generic_vs_params.carbon b/toolchain/check/testdata/interface/generic_vs_params.carbon index 04e66d89aa4c..04189d1287db 100644 --- a/toolchain/check/testdata/interface/generic_vs_params.carbon +++ b/toolchain/check/testdata/interface/generic_vs_params.carbon @@ -129,12 +129,12 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.cde = interface_decl @GenericAndParams.loc6 [concrete = constants.%GenericAndParams.generic.827] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc6_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_28.2 (constants.%T)] +// CHECK:STDOUT: %T.loc6_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_28.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: %C.type = class_decl @C [concrete = constants.%C.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_9.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: impl_decl @NotGenericNoParams.impl [concrete] {} { @@ -198,11 +198,11 @@ interface Bar[T:! type] {} // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericAndParams.loc6(%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: generic interface @GenericAndParams.loc6(%T.loc6_28.2: type) { +// CHECK:STDOUT: %T.loc6_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_28.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T.loc6_28.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.73e)] +// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T.loc6_28.1)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.73e)] // CHECK:STDOUT: %Self.2: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.73e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -214,7 +214,7 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericNoParams(@C.%T.loc8_9.1: type) { +// CHECK:STDOUT: generic interface @GenericNoParams(@C.%T.loc8_9.2: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.b79)] @@ -229,7 +229,7 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @GenericAndParams.loc10(@C.%T.loc8_9.1: type, %U.loc10_30.1: type) { +// CHECK:STDOUT: generic interface @GenericAndParams.loc10(@C.%T.loc8_9.2: 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: @@ -271,12 +271,12 @@ interface Bar[T:! type] {} // CHECK:STDOUT: witness = file.%GenericAndParams.impl_witness.loc18 // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C(%T.loc8_9.2: type) { +// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T.loc8_9.2)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.b79)] -// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.loc10, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.597)] +// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T.loc8_9.1)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.b79)] +// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.loc10, @C(%T.loc8_9.1) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.597)] // CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.597) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.2ec)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -307,11 +307,11 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.loc6(constants.%T) { -// CHECK:STDOUT: %T.loc6_28.2 => constants.%T +// CHECK:STDOUT: %T.loc6_28.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%T +// CHECK:STDOUT: %T.loc8_9.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericNoParams(constants.%T) {} @@ -321,7 +321,7 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericAndParams.loc6(constants.%X) { -// CHECK:STDOUT: %T.loc6_28.2 => constants.%X +// CHECK:STDOUT: %T.loc6_28.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.4b6 @@ -329,7 +329,7 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%X) { -// CHECK:STDOUT: %T.loc8_9.2 => constants.%X +// CHECK:STDOUT: %T.loc8_9.1 => constants.%X // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %GenericNoParams.type => constants.%GenericNoParams.type.b7e @@ -443,15 +443,15 @@ interface Bar[T:! type] {} // CHECK:STDOUT: %Bar.decl: %Bar.type.982 = interface_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc8_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc8_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Bar(%T.loc8_15.1: type) { -// CHECK:STDOUT: %T.loc8_15.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.2 (constants.%T)] +// CHECK:STDOUT: generic interface @Bar(%T.loc8_15.2: type) { +// CHECK:STDOUT: %T.loc8_15.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%T.loc8_15.2)> [symbolic = %Bar.type (constants.%Bar.type.7ed)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%T.loc8_15.1)> [symbolic = %Bar.type (constants.%Bar.type.7ed)] // CHECK:STDOUT: %Self.2: @Bar.%Bar.type (%Bar.type.7ed) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -464,6 +464,6 @@ interface Bar[T:! type] {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%T) { -// CHECK:STDOUT: %T.loc8_15.2 => constants.%T +// CHECK:STDOUT: %T.loc8_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/local.carbon b/toolchain/check/testdata/interface/local.carbon index b75f705a315e..d9e5820b3e48 100644 --- a/toolchain/check/testdata/interface/local.carbon +++ b/toolchain/check/testdata/interface/local.carbon @@ -58,13 +58,13 @@ fn F() { // CHECK:STDOUT: %self.patt: @G.loc17.%pattern_type (%pattern_type.744) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @G.loc17.%pattern_type (%pattern_type.744) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @G.loc17.%Self.as_type.loc17_16.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_16.1: type = splice_block %.loc17_16.2 [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @G.loc17.%Self.as_type.loc17_16.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_16.1: type = splice_block %.loc17_16.2 [symbolic = %Self.as_type.loc17_16.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc17_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc17_16.2: type = converted %Self.ref, %Self.as_type.loc17_16.2 [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc17_16.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc17_16.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc17_16.2: type = converted %Self.ref, %Self.as_type.loc17_16.1 [symbolic = %Self.as_type.loc17_16.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @G.loc17.%Self.as_type.loc17_16.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @G.loc17.%Self.as_type.loc17_16.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -112,10 +112,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G.loc17(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc17_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc17_16.1 [symbolic = %pattern_type (constants.%pattern_type.744)] +// CHECK:STDOUT: %Self.as_type.loc17_16.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_16.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc17_16.2 [symbolic = %pattern_type (constants.%pattern_type.744)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @G.loc17.%Self.as_type.loc17_16.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @G.loc17.%Self.as_type.loc17_16.2 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.loc20(%self.param: %empty_tuple.type) { @@ -125,13 +125,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc17(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc17_16.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.744 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G.loc17(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc17_16.2 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/member_lookup.carbon b/toolchain/check/testdata/interface/member_lookup.carbon index 473c76048256..c659cc80c479 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -115,7 +115,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %Interface.decl: %Interface.type.e32 = interface_decl @Interface [concrete = constants.%Interface.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %AccessGeneric.decl: %AccessGeneric.type = fn_decl @AccessGeneric [concrete = constants.%AccessGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -123,16 +123,16 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %return.patt: @AccessGeneric.%pattern_type.loc8_46 (%pattern_type.7dcd0a.1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @AccessGeneric.%pattern_type.loc8_46 (%pattern_type.7dcd0a.1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_18.1 [symbolic = %T.loc8_18.2 (constants.%T)] -// CHECK:STDOUT: %T.loc8_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_18.2 (constants.%T)] -// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_43.1 [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.d32)] { +// CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_18.2 [symbolic = %T.loc8_18.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_18.1 (constants.%T)] +// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_43.2 [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.d32)] { // CHECK:STDOUT: %Interface.ref: %Interface.type.e32 = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] -// CHECK:STDOUT: %T.ref.loc8_42: type = name_ref T, %T.loc8_18.1 [symbolic = %T.loc8_18.2 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_43.1: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.d32)] +// CHECK:STDOUT: %T.ref.loc8_42: type = name_ref T, %T.loc8_18.2 [symbolic = %T.loc8_18.1 (constants.%T)] +// CHECK:STDOUT: %Interface.type.loc8_43.2: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.d32)] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_28.2 (constants.%I.a5f)] -// CHECK:STDOUT: %return.param: ref @AccessGeneric.%T.loc8_18.2 (%T) = out_param call_param0 -// CHECK:STDOUT: %return: ref @AccessGeneric.%T.loc8_18.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %I.loc8_28.2: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_28.1 (constants.%I.a5f)] +// CHECK:STDOUT: %return.param: ref @AccessGeneric.%T.loc8_18.1 (%T) = out_param call_param0 +// CHECK:STDOUT: %return: ref @AccessGeneric.%T.loc8_18.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessConcrete.decl: %AccessConcrete.type = fn_decl @AccessConcrete [concrete = constants.%AccessConcrete] { // CHECK:STDOUT: %I.patt: %pattern_type.875 = symbolic_binding_pattern I, 0 [concrete] @@ -147,19 +147,19 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %i32.loc12_33: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [concrete = constants.%Interface.type.981] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc12_19.1: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc12_19.2 (constants.%I.d08)] +// CHECK:STDOUT: %I.loc12_19.2: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc12_19.1 (constants.%I.d08)] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Interface(%T.loc4_21.1: type) { -// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: generic interface @Interface(%T.loc4_21.2: type) { +// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.2)> [symbolic = %Interface.type (constants.%Interface.type.d32)] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.1)> [symbolic = %Interface.type (constants.%Interface.type.d32)] // CHECK:STDOUT: %Self.2: @Interface.%Interface.type (%Interface.type.d32) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a5f)] -// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc4_21.2) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.0d9)] +// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc4_21.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.0d9)] // CHECK:STDOUT: %assoc0: @Interface.%Interface.assoc_type (%Interface.assoc_type.0d9) = assoc_entity element0, %X [symbolic = %assoc0 (constants.%assoc0.dbe)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -176,52 +176,52 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.1: type, @Interface.%Self.1: @Interface.%Interface.type (%Interface.type.d32)) { +// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.2: type, @Interface.%Self.1: @Interface.%Interface.type (%Interface.type.d32)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: assoc_const X:! @X.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessGeneric(%T.loc8_18.1: type, %I.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32)) { -// CHECK:STDOUT: %T.loc8_18.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_18.2 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_43.2: type = facet_type <@Interface, @Interface(%T.loc8_18.2)> [symbolic = %Interface.type.loc8_43.2 (constants.%Interface.type.d32)] -// CHECK:STDOUT: %I.loc8_28.2: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_28.2 (constants.%I.a5f)] -// CHECK:STDOUT: %pattern_type.loc8_28: type = pattern_type %Interface.type.loc8_43.2 [symbolic = %pattern_type.loc8_28 (constants.%pattern_type.f17)] -// CHECK:STDOUT: %pattern_type.loc8_46: type = pattern_type %T.loc8_18.2 [symbolic = %pattern_type.loc8_46 (constants.%pattern_type.7dcd0a.1)] +// CHECK:STDOUT: generic fn @AccessGeneric(%T.loc8_18.2: type, %I.loc8_28.2: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.d32)) { +// CHECK:STDOUT: %T.loc8_18.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_18.1 (constants.%T)] +// CHECK:STDOUT: %Interface.type.loc8_43.1: type = facet_type <@Interface, @Interface(%T.loc8_18.1)> [symbolic = %Interface.type.loc8_43.1 (constants.%Interface.type.d32)] +// CHECK:STDOUT: %I.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_28.1 (constants.%I.a5f)] +// CHECK:STDOUT: %pattern_type.loc8_28: type = pattern_type %Interface.type.loc8_43.1 [symbolic = %pattern_type.loc8_28 (constants.%pattern_type.f17)] +// CHECK:STDOUT: %pattern_type.loc8_46: type = pattern_type %T.loc8_18.1 [symbolic = %pattern_type.loc8_46 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_10: = require_complete_type %Interface.type.loc8_43.2 [symbolic = %require_complete.loc9_10 (constants.%require_complete.6f3)] -// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc8_18.2) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.0d9)] +// CHECK:STDOUT: %require_complete.loc9_10: = require_complete_type %Interface.type.loc8_43.1 [symbolic = %require_complete.loc9_10 (constants.%require_complete.6f3)] +// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc8_18.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.0d9)] // CHECK:STDOUT: %assoc0: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.0d9) = assoc_entity element0, @Interface.%X [symbolic = %assoc0 (constants.%assoc0.dbe)] -// CHECK:STDOUT: %I.as_type.loc9_11.2: type = facet_access_type %I.loc8_28.2 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.59e)] -// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc8_28.2, @Interface, @Interface(%T.loc8_18.2) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.854)] -// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.7b9)] -// CHECK:STDOUT: %require_complete.loc9_13: = require_complete_type %T.loc8_18.2 [symbolic = %require_complete.loc9_13 (constants.%require_complete.4ae)] +// CHECK:STDOUT: %I.as_type.loc9_11.2: type = facet_access_type %I.loc8_28.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.59e)] +// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc8_28.1, @Interface, @Interface(%T.loc8_18.1) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.854)] +// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%T.loc8_18.1 (%T) = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.7b9)] +// CHECK:STDOUT: %require_complete.loc9_13: = require_complete_type %T.loc8_18.1 [symbolic = %require_complete.loc9_13 (constants.%require_complete.4ae)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @AccessGeneric.%T.loc8_18.2 (%T) { +// CHECK:STDOUT: fn() -> @AccessGeneric.%T.loc8_18.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) = name_ref I, %I.loc8_28.1 [symbolic = %I.loc8_28.2 (constants.%I.a5f)] +// CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.d32) = name_ref I, %I.loc8_28.2 [symbolic = %I.loc8_28.1 (constants.%I.a5f)] // CHECK:STDOUT: %.loc9_11.1: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.0d9) = specific_constant @X.%assoc0, @Interface(constants.%T) [symbolic = %assoc0 (constants.%assoc0.dbe)] // CHECK:STDOUT: %X.ref: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.0d9) = name_ref X, %.loc9_11.1 [symbolic = %assoc0 (constants.%assoc0.dbe)] // CHECK:STDOUT: %I.as_type.loc9_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.59e)] // CHECK:STDOUT: %.loc9_11.2: type = converted %I.ref, %I.as_type.loc9_11.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.59e)] -// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access constants.%Interface.lookup_impl_witness.854, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.7b9)] +// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%T.loc8_18.1 (%T) = impl_witness_access constants.%Interface.lookup_impl_witness.854, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.7b9)] // CHECK:STDOUT: return %impl.elem0.loc9_11.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessConcrete(%I.loc12_19.1: %Interface.type.981) { -// CHECK:STDOUT: %I.loc12_19.2: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc12_19.2 (constants.%I.d08)] +// CHECK:STDOUT: generic fn @AccessConcrete(%I.loc12_19.2: %Interface.type.981) { +// CHECK:STDOUT: %I.loc12_19.1: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc12_19.1 (constants.%I.d08)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc12_19.2 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.ee6)] -// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc12_19.2, @Interface, @Interface(constants.%i32) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.a96)] +// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc12_19.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.ee6)] +// CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc12_19.1, @Interface, @Interface(constants.%i32) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.a96)] // CHECK:STDOUT: %impl.elem0.loc13_11.2: %i32 = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.e13)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: %Interface.type.981 = name_ref I, %I.loc12_19.1 [symbolic = %I.loc12_19.2 (constants.%I.d08)] +// CHECK:STDOUT: %I.ref: %Interface.type.981 = name_ref I, %I.loc12_19.2 [symbolic = %I.loc12_19.1 (constants.%I.d08)] // CHECK:STDOUT: %.loc13_11.1: %Interface.assoc_type.aaa = specific_constant @X.%assoc0, @Interface(constants.%i32) [concrete = constants.%assoc0.69f] // CHECK:STDOUT: %X.ref: %Interface.assoc_type.aaa = name_ref X, %.loc13_11.1 [concrete = constants.%assoc0.69f] // CHECK:STDOUT: %I.as_type.loc13_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.ee6)] @@ -232,7 +232,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(constants.%T) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%T +// CHECK:STDOUT: %T.loc4_21.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Interface.type => constants.%Interface.type.d32 @@ -247,9 +247,9 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessGeneric(constants.%T, constants.%I.a5f) { -// CHECK:STDOUT: %T.loc8_18.2 => constants.%T -// CHECK:STDOUT: %Interface.type.loc8_43.2 => constants.%Interface.type.d32 -// CHECK:STDOUT: %I.loc8_28.2 => constants.%I.a5f +// CHECK:STDOUT: %T.loc8_18.1 => constants.%T +// CHECK:STDOUT: %Interface.type.loc8_43.1 => constants.%Interface.type.d32 +// CHECK:STDOUT: %I.loc8_28.1 => constants.%I.a5f // CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.f17 // CHECK:STDOUT: %pattern_type.loc8_46 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } @@ -260,7 +260,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(constants.%i32) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_21.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Interface.type => constants.%Interface.type.981 @@ -270,7 +270,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessConcrete(constants.%I.d08) { -// CHECK:STDOUT: %I.loc12_19.2 => constants.%I.d08 +// CHECK:STDOUT: %I.loc12_19.1 => constants.%I.d08 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%i32, constants.%Interface.facet.06c) { @@ -331,7 +331,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %Interface.decl: %Interface.type.e32 = interface_decl @Interface [concrete = constants.%Interface.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingGeneric.decl: %AccessMissingGeneric.type = fn_decl @AccessMissingGeneric [concrete = constants.%AccessMissingGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -339,16 +339,16 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %return.patt: @AccessMissingGeneric.%pattern_type.loc8_53 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @AccessMissingGeneric.%pattern_type.loc8_53 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc8_56: type = name_ref T, %T.loc8_25.1 [symbolic = %T.loc8_25.2 (constants.%T)] -// CHECK:STDOUT: %T.loc8_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_25.2 (constants.%T)] -// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_50.1 [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.d32)] { +// CHECK:STDOUT: %T.ref.loc8_56: type = name_ref T, %T.loc8_25.2 [symbolic = %T.loc8_25.1 (constants.%T)] +// CHECK:STDOUT: %T.loc8_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_25.1 (constants.%T)] +// CHECK:STDOUT: %.loc8: type = splice_block %Interface.type.loc8_50.2 [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.d32)] { // CHECK:STDOUT: %Interface.ref: %Interface.type.e32 = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.generic] -// CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_25.1 [symbolic = %T.loc8_25.2 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_50.1: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.d32)] +// CHECK:STDOUT: %T.ref.loc8_49: type = name_ref T, %T.loc8_25.2 [symbolic = %T.loc8_25.1 (constants.%T)] +// CHECK:STDOUT: %Interface.type.loc8_50.2: type = facet_type <@Interface, @Interface(constants.%T)> [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.d32)] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_35.2 (constants.%I.a5f)] -// CHECK:STDOUT: %return.param: ref @AccessMissingGeneric.%T.loc8_25.2 (%T) = out_param call_param0 -// CHECK:STDOUT: %return: ref @AccessMissingGeneric.%T.loc8_25.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %I.loc8_35.2: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_35.1 (constants.%I.a5f)] +// CHECK:STDOUT: %return.param: ref @AccessMissingGeneric.%T.loc8_25.1 (%T) = out_param call_param0 +// CHECK:STDOUT: %return: ref @AccessMissingGeneric.%T.loc8_25.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %AccessMissingConcrete.decl: %AccessMissingConcrete.type = fn_decl @AccessMissingConcrete [concrete = constants.%AccessMissingConcrete] { // CHECK:STDOUT: %I.patt: %pattern_type.875 = symbolic_binding_pattern I, 0 [concrete] @@ -363,19 +363,19 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %i32.loc16_40: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(constants.%i32)> [concrete = constants.%Interface.type.981] // CHECK:STDOUT: } -// CHECK:STDOUT: %I.loc16_26.1: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc16_26.2 (constants.%I.d08)] +// CHECK:STDOUT: %I.loc16_26.2: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc16_26.1 (constants.%I.d08)] // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param0 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Interface(%T.loc4_21.1: type) { -// CHECK:STDOUT: %T.loc4_21.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.2 (constants.%T)] +// CHECK:STDOUT: generic interface @Interface(%T.loc4_21.2: type) { +// CHECK:STDOUT: %T.loc4_21.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_21.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.2)> [symbolic = %Interface.type (constants.%Interface.type.d32)] +// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.1)> [symbolic = %Interface.type (constants.%Interface.type.d32)] // CHECK:STDOUT: %Self.2: @Interface.%Interface.type (%Interface.type.d32) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a5f)] -// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc4_21.2) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.0d9)] +// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc4_21.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.0d9)] // CHECK:STDOUT: %assoc0: @Interface.%Interface.assoc_type (%Interface.assoc_type.0d9) = assoc_entity element0, %X [symbolic = %assoc0 (constants.%assoc0.dbe)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -393,46 +393,46 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.1: type, @Interface.%Self.1: @Interface.%Interface.type (%Interface.type.d32)) { +// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.2: type, @Interface.%Self.1: @Interface.%Interface.type (%Interface.type.d32)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: assoc_const X:! @X.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingGeneric(%T.loc8_25.1: type, %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32)) { -// CHECK:STDOUT: %T.loc8_25.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_25.2 (constants.%T)] -// CHECK:STDOUT: %Interface.type.loc8_50.2: type = facet_type <@Interface, @Interface(%T.loc8_25.2)> [symbolic = %Interface.type.loc8_50.2 (constants.%Interface.type.d32)] -// CHECK:STDOUT: %I.loc8_35.2: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_35.2 (constants.%I.a5f)] -// CHECK:STDOUT: %pattern_type.loc8_35: type = pattern_type %Interface.type.loc8_50.2 [symbolic = %pattern_type.loc8_35 (constants.%pattern_type.f17)] -// CHECK:STDOUT: %pattern_type.loc8_53: type = pattern_type %T.loc8_25.2 [symbolic = %pattern_type.loc8_53 (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @AccessMissingGeneric(%T.loc8_25.2: type, %I.loc8_35.2: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.d32)) { +// CHECK:STDOUT: %T.loc8_25.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_25.1 (constants.%T)] +// CHECK:STDOUT: %Interface.type.loc8_50.1: type = facet_type <@Interface, @Interface(%T.loc8_25.1)> [symbolic = %Interface.type.loc8_50.1 (constants.%Interface.type.d32)] +// CHECK:STDOUT: %I.loc8_35.1: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.d32) = bind_symbolic_name I, 1 [symbolic = %I.loc8_35.1 (constants.%I.a5f)] +// CHECK:STDOUT: %pattern_type.loc8_35: type = pattern_type %Interface.type.loc8_50.1 [symbolic = %pattern_type.loc8_35 (constants.%pattern_type.f17)] +// CHECK:STDOUT: %pattern_type.loc8_53: type = pattern_type %T.loc8_25.1 [symbolic = %pattern_type.loc8_53 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Interface.type.loc8_50.2 [symbolic = %require_complete (constants.%require_complete.6f3)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Interface.type.loc8_50.1 [symbolic = %require_complete (constants.%require_complete.6f3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @AccessMissingGeneric.%T.loc8_25.2 (%T) { +// CHECK:STDOUT: fn() -> @AccessMissingGeneric.%T.loc8_25.1 (%T) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: @AccessMissingGeneric.%Interface.type.loc8_50.2 (%Interface.type.d32) = name_ref I, %I.loc8_35.1 [symbolic = %I.loc8_35.2 (constants.%I.a5f)] +// CHECK:STDOUT: %I.ref: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.d32) = name_ref I, %I.loc8_35.2 [symbolic = %I.loc8_35.1 (constants.%I.a5f)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AccessMissingConcrete(%I.loc16_26.1: %Interface.type.981) { -// CHECK:STDOUT: %I.loc16_26.2: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc16_26.2 (constants.%I.d08)] +// CHECK:STDOUT: generic fn @AccessMissingConcrete(%I.loc16_26.2: %Interface.type.981) { +// CHECK:STDOUT: %I.loc16_26.1: %Interface.type.981 = bind_symbolic_name I, 0 [symbolic = %I.loc16_26.1 (constants.%I.d08)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %I.ref: %Interface.type.981 = name_ref I, %I.loc16_26.1 [symbolic = %I.loc16_26.2 (constants.%I.d08)] +// CHECK:STDOUT: %I.ref: %Interface.type.981 = name_ref I, %I.loc16_26.2 [symbolic = %I.loc16_26.1 (constants.%I.d08)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(constants.%T) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%T +// CHECK:STDOUT: %T.loc4_21.1 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Interface.type => constants.%Interface.type.d32 @@ -447,15 +447,15 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessMissingGeneric(constants.%T, constants.%I.a5f) { -// CHECK:STDOUT: %T.loc8_25.2 => constants.%T -// CHECK:STDOUT: %Interface.type.loc8_50.2 => constants.%Interface.type.d32 -// CHECK:STDOUT: %I.loc8_35.2 => constants.%I.a5f +// CHECK:STDOUT: %T.loc8_25.1 => constants.%T +// CHECK:STDOUT: %Interface.type.loc8_50.1 => constants.%Interface.type.d32 +// CHECK:STDOUT: %I.loc8_35.1 => constants.%I.a5f // CHECK:STDOUT: %pattern_type.loc8_35 => constants.%pattern_type.f17 // CHECK:STDOUT: %pattern_type.loc8_53 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(constants.%i32) { -// CHECK:STDOUT: %T.loc4_21.2 => constants.%i32 +// CHECK:STDOUT: %T.loc4_21.1 => constants.%i32 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Interface.type => constants.%Interface.type.981 @@ -465,6 +465,6 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessMissingConcrete(constants.%I.d08) { -// CHECK:STDOUT: %I.loc16_26.2 => constants.%I.d08 +// CHECK:STDOUT: %I.loc16_26.1 => constants.%I.d08 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/self.carbon b/toolchain/check/testdata/interface/self.carbon index 7b294451a23e..f9e5f62aeb86 100644 --- a/toolchain/check/testdata/interface/self.carbon +++ b/toolchain/check/testdata/interface/self.carbon @@ -45,17 +45,17 @@ interface UseSelf { // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_25: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc16_25: type = facet_access_type %Self.ref.loc16_25 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc16_25: type = converted %Self.ref.loc16_25, %Self.as_type.loc16_25 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc16_14.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc16_25: type = facet_access_type %Self.ref.loc16_25 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_25: type = converted %Self.ref.loc16_25, %Self.as_type.loc16_25 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc16_14.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.1 [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @F.%Self.as_type.loc16_14.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @F.%Self.as_type.loc16_14.1 (%Self.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%Self.as_type.loc16_14.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %self: @F.%Self.as_type.loc16_14.2 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @F.%Self.as_type.loc16_14.2 (%Self.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%Self.as_type.loc16_14.2 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -67,15 +67,15 @@ interface UseSelf { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(@UseSelf.%Self: %UseSelf.type) { // CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.2 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc16_14.1 (%Self.as_type)) -> @F.%Self.as_type.loc16_14.1 (%Self.as_type); +// CHECK:STDOUT: fn(%self.param: @F.%Self.as_type.loc16_14.2 (%Self.as_type)) -> @F.%Self.as_type.loc16_14.2 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc16_14.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/syntactic_merge.carbon b/toolchain/check/testdata/interface/syntactic_merge.carbon index 5794c7312fd8..d407c7a83130 100644 --- a/toolchain/check/testdata/interface/syntactic_merge.carbon +++ b/toolchain/check/testdata/interface/syntactic_merge.carbon @@ -222,33 +222,33 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc8: %Foo.type.538 = interface_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc10: %Bar.type.982 = interface_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc10_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc10_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl.loc11: %Bar.type.982 = interface_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc11: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc11: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Foo(%a.loc7_15.2: %C) { +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc7_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc7_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -260,11 +260,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Bar(%a.loc10_15.2: %C) { +// CHECK:STDOUT: %a.loc10_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc10_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%a.loc10_15.2)> [symbolic = %Bar.type (constants.%Bar.type.6a9)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%a.loc10_15.1)> [symbolic = %Bar.type (constants.%Bar.type.6a9)] // CHECK:STDOUT: %Self.2: @Bar.%Bar.type (%Bar.type.6a9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -286,11 +286,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc7_15.2 => constants.%a +// CHECK:STDOUT: %a.loc7_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.loc10_15.2 => constants.%a +// CHECK:STDOUT: %a.loc10_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- spacing.carbon @@ -317,21 +317,21 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_21.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_21.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_21.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_21.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.538 = interface_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_21.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_21.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Foo(%a.loc6_21.2: %C) { +// CHECK:STDOUT: %a.loc6_21.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_21.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_21.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_21.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -353,7 +353,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc6_21.2 => constants.%a +// CHECK:STDOUT: %a.loc6_21.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_parens.carbon @@ -382,27 +382,27 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.5380b8.2 = interface_decl @Foo.loc14 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc14_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc14_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc6(%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: generic interface @Foo.loc6(%a.loc6_15.2: %C) { +// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc14(%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: generic interface @Foo.loc14(%a.loc14_15.2: %C) { +// CHECK:STDOUT: %a.loc14_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.loc14.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -424,11 +424,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc6(constants.%a) { -// CHECK:STDOUT: %a.loc6_15.2 => constants.%a +// CHECK:STDOUT: %a.loc6_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc14(constants.%a) { -// CHECK:STDOUT: %a.loc14_15.2 => constants.%a +// CHECK:STDOUT: %a.loc14_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- todo_fail_raw_identifier.carbon @@ -455,21 +455,21 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.538 = interface_decl @Foo [concrete = constants.%Foo.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Foo(%a.loc6_15.2: %C) { +// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -491,7 +491,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc6_15.2 => constants.%a +// CHECK:STDOUT: %a.loc6_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- two_file.carbon @@ -522,24 +522,24 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type = interface_decl @Bar [concrete = constants.%Bar.generic] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc8_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc8_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Foo(%a.loc7_15.2: %C) { +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Bar(%a.loc8_15.2: %C) { +// CHECK:STDOUT: %a.loc8_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc8_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -554,11 +554,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc7_15.2 => constants.%a +// CHECK:STDOUT: %a.loc7_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar(constants.%a) { -// CHECK:STDOUT: %a.loc8_15.2 => constants.%a +// CHECK:STDOUT: %a.loc8_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_two_file.impl.carbon @@ -607,13 +607,13 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C] -// CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc12_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Bar.decl: %Bar.type.982aac.2 = interface_decl @Bar.loc21 [concrete = constants.%Bar.generic.4bda5e.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc21_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc21_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc21_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc21_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -623,11 +623,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc12(%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: generic interface @Foo.loc12(%a.loc12_15.2: %C) { +// CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc12, @Foo.loc12(%a.loc12_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc12, @Foo.loc12(%a.loc12_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.loc12.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -645,11 +645,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Bar.loc21(%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: generic interface @Bar.loc21(%a.loc21_15.2: %C) { +// CHECK:STDOUT: %a.loc21_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc21_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.loc21, @Bar.loc21(%a.loc21_15.2)> [symbolic = %Bar.type (constants.%Bar.type.6a9)] +// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.loc21, @Bar.loc21(%a.loc21_15.1)> [symbolic = %Bar.type (constants.%Bar.type.6a9)] // CHECK:STDOUT: %Self.2: @Bar.loc21.%Bar.type (%Bar.type.6a9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -673,7 +673,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc12(constants.%a) { -// CHECK:STDOUT: %a.loc12_15.2 => constants.%a +// CHECK:STDOUT: %a.loc12_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar.1(constants.%a) { @@ -681,7 +681,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Bar.loc21(constants.%a) { -// CHECK:STDOUT: %a.loc21_15.2 => constants.%a +// CHECK:STDOUT: %a.loc21_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_name_mismatch.carbon @@ -714,27 +714,27 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %b.patt: %pattern_type = symbolic_binding_pattern b, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %b.loc15_15.1: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_15.2 (constants.%b)] +// CHECK:STDOUT: %b.loc15_15.2: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_15.1 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc7(%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: generic interface @Foo.loc7(%a.loc7_15.2: %C) { +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc15(%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: generic interface @Foo.loc15(%b.loc15_15.2: %C) { +// CHECK:STDOUT: %b.loc15_15.1: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_15.1 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%b.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%b.loc15_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -756,11 +756,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc7(constants.%a) { -// CHECK:STDOUT: %a.loc7_15.2 => constants.%a +// CHECK:STDOUT: %a.loc7_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc15(constants.%b) { -// CHECK:STDOUT: %b.loc15_15.2 => constants.%b +// CHECK:STDOUT: %b.loc15_15.1 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias.carbon @@ -792,27 +792,27 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc7(%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: generic interface @Foo.loc7(%a.loc7_15.2: %C) { +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc15(%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: generic interface @Foo.loc15(%a.loc15_15.2: %C) { +// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -834,11 +834,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc7(constants.%a) { -// CHECK:STDOUT: %a.loc7_15.2 => constants.%a +// CHECK:STDOUT: %a.loc7_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc15(constants.%a) { -// CHECK:STDOUT: %a.loc15_15.2 => constants.%a +// CHECK:STDOUT: %a.loc15_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduced_alias.carbon @@ -870,27 +870,27 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc7(%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: generic interface @Foo.loc7(%a.loc7_15.2: %C) { +// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc15(%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: generic interface @Foo.loc15(%a.loc15_15.2: %C) { +// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -912,11 +912,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc7(constants.%a) { -// CHECK:STDOUT: %a.loc7_15.2 => constants.%a +// CHECK:STDOUT: %a.loc7_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc15(constants.%a) { -// CHECK:STDOUT: %a.loc15_15.2 => constants.%a +// CHECK:STDOUT: %a.loc15_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- alias_two_file.carbon @@ -941,12 +941,12 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic interface @Foo(%a.loc6_15.2: %C) { +// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } @@ -961,7 +961,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo(constants.%a) { -// CHECK:STDOUT: %a.loc6_15.2 => constants.%a +// CHECK:STDOUT: %a.loc6_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_alias_two_file.impl.carbon @@ -1002,7 +1002,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C] -// CHECK:STDOUT: %a.loc17_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc17_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc17_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc17_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1012,11 +1012,11 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc17(%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: generic interface @Foo.loc17(%a.loc17_15.2: %C) { +// CHECK:STDOUT: %a.loc17_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc17_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc17, @Foo.loc17(%a.loc17_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc17, @Foo.loc17(%a.loc17_15.1)> [symbolic = %Foo.type (constants.%Foo.type.7d0)] // CHECK:STDOUT: %Self.2: @Foo.loc17.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -1040,7 +1040,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc17(constants.%a) { -// CHECK:STDOUT: %a.loc17_15.2 => constants.%a +// CHECK:STDOUT: %a.loc17_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_repeat_const.carbon @@ -1073,7 +1073,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %const: type = const_type %C.ref [concrete = constants.%const] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc6_15.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc6_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.5380b8.2 = interface_decl @Foo.loc18 [concrete = constants.%Foo.generic.ec3175.2] { // CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete] @@ -1083,21 +1083,21 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %const.loc18_26: type = const_type %C.ref [concrete = constants.%const] // CHECK:STDOUT: %const.loc18_19: type = const_type %const.loc18_26 [concrete = constants.%const] // CHECK:STDOUT: } -// CHECK:STDOUT: %a.loc18_15.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_15.2 (constants.%a)] +// CHECK:STDOUT: %a.loc18_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_15.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc6(%a.loc6_15.1: %const) { -// CHECK:STDOUT: %a.loc6_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo.loc6(%a.loc6_15.2: %const) { +// CHECK:STDOUT: %a.loc6_15.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: interface; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @Foo.loc18(%a.loc18_15.1: %const) { -// CHECK:STDOUT: %a.loc18_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_15.2 (constants.%a)] +// CHECK:STDOUT: generic interface @Foo.loc18(%a.loc18_15.2: %const) { +// CHECK:STDOUT: %a.loc18_15.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_15.1 (constants.%a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc18, @Foo.loc18(%a.loc18_15.2)> [symbolic = %Foo.type (constants.%Foo.type.924)] +// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc18, @Foo.loc18(%a.loc18_15.1)> [symbolic = %Foo.type (constants.%Foo.type.924)] // CHECK:STDOUT: %Self.2: @Foo.loc18.%Foo.type (%Foo.type.924) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -1119,10 +1119,10 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc6(constants.%a) { -// CHECK:STDOUT: %a.loc6_15.2 => constants.%a +// CHECK:STDOUT: %a.loc6_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Foo.loc18(constants.%a) { -// CHECK:STDOUT: %a.loc18_15.2 => constants.%a +// CHECK:STDOUT: %a.loc18_15.1 => constants.%a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/todo_define_not_default.carbon b/toolchain/check/testdata/interface/todo_define_not_default.carbon index 6a295f47be01..adcd32427433 100644 --- a/toolchain/check/testdata/interface/todo_define_not_default.carbon +++ b/toolchain/check/testdata/interface/todo_define_not_default.carbon @@ -48,17 +48,17 @@ interface I { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_42.c68: %i32 = int_value 42 [concrete] // CHECK:STDOUT: } @@ -129,7 +129,7 @@ interface I { // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_19.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_19.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc23_19.2(%int_42) [concrete = constants.%int_42.c68] // CHECK:STDOUT: %.loc23_19.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_42.c68] diff --git a/toolchain/check/testdata/interop/cpp/class/method.carbon b/toolchain/check/testdata/interop/cpp/class/method.carbon index 87347b17e737..ce7e9b4fbe4d 100644 --- a/toolchain/check/testdata/interop/cpp/class/method.carbon +++ b/toolchain/check/testdata/interop/cpp/class/method.carbon @@ -318,9 +318,9 @@ fn Ref(p: Cpp.HasQualifiers*) { // CHECK:STDOUT: %ref_this.type: type = fn_type @ref_this [concrete] // CHECK:STDOUT: %ref_this: %ref_this.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.e02: type = fn_type @Op.2, @Destroy.impl(%HasQualifiers) [concrete] +// CHECK:STDOUT: %Op.type.e02: type = fn_type @Op.1, @Destroy.impl(%HasQualifiers) [concrete] // CHECK:STDOUT: %Op.b7c: %Op.type.e02 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.b7c, @Op.2(%HasQualifiers) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.b7c, @Op.1(%HasQualifiers) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -424,17 +424,17 @@ fn Ref(p: Cpp.HasQualifiers*) { // CHECK:STDOUT: %v.ref.loc52: %HasQualifiers = name_ref v, %v // CHECK:STDOUT: %const_ref_ref_this.ref: = name_ref const_ref_ref_this, [concrete = ] // CHECK:STDOUT: %Op.bound.loc34: = bound_method %.loc34, constants.%Op.b7c -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.b7c, @Op.2(constants.%HasQualifiers) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.b7c, @Op.1(constants.%HasQualifiers) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34_3.2: %ptr.ec3 = addr_of %.loc34 // CHECK:STDOUT: %no_op.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34_3.2) // CHECK:STDOUT: %Op.bound.loc27: = bound_method %.loc27, constants.%Op.b7c -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.b7c, @Op.2(constants.%HasQualifiers) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.b7c, @Op.1(constants.%HasQualifiers) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc27_3.2: %ptr.ec3 = addr_of %.loc27 // CHECK:STDOUT: %no_op.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27_3.2) // CHECK:STDOUT: %Op.bound.loc12: = bound_method %.loc12, constants.%Op.b7c -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.b7c, @Op.2(constants.%HasQualifiers) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.b7c, @Op.1(constants.%HasQualifiers) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12_3.2: %ptr.ec3 = addr_of %.loc12 // CHECK:STDOUT: %no_op.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_3.2) diff --git a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon index e23891b9ea84..502e342e1cb4 100644 --- a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon +++ b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon @@ -378,17 +378,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %As.type.a96: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.1, @As(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.2, @As(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.0ef: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.5, @As.impl.686(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.1, @As.impl.686(%int_16) [concrete] // CHECK:STDOUT: %Convert.489: %Convert.type.172 = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.a96 = facet_value Core.IntLiteral, (%As.impl_witness.0ef) [concrete] // CHECK:STDOUT: %.91d: type = fn_type_with_self_type %Convert.type.be5, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.489 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.5(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.f90: %i16 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -416,7 +416,7 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %impl.elem0: %.91d = impl_witness_access constants.%As.impl_witness.0ef, element0 [concrete = constants.%Convert.489] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.f90] // CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f90] @@ -435,17 +435,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_32767.f4b: Core.IntLiteral = int_value 32767 [concrete] // CHECK:STDOUT: %ImplicitAs.type.adb: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.fa6: type = fn_type @Convert.1, @ImplicitAs(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.fa6: type = fn_type @Convert.2, @ImplicitAs(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.97b: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.33c: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.33c: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_16) [concrete] // CHECK:STDOUT: %Convert.d0a: %Convert.type.33c = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.adb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.97b) [concrete] // CHECK:STDOUT: %.236: type = fn_type_with_self_type %Convert.type.fa6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_32767.f4b, %Convert.d0a [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.d0a, @Convert.2(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.d0a, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_32767.f4b, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_32767.faa: %i16 = int_value 32767 [concrete] // CHECK:STDOUT: } @@ -471,7 +471,7 @@ fn F() { // CHECK:STDOUT: %int_32767: Core.IntLiteral = int_value 32767 [concrete = constants.%int_32767.f4b] // CHECK:STDOUT: %impl.elem0: %.236 = impl_witness_access constants.%ImplicitAs.impl_witness.97b, element0 [concrete = constants.%Convert.d0a] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_32767, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_32767, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc8_11.2(%int_32767) [concrete = constants.%int_32767.faa] // CHECK:STDOUT: %.loc8_11.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_32767.faa] @@ -490,26 +490,26 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_32768: Core.IntLiteral = int_value 32768 [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] -// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Negate.impl_witness.973: = impl_witness imports.%Negate.impl_witness_table.b22 [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness.973) [concrete] // CHECK:STDOUT: %.d3d: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] -// CHECK:STDOUT: %Op.type.18a: type = fn_type @Op.2 [concrete] +// CHECK:STDOUT: %Op.type.18a: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %Op.99f: %Op.type.18a = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %int_32768, %Op.99f [concrete] // CHECK:STDOUT: %int_-32768.882: Core.IntLiteral = int_value -32768 [concrete] // CHECK:STDOUT: %ImplicitAs.type.adb: type = facet_type <@ImplicitAs, @ImplicitAs(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.fa6: type = fn_type @Convert.1, @ImplicitAs(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.fa6: type = fn_type @Convert.2, @ImplicitAs(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.97b: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.33c: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.33c: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_16) [concrete] // CHECK:STDOUT: %Convert.d0a: %Convert.type.33c = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.adb = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.97b) [concrete] // CHECK:STDOUT: %.236: type = fn_type_with_self_type %Convert.type.fa6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_-32768.882, %Convert.d0a [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.d0a, @Convert.2(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.d0a, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_-32768.882, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_-32768.7e5: %i16 = int_value -32768 [concrete] // CHECK:STDOUT: } @@ -541,7 +541,7 @@ fn F() { // CHECK:STDOUT: %int.snegate: init Core.IntLiteral = call %bound_method.loc8_11.1(%int_32768) [concrete = constants.%int_-32768.882] // CHECK:STDOUT: %impl.elem0: %.236 = impl_witness_access constants.%ImplicitAs.impl_witness.97b, element0 [concrete = constants.%Convert.d0a] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int.snegate, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %int.snegate, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %.loc8_11.1: Core.IntLiteral = value_of_initializer %int.snegate [concrete = constants.%int_-32768.882] // CHECK:STDOUT: %.loc8_11.2: Core.IntLiteral = converted %int.snegate, %.loc8_11.1 [concrete = constants.%int_-32768.882] @@ -562,17 +562,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %As.type.a96: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.1, @As(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.2, @As(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.0ef: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.5, @As.impl.686(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.1, @As.impl.686(%int_16) [concrete] // CHECK:STDOUT: %Convert.489: %Convert.type.172 = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.a96 = facet_value Core.IntLiteral, (%As.impl_witness.0ef) [concrete] // CHECK:STDOUT: %.91d: type = fn_type_with_self_type %Convert.type.be5, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.489 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.5(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.f90: %i16 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -600,7 +600,7 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %impl.elem0: %.91d = impl_witness_access constants.%As.impl_witness.0ef, element0 [concrete = constants.%Convert.489] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.f90] // CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f90] @@ -619,17 +619,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %As.type.a96: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.1, @As(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.2, @As(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.0ef: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.5, @As.impl.686(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.1, @As.impl.686(%int_16) [concrete] // CHECK:STDOUT: %Convert.489: %Convert.type.172 = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.a96 = facet_value Core.IntLiteral, (%As.impl_witness.0ef) [concrete] // CHECK:STDOUT: %.91d: type = fn_type_with_self_type %Convert.type.be5, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.489 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.5(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.f90: %i16 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -657,7 +657,7 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %impl.elem0: %.91d = impl_witness_access constants.%As.impl_witness.0ef, element0 [concrete = constants.%Convert.489] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.f90] // CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f90] @@ -676,17 +676,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %As.type.a96: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.1, @As(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.2, @As(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.0ef: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.5, @As.impl.686(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.1, @As.impl.686(%int_16) [concrete] // CHECK:STDOUT: %Convert.489: %Convert.type.172 = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.a96 = facet_value Core.IntLiteral, (%As.impl_witness.0ef) [concrete] // CHECK:STDOUT: %.91d: type = fn_type_with_self_type %Convert.type.be5, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.489 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.5(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.f90: %i16 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -714,7 +714,7 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %impl.elem0: %.91d = impl_witness_access constants.%As.impl_witness.0ef, element0 [concrete = constants.%Convert.489] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.f90] // CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f90] @@ -733,17 +733,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %As.type.a96: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.1, @As(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.2, @As(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.0ef: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.5, @As.impl.686(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.1, @As.impl.686(%int_16) [concrete] // CHECK:STDOUT: %Convert.489: %Convert.type.172 = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.a96 = facet_value Core.IntLiteral, (%As.impl_witness.0ef) [concrete] // CHECK:STDOUT: %.91d: type = fn_type_with_self_type %Convert.type.be5, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.489 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.5(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.f90: %i16 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -771,7 +771,7 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %impl.elem0: %.91d = impl_witness_access constants.%As.impl_witness.0ef, element0 [concrete = constants.%Convert.489] // CHECK:STDOUT: %bound_method.loc8_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc8_13.2(%int_1) [concrete = constants.%int_1.f90] // CHECK:STDOUT: %.loc8_13.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f90] @@ -791,17 +791,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %As.type.a96: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.1, @As(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.2, @As(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.0ef: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.5, @As.impl.686(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.1, @As.impl.686(%int_16) [concrete] // CHECK:STDOUT: %Convert.489: %Convert.type.172 = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.a96 = facet_value Core.IntLiteral, (%As.impl_witness.0ef) [concrete] // CHECK:STDOUT: %.91d: type = fn_type_with_self_type %Convert.type.be5, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.489 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.5(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.f90: %i16 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -829,7 +829,7 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %impl.elem0: %.91d = impl_witness_access constants.%As.impl_witness.0ef, element0 [concrete = constants.%Convert.489] // CHECK:STDOUT: %bound_method.loc16_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc16_13.2(%int_1) [concrete = constants.%int_1.f90] // CHECK:STDOUT: %.loc16_13.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f90] diff --git a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_mapped.carbon b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_mapped.carbon index 89c5a97e2d4c..4e03ebb879e4 100644 --- a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_mapped.carbon +++ b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_mapped.carbon @@ -413,17 +413,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_2147483647.d89: Core.IntLiteral = int_value 2147483647 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2147483647.d89, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2147483647.d89, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2147483647.a74: %i32 = int_value 2147483647 [concrete] // CHECK:STDOUT: } @@ -449,7 +449,7 @@ fn F() { // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [concrete = constants.%int_2147483647.d89] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_2147483647, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_2147483647, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_11.2(%int_2147483647) [concrete = constants.%int_2147483647.a74] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2147483647.a74] @@ -468,26 +468,26 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_2147483648: Core.IntLiteral = int_value 2147483648 [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] -// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Negate.impl_witness.973: = impl_witness imports.%Negate.impl_witness_table.b22 [concrete] // CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness.973) [concrete] // CHECK:STDOUT: %.d3d: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] -// CHECK:STDOUT: %Op.type.18a: type = fn_type @Op.2 [concrete] +// CHECK:STDOUT: %Op.type.18a: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %Op.99f: %Op.type.18a = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %int_2147483648, %Op.99f [concrete] // CHECK:STDOUT: %int_-2147483648.3b9: Core.IntLiteral = int_value -2147483648 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_-2147483648.3b9, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_-2147483648.3b9, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_-2147483648.95c: %i32 = int_value -2147483648 [concrete] // CHECK:STDOUT: } @@ -519,7 +519,7 @@ fn F() { // CHECK:STDOUT: %int.snegate: init Core.IntLiteral = call %bound_method.loc8_11.1(%int_2147483648) [concrete = constants.%int_-2147483648.3b9] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int.snegate, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %int.snegate, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %.loc8_11.1: Core.IntLiteral = value_of_initializer %int.snegate [concrete = constants.%int_-2147483648.3b9] // CHECK:STDOUT: %.loc8_11.2: Core.IntLiteral = converted %int.snegate, %.loc8_11.1 [concrete = constants.%int_-2147483648.3b9] @@ -540,17 +540,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -576,7 +576,7 @@ fn F() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -595,17 +595,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -631,7 +631,7 @@ fn F() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -650,17 +650,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -686,7 +686,7 @@ fn F() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -706,17 +706,17 @@ fn F() { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -746,14 +746,14 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc8_11: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0.loc8_11 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc8_11: = specific_function %impl.elem0.loc8_11, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc8_11: = specific_function %impl.elem0.loc8_11, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn.loc8_11 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc8_11: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked.loc8_11 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_11.2: %i32 = converted %int_1, %.loc8_11.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc8_14: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_14.1: = bound_method %int_2, %impl.elem0.loc8_14 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc8_14: = specific_function %impl.elem0.loc8_14, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc8_14: = specific_function %impl.elem0.loc8_14, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_14.2: = bound_method %int_2, %specific_fn.loc8_14 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc8_14: init %i32 = call %bound_method.loc8_14.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc8_14.1: %i32 = value_of_initializer %int.convert_checked.loc8_14 [concrete = constants.%int_2.ef8] @@ -773,17 +773,17 @@ fn F() { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -829,14 +829,14 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc8_12: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_12.1: = bound_method %int_1, %impl.elem0.loc8_12 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc8_12: = specific_function %impl.elem0.loc8_12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc8_12: = specific_function %impl.elem0.loc8_12, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_12.2: = bound_method %int_1, %specific_fn.loc8_12 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc8_12: init %i32 = call %bound_method.loc8_12.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_12.1: %i32 = value_of_initializer %int.convert_checked.loc8_12 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_12.2: %i32 = converted %int_1, %.loc8_12.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc8_15: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %int_2, %impl.elem0.loc8_15 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc8_15: = specific_function %impl.elem0.loc8_15, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc8_15: = specific_function %impl.elem0.loc8_15, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %int_2, %specific_fn.loc8_15 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc8_15: init %i32 = call %bound_method.loc8_15.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc8_15.1: %i32 = value_of_initializer %int.convert_checked.loc8_15 [concrete = constants.%int_2.ef8] @@ -848,14 +848,14 @@ fn F() { // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc9_12: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_12.1: = bound_method %int_3, %impl.elem0.loc9_12 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc9_12: = specific_function %impl.elem0.loc9_12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc9_12: = specific_function %impl.elem0.loc9_12, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_12.2: = bound_method %int_3, %specific_fn.loc9_12 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc9_12: init %i32 = call %bound_method.loc9_12.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc9_12.1: %i32 = value_of_initializer %int.convert_checked.loc9_12 [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc9_12.2: %i32 = converted %int_3, %.loc9_12.1 [concrete = constants.%int_3.822] // CHECK:STDOUT: %impl.elem0.loc9_15: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_15.1: = bound_method %int_4, %impl.elem0.loc9_15 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc9_15: = specific_function %impl.elem0.loc9_15, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc9_15: = specific_function %impl.elem0.loc9_15, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_15.2: = bound_method %int_4, %specific_fn.loc9_15 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc9_15: init %i32 = call %bound_method.loc9_15.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc9_15.1: %i32 = value_of_initializer %int.convert_checked.loc9_15 [concrete = constants.%int_4.940] @@ -874,17 +874,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -910,7 +910,7 @@ fn F() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -955,17 +955,17 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -991,7 +991,7 @@ fn F() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/interop/cpp/function/class.carbon b/toolchain/check/testdata/interop/cpp/function/class.carbon index 344a74e7df50..f32f3c5dd91e 100644 --- a/toolchain/check/testdata/interop/cpp/function/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/class.carbon @@ -435,7 +435,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.21b: %Op.type.1b3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -481,7 +481,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.21b: %Op.type.1b3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -527,7 +527,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.21b: %Op.type.1b3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -574,7 +574,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.9ae: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.9ae: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.dbb: %Op.type.9ae = struct_value () [concrete] // CHECK:STDOUT: %ptr.838: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -642,7 +642,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.b28: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.b28: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.f48: %Op.type.b28 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c0c: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -695,10 +695,10 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] -// CHECK:STDOUT: %Op.type.1b8: type = fn_type @Op.2, @Destroy.impl(%O) [concrete] +// CHECK:STDOUT: %Op.type.1b8: type = fn_type @Op.1, @Destroy.impl(%O) [concrete] // CHECK:STDOUT: %Op.2df: %Op.type.1b8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] -// CHECK:STDOUT: %Op.type.ac8: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.ac8: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.362: %Op.type.ac8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.de2: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -763,7 +763,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.21b: %Op.type.1b3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -818,7 +818,7 @@ fn F() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %bar.type: type = fn_type @bar [concrete] // CHECK:STDOUT: %bar: %bar.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.21b: %Op.type.1b3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } @@ -932,7 +932,7 @@ fn F() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.2, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.1b3: type = fn_type @Op.1, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.21b: %Op.type.1b3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon index 00d58bfc1543..8572b2c08e16 100644 --- a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon +++ b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon @@ -82,17 +82,17 @@ fn F() { // CHECK:STDOUT: %As.type.90f: type = generic_interface_type @As [concrete] // CHECK:STDOUT: %As.generic: %As.type.90f = struct_value () [concrete] // CHECK:STDOUT: %As.type.a96: type = facet_type <@As, @As(%i16)> [concrete] -// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.1, @As(%i16) [concrete] +// CHECK:STDOUT: %Convert.type.be5: type = fn_type @Convert.2, @As(%i16) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.5, @As.impl.686(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.062: type = fn_type @Convert.1, @As.impl.686(%To) [symbolic] // CHECK:STDOUT: %Convert.527: %Convert.type.062 = struct_value () [symbolic] // CHECK:STDOUT: %As.impl_witness.0ef: = impl_witness imports.%As.impl_witness_table.eb4, @As.impl.686(%int_16) [concrete] -// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.5, @As.impl.686(%int_16) [concrete] +// CHECK:STDOUT: %Convert.type.172: type = fn_type @Convert.1, @As.impl.686(%int_16) [concrete] // CHECK:STDOUT: %Convert.489: %Convert.type.172 = struct_value () [concrete] // CHECK:STDOUT: %As.facet: %As.type.a96 = facet_value Core.IntLiteral, (%As.impl_witness.0ef) [concrete] // CHECK:STDOUT: %.91d: type = fn_type_with_self_type %Convert.type.be5, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.489 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.5(%int_16) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.489, @Convert.1(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.f90: %i16 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -147,7 +147,7 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(constants.%int_16) [concrete = constants.%i16] // CHECK:STDOUT: %impl.elem0: %.91d = impl_witness_access constants.%As.impl_witness.0ef, element0 [concrete = constants.%Convert.489] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_16) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_16) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i16 = call %bound_method.loc7_13.2(%int_1) [concrete = constants.%int_1.f90] // CHECK:STDOUT: %.loc7_13.1: %i16 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f90] @@ -175,17 +175,17 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -238,7 +238,7 @@ fn F() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_11.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_11.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc7_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc7_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/interop/cpp/function/in_template.carbon b/toolchain/check/testdata/interop/cpp/function/in_template.carbon index 64fe7f2890d6..61e58793d8fc 100644 --- a/toolchain/check/testdata/interop/cpp/function/in_template.carbon +++ b/toolchain/check/testdata/interop/cpp/function/in_template.carbon @@ -44,17 +44,17 @@ fn F() { // CHECK:STDOUT: %f: %f.type = struct_value () [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_42.c68: %i32 = int_value 42 [concrete] // CHECK:STDOUT: } @@ -83,7 +83,7 @@ fn F() { // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_11.2(%int_42) [concrete = constants.%int_42.c68] // CHECK:STDOUT: %.loc8_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_42.c68] diff --git a/toolchain/check/testdata/interop/cpp/function/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/pointer.carbon index 9125fc8a693f..fd0d91e32ae7 100644 --- a/toolchain/check/testdata/interop/cpp/function/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/pointer.carbon @@ -198,7 +198,7 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -259,9 +259,9 @@ fn F() { // CHECK:STDOUT: %ptr.dfe: type = ptr_type %ptr.5c7 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.c07: type = fn_type @Op.2, @Destroy.impl(%ptr.5c7) [concrete] +// CHECK:STDOUT: %Op.type.c07: type = fn_type @Op.1, @Destroy.impl(%ptr.5c7) [concrete] // CHECK:STDOUT: %Op.64b: %Op.type.c07 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -340,7 +340,7 @@ fn F() { // CHECK:STDOUT: %ptr.ff5: type = ptr_type %const [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.372: type = fn_type @Op.2, @Destroy.impl(%const) [concrete] +// CHECK:STDOUT: %Op.type.372: type = fn_type @Op.1, @Destroy.impl(%const) [concrete] // CHECK:STDOUT: %Op.af7: %Op.type.372 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -529,7 +529,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/struct.carbon b/toolchain/check/testdata/interop/cpp/function/struct.carbon index da3b6734ec8c..25b925f3a053 100644 --- a/toolchain/check/testdata/interop/cpp/function/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/struct.carbon @@ -434,7 +434,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -480,7 +480,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -526,7 +526,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -573,7 +573,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.2b5: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.2b5: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.9b3: %Op.type.2b5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.edf: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -641,7 +641,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.17f: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.17f: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.463: %Op.type.17f = struct_value () [concrete] // CHECK:STDOUT: %ptr.887: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -694,10 +694,10 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] -// CHECK:STDOUT: %Op.type.1b8: type = fn_type @Op.2, @Destroy.impl(%O) [concrete] +// CHECK:STDOUT: %Op.type.1b8: type = fn_type @Op.1, @Destroy.impl(%O) [concrete] // CHECK:STDOUT: %Op.2df: %Op.type.1b8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] -// CHECK:STDOUT: %Op.type.23f: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.23f: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.952: %Op.type.23f = struct_value () [concrete] // CHECK:STDOUT: %ptr.149: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -762,7 +762,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -817,7 +817,7 @@ fn F() { // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %bar.type: type = fn_type @bar [concrete] // CHECK:STDOUT: %bar: %bar.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } @@ -931,7 +931,7 @@ fn F() { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.2, @Destroy.impl(%S) [concrete] +// CHECK:STDOUT: %Op.type.642: type = fn_type @Op.1, @Destroy.impl(%S) [concrete] // CHECK:STDOUT: %Op.ab5: %Op.type.642 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/union.carbon b/toolchain/check/testdata/interop/cpp/function/union.carbon index 8bf8833d44cd..8825be139850 100644 --- a/toolchain/check/testdata/interop/cpp/function/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/union.carbon @@ -481,7 +481,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %U.val: %U = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.2, @Destroy.impl(%U) [concrete] +// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.1, @Destroy.impl(%U) [concrete] // CHECK:STDOUT: %Op.2fa: %Op.type.0b7 = struct_value () [concrete] // CHECK:STDOUT: %ptr.86f: type = ptr_type %U [concrete] // CHECK:STDOUT: } @@ -588,7 +588,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %U.val: %U = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.2e1: type = fn_type @Op.2, @Destroy.impl(%U) [concrete] +// CHECK:STDOUT: %Op.type.2e1: type = fn_type @Op.1, @Destroy.impl(%U) [concrete] // CHECK:STDOUT: %Op.d5d: %Op.type.2e1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.87e: type = ptr_type %U [concrete] // CHECK:STDOUT: } @@ -656,7 +656,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %U.val: %U = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.ee1: type = fn_type @Op.2, @Destroy.impl(%U) [concrete] +// CHECK:STDOUT: %Op.type.ee1: type = fn_type @Op.1, @Destroy.impl(%U) [concrete] // CHECK:STDOUT: %Op.28c: %Op.type.ee1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8c1: type = ptr_type %U [concrete] // CHECK:STDOUT: } @@ -709,10 +709,10 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %U.val: %U = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] -// CHECK:STDOUT: %Op.type.1b8: type = fn_type @Op.2, @Destroy.impl(%O) [concrete] +// CHECK:STDOUT: %Op.type.1b8: type = fn_type @Op.1, @Destroy.impl(%O) [concrete] // CHECK:STDOUT: %Op.2df: %Op.type.1b8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] -// CHECK:STDOUT: %Op.type.8f9: type = fn_type @Op.2, @Destroy.impl(%U) [concrete] +// CHECK:STDOUT: %Op.type.8f9: type = fn_type @Op.1, @Destroy.impl(%U) [concrete] // CHECK:STDOUT: %Op.f3b: %Op.type.8f9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.a6c: type = ptr_type %U [concrete] // CHECK:STDOUT: } @@ -777,7 +777,7 @@ fn F() { // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %U.val: %U = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.2, @Destroy.impl(%U) [concrete] +// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.1, @Destroy.impl(%U) [concrete] // CHECK:STDOUT: %Op.2fa: %Op.type.0b7 = struct_value () [concrete] // CHECK:STDOUT: %ptr.86f: type = ptr_type %U [concrete] // CHECK:STDOUT: } @@ -832,7 +832,7 @@ fn F() { // CHECK:STDOUT: %U.val: %U = struct_value () [concrete] // CHECK:STDOUT: %bar.type: type = fn_type @bar [concrete] // CHECK:STDOUT: %bar: %bar.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.2, @Destroy.impl(%U) [concrete] +// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.1, @Destroy.impl(%U) [concrete] // CHECK:STDOUT: %Op.2fa: %Op.type.0b7 = struct_value () [concrete] // CHECK:STDOUT: %ptr.86f: type = ptr_type %U [concrete] // CHECK:STDOUT: } @@ -946,7 +946,7 @@ fn F() { // CHECK:STDOUT: %U: type = class_type @U [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.2, @Destroy.impl(%U) [concrete] +// CHECK:STDOUT: %Op.type.0b7: type = fn_type @Op.1, @Destroy.impl(%U) [concrete] // CHECK:STDOUT: %Op.2fa: %Op.type.0b7 = struct_value () [concrete] // CHECK:STDOUT: %ptr.86f: type = ptr_type %U [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/namespace.carbon b/toolchain/check/testdata/interop/cpp/namespace.carbon index cdb1529bb648..273185a0e341 100644 --- a/toolchain/check/testdata/interop/cpp/namespace.carbon +++ b/toolchain/check/testdata/interop/cpp/namespace.carbon @@ -311,7 +311,7 @@ fn MyF() { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.0e5: type = fn_type @Op.2, @Destroy.impl(%X) [concrete] +// CHECK:STDOUT: %Op.type.0e5: type = fn_type @Op.1, @Destroy.impl(%X) [concrete] // CHECK:STDOUT: %Op.cbf: %Op.type.0e5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.13d: type = ptr_type %X [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/typedef.carbon b/toolchain/check/testdata/interop/cpp/typedef.carbon index 11375bef9b65..e287fe004590 100644 --- a/toolchain/check/testdata/interop/cpp/typedef.carbon +++ b/toolchain/check/testdata/interop/cpp/typedef.carbon @@ -58,25 +58,25 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_42.c68: %i32 = int_value 42 [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.1, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -100,7 +100,7 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_3.2(%int_42) [concrete = constants.%int_42.c68] // CHECK:STDOUT: %.loc8_3: init %i32 = converted %int_42, %int.convert_checked [concrete = constants.%int_42.c68] @@ -146,7 +146,7 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: %pattern_type.a31: type = pattern_type %ptr.d9e [concrete] -// CHECK:STDOUT: %Op.type.cb8: type = fn_type @Op.2, @Destroy.impl(%ptr.d9e) [concrete] +// CHECK:STDOUT: %Op.type.cb8: type = fn_type @Op.1, @Destroy.impl(%ptr.d9e) [concrete] // CHECK:STDOUT: %Op.8e3: %Op.type.cb8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.01d: type = ptr_type %ptr.d9e [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 5bfc91384a23..3b4a157785d3 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -320,20 +320,20 @@ impl i32 as Empty { // CHECK:STDOUT: %tuple.elem0.eaf: %empty_tuple.type = tuple_access %c, element0 [symbolic] // CHECK:STDOUT: %tuple.elem1: %empty_tuple.type = tuple_access %c, element1 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.073: type = fn_type @Op.2, @Destroy.impl(%tuple.type.2d5) [concrete] +// CHECK:STDOUT: %Op.type.073: type = fn_type @Op.1, @Destroy.impl(%tuple.type.2d5) [concrete] // CHECK:STDOUT: %Op.dce: %Op.type.073 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.234: = specific_function %Op.dce, @Op.2(%tuple.type.2d5) [concrete] -// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.2, @Destroy.impl(%tuple.type.bcd) [concrete] +// CHECK:STDOUT: %Op.specific_fn.234: = specific_function %Op.dce, @Op.1(%tuple.type.2d5) [concrete] +// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.1, @Destroy.impl(%tuple.type.bcd) [concrete] // CHECK:STDOUT: %Op.166: %Op.type.4e8 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.48a: = specific_function %Op.166, @Op.2(%tuple.type.bcd) [concrete] -// CHECK:STDOUT: %Op.type.23e: type = fn_type @Op.2, @Destroy.impl(%tuple.type.9fb) [concrete] +// CHECK:STDOUT: %Op.specific_fn.48a: = specific_function %Op.166, @Op.1(%tuple.type.bcd) [concrete] +// CHECK:STDOUT: %Op.type.23e: type = fn_type @Op.1, @Destroy.impl(%tuple.type.9fb) [concrete] // CHECK:STDOUT: %Op.f19: %Op.type.23e = struct_value () [concrete] // CHECK:STDOUT: %ptr.652: type = ptr_type %tuple.type.9fb [concrete] -// CHECK:STDOUT: %Op.specific_fn.d2b: = specific_function %Op.f19, @Op.2(%tuple.type.9fb) [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.d2b: = specific_function %Op.f19, @Op.1(%tuple.type.9fb) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -375,7 +375,7 @@ impl i32 as Empty { // CHECK:STDOUT: %.loc10_16.3: type = converted %.loc10_14, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc10_16.4: type = converted %.loc10_16.2, constants.%tuple.type.9fb [concrete = constants.%tuple.type.9fb] // CHECK:STDOUT: } -// CHECK:STDOUT: %b.loc10_8.2: %tuple.type.9fb = bind_symbolic_name b, 0 [symbolic = %b.loc10_8.1 (constants.%b)] +// CHECK:STDOUT: %b.loc10_8.1: %tuple.type.9fb = bind_symbolic_name b, 0 [symbolic = %b.loc10_8.2 (constants.%b)] // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %d.patt: %pattern_type.8c1 = binding_pattern d [concrete] @@ -414,12 +414,12 @@ impl i32 as Empty { // CHECK:STDOUT: .d = %d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%b.loc10_8.2: %tuple.type.9fb) { -// CHECK:STDOUT: %b.loc10_8.1: %tuple.type.9fb = bind_symbolic_name b, 0 [symbolic = %b.loc10_8.1 (constants.%b)] +// CHECK:STDOUT: generic fn @F(%b.loc10_8.1: %tuple.type.9fb) { +// CHECK:STDOUT: %b.loc10_8.2: %tuple.type.9fb = bind_symbolic_name b, 0 [symbolic = %b.loc10_8.2 (constants.%b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %c.loc11_9.2: %tuple.type.bcd = bind_symbolic_name c, 1 [symbolic = %c.loc11_9.2 (constants.%c)] -// CHECK:STDOUT: %tuple.elem0.loc14_21.3: %empty_tuple.type = tuple_access %b.loc10_8.1, element0 [symbolic = %tuple.elem0.loc14_21.3 (constants.%tuple.elem0.af8)] +// CHECK:STDOUT: %tuple.elem0.loc14_21.3: %empty_tuple.type = tuple_access %b.loc10_8.2, element0 [symbolic = %tuple.elem0.loc14_21.3 (constants.%tuple.elem0.af8)] // CHECK:STDOUT: %tuple.elem0.loc15_24.3: %empty_tuple.type = tuple_access %c.loc11_9.2, element0 [symbolic = %tuple.elem0.loc15_24.3 (constants.%tuple.elem0.eaf)] // CHECK:STDOUT: %tuple.elem1.loc15_24.3: %empty_tuple.type = tuple_access %c.loc11_9.2, element1 [symbolic = %tuple.elem1.loc15_24.3 (constants.%tuple.elem1)] // CHECK:STDOUT: @@ -465,7 +465,7 @@ impl i32 as Empty { // CHECK:STDOUT: %b1.var_patt: %pattern_type.559 = var_pattern %b1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b1.var: ref %tuple.type.9fb = var %b1.var_patt -// CHECK:STDOUT: %b.ref: %tuple.type.9fb = name_ref b, %b.loc10_8.2 [symbolic = %b.loc10_8.1 (constants.%b)] +// CHECK:STDOUT: %b.ref: %tuple.type.9fb = name_ref b, %b.loc10_8.1 [symbolic = %b.loc10_8.2 (constants.%b)] // CHECK:STDOUT: %tuple.elem0.loc14_21.1: %empty_tuple.type = tuple_access %b.ref, element0 [symbolic = %tuple.elem0.loc14_21.3 (constants.%tuple.elem0.af8)] // CHECK:STDOUT: %tuple.elem0.loc14_21.2: ref %empty_tuple.type = tuple_access %b1.var, element0 // CHECK:STDOUT: %.loc14_21.1: init %empty_tuple.type = tuple_init () to %tuple.elem0.loc14_21.2 [concrete = constants.%empty_tuple] @@ -539,22 +539,22 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: %d1: ref %tuple.type.2d5 = bind_name d1, %d1.var // CHECK:STDOUT: %Op.bound.loc16: = bound_method %d1.var, constants.%Op.dce -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.dce, @Op.2(constants.%tuple.type.2d5) [concrete = constants.%Op.specific_fn.234] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.dce, @Op.1(constants.%tuple.type.2d5) [concrete = constants.%Op.specific_fn.234] // CHECK:STDOUT: %bound_method.loc16: = bound_method %d1.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc16: %ptr.7fe = addr_of %d1.var // CHECK:STDOUT: %no_op.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16) // CHECK:STDOUT: %Op.bound.loc15: = bound_method %c1.var, constants.%Op.166 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.166, @Op.2(constants.%tuple.type.bcd) [concrete = constants.%Op.specific_fn.48a] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.166, @Op.1(constants.%tuple.type.bcd) [concrete = constants.%Op.specific_fn.48a] // CHECK:STDOUT: %bound_method.loc15: = bound_method %c1.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc15: %ptr.709 = addr_of %c1.var // CHECK:STDOUT: %no_op.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15) // CHECK:STDOUT: %Op.bound.loc14: = bound_method %b1.var, constants.%Op.f19 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.f19, @Op.2(constants.%tuple.type.9fb) [concrete = constants.%Op.specific_fn.d2b] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.f19, @Op.1(constants.%tuple.type.9fb) [concrete = constants.%Op.specific_fn.d2b] // CHECK:STDOUT: %bound_method.loc14: = bound_method %b1.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc14: %ptr.652 = addr_of %b1.var // CHECK:STDOUT: %no_op.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %Op.bound.loc13: = bound_method %a1.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc13: = bound_method %a1.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc13: %ptr.843 = addr_of %a1.var // CHECK:STDOUT: %no_op.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) @@ -563,7 +563,7 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%b) { -// CHECK:STDOUT: %b.loc10_8.1 => constants.%b +// CHECK:STDOUT: %b.loc10_8.2 => constants.%b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_invalid_let_after.carbon @@ -638,17 +638,17 @@ impl i32 as Empty { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -695,7 +695,7 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc5_20.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc5_20.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -721,17 +721,17 @@ impl i32 as Empty { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] @@ -786,7 +786,7 @@ impl i32 as Empty { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0.loc6: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_22.1: = bound_method %int_0, %impl.elem0.loc6 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_22.2: = bound_method %int_0, %specific_fn.loc6 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc6: init %i32 = call %bound_method.loc6_22.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_22.1: %i32 = value_of_initializer %int.convert_checked.loc6 [concrete = constants.%int_0.6a9] @@ -799,7 +799,7 @@ impl i32 as Empty { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc9: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %int_1, %impl.elem0.loc9 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_11.2: = bound_method %int_1, %specific_fn.loc9 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc9: init %i32 = call %bound_method.loc9_11.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_11.1: %i32 = value_of_initializer %int.convert_checked.loc9 [concrete = constants.%int_1.5d2] @@ -857,10 +857,10 @@ impl i32 as Empty { // CHECK:STDOUT: %return.patt: @F.%pattern_type (%pattern_type.ca5) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @F.%pattern_type (%pattern_type.ca5) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %impl.elem0.loc6_13.2: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %impl.elem0.loc6_13.2 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] -// CHECK:STDOUT: %return.param: ref @F.%impl.elem0.loc6_13.1 (%impl.elem0) = out_param call_param0 -// CHECK:STDOUT: %return: ref @F.%impl.elem0.loc6_13.1 (%impl.elem0) = return_slot %return.param +// CHECK:STDOUT: %impl.elem0.loc6_13.1: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_13.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %impl.elem0.loc6_13.1 [symbolic = %impl.elem0.loc6_13.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %return.param: ref @F.%impl.elem0.loc6_13.2 (%impl.elem0) = out_param call_param0 +// CHECK:STDOUT: %return: ref @F.%impl.elem0.loc6_13.2 (%impl.elem0) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -880,10 +880,10 @@ impl i32 as Empty { // CHECK:STDOUT: generic fn @F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %impl.elem0.loc6_13.1: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_13.1 (constants.%impl.elem0)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc6_13.1 [symbolic = %pattern_type (constants.%pattern_type.ca5)] +// CHECK:STDOUT: %impl.elem0.loc6_13.2: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_13.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc6_13.2 [symbolic = %pattern_type (constants.%pattern_type.ca5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @F.%impl.elem0.loc6_13.1 (%impl.elem0); +// CHECK:STDOUT: fn() -> @F.%impl.elem0.loc6_13.2 (%impl.elem0); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T(constants.%Self) {} @@ -893,7 +893,7 @@ impl i32 as Empty { // CHECK:STDOUT: specific @F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness -// CHECK:STDOUT: %impl.elem0.loc6_13.1 => constants.%impl.elem0 +// CHECK:STDOUT: %impl.elem0.loc6_13.2 => constants.%impl.elem0 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ca5 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/fail_duplicate_decl.carbon b/toolchain/check/testdata/let/fail_duplicate_decl.carbon index aab8d94aab99..4afca747b2bb 100644 --- a/toolchain/check/testdata/let/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/let/fail_duplicate_decl.carbon @@ -38,17 +38,17 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -91,7 +91,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0.loc16: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_16.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_16.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %bound_method.loc16_16.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc16_16.1: %i32 = value_of_initializer %int.convert_checked.loc16 [concrete = constants.%int_1.5d2] @@ -107,7 +107,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0.loc24: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc24_16.1: = bound_method %int_2, %impl.elem0.loc24 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc24_16.2: = bound_method %int_2, %specific_fn.loc24 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc24: init %i32 = call %bound_method.loc24_16.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc24_16.1: %i32 = value_of_initializer %int.convert_checked.loc24 [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/let/shadowed_decl.carbon b/toolchain/check/testdata/let/shadowed_decl.carbon index e93438f0d116..739c8d403dc2 100644 --- a/toolchain/check/testdata/let/shadowed_decl.carbon +++ b/toolchain/check/testdata/let/shadowed_decl.carbon @@ -32,17 +32,17 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: } @@ -97,7 +97,7 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_16.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_16.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_16.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc16_16.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] diff --git a/toolchain/check/testdata/main_run/return_i32.carbon b/toolchain/check/testdata/main_run/return_i32.carbon index a14717ff73f3..bb55d57c9bd5 100644 --- a/toolchain/check/testdata/main_run/return_i32.carbon +++ b/toolchain/check/testdata/main_run/return_i32.carbon @@ -27,17 +27,17 @@ fn Run() -> i32 { return 0; } // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -79,7 +79,7 @@ fn Run() -> i32 { return 0; } // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_27.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_27.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc14_27.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc14_27.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] diff --git a/toolchain/check/testdata/namespace/add_to_import.carbon b/toolchain/check/testdata/namespace/add_to_import.carbon index 9014ef48c90e..dc97da43f5f9 100644 --- a/toolchain/check/testdata/namespace/add_to_import.carbon +++ b/toolchain/check/testdata/namespace/add_to_import.carbon @@ -58,17 +58,17 @@ var a: i32 = NS.A(); // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -125,7 +125,7 @@ var a: i32 = NS.A(); // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc4_28.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc4_28.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] diff --git a/toolchain/check/testdata/namespace/alias.carbon b/toolchain/check/testdata/namespace/alias.carbon index ccfc2f7a29ee..aaeb58cd480c 100644 --- a/toolchain/check/testdata/namespace/alias.carbon +++ b/toolchain/check/testdata/namespace/alias.carbon @@ -38,17 +38,17 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] @@ -122,7 +122,7 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc19_28.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc19_28.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] diff --git a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon index 1e3fe7dd298c..11906f29a050 100644 --- a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon +++ b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon @@ -40,17 +40,17 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -94,7 +94,7 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc27_28.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc27_28.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] diff --git a/toolchain/check/testdata/namespace/fail_params.carbon b/toolchain/check/testdata/namespace/fail_params.carbon index ceece00f76af..b65a0608e8aa 100644 --- a/toolchain/check/testdata/namespace/fail_params.carbon +++ b/toolchain/check/testdata/namespace/fail_params.carbon @@ -90,7 +90,7 @@ fn D(T:! type).F() {} // CHECK:STDOUT: %C: = namespace [concrete] {} // CHECK:STDOUT: %D: = namespace [concrete] {} // CHECK:STDOUT: %F.decl.loc48: %F.type.b25 = fn_decl @F.loc48 [concrete = constants.%F.c41] {} { -// CHECK:STDOUT: %T.loc48_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc48_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc48_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc48_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -99,8 +99,8 @@ fn D(T:! type).F() {} // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F.loc48(%T.loc48_6.1: type) { -// CHECK:STDOUT: %T.loc48_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc48_6.2 (constants.%T)] +// CHECK:STDOUT: generic fn @F.loc48(%T.loc48_6.2: type) { +// CHECK:STDOUT: %T.loc48_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc48_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -111,6 +111,6 @@ fn D(T:! type).F() {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F.loc48(constants.%T) { -// CHECK:STDOUT: %T.loc48_6.2 => constants.%T +// CHECK:STDOUT: %T.loc48_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index c413464482cf..617cf6bca152 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -170,10 +170,10 @@ fn Run() { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %pattern_type.272: type = pattern_type %A [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.d74: type = fn_type @Op.2, @Destroy.impl(%A) [concrete] +// CHECK:STDOUT: %Op.type.d74: type = fn_type @Op.1, @Destroy.impl(%A) [concrete] // CHECK:STDOUT: %Op.478: %Op.type.d74 = struct_value () [concrete] // CHECK:STDOUT: %ptr.07e: type = ptr_type %A [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.478, @Op.2(%A) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.478, @Op.1(%A) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -244,17 +244,17 @@ fn Run() { // CHECK:STDOUT: %F.call.loc13: init %A = call %F.ref.loc13() to %.loc13 // CHECK:STDOUT: assign %a.ref, %F.call.loc13 // CHECK:STDOUT: %Op.bound.loc13: = bound_method %.loc13, constants.%Op.478 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.478, @Op.2(constants.%A) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.478, @Op.1(constants.%A) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13: %ptr.07e = addr_of %.loc13 // CHECK:STDOUT: %no_op.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: %Op.bound.loc10: = bound_method %a.var, constants.%Op.478 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.478, @Op.2(constants.%A) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.478, @Op.1(constants.%A) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10: %ptr.07e = addr_of %a.var // CHECK:STDOUT: %no_op.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %Op.bound.loc7: = bound_method %.loc7_11.1, constants.%Op.478 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.478, @Op.2(constants.%A) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.478, @Op.1(constants.%A) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7: = bound_method %.loc7_11.1, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc7: %ptr.07e = addr_of %.loc7_11.1 // CHECK:STDOUT: %no_op.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index 29a76c1599b9..4efcf5fa8fe7 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -51,24 +51,24 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -134,7 +134,7 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %int_0.loc26: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc26: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_5.1: = bound_method %int_0.loc26, %impl.elem0.loc26 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_5.2: = bound_method %int_0.loc26, %specific_fn.loc26 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc26: init %i32 = call %bound_method.loc26_5.2(%int_0.loc26) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc26_5: init %i32 = converted %int_0.loc26, %int.convert_checked.loc26 [concrete = constants.%int_0.6a9] @@ -147,7 +147,7 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %A.ref.loc29: ref %i32 = name_ref A, %A // CHECK:STDOUT: %.loc29: %i32 = bind_value %A.ref.loc29 // CHECK:STDOUT: %Op.bound.loc26_5.1: = bound_method %A.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26_5.3: = bound_method %A.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26_5.1: %ptr.235 = addr_of %A.var // CHECK:STDOUT: %no_op.loc26_5.1: init %empty_tuple.type = call %bound_method.loc26_5.3(%addr.loc26_5.1) @@ -157,13 +157,13 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %int_0.loc31: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc31: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc31_11.1: = bound_method %int_0.loc31, %impl.elem0.loc31 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_11.2: = bound_method %int_0.loc31, %specific_fn.loc31 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc31: init %i32 = call %bound_method.loc31_11.2(%int_0.loc31) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc31_11.1: %i32 = value_of_initializer %int.convert_checked.loc31 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc31_11.2: %i32 = converted %int_0.loc31, %.loc31_11.1 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %Op.bound.loc26_5.2: = bound_method %A.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26_5.4: = bound_method %A.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26_5.2: %ptr.235 = addr_of %A.var // CHECK:STDOUT: %no_op.loc26_5.2: init %empty_tuple.type = call %bound_method.loc26_5.4(%addr.loc26_5.2) diff --git a/toolchain/check/testdata/operators/builtin/and.carbon b/toolchain/check/testdata/operators/builtin/and.carbon index 06ef0ca0fc53..5bb43835e0d2 100644 --- a/toolchain/check/testdata/operators/builtin/and.carbon +++ b/toolchain/check/testdata/operators/builtin/and.carbon @@ -50,14 +50,14 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.2, @Destroy.impl(bool) [concrete] +// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.1, @Destroy.impl(bool) [concrete] // CHECK:STDOUT: %Op.8b7: %Op.type.655 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %Op.specific_fn.c3f: = specific_function %Op.8b7, @Op.2(bool) [concrete] +// CHECK:STDOUT: %Op.specific_fn.c3f: = specific_function %Op.8b7, @Op.1(bool) [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -326,22 +326,22 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: !.loc26_7: // CHECK:STDOUT: %d: ref %empty_tuple.type = bind_name d, %d.var // CHECK:STDOUT: %Op.bound.loc26: = bound_method %d.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.843 = addr_of %d.var // CHECK:STDOUT: %no_op.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %Op.bound.loc25: = bound_method %c.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc25: = bound_method %c.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.843 = addr_of %c.var // CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) // CHECK:STDOUT: %Op.bound.loc24: = bound_method %b.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc24: %ptr.843 = addr_of %b.var // CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) // CHECK:STDOUT: %Op.bound.loc23: = bound_method %a.var, constants.%Op.8b7 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.8b7, @Op.1(bool) [concrete = constants.%Op.specific_fn.c3f] // CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %a.var // CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) @@ -392,7 +392,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: !.loc30_7: // CHECK:STDOUT: %a: ref %empty_tuple.type = bind_name a, %a.var // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index ba6711665481..6f8b973011fa 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -45,17 +45,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_12.1e1: %i32 = int_value 12 [concrete] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [concrete] @@ -102,19 +102,19 @@ fn Main() { // CHECK:STDOUT: %bound_method.5ba: = bound_method %int_10.64f, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_10.265: %i32 = int_value 10 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.1, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.3(%ptr.235) [concrete] -// CHECK:STDOUT: %Op.type.da3: type = fn_type @Op.3, @Destroy.impl(%struct_type.a.b.501) [concrete] +// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.1(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.da3: type = fn_type @Op.1, @Destroy.impl(%struct_type.a.b.501) [concrete] // CHECK:STDOUT: %Op.9db: %Op.type.da3 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.1e0: = specific_function %Op.9db, @Op.3(%struct_type.a.b.501) [concrete] -// CHECK:STDOUT: %Op.type.a4a: type = fn_type @Op.3, @Destroy.impl(%tuple.type.d07) [concrete] +// CHECK:STDOUT: %Op.specific_fn.1e0: = specific_function %Op.9db, @Op.1(%struct_type.a.b.501) [concrete] +// CHECK:STDOUT: %Op.type.a4a: type = fn_type @Op.1, @Destroy.impl(%tuple.type.d07) [concrete] // CHECK:STDOUT: %Op.7c6: %Op.type.a4a = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.bbb: = specific_function %Op.7c6, @Op.3(%tuple.type.d07) [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.bbb: = specific_function %Op.7c6, @Op.1(%tuple.type.d07) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -151,7 +151,7 @@ fn Main() { // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %impl.elem0.loc16: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_12, %impl.elem0.loc16 [concrete = constants.%Convert.bound.221] -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_12, %specific_fn.loc16 [concrete = constants.%bound_method.dae] // CHECK:STDOUT: %int.convert_checked.loc16: init %i32 = call %bound_method.loc16_3.2(%int_12) [concrete = constants.%int_12.1e1] // CHECK:STDOUT: %.loc16_3: init %i32 = converted %int_12, %int.convert_checked.loc16 [concrete = constants.%int_12.1e1] @@ -165,7 +165,7 @@ fn Main() { // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete = constants.%int_9.988] // CHECK:STDOUT: %impl.elem0.loc17: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_9, %impl.elem0.loc17 [concrete = constants.%Convert.bound.9e2] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_9, %specific_fn.loc17 [concrete = constants.%bound_method.cd3] // CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %bound_method.loc17_5.2(%int_9) [concrete = constants.%int_9.f88] // CHECK:STDOUT: %.loc17: init %i32 = converted %int_9, %int.convert_checked.loc17 [concrete = constants.%int_9.f88] @@ -180,7 +180,7 @@ fn Main() { // CHECK:STDOUT: %.loc19_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc19, %int_2.loc19) // CHECK:STDOUT: %impl.elem0.loc19_28.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_28.1: = bound_method %int_1.loc19, %impl.elem0.loc19_28.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc19_28.1: = specific_function %impl.elem0.loc19_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc19_28.1: = specific_function %impl.elem0.loc19_28.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_28.2: = bound_method %int_1.loc19, %specific_fn.loc19_28.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc19_28.1: init %i32 = call %bound_method.loc19_28.2(%int_1.loc19) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_28.2: init %i32 = converted %int_1.loc19, %int.convert_checked.loc19_28.1 [concrete = constants.%int_1.5d2] @@ -188,7 +188,7 @@ fn Main() { // CHECK:STDOUT: %.loc19_28.3: init %i32 = initialize_from %.loc19_28.2 to %tuple.elem0.loc19 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc19_28.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_28.3: = bound_method %int_2.loc19, %impl.elem0.loc19_28.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc19_28.2: = specific_function %impl.elem0.loc19_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc19_28.2: = specific_function %impl.elem0.loc19_28.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_28.4: = bound_method %int_2.loc19, %specific_fn.loc19_28.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc19_28.2: init %i32 = call %bound_method.loc19_28.4(%int_2.loc19) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc19_28.4: init %i32 = converted %int_2.loc19, %int.convert_checked.loc19_28.2 [concrete = constants.%int_2.ef8] @@ -212,7 +212,7 @@ fn Main() { // CHECK:STDOUT: %int_3.loc20: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0.loc20: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_7.1: = bound_method %int_3.loc20, %impl.elem0.loc20 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_7.2: = bound_method %int_3.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %bound_method.loc20_7.2(%int_3.loc20) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc20: init %i32 = converted %int_3.loc20, %int.convert_checked.loc20 [concrete = constants.%int_3.822] @@ -223,7 +223,7 @@ fn Main() { // CHECK:STDOUT: %int_4.loc21: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc21: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_7.1: = bound_method %int_4.loc21, %impl.elem0.loc21 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_7.2: = bound_method %int_4.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc21: init %i32 = call %bound_method.loc21_7.2(%int_4.loc21) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc21: init %i32 = converted %int_4.loc21, %int.convert_checked.loc21 [concrete = constants.%int_4.940] @@ -238,7 +238,7 @@ fn Main() { // CHECK:STDOUT: %.loc23_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc23, %int_2.loc23) // CHECK:STDOUT: %impl.elem0.loc23_46.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_46.1: = bound_method %int_1.loc23, %impl.elem0.loc23_46.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc23_46.1: = specific_function %impl.elem0.loc23_46.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc23_46.1: = specific_function %impl.elem0.loc23_46.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_46.2: = bound_method %int_1.loc23, %specific_fn.loc23_46.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc23_46.1: init %i32 = call %bound_method.loc23_46.2(%int_1.loc23) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc23_46.2: init %i32 = converted %int_1.loc23, %int.convert_checked.loc23_46.1 [concrete = constants.%int_1.5d2] @@ -246,7 +246,7 @@ fn Main() { // CHECK:STDOUT: %.loc23_46.4: init %i32 = initialize_from %.loc23_46.2 to %.loc23_46.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc23_46.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_46.3: = bound_method %int_2.loc23, %impl.elem0.loc23_46.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc23_46.2: = specific_function %impl.elem0.loc23_46.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc23_46.2: = specific_function %impl.elem0.loc23_46.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_46.4: = bound_method %int_2.loc23, %specific_fn.loc23_46.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc23_46.2: init %i32 = call %bound_method.loc23_46.4(%int_2.loc23) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc23_46.5: init %i32 = converted %int_2.loc23, %int.convert_checked.loc23_46.2 [concrete = constants.%int_2.ef8] @@ -268,7 +268,7 @@ fn Main() { // CHECK:STDOUT: %int_3.loc24: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0.loc24: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc24_7.1: = bound_method %int_3.loc24, %impl.elem0.loc24 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc24_7.2: = bound_method %int_3.loc24, %specific_fn.loc24 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc24: init %i32 = call %bound_method.loc24_7.2(%int_3.loc24) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc24_7: init %i32 = converted %int_3.loc24, %int.convert_checked.loc24 [concrete = constants.%int_3.822] @@ -278,7 +278,7 @@ fn Main() { // CHECK:STDOUT: %int_4.loc25: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc25: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_7.1: = bound_method %int_4.loc25, %impl.elem0.loc25 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_7.2: = bound_method %int_4.loc25, %specific_fn.loc25 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc25: init %i32 = call %bound_method.loc25_7.2(%int_4.loc25) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc25_7: init %i32 = converted %int_4.loc25, %int.convert_checked.loc25 [concrete = constants.%int_4.940] @@ -303,7 +303,7 @@ fn Main() { // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %impl.elem0.loc28: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc28_6.1: = bound_method %int_5, %impl.elem0.loc28 [concrete = constants.%Convert.bound.4e6] -// CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc28_6.2: = bound_method %int_5, %specific_fn.loc28 [concrete = constants.%bound_method.a25] // CHECK:STDOUT: %int.convert_checked.loc28: init %i32 = call %bound_method.loc28_6.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc28_6: init %i32 = converted %int_5, %int.convert_checked.loc28 [concrete = constants.%int_5.0f6] @@ -327,28 +327,28 @@ fn Main() { // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10.64f] // CHECK:STDOUT: %impl.elem0.loc30: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc30_29.1: = bound_method %int_10, %impl.elem0.loc30 [concrete = constants.%Convert.bound.491] -// CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc30_29.2: = bound_method %int_10, %specific_fn.loc30 [concrete = constants.%bound_method.5ba] // CHECK:STDOUT: %int.convert_checked.loc30: init %i32 = call %bound_method.loc30_29.2(%int_10) [concrete = constants.%int_10.265] // CHECK:STDOUT: %.loc30_29: init %i32 = converted %int_10, %int.convert_checked.loc30 [concrete = constants.%int_10.265] // CHECK:STDOUT: assign %.loc30_3, %.loc30_29 // CHECK:STDOUT: %Op.bound.loc27: = bound_method %p.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc27: = bound_method %p.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27_3: %ptr.5d5 = addr_of %p.var // CHECK:STDOUT: %no_op.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27_3) // CHECK:STDOUT: %Op.bound.loc23: = bound_method %c.var, constants.%Op.9db -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.9db, @Op.3(constants.%struct_type.a.b.501) [concrete = constants.%Op.specific_fn.1e0] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.9db, @Op.1(constants.%struct_type.a.b.501) [concrete = constants.%Op.specific_fn.1e0] // CHECK:STDOUT: %bound_method.loc23_3: = bound_method %c.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.3ee = addr_of %c.var // CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) // CHECK:STDOUT: %Op.bound.loc19: = bound_method %b.var, constants.%Op.7c6 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.7c6, @Op.3(constants.%tuple.type.d07) [concrete = constants.%Op.specific_fn.bbb] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.7c6, @Op.1(constants.%tuple.type.d07) [concrete = constants.%Op.specific_fn.bbb] // CHECK:STDOUT: %bound_method.loc19_3: = bound_method %b.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc19: %ptr.261 = addr_of %b.var // CHECK:STDOUT: %no_op.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19) // CHECK:STDOUT: %Op.bound.loc16: = bound_method %a.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %a.var // CHECK:STDOUT: %no_op.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) diff --git a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon index 049de80ebc95..353aade726bb 100644 --- a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon @@ -79,17 +79,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [concrete] @@ -119,9 +119,9 @@ fn Main() { // CHECK:STDOUT: %bound_method.5ba: = bound_method %int_10.64f, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_10.265: %i32 = int_value 10 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -170,7 +170,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc27: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc27: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_7.1: = bound_method %int_1.loc27, %impl.elem0.loc27 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_7.2: = bound_method %int_1.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %bound_method.loc27_7.2(%int_1.loc27) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc27: init %i32 = converted %int_1.loc27, %int.convert_checked.loc27 [concrete = constants.%int_1.5d2] @@ -198,7 +198,7 @@ fn Main() { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc33: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc33_3.1: = bound_method %int_0, %impl.elem0.loc33 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc33_3.2: = bound_method %int_0, %specific_fn.loc33 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc33: init %i32 = call %bound_method.loc33_3.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc33_3: init %i32 = converted %int_0, %int.convert_checked.loc33 [concrete = constants.%int_0.6a9] @@ -216,7 +216,7 @@ fn Main() { // CHECK:STDOUT: %.loc38_17.1: %tuple.type.f94 = tuple_literal (%int_1.loc38, %int_2.loc38) // CHECK:STDOUT: %impl.elem0.loc38_17.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc38_17.1: = bound_method %int_1.loc38, %impl.elem0.loc38_17.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc38_17.1: = specific_function %impl.elem0.loc38_17.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc38_17.1: = specific_function %impl.elem0.loc38_17.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc38_17.2: = bound_method %int_1.loc38, %specific_fn.loc38_17.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc38_17.1: init %i32 = call %bound_method.loc38_17.2(%int_1.loc38) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc38_17.2: init %i32 = converted %int_1.loc38, %int.convert_checked.loc38_17.1 [concrete = constants.%int_1.5d2] @@ -224,7 +224,7 @@ fn Main() { // CHECK:STDOUT: %.loc38_17.3: init %i32 = initialize_from %.loc38_17.2 to %tuple.elem0.loc38 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc38_17.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc38_17.3: = bound_method %int_2.loc38, %impl.elem0.loc38_17.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc38_17.2: = specific_function %impl.elem0.loc38_17.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc38_17.2: = specific_function %impl.elem0.loc38_17.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc38_17.4: = bound_method %int_2.loc38, %specific_fn.loc38_17.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc38_17.2: init %i32 = call %bound_method.loc38_17.4(%int_2.loc38) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc38_17.4: init %i32 = converted %int_2.loc38, %int.convert_checked.loc38_17.2 [concrete = constants.%int_2.ef8] @@ -267,7 +267,7 @@ fn Main() { // CHECK:STDOUT: %i32.loc53: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %impl.elem0.loc53_12: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc53_12.1: = bound_method %int_1.loc53, %impl.elem0.loc53_12 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc53_12: = specific_function %impl.elem0.loc53_12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc53_12: = specific_function %impl.elem0.loc53_12, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_12.2: = bound_method %int_1.loc53, %specific_fn.loc53_12 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc53_12: init %i32 = call %bound_method.loc53_12.2(%int_1.loc53) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc53_12.1: %i32 = value_of_initializer %int.convert_checked.loc53_12 [concrete = constants.%int_1.5d2] @@ -278,7 +278,7 @@ fn Main() { // CHECK:STDOUT: %int_2.loc53: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc53_19: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc53_19.1: = bound_method %int_2.loc53, %impl.elem0.loc53_19 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc53_19: = specific_function %impl.elem0.loc53_19, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc53_19: = specific_function %impl.elem0.loc53_19, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_19.2: = bound_method %int_2.loc53, %specific_fn.loc53_19 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc53_19: init %i32 = call %bound_method.loc53_19.2(%int_2.loc53) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc53_19.1: %i32 = value_of_initializer %int.convert_checked.loc53_19 [concrete = constants.%int_2.ef8] @@ -290,7 +290,7 @@ fn Main() { // CHECK:STDOUT: %int_3.loc53: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0.loc53_27: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc53_27.1: = bound_method %int_3.loc53, %impl.elem0.loc53_27 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc53_27: = specific_function %impl.elem0.loc53_27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc53_27: = specific_function %impl.elem0.loc53_27, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_27.2: = bound_method %int_3.loc53, %specific_fn.loc53_27 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc53_27: init %i32 = call %bound_method.loc53_27.2(%int_3.loc53) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc53_27: init %i32 = converted %int_3.loc53, %int.convert_checked.loc53_27 [concrete = constants.%int_3.822] @@ -323,18 +323,18 @@ fn Main() { // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10.64f] // CHECK:STDOUT: %impl.elem0.loc61: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc61_27.1: = bound_method %int_10, %impl.elem0.loc61 [concrete = constants.%Convert.bound.491] -// CHECK:STDOUT: %specific_fn.loc61: = specific_function %impl.elem0.loc61, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc61: = specific_function %impl.elem0.loc61, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc61_27.2: = bound_method %int_10, %specific_fn.loc61 [concrete = constants.%bound_method.5ba] // CHECK:STDOUT: %int.convert_checked.loc61: init %i32 = call %bound_method.loc61_27.2(%int_10) [concrete = constants.%int_10.265] // CHECK:STDOUT: %.loc61_27: init %i32 = converted %int_10, %int.convert_checked.loc61 [concrete = constants.%int_10.265] // CHECK:STDOUT: assign %.loc61_4, %.loc61_27 // CHECK:STDOUT: %Op.bound.loc56: = bound_method %a.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc56: = bound_method %a.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc56: %ptr.235 = addr_of %a.var // CHECK:STDOUT: %no_op.loc56: init %empty_tuple.type = call %bound_method.loc56(%addr.loc56) // CHECK:STDOUT: %Op.bound.loc33: = bound_method %n.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %n.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.235 = addr_of %n.var // CHECK:STDOUT: %no_op.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) diff --git a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon index 7a32fe91044f..0648b66bf5e0 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -43,17 +43,17 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] @@ -63,10 +63,10 @@ fn Main() { // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.2(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -108,7 +108,7 @@ fn Main() { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc15_25.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc15_25.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -126,7 +126,7 @@ fn Main() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_3.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_3.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc18_3.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc18_3: init %i32 = converted %int_3, %int.convert_checked [concrete = constants.%int_3.822] @@ -147,7 +147,7 @@ fn Main() { // CHECK:STDOUT: %F.call: init %i32 = call %F.ref() // CHECK:STDOUT: assign %a.ref.loc28_3, %F.call // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc18_3.3: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc18_3.3(%addr) diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon index 940d82240713..f8ef3595143e 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon @@ -36,10 +36,10 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.2, @Destroy.impl(bool) [concrete] +// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.1, @Destroy.impl(bool) [concrete] // CHECK:STDOUT: %Op.8b7: %Op.type.655 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.8b7, @Op.2(bool) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.8b7, @Op.1(bool) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -82,7 +82,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref bool = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.8b7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.8b7, @Op.1(bool) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bb2 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon index 275a07fe2970..47bd4593c0c4 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon @@ -39,25 +39,25 @@ fn Main() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %float: f64 = float_literal 5.6000000000000005 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -94,7 +94,7 @@ fn Main() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_3.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc16_3: init %i32 = converted %int_3, %int.convert_checked [concrete = constants.%int_3.822] @@ -109,7 +109,7 @@ fn Main() { // CHECK:STDOUT: %.loc24: %i32 = converted %float, [concrete = ] // CHECK:STDOUT: assign %a.ref, // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr) diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index f7441f3dd1c0..d1b4970c5cd5 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -50,14 +50,14 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.2, @Destroy.impl(bool) [concrete] +// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.1, @Destroy.impl(bool) [concrete] // CHECK:STDOUT: %Op.8b7: %Op.type.655 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %Op.specific_fn.c3f: = specific_function %Op.8b7, @Op.2(bool) [concrete] +// CHECK:STDOUT: %Op.specific_fn.c3f: = specific_function %Op.8b7, @Op.1(bool) [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -327,22 +327,22 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: !.loc26_7: // CHECK:STDOUT: %d: ref %empty_tuple.type = bind_name d, %d.var // CHECK:STDOUT: %Op.bound.loc26: = bound_method %d.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.843 = addr_of %d.var // CHECK:STDOUT: %no_op.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %Op.bound.loc25: = bound_method %c.var, constants.%Op.8b7 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8b7, @Op.1(bool) [concrete = constants.%Op.specific_fn.c3f] // CHECK:STDOUT: %bound_method.loc25: = bound_method %c.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.bb2 = addr_of %c.var // CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) // CHECK:STDOUT: %Op.bound.loc24: = bound_method %b.var, constants.%Op.8b7 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.8b7, @Op.1(bool) [concrete = constants.%Op.specific_fn.c3f] // CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var // CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) // CHECK:STDOUT: %Op.bound.loc23: = bound_method %a.var, constants.%Op.8b7 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.8b7, @Op.1(bool) [concrete = constants.%Op.specific_fn.c3f] // CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %a.var // CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) @@ -392,7 +392,7 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: !.loc30_7: // CHECK:STDOUT: %a: ref bool = bind_name a, %a.var // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.8b7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.8b7, @Op.1(bool) [concrete = constants.%Op.specific_fn.c3f] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bb2 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 8149ddfc1c97..4b874f18c753 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -40,14 +40,14 @@ fn Constant() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.2, @Destroy.impl(bool) [concrete] +// CHECK:STDOUT: %Op.type.655: type = fn_type @Op.1, @Destroy.impl(bool) [concrete] // CHECK:STDOUT: %Op.8b7: %Op.type.655 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %Op.specific_fn.c3f: = specific_function %Op.8b7, @Op.2(bool) [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.c3f: = specific_function %Op.8b7, @Op.1(bool) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -184,12 +184,12 @@ fn Constant() { // CHECK:STDOUT: !.loc24_7: // CHECK:STDOUT: %b: ref bool = bind_name b, %b.var // CHECK:STDOUT: %Op.bound.loc24: = bound_method %b.var, constants.%Op.8b7 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.8b7, @Op.1(bool) [concrete = constants.%Op.specific_fn.c3f] // CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var // CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) // CHECK:STDOUT: %Op.bound.loc23: = bound_method %a.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.843 = addr_of %a.var // CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) diff --git a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon index 7bf1c35d9bea..d2dd8b51c3b3 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon @@ -74,9 +74,9 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %TestIncNonRef: %TestIncNonRef.type = struct_value () [concrete] // CHECK:STDOUT: %.bc7: type = fn_type_with_self_type %Op.type.e3a, %Inc.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.9, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.3, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.9(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.3(%C) [concrete] // CHECK:STDOUT: %TestAddAssignNonRef.type: type = fn_type @TestAddAssignNonRef [concrete] // CHECK:STDOUT: %TestAddAssignNonRef: %TestAddAssignNonRef.type = struct_value () [concrete] // CHECK:STDOUT: %.e2d: type = fn_type_with_self_type %Op.type.5af, %AddAssignWith.facet [concrete] @@ -210,7 +210,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %addr.loc34_5.1: %ptr.019 = addr_of %.loc34 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc34_3(%addr.loc34_5.1) // CHECK:STDOUT: %Op.bound: = bound_method %.loc34, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.9(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc34_5: = bound_method %.loc34, %Op.specific_fn // CHECK:STDOUT: %addr.loc34_5.2: %ptr.019 = addr_of %.loc34 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc34_5(%addr.loc34_5.2) @@ -227,7 +227,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %addr.loc45_3.1: %ptr.019 = addr_of %.loc45 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc45_5(%addr.loc45_3.1, %b.ref) // CHECK:STDOUT: %Op.bound: = bound_method %.loc45, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.9(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.3(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc45_3: = bound_method %.loc45, %Op.specific_fn // CHECK:STDOUT: %addr.loc45_3.2: %ptr.019 = addr_of %.loc45 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc45_3(%addr.loc45_3.2) diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index 6be18f466d3d..d99e55df8082 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -68,10 +68,10 @@ fn TestRef(b: C) { // CHECK:STDOUT: %AddAssignWith.generic: %AddAssignWith.type.fc6 = struct_value () [concrete] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.10, @Destroy.impl(%C) [concrete] +// CHECK:STDOUT: %Op.type.153: type = fn_type @Op.7, @Destroy.impl(%C) [concrete] // CHECK:STDOUT: %Op.5d7: %Op.type.153 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.10(%C) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.5d7, @Op.7(%C) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -181,7 +181,7 @@ fn TestRef(b: C) { // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %a.ref.loc46: ref %C = name_ref a, %a // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.5d7 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.10(constants.%C) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.7(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %a.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index 5be7e8359be3..5a591640c7e9 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -83,10 +83,10 @@ fn Test() { // CHECK:STDOUT: %Source.specific_fn.cc7: = specific_function %Source, @Source(%i32) [concrete] // CHECK:STDOUT: %.9b4: type = fn_type_with_self_type %Convert.type.665, %ImplicitAs.facet.d80 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.3, @Destroy.impl(%X) [concrete] +// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.1, @Destroy.impl(%X) [concrete] // CHECK:STDOUT: %Op.33a: %Op.type.9e1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.33a, @Op.3(%X) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.33a, @Op.1(%X) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -157,10 +157,10 @@ fn Test() { // CHECK:STDOUT: %return.patt: @Source.%pattern_type (%pattern_type.7dcd0a.2) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Source.%pattern_type (%pattern_type.7dcd0a.2) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref.loc31_24: type = name_ref T, %T.loc31_11.1 [symbolic = %T.loc31_11.2 (constants.%T)] -// CHECK:STDOUT: %T.loc31_11.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_11.2 (constants.%T)] -// CHECK:STDOUT: %return.param: ref @Source.%T.loc31_11.2 (%T) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Source.%T.loc31_11.2 (%T) = return_slot %return.param +// CHECK:STDOUT: %T.ref.loc31_24: type = name_ref T, %T.loc31_11.2 [symbolic = %T.loc31_11.1 (constants.%T)] +// CHECK:STDOUT: %T.loc31_11.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_11.1 (constants.%T)] +// CHECK:STDOUT: %return.param: ref @Source.%T.loc31_11.1 (%T) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Source.%T.loc31_11.1 (%T) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] {} {} // CHECK:STDOUT: } @@ -248,22 +248,22 @@ fn Test() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Sink_X(%x.param: %X); // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Source(%T.loc31_11.1: type) { -// CHECK:STDOUT: %T.loc31_11.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_11.2 (constants.%T)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc31_11.2 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.2)] +// CHECK:STDOUT: generic fn @Source(%T.loc31_11.2: type) { +// CHECK:STDOUT: %T.loc31_11.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc31_11.1 (constants.%T)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc31_11.1 [symbolic = %pattern_type (constants.%pattern_type.7dcd0a.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc31_11.2 [symbolic = %require_complete (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Source.specific_fn.loc31_35.2: = specific_function constants.%Source, @Source(%T.loc31_11.2) [symbolic = %Source.specific_fn.loc31_35.2 (constants.%Source.specific_fn.ff0)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.loc31_11.1 [symbolic = %require_complete (constants.%require_complete.4ae)] +// CHECK:STDOUT: %Source.specific_fn.loc31_35.2: = specific_function constants.%Source, @Source(%T.loc31_11.1) [symbolic = %Source.specific_fn.loc31_35.2 (constants.%Source.specific_fn.ff0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @Source.%T.loc31_11.2 (%T) { +// CHECK:STDOUT: fn() -> @Source.%T.loc31_11.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Source.ref: %Source.type = name_ref Source, file.%Source.decl [concrete = constants.%Source] -// CHECK:STDOUT: %T.ref.loc31_42: type = name_ref T, %T.loc31_11.1 [symbolic = %T.loc31_11.2 (constants.%T)] +// CHECK:STDOUT: %T.ref.loc31_42: type = name_ref T, %T.loc31_11.2 [symbolic = %T.loc31_11.1 (constants.%T)] // CHECK:STDOUT: %Source.specific_fn.loc31_35.1: = specific_function %Source.ref, @Source(constants.%T) [symbolic = %Source.specific_fn.loc31_35.2 (constants.%Source.specific_fn.ff0)] -// CHECK:STDOUT: %Source.call: init @Source.%T.loc31_11.2 (%T) = call %Source.specific_fn.loc31_35.1() -// CHECK:STDOUT: %.loc31_44.1: @Source.%T.loc31_11.2 (%T) = value_of_initializer %Source.call -// CHECK:STDOUT: %.loc31_44.2: @Source.%T.loc31_11.2 (%T) = converted %Source.call, %.loc31_44.1 +// CHECK:STDOUT: %Source.call: init @Source.%T.loc31_11.1 (%T) = call %Source.specific_fn.loc31_35.1() +// CHECK:STDOUT: %.loc31_44.1: @Source.%T.loc31_11.1 (%T) = value_of_initializer %Source.call +// CHECK:STDOUT: %.loc31_44.2: @Source.%T.loc31_11.1 (%T) = converted %Source.call, %.loc31_44.1 // CHECK:STDOUT: return %.loc31_44.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -301,12 +301,12 @@ fn Test() { // CHECK:STDOUT: %.loc35_20.6: %X = bind_value %.loc35_20.5 // CHECK:STDOUT: %Sink_X.call: init %empty_tuple.type = call %Sink_X.ref(%.loc35_20.6) // CHECK:STDOUT: %Op.bound.loc35: = bound_method %.loc35_20.1, constants.%Op.33a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.33a, @Op.3(constants.%X) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.33a, @Op.1(constants.%X) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc35_20.2: = bound_method %.loc35_20.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35: %ptr.d17 = addr_of %.loc35_20.1 // CHECK:STDOUT: %no_op.loc35: init %empty_tuple.type = call %bound_method.loc35_20.2(%addr.loc35) // CHECK:STDOUT: %Op.bound.loc34: = bound_method %.loc34_20.1, constants.%Op.33a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.33a, @Op.3(constants.%X) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.33a, @Op.1(constants.%X) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc34_20.2: = bound_method %.loc34_20.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc34: %ptr.d17 = addr_of %.loc34_20.1 // CHECK:STDOUT: %no_op.loc34: init %empty_tuple.type = call %bound_method.loc34_20.2(%addr.loc34) @@ -314,7 +314,7 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%T) { -// CHECK:STDOUT: %T.loc31_11.2 => constants.%T +// CHECK:STDOUT: %T.loc31_11.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dcd0a.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -323,7 +323,7 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%X) { -// CHECK:STDOUT: %T.loc31_11.2 => constants.%X +// CHECK:STDOUT: %T.loc31_11.1 => constants.%X // CHECK:STDOUT: %pattern_type => constants.%pattern_type.019 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -332,7 +332,7 @@ fn Test() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Source(constants.%i32) { -// CHECK:STDOUT: %T.loc31_11.2 => constants.%i32 +// CHECK:STDOUT: %T.loc31_11.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index 08d396d8fc7a..a8dd02e17287 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -185,19 +185,19 @@ fn F() { ()[()]; } // CHECK:STDOUT: %IndexWith.decl: %IndexWith.type.68b = interface_decl @IndexWith [concrete = constants.%IndexWith.generic] { // CHECK:STDOUT: %SubscriptType.patt: %pattern_type.98f = symbolic_binding_pattern SubscriptType, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %SubscriptType.loc4_21.1: type = bind_symbolic_name SubscriptType, 0 [symbolic = %SubscriptType.loc4_21.2 (constants.%SubscriptType)] +// CHECK:STDOUT: %SubscriptType.loc4_21.2: type = bind_symbolic_name SubscriptType, 0 [symbolic = %SubscriptType.loc4_21.1 (constants.%SubscriptType)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic interface @IndexWith(%SubscriptType.loc4_21.1: type) { -// CHECK:STDOUT: %SubscriptType.loc4_21.2: type = bind_symbolic_name SubscriptType, 0 [symbolic = %SubscriptType.loc4_21.2 (constants.%SubscriptType)] +// CHECK:STDOUT: generic interface @IndexWith(%SubscriptType.loc4_21.2: type) { +// CHECK:STDOUT: %SubscriptType.loc4_21.1: type = bind_symbolic_name SubscriptType, 0 [symbolic = %SubscriptType.loc4_21.1 (constants.%SubscriptType)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.loc4_21.2)> [symbolic = %IndexWith.type (constants.%IndexWith.type.b94)] +// CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.loc4_21.1)> [symbolic = %IndexWith.type (constants.%IndexWith.type.b94)] // CHECK:STDOUT: %Self.2: @IndexWith.%IndexWith.type (%IndexWith.type.b94) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] -// CHECK:STDOUT: %At.type: type = fn_type @At, @IndexWith(%SubscriptType.loc4_21.2) [symbolic = %At.type (constants.%At.type)] +// CHECK:STDOUT: %At.type: type = fn_type @At, @IndexWith(%SubscriptType.loc4_21.1) [symbolic = %At.type (constants.%At.type)] // CHECK:STDOUT: %At: @IndexWith.%At.type (%At.type) = struct_value () [symbolic = %At (constants.%At)] -// CHECK:STDOUT: %IndexWith.assoc_type: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.loc4_21.2) [symbolic = %IndexWith.assoc_type (constants.%IndexWith.assoc_type)] +// CHECK:STDOUT: %IndexWith.assoc_type: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.loc4_21.1) [symbolic = %IndexWith.assoc_type (constants.%IndexWith.assoc_type)] // CHECK:STDOUT: %assoc0.loc5_52.2: @IndexWith.%IndexWith.assoc_type (%IndexWith.assoc_type) = assoc_entity element0, %At.decl [symbolic = %assoc0.loc5_52.2 (constants.%assoc0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { @@ -212,16 +212,16 @@ fn F() { ()[()]; } // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc5_51.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc5_51.2: type = converted %.loc5_51.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %self.param: @At.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @At.%Self.as_type.loc5_15.2 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_15.2: @At.%IndexWith.type (%IndexWith.type.b94) = specific_constant @IndexWith.%Self.1, @IndexWith(constants.%SubscriptType) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @At.%IndexWith.type (%IndexWith.type.b94) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.1 [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @At.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @At.%Self.as_type.loc5_15.2 (%Self.as_type) = bind_name self, %self.param // CHECK:STDOUT: %subscript.param: @At.%SubscriptType (%SubscriptType) = value_param call_param1 -// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, @IndexWith.%SubscriptType.loc4_21.1 [symbolic = %SubscriptType (constants.%SubscriptType)] +// CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, @IndexWith.%SubscriptType.loc4_21.2 [symbolic = %SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %subscript: @At.%SubscriptType (%SubscriptType) = bind_name subscript, %subscript.param // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param2 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param @@ -236,26 +236,26 @@ fn F() { ()[()]; } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @At(@IndexWith.%SubscriptType.loc4_21.1: type, @IndexWith.%Self.1: @IndexWith.%IndexWith.type (%IndexWith.type.b94)) { +// CHECK:STDOUT: generic fn @At(@IndexWith.%SubscriptType.loc4_21.2: type, @IndexWith.%Self.1: @IndexWith.%IndexWith.type (%IndexWith.type.b94)) { // CHECK:STDOUT: %SubscriptType: type = bind_symbolic_name SubscriptType, 0 [symbolic = %SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.b94)] // CHECK:STDOUT: %Self: @At.%IndexWith.type (%IndexWith.type.b94) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_9: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type.loc5_9 (constants.%pattern_type.2ad)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc5_9: type = pattern_type %Self.as_type.loc5_15.2 [symbolic = %pattern_type.loc5_9 (constants.%pattern_type.2ad)] // CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %SubscriptType [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @At.%Self.as_type.loc5_15.1 (%Self.as_type), %subscript.param: @At.%SubscriptType (%SubscriptType)) -> %empty_tuple.type; +// CHECK:STDOUT: fn(%self.param: @At.%Self.as_type.loc5_15.2 (%Self.as_type), %subscript.param: @At.%SubscriptType (%SubscriptType)) -> %empty_tuple.type; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IndexWith(constants.%SubscriptType) { -// CHECK:STDOUT: %SubscriptType.loc4_21.2 => constants.%SubscriptType +// CHECK:STDOUT: %SubscriptType.loc4_21.1 => constants.%SubscriptType // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @At(constants.%SubscriptType, constants.%Self) { // CHECK:STDOUT: %SubscriptType => constants.%SubscriptType // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.b94 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.as_type.loc5_15.2 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type.loc5_9 => constants.%pattern_type.2ad // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.7dc // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/package_expr/fail_not_found.carbon b/toolchain/check/testdata/package_expr/fail_not_found.carbon index f99e105c6a8f..5db0abf1542d 100644 --- a/toolchain/check/testdata/package_expr/fail_not_found.carbon +++ b/toolchain/check/testdata/package_expr/fail_not_found.carbon @@ -32,10 +32,10 @@ fn Main() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -75,7 +75,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: %Op.bound: = bound_method %y.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %y.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %y.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index f1883ac4ce89..46612373dca1 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -164,10 +164,10 @@ fn Main() { // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.2(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -240,12 +240,12 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: %Op.bound.loc9: = bound_method %y.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9: = bound_method %y.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.235 = addr_of %y.var // CHECK:STDOUT: %no_op.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %Op.bound.loc7: = bound_method %x.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7_3.3: = bound_method %x.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.235 = addr_of %x.var // CHECK:STDOUT: %no_op.loc7: init %empty_tuple.type = call %bound_method.loc7_3.3(%addr.loc7) diff --git a/toolchain/check/testdata/packages/fail_export_name_params.carbon b/toolchain/check/testdata/packages/fail_export_name_params.carbon index 37b77545310f..7c9b09e18654 100644 --- a/toolchain/check/testdata/packages/fail_export_name_params.carbon +++ b/toolchain/check/testdata/packages/fail_export_name_params.carbon @@ -52,33 +52,33 @@ export C2(T:! type); // CHECK:STDOUT: %C1.decl: %C1.type = class_decl @C1 [concrete = constants.%C1.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc4_10.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_10.2 (constants.%T)] +// CHECK:STDOUT: %T.loc4_10.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_10.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %C2.decl: %C2.type = class_decl @C2 [concrete = constants.%C2.generic] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc5_10.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_10.2 (constants.%T)] +// CHECK:STDOUT: %T.loc5_10.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_10.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C1(%T.loc4_10.2: type) { +// CHECK:STDOUT: %T.loc4_10.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: -// 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: generic class @C2(%T.loc5_10.2: type) { +// CHECK:STDOUT: %T.loc5_10.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc5_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: class; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C1(constants.%T) { -// CHECK:STDOUT: %T.loc4_10.2 => constants.%T +// CHECK:STDOUT: %T.loc4_10.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C2(constants.%T) { -// CHECK:STDOUT: %T.loc5_10.2 => constants.%T +// CHECK:STDOUT: %T.loc5_10.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_b.carbon diff --git a/toolchain/check/testdata/packages/missing_prelude.carbon b/toolchain/check/testdata/packages/missing_prelude.carbon index 4514e00b8ce6..a7db88b6d2f4 100644 --- a/toolchain/check/testdata/packages/missing_prelude.carbon +++ b/toolchain/check/testdata/packages/missing_prelude.carbon @@ -183,18 +183,18 @@ var n: {} = i32; // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_29.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc4_29.2: type = converted %.loc4_29.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %T.loc4_8.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_8.2 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_8.1 [symbolic = %T.loc4_8.2 (constants.%T)] -// CHECK:STDOUT: %N.loc4_18.1: @Int.%T.loc4_8.2 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc4_18.2 (constants.%N)] +// CHECK:STDOUT: %T.loc4_8.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_8.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc4_8.2 [symbolic = %T.loc4_8.1 (constants.%T)] +// CHECK:STDOUT: %N.loc4_18.2: @Int.%T.loc4_8.1 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc4_18.1 (constants.%N)] // CHECK:STDOUT: %return.param: ref %empty_struct_type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_struct_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Int(%T.loc4_8.1: type, %N.loc4_18.1: @Int.%T.loc4_8.2 (%T)) { -// CHECK:STDOUT: %T.loc4_8.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_8.2 (constants.%T)] -// CHECK:STDOUT: %N.loc4_18.2: @Int.%T.loc4_8.2 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc4_18.2 (constants.%N)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_8.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @Int(%T.loc4_8.2: type, %N.loc4_18.2: @Int.%T.loc4_8.1 (%T)) { +// CHECK:STDOUT: %T.loc4_8.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_8.1 (constants.%T)] +// CHECK:STDOUT: %N.loc4_18.1: @Int.%T.loc4_8.1 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc4_18.1 (constants.%N)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc4_8.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -208,8 +208,8 @@ var n: {} = i32; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Int(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.loc4_8.2 => constants.%T -// CHECK:STDOUT: %N.loc4_18.2 => constants.%N +// CHECK:STDOUT: %T.loc4_8.1 => constants.%T +// CHECK:STDOUT: %N.loc4_18.1 => constants.%N // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -319,9 +319,9 @@ var n: {} = i32; // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_29.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc8_29.2: type = converted %.loc8_29.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %T.loc8_8.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.2 (constants.%T)] -// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_8.1 [symbolic = %T.loc8_8.2 (constants.%T)] -// CHECK:STDOUT: %N.loc8_18.1: @Int.%T.loc8_8.2 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc8_18.2 (constants.%N)] +// CHECK:STDOUT: %T.loc8_8.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.1 (constants.%T)] +// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc8_8.2 [symbolic = %T.loc8_8.1 (constants.%T)] +// CHECK:STDOUT: %N.loc8_18.2: @Int.%T.loc8_8.1 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc8_18.1 (constants.%N)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } @@ -337,10 +337,10 @@ var n: {} = i32; // CHECK:STDOUT: %n: ref %empty_tuple.type = bind_name n, %n.var [concrete = %n.var] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Int(%T.loc8_8.1: type, %N.loc8_18.1: @Int.%T.loc8_8.2 (%T)) { -// CHECK:STDOUT: %T.loc8_8.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.2 (constants.%T)] -// CHECK:STDOUT: %N.loc8_18.2: @Int.%T.loc8_8.2 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc8_18.2 (constants.%N)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc8_8.2 [symbolic = %pattern_type (constants.%pattern_type.7dc)] +// CHECK:STDOUT: generic fn @Int(%T.loc8_8.2: type, %N.loc8_18.2: @Int.%T.loc8_8.1 (%T)) { +// CHECK:STDOUT: %T.loc8_8.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.1 (constants.%T)] +// CHECK:STDOUT: %N.loc8_18.1: @Int.%T.loc8_8.1 (%T) = bind_symbolic_name N, 1 [symbolic = %N.loc8_18.1 (constants.%N)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc8_8.1 [symbolic = %pattern_type (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -363,14 +363,14 @@ var n: {} = i32; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Int(constants.%T, constants.%N) { -// CHECK:STDOUT: %T.loc8_8.2 => constants.%T -// CHECK:STDOUT: %N.loc8_18.2 => constants.%N +// CHECK:STDOUT: %T.loc8_8.1 => constants.%T +// CHECK:STDOUT: %N.loc8_18.1 => constants.%N // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Int(Core.IntLiteral, constants.%int_32) { -// CHECK:STDOUT: %T.loc8_8.2 => Core.IntLiteral -// CHECK:STDOUT: %N.loc8_18.2 => constants.%int_32 +// CHECK:STDOUT: %T.loc8_8.1 => Core.IntLiteral +// CHECK:STDOUT: %N.loc8_18.1 => constants.%int_32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.dc0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/patterns/underscore.carbon b/toolchain/check/testdata/patterns/underscore.carbon index 1c8300d8a690..d7b233cca827 100644 --- a/toolchain/check/testdata/patterns/underscore.carbon +++ b/toolchain/check/testdata/patterns/underscore.carbon @@ -131,10 +131,10 @@ fn F() -> {} { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.2, @Destroy.impl(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.type.069: type = fn_type @Op.1, @Destroy.impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %Op.d5a: %Op.type.069 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.2(%empty_struct_type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.d5a, @Op.1(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -203,7 +203,7 @@ fn F() -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: %_.loc9: ref %empty_struct_type = bind_name _, %_.var // CHECK:STDOUT: %Op.bound: = bound_method %_.var, constants.%Op.d5a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d5a, @Op.2(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.d5a, @Op.1(constants.%empty_struct_type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %_.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %_.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -323,13 +323,13 @@ fn F() -> {} { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %_.patt: %pattern_type = symbolic_binding_pattern _, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.loc4_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.2 (constants.%_)] +// CHECK:STDOUT: %_.loc4_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.1 (constants.%_)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%_.loc4_6.1: type) { -// CHECK:STDOUT: %_.loc4_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.2 (constants.%_)] +// CHECK:STDOUT: generic fn @F(%_.loc4_6.2: type) { +// CHECK:STDOUT: %_.loc4_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.1 (constants.%_)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -350,11 +350,11 @@ fn F() -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%_) { -// CHECK:STDOUT: %_.loc4_6.2 => constants.%_ +// CHECK:STDOUT: %_.loc4_6.1 => constants.%_ // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%empty_struct_type) { -// CHECK:STDOUT: %_.loc4_6.2 => constants.%empty_struct_type +// CHECK:STDOUT: %_.loc4_6.1 => constants.%empty_struct_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -390,13 +390,13 @@ fn F() -> {} { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %_.patt: %pattern_type = symbolic_binding_pattern _, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.loc4_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.2 (constants.%_)] +// CHECK:STDOUT: %_.loc4_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.1 (constants.%_)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%_.loc4_6.1: type) { -// CHECK:STDOUT: %_.loc4_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.2 (constants.%_)] +// CHECK:STDOUT: generic fn @F(%_.loc4_6.2: type) { +// CHECK:STDOUT: %_.loc4_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.1 (constants.%_)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } @@ -412,11 +412,11 @@ fn F() -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%_) { -// CHECK:STDOUT: %_.loc4_6.2 => constants.%_ +// CHECK:STDOUT: %_.loc4_6.1 => constants.%_ // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%empty_struct_type) { -// CHECK:STDOUT: %_.loc4_6.2 => constants.%empty_struct_type +// CHECK:STDOUT: %_.loc4_6.1 => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- function_implict.carbon @@ -447,23 +447,23 @@ fn F() -> {} { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %_.patt: %pattern_type = symbolic_binding_pattern _, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.loc4_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.2 (constants.%_)] +// CHECK:STDOUT: %_.loc4_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.1 (constants.%_)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %_.patt: %pattern_type = symbolic_binding_pattern _, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.loc6_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc6_6.2 (constants.%_)] +// CHECK:STDOUT: %_.loc6_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc6_6.1 (constants.%_)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%_.loc4_6.1: type) { -// CHECK:STDOUT: %_.loc4_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.2 (constants.%_)] +// CHECK:STDOUT: generic fn @F(%_.loc4_6.2: type) { +// CHECK:STDOUT: %_.loc4_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc4_6.1 (constants.%_)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%_.loc6_6.1: type) { -// CHECK:STDOUT: %_.loc6_6.2: type = bind_symbolic_name _, 0 [symbolic = %_.loc6_6.2 (constants.%_)] +// CHECK:STDOUT: generic fn @G(%_.loc6_6.2: type) { +// CHECK:STDOUT: %_.loc6_6.1: type = bind_symbolic_name _, 0 [symbolic = %_.loc6_6.1 (constants.%_)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -474,11 +474,11 @@ fn F() -> {} { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%_) { -// CHECK:STDOUT: %_.loc4_6.2 => constants.%_ +// CHECK:STDOUT: %_.loc4_6.1 => constants.%_ // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%_) { -// CHECK:STDOUT: %_.loc6_6.2 => constants.%_ +// CHECK:STDOUT: %_.loc6_6.1 => constants.%_ // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_class.carbon diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index 9193e6c0cf11..544611d36478 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -32,24 +32,24 @@ fn F() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -94,7 +94,7 @@ fn F() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_3.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_3: init %i32 = converted %int_0, %int.convert_checked [concrete = constants.%int_0.6a9] @@ -111,7 +111,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc17_10.1: ref %i32 = deref %addr.loc17_11 // CHECK:STDOUT: %.loc17_10.2: %i32 = bind_value %.loc17_10.1 // CHECK:STDOUT: %Op.bound: = bound_method %n.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %Op.specific_fn // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %n.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index 2f0a5daf5a12..b026b4c8e346 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -43,17 +43,17 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -71,20 +71,20 @@ fn F() { // CHECK:STDOUT: %tuple: %tuple.type.d07 = tuple_value (%int_1.5d2, %int_2.ef8) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.1, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.3(%ptr.235) [concrete] -// CHECK:STDOUT: %Op.type.a4a: type = fn_type @Op.3, @Destroy.impl(%tuple.type.d07) [concrete] +// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.1(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.a4a: type = fn_type @Op.1, @Destroy.impl(%tuple.type.d07) [concrete] // CHECK:STDOUT: %Op.7c6: %Op.type.a4a = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.bbb: = specific_function %Op.7c6, @Op.3(%tuple.type.d07) [concrete] -// CHECK:STDOUT: %Op.type.757: type = fn_type @Op.3, @Destroy.impl(%ptr.3ee) [concrete] +// CHECK:STDOUT: %Op.specific_fn.bbb: = specific_function %Op.7c6, @Op.1(%tuple.type.d07) [concrete] +// CHECK:STDOUT: %Op.type.757: type = fn_type @Op.1, @Destroy.impl(%ptr.3ee) [concrete] // CHECK:STDOUT: %Op.e22: %Op.type.757 = struct_value () [concrete] // CHECK:STDOUT: %ptr.40c: type = ptr_type %ptr.3ee [concrete] -// CHECK:STDOUT: %Op.specific_fn.ce1: = specific_function %Op.e22, @Op.3(%ptr.3ee) [concrete] -// CHECK:STDOUT: %Op.type.da3: type = fn_type @Op.3, @Destroy.impl(%struct_type.a.b.501) [concrete] +// CHECK:STDOUT: %Op.specific_fn.ce1: = specific_function %Op.e22, @Op.1(%ptr.3ee) [concrete] +// CHECK:STDOUT: %Op.type.da3: type = fn_type @Op.1, @Destroy.impl(%struct_type.a.b.501) [concrete] // CHECK:STDOUT: %Op.9db: %Op.type.da3 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.1e0: = specific_function %Op.9db, @Op.3(%struct_type.a.b.501) [concrete] +// CHECK:STDOUT: %Op.specific_fn.1e0: = specific_function %Op.9db, @Op.1(%struct_type.a.b.501) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -123,7 +123,7 @@ fn F() { // CHECK:STDOUT: %.loc16_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc16, %int_2.loc16) // CHECK:STDOUT: %impl.elem0.loc16_46.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_46.1: = bound_method %int_1.loc16, %impl.elem0.loc16_46.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc16_46.1: = specific_function %impl.elem0.loc16_46.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_46.1: = specific_function %impl.elem0.loc16_46.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_46.2: = bound_method %int_1.loc16, %specific_fn.loc16_46.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc16_46.1: init %i32 = call %bound_method.loc16_46.2(%int_1.loc16) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc16_46.2: init %i32 = converted %int_1.loc16, %int.convert_checked.loc16_46.1 [concrete = constants.%int_1.5d2] @@ -131,7 +131,7 @@ fn F() { // CHECK:STDOUT: %.loc16_46.4: init %i32 = initialize_from %.loc16_46.2 to %.loc16_46.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc16_46.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_46.3: = bound_method %int_2.loc16, %impl.elem0.loc16_46.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc16_46.2: = specific_function %impl.elem0.loc16_46.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_46.2: = specific_function %impl.elem0.loc16_46.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_46.4: = bound_method %int_2.loc16, %specific_fn.loc16_46.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc16_46.2: init %i32 = call %bound_method.loc16_46.4(%int_2.loc16) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc16_46.5: init %i32 = converted %int_2.loc16, %int.convert_checked.loc16_46.2 [concrete = constants.%int_2.ef8] @@ -205,7 +205,7 @@ fn F() { // CHECK:STDOUT: %.loc22_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc22, %int_2.loc22) // CHECK:STDOUT: %impl.elem0.loc22_28.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_28.1: = bound_method %int_1.loc22, %impl.elem0.loc22_28.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc22_28.1: = specific_function %impl.elem0.loc22_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc22_28.1: = specific_function %impl.elem0.loc22_28.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_28.2: = bound_method %int_1.loc22, %specific_fn.loc22_28.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc22_28.1: init %i32 = call %bound_method.loc22_28.2(%int_1.loc22) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc22_28.2: init %i32 = converted %int_1.loc22, %int.convert_checked.loc22_28.1 [concrete = constants.%int_1.5d2] @@ -213,7 +213,7 @@ fn F() { // CHECK:STDOUT: %.loc22_28.3: init %i32 = initialize_from %.loc22_28.2 to %tuple.elem0.loc22 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc22_28.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_28.3: = bound_method %int_2.loc22, %impl.elem0.loc22_28.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc22_28.2: = specific_function %impl.elem0.loc22_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc22_28.2: = specific_function %impl.elem0.loc22_28.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_28.4: = bound_method %int_2.loc22, %specific_fn.loc22_28.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc22_28.2: init %i32 = call %bound_method.loc22_28.4(%int_2.loc22) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc22_28.4: init %i32 = converted %int_2.loc22, %int.convert_checked.loc22_28.2 [concrete = constants.%int_2.ef8] @@ -264,37 +264,37 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %t1: ref %ptr.235 = bind_name t1, %t1.var // CHECK:STDOUT: %Op.bound.loc24: = bound_method %t1.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc24: = bound_method %t1.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24_3: %ptr.5d5 = addr_of %t1.var // CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24_3) // CHECK:STDOUT: %Op.bound.loc23: = bound_method %t0.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc23: = bound_method %t0.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23_3: %ptr.5d5 = addr_of %t0.var // CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23_3) // CHECK:STDOUT: %Op.bound.loc22: = bound_method %t.var, constants.%Op.7c6 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.7c6, @Op.3(constants.%tuple.type.d07) [concrete = constants.%Op.specific_fn.bbb] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.7c6, @Op.1(constants.%tuple.type.d07) [concrete = constants.%Op.specific_fn.bbb] // CHECK:STDOUT: %bound_method.loc22_3: = bound_method %t.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.261 = addr_of %t.var // CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22) // CHECK:STDOUT: %Op.bound.loc20: = bound_method %r.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc20: = bound_method %r.var, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc20_3: %ptr.5d5 = addr_of %r.var // CHECK:STDOUT: %no_op.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20_3) // CHECK:STDOUT: %Op.bound.loc19: = bound_method %q.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.5: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.5: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc19: = bound_method %q.var, %Op.specific_fn.5 // CHECK:STDOUT: %addr.loc19_3: %ptr.5d5 = addr_of %q.var // CHECK:STDOUT: %no_op.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19_3) // CHECK:STDOUT: %Op.bound.loc18: = bound_method %p.var, constants.%Op.e22 -// CHECK:STDOUT: %Op.specific_fn.6: = specific_function constants.%Op.e22, @Op.3(constants.%ptr.3ee) [concrete = constants.%Op.specific_fn.ce1] +// CHECK:STDOUT: %Op.specific_fn.6: = specific_function constants.%Op.e22, @Op.1(constants.%ptr.3ee) [concrete = constants.%Op.specific_fn.ce1] // CHECK:STDOUT: %bound_method.loc18: = bound_method %p.var, %Op.specific_fn.6 // CHECK:STDOUT: %addr.loc18_3: %ptr.40c = addr_of %p.var // CHECK:STDOUT: %no_op.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18_3) // CHECK:STDOUT: %Op.bound.loc16: = bound_method %s.var, constants.%Op.9db -// CHECK:STDOUT: %Op.specific_fn.7: = specific_function constants.%Op.9db, @Op.3(constants.%struct_type.a.b.501) [concrete = constants.%Op.specific_fn.1e0] +// CHECK:STDOUT: %Op.specific_fn.7: = specific_function constants.%Op.9db, @Op.1(constants.%struct_type.a.b.501) [concrete = constants.%Op.specific_fn.1e0] // CHECK:STDOUT: %bound_method.loc16_3: = bound_method %s.var, %Op.specific_fn.7 // CHECK:STDOUT: %addr.loc16: %ptr.3ee = addr_of %s.var // CHECK:STDOUT: %no_op.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16) diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index 1b3e2eb57dd9..0b6c529b9f07 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -34,29 +34,29 @@ fn F() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %ptr.235 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.3, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.1, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.3(%ptr.235) [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.1(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn.014: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -101,7 +101,7 @@ fn F() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_3.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_3: init %i32 = converted %int_0, %int.convert_checked [concrete = constants.%int_0.6a9] @@ -130,12 +130,12 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc19_10.1: ref %i32 = deref %.loc19_11 // CHECK:STDOUT: %.loc19_10.2: %i32 = bind_value %.loc19_10.1 // CHECK:STDOUT: %Op.bound.loc17: = bound_method %p.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.3(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method.loc17: = bound_method %p.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc17_3: %ptr.5d5 = addr_of %p.var // CHECK:STDOUT: %no_op.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17_3) // CHECK:STDOUT: %Op.bound.loc16: = bound_method %n.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn.014] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn.014] // CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %n.var // CHECK:STDOUT: %no_op.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) diff --git a/toolchain/check/testdata/pointer/fail_address_of_value.carbon b/toolchain/check/testdata/pointer/fail_address_of_value.carbon index 9c1c109f5a9a..23a4dc683650 100644 --- a/toolchain/check/testdata/pointer/fail_address_of_value.carbon +++ b/toolchain/check/testdata/pointer/fail_address_of_value.carbon @@ -141,10 +141,10 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.c80: type = fn_type @Op.2, @Destroy.impl(%struct_type.a.ba9) [concrete] +// CHECK:STDOUT: %Op.type.c80: type = fn_type @Op.1, @Destroy.impl(%struct_type.a.ba9) [concrete] // CHECK:STDOUT: %Op.691: %Op.type.c80 = struct_value () [concrete] // CHECK:STDOUT: %ptr.1bb: type = ptr_type %struct_type.a.ba9 [concrete] -// CHECK:STDOUT: %Op.specific_fn.51b: = specific_function %Op.691, @Op.2(%struct_type.a.ba9) [concrete] +// CHECK:STDOUT: %Op.specific_fn.51b: = specific_function %Op.691, @Op.1(%struct_type.a.ba9) [concrete] // CHECK:STDOUT: %AddressOfCall.type: type = fn_type @AddressOfCall [concrete] // CHECK:STDOUT: %AddressOfCall: %AddressOfCall.type = struct_value () [concrete] // CHECK:STDOUT: %AddressOfType.type: type = fn_type @AddressOfType [concrete] @@ -158,10 +158,10 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %AddressOfParam.type: type = fn_type @AddressOfParam [concrete] // CHECK:STDOUT: %AddressOfParam: %AddressOfParam.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.2, @Destroy.impl(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.type.ba2: type = fn_type @Op.1, @Destroy.impl(%ptr.235) [concrete] // CHECK:STDOUT: %Op.649: %Op.type.ba2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.2(%ptr.235) [concrete] +// CHECK:STDOUT: %Op.specific_fn.829: = specific_function %Op.649, @Op.1(%ptr.235) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -272,7 +272,7 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: %.loc67: bool = not %true.loc67 [concrete = constants.%false] // CHECK:STDOUT: %addr.loc67: %ptr.bb2 = addr_of [concrete = ] // CHECK:STDOUT: %Op.bound: = bound_method %.loc62_6.1, constants.%Op.691 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.691, @Op.2(constants.%struct_type.a.ba9) [concrete = constants.%Op.specific_fn.51b] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.691, @Op.1(constants.%struct_type.a.ba9) [concrete = constants.%Op.specific_fn.51b] // CHECK:STDOUT: %bound_method: = bound_method %.loc62_6.1, %Op.specific_fn // CHECK:STDOUT: %addr.loc62_6: %ptr.1bb = addr_of %.loc62_6.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr.loc62_6) @@ -330,7 +330,7 @@ fn AddressOfParam(param: i32) { // CHECK:STDOUT: } // CHECK:STDOUT: %param_addr: ref %ptr.235 = bind_name param_addr, %param_addr.var // CHECK:STDOUT: %Op.bound: = bound_method %param_addr.var, constants.%Op.649 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.649, @Op.2(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.649, @Op.1(constants.%ptr.235) [concrete = constants.%Op.specific_fn.829] // CHECK:STDOUT: %bound_method: = bound_method %param_addr.var, %Op.specific_fn // CHECK:STDOUT: %addr.loc104_3: %ptr.5d5 = addr_of %param_addr.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr.loc104_3) diff --git a/toolchain/check/testdata/return/code_after_return_value.carbon b/toolchain/check/testdata/return/code_after_return_value.carbon index 9f42541eaa7e..4af17ddd8f55 100644 --- a/toolchain/check/testdata/return/code_after_return_value.carbon +++ b/toolchain/check/testdata/return/code_after_return_value.carbon @@ -41,17 +41,17 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -102,7 +102,7 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_11.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] diff --git a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon index 6f1e3a09b735..d6e15685e25e 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -52,25 +52,25 @@ fn G() -> C { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [concrete] @@ -159,7 +159,7 @@ fn G() -> C { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_12.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_12: init %i32 = converted %int_0, %int.convert_checked [concrete = constants.%int_0.6a9] @@ -171,7 +171,7 @@ fn G() -> C { // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %Op.bound: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_12.3: = bound_method %v.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc16_12.3(%addr) @@ -189,7 +189,7 @@ fn G() -> C { // CHECK:STDOUT: %.loc29_38.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %impl.elem0.loc29_38.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc29_38.1: = bound_method %int_1, %impl.elem0.loc29_38.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc29_38.1: = specific_function %impl.elem0.loc29_38.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc29_38.1: = specific_function %impl.elem0.loc29_38.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc29_38.2: = bound_method %int_1, %specific_fn.loc29_38.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc29_38.1: init %i32 = call %bound_method.loc29_38.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc29_38.2: init %i32 = converted %int_1, %int.convert_checked.loc29_38.1 [concrete = constants.%int_1.5d2] @@ -197,7 +197,7 @@ fn G() -> C { // CHECK:STDOUT: %.loc29_38.4: init %i32 = initialize_from %.loc29_38.2 to %.loc29_38.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc29_38.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc29_38.3: = bound_method %int_2, %impl.elem0.loc29_38.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc29_38.2: = specific_function %impl.elem0.loc29_38.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc29_38.2: = specific_function %impl.elem0.loc29_38.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc29_38.4: = bound_method %int_2, %specific_fn.loc29_38.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc29_38.2: init %i32 = call %bound_method.loc29_38.4(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc29_38.5: init %i32 = converted %int_2, %int.convert_checked.loc29_38.2 [concrete = constants.%int_2.ef8] diff --git a/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon b/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon index 158241d9b7b7..a947ae5ff26d 100644 --- a/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon @@ -57,10 +57,10 @@ fn ForgotReturnType() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -98,7 +98,7 @@ fn ForgotReturnType() { // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %empty_tuple.type = bind_name v, %v.var // CHECK:STDOUT: %Op.bound: = bound_method %v.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %v.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %v.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -114,10 +114,10 @@ fn ForgotReturnType() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -155,7 +155,7 @@ fn ForgotReturnType() { // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %empty_tuple.type = bind_name v, %v.var // CHECK:STDOUT: %Op.bound: = bound_method %v.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %v.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %v.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index ae4b8cc434b7..df46159d9bbb 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -60,17 +60,17 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] @@ -78,10 +78,10 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: %DifferentScopes.type: type = fn_type @DifferentScopes [concrete] // CHECK:STDOUT: %DifferentScopes: %DifferentScopes.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -142,7 +142,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %int_0.loc17: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc17: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_14.1: = bound_method %int_0.loc17, %impl.elem0.loc17 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_14.2: = bound_method %int_0.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %bound_method.loc17_14.2(%int_0.loc17) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc17_14: init %i32 = converted %int_0.loc17, %int.convert_checked.loc17 [concrete = constants.%int_0.6a9] @@ -160,7 +160,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc25: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_14.1: = bound_method %int_1, %impl.elem0.loc25 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc25: = specific_function %impl.elem0.loc25, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_14.2: = bound_method %int_1, %specific_fn.loc25 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc25: init %i32 = call %bound_method.loc25_14.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc25_14: init %i32 = converted %int_1, %int.convert_checked.loc25 [concrete = constants.%int_1.5d2] @@ -176,18 +176,18 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %int_0.loc27: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc27: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_11.1: = bound_method %int_0.loc27, %impl.elem0.loc27 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_11.2: = bound_method %int_0.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %bound_method.loc27_11.2(%int_0.loc27) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc27_11.1: %i32 = value_of_initializer %int.convert_checked.loc27 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc27_11.2: %i32 = converted %int_0.loc27, %.loc27_11.1 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %Op.bound.loc25: = bound_method %w.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc25_14.3: = bound_method %w.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %w.var // CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25_14.3(%addr.loc25) // CHECK:STDOUT: %Op.bound.loc17: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) @@ -208,7 +208,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %int_0.loc32: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc32: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc32_14.1: = bound_method %int_0.loc32, %impl.elem0.loc32 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc32_14.2: = bound_method %int_0.loc32, %specific_fn.loc32 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc32: init %i32 = call %bound_method.loc32_14.2(%int_0.loc32) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc32_14: init %i32 = converted %int_0.loc32, %int.convert_checked.loc32 [concrete = constants.%int_0.6a9] @@ -230,7 +230,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc41: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc41_16.1: = bound_method %int_1, %impl.elem0.loc41 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc41: = specific_function %impl.elem0.loc41, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc41: = specific_function %impl.elem0.loc41, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc41_16.2: = bound_method %int_1, %specific_fn.loc41 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc41: init %i32 = call %bound_method.loc41_16.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc41_16: init %i32 = converted %int_1, %int.convert_checked.loc41 [concrete = constants.%int_1.5d2] @@ -249,18 +249,18 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %int_0.loc44: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc44: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc44_11.1: = bound_method %int_0.loc44, %impl.elem0.loc44 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc44: = specific_function %impl.elem0.loc44, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc44: = specific_function %impl.elem0.loc44, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc44_11.2: = bound_method %int_0.loc44, %specific_fn.loc44 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc44: init %i32 = call %bound_method.loc44_11.2(%int_0.loc44) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc44_11.1: %i32 = value_of_initializer %int.convert_checked.loc44 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc44_11.2: %i32 = converted %int_0.loc44, %.loc44_11.1 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %Op.bound.loc41: = bound_method %w.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc41_16.3: = bound_method %w.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.235 = addr_of %w.var // CHECK:STDOUT: %no_op.loc41: init %empty_tuple.type = call %bound_method.loc41_16.3(%addr.loc41) // CHECK:STDOUT: %Op.bound.loc32: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc32_14.3: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc32: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op.loc32: init %empty_tuple.type = call %bound_method.loc32_14.3(%addr.loc32) diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index b592feeabb98..c5c1ae3bbc1d 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -41,10 +41,10 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %pattern_type.3de: type = pattern_type f64 [concrete] // CHECK:STDOUT: %float: f64 = float_literal 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.3ef: type = fn_type @Op.2, @Destroy.impl(f64) [concrete] +// CHECK:STDOUT: %Op.type.3ef: type = fn_type @Op.1, @Destroy.impl(f64) [concrete] // CHECK:STDOUT: %Op.868: %Op.type.3ef = struct_value () [concrete] // CHECK:STDOUT: %ptr.ef1: type = ptr_type f64 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.868, @Op.2(f64) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.868, @Op.1(f64) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -95,7 +95,7 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %v: ref f64 = bind_name v, %v.var // CHECK:STDOUT: %.loc23_16: f64 = bind_value %v // CHECK:STDOUT: %Op.bound: = bound_method %v.var, constants.%Op.868 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.868, @Op.2(f64) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.868, @Op.1(f64) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %v.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ef1 = addr_of %v.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/return/import_convert_function.carbon b/toolchain/check/testdata/return/import_convert_function.carbon index 7a87e9fab668..4b7d5321e849 100644 --- a/toolchain/check/testdata/return/import_convert_function.carbon +++ b/toolchain/check/testdata/return/import_convert_function.carbon @@ -74,17 +74,17 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.921: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.921 [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %D.val: %D = struct_value (%int_0.6a9, %int_0.6a9) [concrete] @@ -95,10 +95,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.type.cd0: type = fn_type @Convert.loc8 [concrete] // CHECK:STDOUT: %Convert.b95: %Convert.type.cd0 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.3, @Destroy.impl(%D) [concrete] +// CHECK:STDOUT: %Op.type.548: type = fn_type @Op.2, @Destroy.impl(%D) [concrete] // CHECK:STDOUT: %Op.2d4: %Op.type.548 = struct_value () [concrete] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.3(%D) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.2d4, @Op.2(%D) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -194,7 +194,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.51e)] +// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.1 (constants.%N.51e)] // CHECK:STDOUT: } // CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {} // CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] { @@ -210,7 +210,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_9.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_9.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc8_9.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc8_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] @@ -228,7 +228,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_9.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_9.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc9_9.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_1.5d2] @@ -246,7 +246,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_9.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_9.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc10_9.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc10_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_2.ef8] @@ -264,7 +264,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_9.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_9.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc11_9.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc11_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_3.822] @@ -282,7 +282,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_9.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_9.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc12_9.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc12_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_4.940] @@ -300,7 +300,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_9.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound.4e6] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_9.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.a25] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc13_9.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc13_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_5.0f6] @@ -318,7 +318,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_9.1: = bound_method %int_6, %impl.elem0 [concrete = constants.%Convert.bound.ce9] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_9.2: = bound_method %int_6, %specific_fn [concrete = constants.%bound_method.efa] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc14_9.2(%int_6) [concrete = constants.%int_6.e56] // CHECK:STDOUT: %.loc14_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_6.e56] @@ -336,7 +336,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_9.1: = bound_method %int_7, %impl.elem0 [concrete = constants.%Convert.bound.208] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_9.2: = bound_method %int_7, %specific_fn [concrete = constants.%bound_method.3bd] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc15_9.2(%int_7) [concrete = constants.%int_7.0b1] // CHECK:STDOUT: %.loc15_9.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_7.0b1] @@ -527,8 +527,8 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: witness = file.%ImplicitAs.impl_witness.loc15 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%N.loc4_9.1: %i32) { -// CHECK:STDOUT: %N.loc4_9.2: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.2 (constants.%N.51e)] +// CHECK:STDOUT: generic class @C(%N.loc4_9.2: %i32) { +// CHECK:STDOUT: %N.loc4_9.1: %i32 = bind_symbolic_name N, 0 [symbolic = %N.loc4_9.1 (constants.%N.51e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -566,7 +566,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc6_40.1: %struct_type.n.m.819 = struct_literal (%int_0.loc6_31, %int_0.loc6_39) // CHECK:STDOUT: %impl.elem0.loc6_40.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_40.1: = bound_method %int_0.loc6_31, %impl.elem0.loc6_40.1 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc6_40.1: = specific_function %impl.elem0.loc6_40.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc6_40.1: = specific_function %impl.elem0.loc6_40.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_40.2: = bound_method %int_0.loc6_31, %specific_fn.loc6_40.1 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc6_40.1: init %i32 = call %bound_method.loc6_40.2(%int_0.loc6_31) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_40.2: init %i32 = converted %int_0.loc6_31, %int.convert_checked.loc6_40.1 [concrete = constants.%int_0.6a9] @@ -574,7 +574,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc6_40.4: init %i32 = initialize_from %.loc6_40.2 to %.loc6_40.3 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %impl.elem0.loc6_40.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_40.3: = bound_method %int_0.loc6_39, %impl.elem0.loc6_40.2 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc6_40.2: = specific_function %impl.elem0.loc6_40.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc6_40.2: = specific_function %impl.elem0.loc6_40.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_40.4: = bound_method %int_0.loc6_39, %specific_fn.loc6_40.2 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc6_40.2: init %i32 = call %bound_method.loc6_40.4(%int_0.loc6_39) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc6_40.5: init %i32 = converted %int_0.loc6_39, %int.convert_checked.loc6_40.2 [concrete = constants.%int_0.6a9] @@ -591,7 +591,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc8: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc8 // CHECK:STDOUT: %Op.bound: = bound_method %.loc8, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc8, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc8 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -604,7 +604,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc9: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc9 // CHECK:STDOUT: %Op.bound: = bound_method %.loc9, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc9, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc9 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -617,7 +617,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc10: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc10 // CHECK:STDOUT: %Op.bound: = bound_method %.loc10, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc10, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc10 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -630,7 +630,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc11: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc11 // CHECK:STDOUT: %Op.bound: = bound_method %.loc11, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc11, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc11 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -643,7 +643,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc12: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc12 // CHECK:STDOUT: %Op.bound: = bound_method %.loc12, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc12, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc12 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -656,7 +656,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc13: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc13 // CHECK:STDOUT: %Op.bound: = bound_method %.loc13, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc13, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc13 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -669,7 +669,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc14: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc14 // CHECK:STDOUT: %Op.bound: = bound_method %.loc14, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc14, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc14 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -682,7 +682,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc15: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc15 // CHECK:STDOUT: %Op.bound: = bound_method %.loc15, constants.%Op.2d4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.3(constants.%D) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.2d4, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc15, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.19c = addr_of %.loc15 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -690,53 +690,53 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%N.51e) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%N.51e +// CHECK:STDOUT: %N.loc4_9.1 => constants.%N.51e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_0.6a9) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_0.6a9 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_0.6a9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_1.5d2) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_1.5d2 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_1.5d2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_2.ef8) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_2.ef8 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_2.ef8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_3.822) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_3.822 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_3.822 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_4.940) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_4.940 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_4.940 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_5.0f6) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_5.0f6 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_5.0f6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_6.e56) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_6.e56 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_6.e56 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%int_7.0b1) { -// CHECK:STDOUT: %N.loc4_9.2 => constants.%int_7.0b1 +// CHECK:STDOUT: %N.loc4_9.1 => constants.%int_7.0b1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -766,23 +766,23 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.10, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet.921: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.921 [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %C.b00: type = class_type @C, @C(%int_0.6a9) [concrete] // CHECK:STDOUT: %C.val.452: %C.b00 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.5f9: type = facet_type <@ImplicitAs, @ImplicitAs(%D)> [concrete] -// CHECK:STDOUT: %Convert.type.334: type = fn_type @Convert.1, @ImplicitAs(%D) [concrete] +// CHECK:STDOUT: %Convert.type.334: type = fn_type @Convert.10, @ImplicitAs(%D) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %C.674: type = class_type @C, @C(%int_1.5d2) [concrete] @@ -801,16 +801,16 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.f53: = impl_witness imports.%ImplicitAs.impl_witness_table.f4b [concrete] // CHECK:STDOUT: %ImplicitAs.facet.014: %ImplicitAs.type.5f9 = facet_value %C.b00, (%ImplicitAs.impl_witness.f53) [concrete] // CHECK:STDOUT: %.a9c: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.014 [concrete] -// CHECK:STDOUT: %Convert.type.971: type = fn_type @Convert.7 [concrete] +// CHECK:STDOUT: %Convert.type.971: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.bf9: %Convert.type.971 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.69c: type = fn_type @Op.2, @Destroy.impl(%D) [concrete] +// CHECK:STDOUT: %Op.type.69c: type = fn_type @Op.1, @Destroy.impl(%D) [concrete] // CHECK:STDOUT: %Op.f5a: %Op.type.69c = struct_value () [concrete] // CHECK:STDOUT: %ptr.f29: type = ptr_type %D [concrete] -// CHECK:STDOUT: %Op.specific_fn.bd1: = specific_function %Op.f5a, @Op.2(%D) [concrete] -// CHECK:STDOUT: %Op.type.94c: type = fn_type @Op.2, @Destroy.impl(%C.b00) [concrete] +// CHECK:STDOUT: %Op.specific_fn.bd1: = specific_function %Op.f5a, @Op.1(%D) [concrete] +// CHECK:STDOUT: %Op.type.94c: type = fn_type @Op.1, @Destroy.impl(%C.b00) [concrete] // CHECK:STDOUT: %Op.ae6: %Op.type.94c = struct_value () [concrete] // CHECK:STDOUT: %ptr.697: type = ptr_type %C.b00 [concrete] -// CHECK:STDOUT: %Op.specific_fn.e42: = specific_function %Op.ae6, @Op.2(%C.b00) [concrete] +// CHECK:STDOUT: %Op.specific_fn.e42: = specific_function %Op.ae6, @Op.1(%C.b00) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -818,12 +818,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.fcb: = impl_witness imports.%ImplicitAs.impl_witness_table.297 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.b8a: %ImplicitAs.type.5f9 = facet_value %C.674, (%ImplicitAs.impl_witness.fcb) [concrete] // CHECK:STDOUT: %.7d6: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.b8a [concrete] -// CHECK:STDOUT: %Convert.type.bdd: type = fn_type @Convert.8 [concrete] +// CHECK:STDOUT: %Convert.type.bdd: type = fn_type @Convert.3 [concrete] // CHECK:STDOUT: %Convert.c82: %Convert.type.bdd = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.b6b: type = fn_type @Op.2, @Destroy.impl(%C.674) [concrete] +// CHECK:STDOUT: %Op.type.b6b: type = fn_type @Op.1, @Destroy.impl(%C.674) [concrete] // CHECK:STDOUT: %Op.ad8: %Op.type.b6b = struct_value () [concrete] // CHECK:STDOUT: %ptr.625: type = ptr_type %C.674 [concrete] -// CHECK:STDOUT: %Op.specific_fn.6b6: = specific_function %Op.ad8, @Op.2(%C.674) [concrete] +// CHECK:STDOUT: %Op.specific_fn.6b6: = specific_function %Op.ad8, @Op.1(%C.674) [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.b92: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -831,12 +831,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.746: = impl_witness imports.%ImplicitAs.impl_witness_table.8b3 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.d55: %ImplicitAs.type.5f9 = facet_value %C.681, (%ImplicitAs.impl_witness.746) [concrete] // CHECK:STDOUT: %.987: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.d55 [concrete] -// CHECK:STDOUT: %Convert.type.4c1: type = fn_type @Convert.9 [concrete] +// CHECK:STDOUT: %Convert.type.4c1: type = fn_type @Convert.4 [concrete] // CHECK:STDOUT: %Convert.08c: %Convert.type.4c1 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.a31: type = fn_type @Op.2, @Destroy.impl(%C.681) [concrete] +// CHECK:STDOUT: %Op.type.a31: type = fn_type @Op.1, @Destroy.impl(%C.681) [concrete] // CHECK:STDOUT: %Op.404: %Op.type.a31 = struct_value () [concrete] // CHECK:STDOUT: %ptr.3bd: type = ptr_type %C.681 [concrete] -// CHECK:STDOUT: %Op.specific_fn.822: = specific_function %Op.404, @Op.2(%C.681) [concrete] +// CHECK:STDOUT: %Op.specific_fn.822: = specific_function %Op.404, @Op.1(%C.681) [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -844,12 +844,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.f79: = impl_witness imports.%ImplicitAs.impl_witness_table.db0 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.aa1: %ImplicitAs.type.5f9 = facet_value %C.7ac, (%ImplicitAs.impl_witness.f79) [concrete] // CHECK:STDOUT: %.efa: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.aa1 [concrete] -// CHECK:STDOUT: %Convert.type.f89: type = fn_type @Convert.10 [concrete] +// CHECK:STDOUT: %Convert.type.f89: type = fn_type @Convert.5 [concrete] // CHECK:STDOUT: %Convert.2dd: %Convert.type.f89 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.100: type = fn_type @Op.2, @Destroy.impl(%C.7ac) [concrete] +// CHECK:STDOUT: %Op.type.100: type = fn_type @Op.1, @Destroy.impl(%C.7ac) [concrete] // CHECK:STDOUT: %Op.9cf: %Op.type.100 = struct_value () [concrete] // CHECK:STDOUT: %ptr.2b1: type = ptr_type %C.7ac [concrete] -// CHECK:STDOUT: %Op.specific_fn.694: = specific_function %Op.9cf, @Op.2(%C.7ac) [concrete] +// CHECK:STDOUT: %Op.specific_fn.694: = specific_function %Op.9cf, @Op.1(%C.7ac) [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.1da: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] @@ -857,12 +857,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.16c: = impl_witness imports.%ImplicitAs.impl_witness_table.54d [concrete] // CHECK:STDOUT: %ImplicitAs.facet.750: %ImplicitAs.type.5f9 = facet_value %C.89d, (%ImplicitAs.impl_witness.16c) [concrete] // CHECK:STDOUT: %.26e: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.750 [concrete] -// CHECK:STDOUT: %Convert.type.2ce: type = fn_type @Convert.11 [concrete] +// CHECK:STDOUT: %Convert.type.2ce: type = fn_type @Convert.6 [concrete] // CHECK:STDOUT: %Convert.009: %Convert.type.2ce = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.86c: type = fn_type @Op.2, @Destroy.impl(%C.89d) [concrete] +// CHECK:STDOUT: %Op.type.86c: type = fn_type @Op.1, @Destroy.impl(%C.89d) [concrete] // CHECK:STDOUT: %Op.6b4: %Op.type.86c = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28b: type = ptr_type %C.89d [concrete] -// CHECK:STDOUT: %Op.specific_fn.357: = specific_function %Op.6b4, @Op.2(%C.89d) [concrete] +// CHECK:STDOUT: %Op.specific_fn.357: = specific_function %Op.6b4, @Op.1(%C.89d) [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.a25: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -870,12 +870,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.aa9: = impl_witness imports.%ImplicitAs.impl_witness_table.e3f [concrete] // CHECK:STDOUT: %ImplicitAs.facet.8cc: %ImplicitAs.type.5f9 = facet_value %C.f0a, (%ImplicitAs.impl_witness.aa9) [concrete] // CHECK:STDOUT: %.eaf: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.8cc [concrete] -// CHECK:STDOUT: %Convert.type.e9d: type = fn_type @Convert.12 [concrete] +// CHECK:STDOUT: %Convert.type.e9d: type = fn_type @Convert.7 [concrete] // CHECK:STDOUT: %Convert.b66: %Convert.type.e9d = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.4df: type = fn_type @Op.2, @Destroy.impl(%C.f0a) [concrete] +// CHECK:STDOUT: %Op.type.4df: type = fn_type @Op.1, @Destroy.impl(%C.f0a) [concrete] // CHECK:STDOUT: %Op.985: %Op.type.4df = struct_value () [concrete] // CHECK:STDOUT: %ptr.24c: type = ptr_type %C.f0a [concrete] -// CHECK:STDOUT: %Op.specific_fn.a66: = specific_function %Op.985, @Op.2(%C.f0a) [concrete] +// CHECK:STDOUT: %Op.specific_fn.a66: = specific_function %Op.985, @Op.1(%C.f0a) [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] // CHECK:STDOUT: %Convert.bound.ce9: = bound_method %int_6.462, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.efa: = bound_method %int_6.462, %Convert.specific_fn [concrete] @@ -883,12 +883,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.e4d: = impl_witness imports.%ImplicitAs.impl_witness_table.b31 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.a69: %ImplicitAs.type.5f9 = facet_value %C.c60, (%ImplicitAs.impl_witness.e4d) [concrete] // CHECK:STDOUT: %.874: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.a69 [concrete] -// CHECK:STDOUT: %Convert.type.4b8: type = fn_type @Convert.13 [concrete] +// CHECK:STDOUT: %Convert.type.4b8: type = fn_type @Convert.8 [concrete] // CHECK:STDOUT: %Convert.f59: %Convert.type.4b8 = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.32d: type = fn_type @Op.2, @Destroy.impl(%C.c60) [concrete] +// CHECK:STDOUT: %Op.type.32d: type = fn_type @Op.1, @Destroy.impl(%C.c60) [concrete] // CHECK:STDOUT: %Op.ca5: %Op.type.32d = struct_value () [concrete] // CHECK:STDOUT: %ptr.b5e: type = ptr_type %C.c60 [concrete] -// CHECK:STDOUT: %Op.specific_fn.8d0: = specific_function %Op.ca5, @Op.2(%C.c60) [concrete] +// CHECK:STDOUT: %Op.specific_fn.8d0: = specific_function %Op.ca5, @Op.1(%C.c60) [concrete] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] // CHECK:STDOUT: %Convert.bound.208: = bound_method %int_7.29f, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.3bd: = bound_method %int_7.29f, %Convert.specific_fn [concrete] @@ -896,12 +896,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %ImplicitAs.impl_witness.0ca: = impl_witness imports.%ImplicitAs.impl_witness_table.056 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.cca: %ImplicitAs.type.5f9 = facet_value %C.304, (%ImplicitAs.impl_witness.0ca) [concrete] // CHECK:STDOUT: %.79b: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.cca [concrete] -// CHECK:STDOUT: %Convert.type.c7e: type = fn_type @Convert.14 [concrete] +// CHECK:STDOUT: %Convert.type.c7e: type = fn_type @Convert.9 [concrete] // CHECK:STDOUT: %Convert.6c1: %Convert.type.c7e = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.986: type = fn_type @Op.2, @Destroy.impl(%C.304) [concrete] +// CHECK:STDOUT: %Op.type.986: type = fn_type @Op.1, @Destroy.impl(%C.304) [concrete] // CHECK:STDOUT: %Op.6fc: %Op.type.986 = struct_value () [concrete] // CHECK:STDOUT: %ptr.dc3: type = ptr_type %C.304 [concrete] -// CHECK:STDOUT: %Op.specific_fn.a08: = specific_function %Op.6fc, @Op.2(%C.304) [concrete] +// CHECK:STDOUT: %Op.specific_fn.a08: = specific_function %Op.6fc, @Op.1(%C.304) [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1078,7 +1078,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc7_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_34.1: = bound_method %int_0, %impl.elem0.loc7_34 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_34.2: = bound_method %int_0, %specific_fn.loc7 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc7: init %i32 = call %bound_method.loc7_34.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc7_34.1: %i32 = value_of_initializer %int.convert_checked.loc7 [concrete = constants.%int_0.6a9] @@ -1095,12 +1095,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc7: init %D = call %bound_method.loc7_35.1(%.loc7_26.2) to %.loc7_35.1 // CHECK:STDOUT: %.loc7_35.2: init %D = converted %.loc7_26.1, %Convert.call.loc7 // CHECK:STDOUT: %Op.bound.loc7_35.1: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.2: = bound_method %.loc7_35.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc7_35.1: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.1: init %empty_tuple.type = call %bound_method.loc7_35.2(%addr.loc7_35.1) // CHECK:STDOUT: %Op.bound.loc7_24.1: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.1: = bound_method %.loc7_24.2, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7_24.1: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.1: init %empty_tuple.type = call %bound_method.loc7_24.1(%addr.loc7_24.1) @@ -1117,7 +1117,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc8_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_34.1: = bound_method %int_1, %impl.elem0.loc8_34 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_34.2: = bound_method %int_1, %specific_fn.loc8 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc8: init %i32 = call %bound_method.loc8_34.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %int.convert_checked.loc8 [concrete = constants.%int_1.5d2] @@ -1134,22 +1134,22 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc8: init %D = call %bound_method.loc8_35.1(%.loc8_26.2) to %.loc8_35.1 // CHECK:STDOUT: %.loc8_35.2: init %D = converted %.loc8_26.1, %Convert.call.loc8 // CHECK:STDOUT: %Op.bound.loc8_35.1: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.2: = bound_method %.loc8_35.1, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_35.1: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.1: init %empty_tuple.type = call %bound_method.loc8_35.2(%addr.loc8_35.1) // CHECK:STDOUT: %Op.bound.loc8_24.1: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.1: = bound_method %.loc8_24.2, %Op.specific_fn.4 // CHECK:STDOUT: %addr.loc8_24.1: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.1: init %empty_tuple.type = call %bound_method.loc8_24.1(%addr.loc8_24.1) // CHECK:STDOUT: %Op.bound.loc7_35.2: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.5: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.5: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.3: = bound_method %.loc7_35.1, %Op.specific_fn.5 // CHECK:STDOUT: %addr.loc7_35.2: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.2: init %empty_tuple.type = call %bound_method.loc7_35.3(%addr.loc7_35.2) // CHECK:STDOUT: %Op.bound.loc7_24.2: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.6: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.6: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.2: = bound_method %.loc7_24.2, %Op.specific_fn.6 // CHECK:STDOUT: %addr.loc7_24.2: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.2: init %empty_tuple.type = call %bound_method.loc7_24.2(%addr.loc7_24.2) @@ -1166,7 +1166,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc9_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_34.1: = bound_method %int_2, %impl.elem0.loc9_34 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_34.2: = bound_method %int_2, %specific_fn.loc9 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc9: init %i32 = call %bound_method.loc9_34.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %int.convert_checked.loc9 [concrete = constants.%int_2.ef8] @@ -1183,32 +1183,32 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc9: init %D = call %bound_method.loc9_35.1(%.loc9_26.2) to %.loc9_35.1 // CHECK:STDOUT: %.loc9_35.2: init %D = converted %.loc9_26.1, %Convert.call.loc9 // CHECK:STDOUT: %Op.bound.loc9_35.1: = bound_method %.loc9_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.7: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.7: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc9_35.2: = bound_method %.loc9_35.1, %Op.specific_fn.7 // CHECK:STDOUT: %addr.loc9_35.1: %ptr.f29 = addr_of %.loc9_35.1 // CHECK:STDOUT: %no_op.loc9_35.1: init %empty_tuple.type = call %bound_method.loc9_35.2(%addr.loc9_35.1) // CHECK:STDOUT: %Op.bound.loc9_24.1: = bound_method %.loc9_24.2, constants.%Op.404 -// CHECK:STDOUT: %Op.specific_fn.8: = specific_function constants.%Op.404, @Op.2(constants.%C.681) [concrete = constants.%Op.specific_fn.822] +// CHECK:STDOUT: %Op.specific_fn.8: = specific_function constants.%Op.404, @Op.1(constants.%C.681) [concrete = constants.%Op.specific_fn.822] // CHECK:STDOUT: %bound_method.loc9_24.1: = bound_method %.loc9_24.2, %Op.specific_fn.8 // CHECK:STDOUT: %addr.loc9_24.1: %ptr.3bd = addr_of %.loc9_24.2 // CHECK:STDOUT: %no_op.loc9_24.1: init %empty_tuple.type = call %bound_method.loc9_24.1(%addr.loc9_24.1) // CHECK:STDOUT: %Op.bound.loc8_35.2: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.9: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.9: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.3: = bound_method %.loc8_35.1, %Op.specific_fn.9 // CHECK:STDOUT: %addr.loc8_35.2: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.2: init %empty_tuple.type = call %bound_method.loc8_35.3(%addr.loc8_35.2) // CHECK:STDOUT: %Op.bound.loc8_24.2: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.10: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.10: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.2: = bound_method %.loc8_24.2, %Op.specific_fn.10 // CHECK:STDOUT: %addr.loc8_24.2: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.2: init %empty_tuple.type = call %bound_method.loc8_24.2(%addr.loc8_24.2) // CHECK:STDOUT: %Op.bound.loc7_35.3: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.11: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.11: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.4: = bound_method %.loc7_35.1, %Op.specific_fn.11 // CHECK:STDOUT: %addr.loc7_35.3: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.3: init %empty_tuple.type = call %bound_method.loc7_35.4(%addr.loc7_35.3) // CHECK:STDOUT: %Op.bound.loc7_24.3: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.12: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.12: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.3: = bound_method %.loc7_24.2, %Op.specific_fn.12 // CHECK:STDOUT: %addr.loc7_24.3: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.3: init %empty_tuple.type = call %bound_method.loc7_24.3(%addr.loc7_24.3) @@ -1225,7 +1225,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %impl.elem0.loc10_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_34.1: = bound_method %int_3, %impl.elem0.loc10_34 [concrete = constants.%Convert.bound.b30] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_34.2: = bound_method %int_3, %specific_fn.loc10 [concrete = constants.%bound_method.047] // CHECK:STDOUT: %int.convert_checked.loc10: init %i32 = call %bound_method.loc10_34.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc10_34.1: %i32 = value_of_initializer %int.convert_checked.loc10 [concrete = constants.%int_3.822] @@ -1242,42 +1242,42 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc10: init %D = call %bound_method.loc10_35.1(%.loc10_26.2) to %.loc10_35.1 // CHECK:STDOUT: %.loc10_35.2: init %D = converted %.loc10_26.1, %Convert.call.loc10 // CHECK:STDOUT: %Op.bound.loc10_35.1: = bound_method %.loc10_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.13: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.13: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc10_35.2: = bound_method %.loc10_35.1, %Op.specific_fn.13 // CHECK:STDOUT: %addr.loc10_35.1: %ptr.f29 = addr_of %.loc10_35.1 // CHECK:STDOUT: %no_op.loc10_35.1: init %empty_tuple.type = call %bound_method.loc10_35.2(%addr.loc10_35.1) // CHECK:STDOUT: %Op.bound.loc10_24.1: = bound_method %.loc10_24.2, constants.%Op.9cf -// CHECK:STDOUT: %Op.specific_fn.14: = specific_function constants.%Op.9cf, @Op.2(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] +// CHECK:STDOUT: %Op.specific_fn.14: = specific_function constants.%Op.9cf, @Op.1(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] // CHECK:STDOUT: %bound_method.loc10_24.1: = bound_method %.loc10_24.2, %Op.specific_fn.14 // CHECK:STDOUT: %addr.loc10_24.1: %ptr.2b1 = addr_of %.loc10_24.2 // CHECK:STDOUT: %no_op.loc10_24.1: init %empty_tuple.type = call %bound_method.loc10_24.1(%addr.loc10_24.1) // CHECK:STDOUT: %Op.bound.loc9_35.2: = bound_method %.loc9_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.15: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.15: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc9_35.3: = bound_method %.loc9_35.1, %Op.specific_fn.15 // CHECK:STDOUT: %addr.loc9_35.2: %ptr.f29 = addr_of %.loc9_35.1 // CHECK:STDOUT: %no_op.loc9_35.2: init %empty_tuple.type = call %bound_method.loc9_35.3(%addr.loc9_35.2) // CHECK:STDOUT: %Op.bound.loc9_24.2: = bound_method %.loc9_24.2, constants.%Op.404 -// CHECK:STDOUT: %Op.specific_fn.16: = specific_function constants.%Op.404, @Op.2(constants.%C.681) [concrete = constants.%Op.specific_fn.822] +// CHECK:STDOUT: %Op.specific_fn.16: = specific_function constants.%Op.404, @Op.1(constants.%C.681) [concrete = constants.%Op.specific_fn.822] // CHECK:STDOUT: %bound_method.loc9_24.2: = bound_method %.loc9_24.2, %Op.specific_fn.16 // CHECK:STDOUT: %addr.loc9_24.2: %ptr.3bd = addr_of %.loc9_24.2 // CHECK:STDOUT: %no_op.loc9_24.2: init %empty_tuple.type = call %bound_method.loc9_24.2(%addr.loc9_24.2) // CHECK:STDOUT: %Op.bound.loc8_35.3: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.17: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.17: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.4: = bound_method %.loc8_35.1, %Op.specific_fn.17 // CHECK:STDOUT: %addr.loc8_35.3: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.3: init %empty_tuple.type = call %bound_method.loc8_35.4(%addr.loc8_35.3) // CHECK:STDOUT: %Op.bound.loc8_24.3: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.18: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.18: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.3: = bound_method %.loc8_24.2, %Op.specific_fn.18 // CHECK:STDOUT: %addr.loc8_24.3: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.3: init %empty_tuple.type = call %bound_method.loc8_24.3(%addr.loc8_24.3) // CHECK:STDOUT: %Op.bound.loc7_35.4: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.19: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.19: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.5: = bound_method %.loc7_35.1, %Op.specific_fn.19 // CHECK:STDOUT: %addr.loc7_35.4: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.4: init %empty_tuple.type = call %bound_method.loc7_35.5(%addr.loc7_35.4) // CHECK:STDOUT: %Op.bound.loc7_24.4: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.20: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.20: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.4: = bound_method %.loc7_24.2, %Op.specific_fn.20 // CHECK:STDOUT: %addr.loc7_24.4: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.4: init %empty_tuple.type = call %bound_method.loc7_24.4(%addr.loc7_24.4) @@ -1294,7 +1294,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %impl.elem0.loc11_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_34.1: = bound_method %int_4, %impl.elem0.loc11_34 [concrete = constants.%Convert.bound.ac3] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_34.2: = bound_method %int_4, %specific_fn.loc11 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc11: init %i32 = call %bound_method.loc11_34.2(%int_4) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc11_34.1: %i32 = value_of_initializer %int.convert_checked.loc11 [concrete = constants.%int_4.940] @@ -1311,52 +1311,52 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc11: init %D = call %bound_method.loc11_35.1(%.loc11_26.2) to %.loc11_35.1 // CHECK:STDOUT: %.loc11_35.2: init %D = converted %.loc11_26.1, %Convert.call.loc11 // CHECK:STDOUT: %Op.bound.loc11_35.1: = bound_method %.loc11_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.21: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.21: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc11_35.2: = bound_method %.loc11_35.1, %Op.specific_fn.21 // CHECK:STDOUT: %addr.loc11_35.1: %ptr.f29 = addr_of %.loc11_35.1 // CHECK:STDOUT: %no_op.loc11_35.1: init %empty_tuple.type = call %bound_method.loc11_35.2(%addr.loc11_35.1) // CHECK:STDOUT: %Op.bound.loc11_24.1: = bound_method %.loc11_24.2, constants.%Op.6b4 -// CHECK:STDOUT: %Op.specific_fn.22: = specific_function constants.%Op.6b4, @Op.2(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] +// CHECK:STDOUT: %Op.specific_fn.22: = specific_function constants.%Op.6b4, @Op.1(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] // CHECK:STDOUT: %bound_method.loc11_24.1: = bound_method %.loc11_24.2, %Op.specific_fn.22 // CHECK:STDOUT: %addr.loc11_24.1: %ptr.c28b = addr_of %.loc11_24.2 // CHECK:STDOUT: %no_op.loc11_24.1: init %empty_tuple.type = call %bound_method.loc11_24.1(%addr.loc11_24.1) // CHECK:STDOUT: %Op.bound.loc10_35.2: = bound_method %.loc10_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.23: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.23: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc10_35.3: = bound_method %.loc10_35.1, %Op.specific_fn.23 // CHECK:STDOUT: %addr.loc10_35.2: %ptr.f29 = addr_of %.loc10_35.1 // CHECK:STDOUT: %no_op.loc10_35.2: init %empty_tuple.type = call %bound_method.loc10_35.3(%addr.loc10_35.2) // CHECK:STDOUT: %Op.bound.loc10_24.2: = bound_method %.loc10_24.2, constants.%Op.9cf -// CHECK:STDOUT: %Op.specific_fn.24: = specific_function constants.%Op.9cf, @Op.2(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] +// CHECK:STDOUT: %Op.specific_fn.24: = specific_function constants.%Op.9cf, @Op.1(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] // CHECK:STDOUT: %bound_method.loc10_24.2: = bound_method %.loc10_24.2, %Op.specific_fn.24 // CHECK:STDOUT: %addr.loc10_24.2: %ptr.2b1 = addr_of %.loc10_24.2 // CHECK:STDOUT: %no_op.loc10_24.2: init %empty_tuple.type = call %bound_method.loc10_24.2(%addr.loc10_24.2) // CHECK:STDOUT: %Op.bound.loc9_35.3: = bound_method %.loc9_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.25: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.25: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc9_35.4: = bound_method %.loc9_35.1, %Op.specific_fn.25 // CHECK:STDOUT: %addr.loc9_35.3: %ptr.f29 = addr_of %.loc9_35.1 // CHECK:STDOUT: %no_op.loc9_35.3: init %empty_tuple.type = call %bound_method.loc9_35.4(%addr.loc9_35.3) // CHECK:STDOUT: %Op.bound.loc9_24.3: = bound_method %.loc9_24.2, constants.%Op.404 -// CHECK:STDOUT: %Op.specific_fn.26: = specific_function constants.%Op.404, @Op.2(constants.%C.681) [concrete = constants.%Op.specific_fn.822] +// CHECK:STDOUT: %Op.specific_fn.26: = specific_function constants.%Op.404, @Op.1(constants.%C.681) [concrete = constants.%Op.specific_fn.822] // CHECK:STDOUT: %bound_method.loc9_24.3: = bound_method %.loc9_24.2, %Op.specific_fn.26 // CHECK:STDOUT: %addr.loc9_24.3: %ptr.3bd = addr_of %.loc9_24.2 // CHECK:STDOUT: %no_op.loc9_24.3: init %empty_tuple.type = call %bound_method.loc9_24.3(%addr.loc9_24.3) // CHECK:STDOUT: %Op.bound.loc8_35.4: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.27: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.27: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.5: = bound_method %.loc8_35.1, %Op.specific_fn.27 // CHECK:STDOUT: %addr.loc8_35.4: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.4: init %empty_tuple.type = call %bound_method.loc8_35.5(%addr.loc8_35.4) // CHECK:STDOUT: %Op.bound.loc8_24.4: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.28: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.28: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.4: = bound_method %.loc8_24.2, %Op.specific_fn.28 // CHECK:STDOUT: %addr.loc8_24.4: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.4: init %empty_tuple.type = call %bound_method.loc8_24.4(%addr.loc8_24.4) // CHECK:STDOUT: %Op.bound.loc7_35.5: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.29: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.29: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.6: = bound_method %.loc7_35.1, %Op.specific_fn.29 // CHECK:STDOUT: %addr.loc7_35.5: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.5: init %empty_tuple.type = call %bound_method.loc7_35.6(%addr.loc7_35.5) // CHECK:STDOUT: %Op.bound.loc7_24.5: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.30: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.30: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.5: = bound_method %.loc7_24.2, %Op.specific_fn.30 // CHECK:STDOUT: %addr.loc7_24.5: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.5: init %empty_tuple.type = call %bound_method.loc7_24.5(%addr.loc7_24.5) @@ -1373,7 +1373,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %impl.elem0.loc12_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_34.1: = bound_method %int_5, %impl.elem0.loc12_34 [concrete = constants.%Convert.bound.4e6] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_34.2: = bound_method %int_5, %specific_fn.loc12 [concrete = constants.%bound_method.a25] // CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %bound_method.loc12_34.2(%int_5) [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc12_34.1: %i32 = value_of_initializer %int.convert_checked.loc12 [concrete = constants.%int_5.0f6] @@ -1390,62 +1390,62 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc12: init %D = call %bound_method.loc12_35.1(%.loc12_26.2) to %.loc12_35.1 // CHECK:STDOUT: %.loc12_35.2: init %D = converted %.loc12_26.1, %Convert.call.loc12 // CHECK:STDOUT: %Op.bound.loc12_35.1: = bound_method %.loc12_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.31: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.31: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc12_35.2: = bound_method %.loc12_35.1, %Op.specific_fn.31 // CHECK:STDOUT: %addr.loc12_35.1: %ptr.f29 = addr_of %.loc12_35.1 // CHECK:STDOUT: %no_op.loc12_35.1: init %empty_tuple.type = call %bound_method.loc12_35.2(%addr.loc12_35.1) // CHECK:STDOUT: %Op.bound.loc12_24.1: = bound_method %.loc12_24.2, constants.%Op.985 -// CHECK:STDOUT: %Op.specific_fn.32: = specific_function constants.%Op.985, @Op.2(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] +// CHECK:STDOUT: %Op.specific_fn.32: = specific_function constants.%Op.985, @Op.1(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] // CHECK:STDOUT: %bound_method.loc12_24.1: = bound_method %.loc12_24.2, %Op.specific_fn.32 // CHECK:STDOUT: %addr.loc12_24.1: %ptr.24c = addr_of %.loc12_24.2 // CHECK:STDOUT: %no_op.loc12_24.1: init %empty_tuple.type = call %bound_method.loc12_24.1(%addr.loc12_24.1) // CHECK:STDOUT: %Op.bound.loc11_35.2: = bound_method %.loc11_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.33: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.33: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc11_35.3: = bound_method %.loc11_35.1, %Op.specific_fn.33 // CHECK:STDOUT: %addr.loc11_35.2: %ptr.f29 = addr_of %.loc11_35.1 // CHECK:STDOUT: %no_op.loc11_35.2: init %empty_tuple.type = call %bound_method.loc11_35.3(%addr.loc11_35.2) // CHECK:STDOUT: %Op.bound.loc11_24.2: = bound_method %.loc11_24.2, constants.%Op.6b4 -// CHECK:STDOUT: %Op.specific_fn.34: = specific_function constants.%Op.6b4, @Op.2(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] +// CHECK:STDOUT: %Op.specific_fn.34: = specific_function constants.%Op.6b4, @Op.1(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] // CHECK:STDOUT: %bound_method.loc11_24.2: = bound_method %.loc11_24.2, %Op.specific_fn.34 // CHECK:STDOUT: %addr.loc11_24.2: %ptr.c28b = addr_of %.loc11_24.2 // CHECK:STDOUT: %no_op.loc11_24.2: init %empty_tuple.type = call %bound_method.loc11_24.2(%addr.loc11_24.2) // CHECK:STDOUT: %Op.bound.loc10_35.3: = bound_method %.loc10_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.35: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.35: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc10_35.4: = bound_method %.loc10_35.1, %Op.specific_fn.35 // CHECK:STDOUT: %addr.loc10_35.3: %ptr.f29 = addr_of %.loc10_35.1 // CHECK:STDOUT: %no_op.loc10_35.3: init %empty_tuple.type = call %bound_method.loc10_35.4(%addr.loc10_35.3) // CHECK:STDOUT: %Op.bound.loc10_24.3: = bound_method %.loc10_24.2, constants.%Op.9cf -// CHECK:STDOUT: %Op.specific_fn.36: = specific_function constants.%Op.9cf, @Op.2(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] +// CHECK:STDOUT: %Op.specific_fn.36: = specific_function constants.%Op.9cf, @Op.1(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] // CHECK:STDOUT: %bound_method.loc10_24.3: = bound_method %.loc10_24.2, %Op.specific_fn.36 // CHECK:STDOUT: %addr.loc10_24.3: %ptr.2b1 = addr_of %.loc10_24.2 // CHECK:STDOUT: %no_op.loc10_24.3: init %empty_tuple.type = call %bound_method.loc10_24.3(%addr.loc10_24.3) // CHECK:STDOUT: %Op.bound.loc9_35.4: = bound_method %.loc9_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.37: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.37: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc9_35.5: = bound_method %.loc9_35.1, %Op.specific_fn.37 // CHECK:STDOUT: %addr.loc9_35.4: %ptr.f29 = addr_of %.loc9_35.1 // CHECK:STDOUT: %no_op.loc9_35.4: init %empty_tuple.type = call %bound_method.loc9_35.5(%addr.loc9_35.4) // CHECK:STDOUT: %Op.bound.loc9_24.4: = bound_method %.loc9_24.2, constants.%Op.404 -// CHECK:STDOUT: %Op.specific_fn.38: = specific_function constants.%Op.404, @Op.2(constants.%C.681) [concrete = constants.%Op.specific_fn.822] +// CHECK:STDOUT: %Op.specific_fn.38: = specific_function constants.%Op.404, @Op.1(constants.%C.681) [concrete = constants.%Op.specific_fn.822] // CHECK:STDOUT: %bound_method.loc9_24.4: = bound_method %.loc9_24.2, %Op.specific_fn.38 // CHECK:STDOUT: %addr.loc9_24.4: %ptr.3bd = addr_of %.loc9_24.2 // CHECK:STDOUT: %no_op.loc9_24.4: init %empty_tuple.type = call %bound_method.loc9_24.4(%addr.loc9_24.4) // CHECK:STDOUT: %Op.bound.loc8_35.5: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.39: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.39: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.6: = bound_method %.loc8_35.1, %Op.specific_fn.39 // CHECK:STDOUT: %addr.loc8_35.5: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.5: init %empty_tuple.type = call %bound_method.loc8_35.6(%addr.loc8_35.5) // CHECK:STDOUT: %Op.bound.loc8_24.5: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.40: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.40: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.5: = bound_method %.loc8_24.2, %Op.specific_fn.40 // CHECK:STDOUT: %addr.loc8_24.5: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.5: init %empty_tuple.type = call %bound_method.loc8_24.5(%addr.loc8_24.5) // CHECK:STDOUT: %Op.bound.loc7_35.6: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.41: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.41: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.7: = bound_method %.loc7_35.1, %Op.specific_fn.41 // CHECK:STDOUT: %addr.loc7_35.6: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.6: init %empty_tuple.type = call %bound_method.loc7_35.7(%addr.loc7_35.6) // CHECK:STDOUT: %Op.bound.loc7_24.6: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.42: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.42: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.6: = bound_method %.loc7_24.2, %Op.specific_fn.42 // CHECK:STDOUT: %addr.loc7_24.6: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.6: init %empty_tuple.type = call %bound_method.loc7_24.6(%addr.loc7_24.6) @@ -1462,7 +1462,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %impl.elem0.loc13_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_34.1: = bound_method %int_6, %impl.elem0.loc13_34 [concrete = constants.%Convert.bound.ce9] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_34.2: = bound_method %int_6, %specific_fn.loc13 [concrete = constants.%bound_method.efa] // CHECK:STDOUT: %int.convert_checked.loc13: init %i32 = call %bound_method.loc13_34.2(%int_6) [concrete = constants.%int_6.e56] // CHECK:STDOUT: %.loc13_34.1: %i32 = value_of_initializer %int.convert_checked.loc13 [concrete = constants.%int_6.e56] @@ -1479,72 +1479,72 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc13: init %D = call %bound_method.loc13_35.1(%.loc13_26.2) to %.loc13_35.1 // CHECK:STDOUT: %.loc13_35.2: init %D = converted %.loc13_26.1, %Convert.call.loc13 // CHECK:STDOUT: %Op.bound.loc13_35.1: = bound_method %.loc13_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.43: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.43: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc13_35.2: = bound_method %.loc13_35.1, %Op.specific_fn.43 // CHECK:STDOUT: %addr.loc13_35.1: %ptr.f29 = addr_of %.loc13_35.1 // CHECK:STDOUT: %no_op.loc13_35.1: init %empty_tuple.type = call %bound_method.loc13_35.2(%addr.loc13_35.1) // CHECK:STDOUT: %Op.bound.loc13_24.1: = bound_method %.loc13_24.2, constants.%Op.ca5 -// CHECK:STDOUT: %Op.specific_fn.44: = specific_function constants.%Op.ca5, @Op.2(constants.%C.c60) [concrete = constants.%Op.specific_fn.8d0] +// CHECK:STDOUT: %Op.specific_fn.44: = specific_function constants.%Op.ca5, @Op.1(constants.%C.c60) [concrete = constants.%Op.specific_fn.8d0] // CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %.loc13_24.2, %Op.specific_fn.44 // CHECK:STDOUT: %addr.loc13_24.1: %ptr.b5e = addr_of %.loc13_24.2 // CHECK:STDOUT: %no_op.loc13_24.1: init %empty_tuple.type = call %bound_method.loc13_24.1(%addr.loc13_24.1) // CHECK:STDOUT: %Op.bound.loc12_35.2: = bound_method %.loc12_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.45: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.45: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc12_35.3: = bound_method %.loc12_35.1, %Op.specific_fn.45 // CHECK:STDOUT: %addr.loc12_35.2: %ptr.f29 = addr_of %.loc12_35.1 // CHECK:STDOUT: %no_op.loc12_35.2: init %empty_tuple.type = call %bound_method.loc12_35.3(%addr.loc12_35.2) // CHECK:STDOUT: %Op.bound.loc12_24.2: = bound_method %.loc12_24.2, constants.%Op.985 -// CHECK:STDOUT: %Op.specific_fn.46: = specific_function constants.%Op.985, @Op.2(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] +// CHECK:STDOUT: %Op.specific_fn.46: = specific_function constants.%Op.985, @Op.1(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] // CHECK:STDOUT: %bound_method.loc12_24.2: = bound_method %.loc12_24.2, %Op.specific_fn.46 // CHECK:STDOUT: %addr.loc12_24.2: %ptr.24c = addr_of %.loc12_24.2 // CHECK:STDOUT: %no_op.loc12_24.2: init %empty_tuple.type = call %bound_method.loc12_24.2(%addr.loc12_24.2) // CHECK:STDOUT: %Op.bound.loc11_35.3: = bound_method %.loc11_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.47: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.47: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc11_35.4: = bound_method %.loc11_35.1, %Op.specific_fn.47 // CHECK:STDOUT: %addr.loc11_35.3: %ptr.f29 = addr_of %.loc11_35.1 // CHECK:STDOUT: %no_op.loc11_35.3: init %empty_tuple.type = call %bound_method.loc11_35.4(%addr.loc11_35.3) // CHECK:STDOUT: %Op.bound.loc11_24.3: = bound_method %.loc11_24.2, constants.%Op.6b4 -// CHECK:STDOUT: %Op.specific_fn.48: = specific_function constants.%Op.6b4, @Op.2(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] +// CHECK:STDOUT: %Op.specific_fn.48: = specific_function constants.%Op.6b4, @Op.1(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] // CHECK:STDOUT: %bound_method.loc11_24.3: = bound_method %.loc11_24.2, %Op.specific_fn.48 // CHECK:STDOUT: %addr.loc11_24.3: %ptr.c28b = addr_of %.loc11_24.2 // CHECK:STDOUT: %no_op.loc11_24.3: init %empty_tuple.type = call %bound_method.loc11_24.3(%addr.loc11_24.3) // CHECK:STDOUT: %Op.bound.loc10_35.4: = bound_method %.loc10_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.49: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.49: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc10_35.5: = bound_method %.loc10_35.1, %Op.specific_fn.49 // CHECK:STDOUT: %addr.loc10_35.4: %ptr.f29 = addr_of %.loc10_35.1 // CHECK:STDOUT: %no_op.loc10_35.4: init %empty_tuple.type = call %bound_method.loc10_35.5(%addr.loc10_35.4) // CHECK:STDOUT: %Op.bound.loc10_24.4: = bound_method %.loc10_24.2, constants.%Op.9cf -// CHECK:STDOUT: %Op.specific_fn.50: = specific_function constants.%Op.9cf, @Op.2(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] +// CHECK:STDOUT: %Op.specific_fn.50: = specific_function constants.%Op.9cf, @Op.1(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] // CHECK:STDOUT: %bound_method.loc10_24.4: = bound_method %.loc10_24.2, %Op.specific_fn.50 // CHECK:STDOUT: %addr.loc10_24.4: %ptr.2b1 = addr_of %.loc10_24.2 // CHECK:STDOUT: %no_op.loc10_24.4: init %empty_tuple.type = call %bound_method.loc10_24.4(%addr.loc10_24.4) // CHECK:STDOUT: %Op.bound.loc9_35.5: = bound_method %.loc9_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.51: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.51: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc9_35.6: = bound_method %.loc9_35.1, %Op.specific_fn.51 // CHECK:STDOUT: %addr.loc9_35.5: %ptr.f29 = addr_of %.loc9_35.1 // CHECK:STDOUT: %no_op.loc9_35.5: init %empty_tuple.type = call %bound_method.loc9_35.6(%addr.loc9_35.5) // CHECK:STDOUT: %Op.bound.loc9_24.5: = bound_method %.loc9_24.2, constants.%Op.404 -// CHECK:STDOUT: %Op.specific_fn.52: = specific_function constants.%Op.404, @Op.2(constants.%C.681) [concrete = constants.%Op.specific_fn.822] +// CHECK:STDOUT: %Op.specific_fn.52: = specific_function constants.%Op.404, @Op.1(constants.%C.681) [concrete = constants.%Op.specific_fn.822] // CHECK:STDOUT: %bound_method.loc9_24.5: = bound_method %.loc9_24.2, %Op.specific_fn.52 // CHECK:STDOUT: %addr.loc9_24.5: %ptr.3bd = addr_of %.loc9_24.2 // CHECK:STDOUT: %no_op.loc9_24.5: init %empty_tuple.type = call %bound_method.loc9_24.5(%addr.loc9_24.5) // CHECK:STDOUT: %Op.bound.loc8_35.6: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.53: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.53: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.7: = bound_method %.loc8_35.1, %Op.specific_fn.53 // CHECK:STDOUT: %addr.loc8_35.6: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.6: init %empty_tuple.type = call %bound_method.loc8_35.7(%addr.loc8_35.6) // CHECK:STDOUT: %Op.bound.loc8_24.6: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.54: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.54: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.6: = bound_method %.loc8_24.2, %Op.specific_fn.54 // CHECK:STDOUT: %addr.loc8_24.6: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.6: init %empty_tuple.type = call %bound_method.loc8_24.6(%addr.loc8_24.6) // CHECK:STDOUT: %Op.bound.loc7_35.7: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.55: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.55: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.8: = bound_method %.loc7_35.1, %Op.specific_fn.55 // CHECK:STDOUT: %addr.loc7_35.7: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.7: init %empty_tuple.type = call %bound_method.loc7_35.8(%addr.loc7_35.7) // CHECK:STDOUT: %Op.bound.loc7_24.7: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.56: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.56: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.7: = bound_method %.loc7_24.2, %Op.specific_fn.56 // CHECK:STDOUT: %addr.loc7_24.7: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.7: init %empty_tuple.type = call %bound_method.loc7_24.7(%addr.loc7_24.7) @@ -1561,7 +1561,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] // CHECK:STDOUT: %impl.elem0.loc14_34: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_34.1: = bound_method %int_7, %impl.elem0.loc14_34 [concrete = constants.%Convert.bound.208] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_34, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_34, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_34.2: = bound_method %int_7, %specific_fn.loc14 [concrete = constants.%bound_method.3bd] // CHECK:STDOUT: %int.convert_checked.loc14: init %i32 = call %bound_method.loc14_34.2(%int_7) [concrete = constants.%int_7.0b1] // CHECK:STDOUT: %.loc14_34.1: %i32 = value_of_initializer %int.convert_checked.loc14 [concrete = constants.%int_7.0b1] @@ -1578,82 +1578,82 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Convert.call.loc14: init %D = call %bound_method.loc14_35.1(%.loc14_26.2) to %.loc14_35.1 // CHECK:STDOUT: %.loc14_35.2: init %D = converted %.loc14_26.1, %Convert.call.loc14 // CHECK:STDOUT: %Op.bound.loc14_35.1: = bound_method %.loc14_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.57: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.57: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc14_35.2: = bound_method %.loc14_35.1, %Op.specific_fn.57 // CHECK:STDOUT: %addr.loc14_35.1: %ptr.f29 = addr_of %.loc14_35.1 // CHECK:STDOUT: %no_op.loc14_35.1: init %empty_tuple.type = call %bound_method.loc14_35.2(%addr.loc14_35.1) // CHECK:STDOUT: %Op.bound.loc14_24.1: = bound_method %.loc14_24.2, constants.%Op.6fc -// CHECK:STDOUT: %Op.specific_fn.58: = specific_function constants.%Op.6fc, @Op.2(constants.%C.304) [concrete = constants.%Op.specific_fn.a08] +// CHECK:STDOUT: %Op.specific_fn.58: = specific_function constants.%Op.6fc, @Op.1(constants.%C.304) [concrete = constants.%Op.specific_fn.a08] // CHECK:STDOUT: %bound_method.loc14_24.1: = bound_method %.loc14_24.2, %Op.specific_fn.58 // CHECK:STDOUT: %addr.loc14_24.1: %ptr.dc3 = addr_of %.loc14_24.2 // CHECK:STDOUT: %no_op.loc14_24.1: init %empty_tuple.type = call %bound_method.loc14_24.1(%addr.loc14_24.1) // CHECK:STDOUT: %Op.bound.loc13_35.2: = bound_method %.loc13_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.59: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.59: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc13_35.3: = bound_method %.loc13_35.1, %Op.specific_fn.59 // CHECK:STDOUT: %addr.loc13_35.2: %ptr.f29 = addr_of %.loc13_35.1 // CHECK:STDOUT: %no_op.loc13_35.2: init %empty_tuple.type = call %bound_method.loc13_35.3(%addr.loc13_35.2) // CHECK:STDOUT: %Op.bound.loc13_24.2: = bound_method %.loc13_24.2, constants.%Op.ca5 -// CHECK:STDOUT: %Op.specific_fn.60: = specific_function constants.%Op.ca5, @Op.2(constants.%C.c60) [concrete = constants.%Op.specific_fn.8d0] +// CHECK:STDOUT: %Op.specific_fn.60: = specific_function constants.%Op.ca5, @Op.1(constants.%C.c60) [concrete = constants.%Op.specific_fn.8d0] // CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %.loc13_24.2, %Op.specific_fn.60 // CHECK:STDOUT: %addr.loc13_24.2: %ptr.b5e = addr_of %.loc13_24.2 // CHECK:STDOUT: %no_op.loc13_24.2: init %empty_tuple.type = call %bound_method.loc13_24.2(%addr.loc13_24.2) // CHECK:STDOUT: %Op.bound.loc12_35.3: = bound_method %.loc12_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.61: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.61: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc12_35.4: = bound_method %.loc12_35.1, %Op.specific_fn.61 // CHECK:STDOUT: %addr.loc12_35.3: %ptr.f29 = addr_of %.loc12_35.1 // CHECK:STDOUT: %no_op.loc12_35.3: init %empty_tuple.type = call %bound_method.loc12_35.4(%addr.loc12_35.3) // CHECK:STDOUT: %Op.bound.loc12_24.3: = bound_method %.loc12_24.2, constants.%Op.985 -// CHECK:STDOUT: %Op.specific_fn.62: = specific_function constants.%Op.985, @Op.2(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] +// CHECK:STDOUT: %Op.specific_fn.62: = specific_function constants.%Op.985, @Op.1(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] // CHECK:STDOUT: %bound_method.loc12_24.3: = bound_method %.loc12_24.2, %Op.specific_fn.62 // CHECK:STDOUT: %addr.loc12_24.3: %ptr.24c = addr_of %.loc12_24.2 // CHECK:STDOUT: %no_op.loc12_24.3: init %empty_tuple.type = call %bound_method.loc12_24.3(%addr.loc12_24.3) // CHECK:STDOUT: %Op.bound.loc11_35.4: = bound_method %.loc11_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.63: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.63: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc11_35.5: = bound_method %.loc11_35.1, %Op.specific_fn.63 // CHECK:STDOUT: %addr.loc11_35.4: %ptr.f29 = addr_of %.loc11_35.1 // CHECK:STDOUT: %no_op.loc11_35.4: init %empty_tuple.type = call %bound_method.loc11_35.5(%addr.loc11_35.4) // CHECK:STDOUT: %Op.bound.loc11_24.4: = bound_method %.loc11_24.2, constants.%Op.6b4 -// CHECK:STDOUT: %Op.specific_fn.64: = specific_function constants.%Op.6b4, @Op.2(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] +// CHECK:STDOUT: %Op.specific_fn.64: = specific_function constants.%Op.6b4, @Op.1(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] // CHECK:STDOUT: %bound_method.loc11_24.4: = bound_method %.loc11_24.2, %Op.specific_fn.64 // CHECK:STDOUT: %addr.loc11_24.4: %ptr.c28b = addr_of %.loc11_24.2 // CHECK:STDOUT: %no_op.loc11_24.4: init %empty_tuple.type = call %bound_method.loc11_24.4(%addr.loc11_24.4) // CHECK:STDOUT: %Op.bound.loc10_35.5: = bound_method %.loc10_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.65: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.65: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc10_35.6: = bound_method %.loc10_35.1, %Op.specific_fn.65 // CHECK:STDOUT: %addr.loc10_35.5: %ptr.f29 = addr_of %.loc10_35.1 // CHECK:STDOUT: %no_op.loc10_35.5: init %empty_tuple.type = call %bound_method.loc10_35.6(%addr.loc10_35.5) // CHECK:STDOUT: %Op.bound.loc10_24.5: = bound_method %.loc10_24.2, constants.%Op.9cf -// CHECK:STDOUT: %Op.specific_fn.66: = specific_function constants.%Op.9cf, @Op.2(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] +// CHECK:STDOUT: %Op.specific_fn.66: = specific_function constants.%Op.9cf, @Op.1(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] // CHECK:STDOUT: %bound_method.loc10_24.5: = bound_method %.loc10_24.2, %Op.specific_fn.66 // CHECK:STDOUT: %addr.loc10_24.5: %ptr.2b1 = addr_of %.loc10_24.2 // CHECK:STDOUT: %no_op.loc10_24.5: init %empty_tuple.type = call %bound_method.loc10_24.5(%addr.loc10_24.5) // CHECK:STDOUT: %Op.bound.loc9_35.6: = bound_method %.loc9_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.67: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.67: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc9_35.7: = bound_method %.loc9_35.1, %Op.specific_fn.67 // CHECK:STDOUT: %addr.loc9_35.6: %ptr.f29 = addr_of %.loc9_35.1 // CHECK:STDOUT: %no_op.loc9_35.6: init %empty_tuple.type = call %bound_method.loc9_35.7(%addr.loc9_35.6) // CHECK:STDOUT: %Op.bound.loc9_24.6: = bound_method %.loc9_24.2, constants.%Op.404 -// CHECK:STDOUT: %Op.specific_fn.68: = specific_function constants.%Op.404, @Op.2(constants.%C.681) [concrete = constants.%Op.specific_fn.822] +// CHECK:STDOUT: %Op.specific_fn.68: = specific_function constants.%Op.404, @Op.1(constants.%C.681) [concrete = constants.%Op.specific_fn.822] // CHECK:STDOUT: %bound_method.loc9_24.6: = bound_method %.loc9_24.2, %Op.specific_fn.68 // CHECK:STDOUT: %addr.loc9_24.6: %ptr.3bd = addr_of %.loc9_24.2 // CHECK:STDOUT: %no_op.loc9_24.6: init %empty_tuple.type = call %bound_method.loc9_24.6(%addr.loc9_24.6) // CHECK:STDOUT: %Op.bound.loc8_35.7: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.69: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.69: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.8: = bound_method %.loc8_35.1, %Op.specific_fn.69 // CHECK:STDOUT: %addr.loc8_35.7: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.7: init %empty_tuple.type = call %bound_method.loc8_35.8(%addr.loc8_35.7) // CHECK:STDOUT: %Op.bound.loc8_24.7: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.70: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.70: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.7: = bound_method %.loc8_24.2, %Op.specific_fn.70 // CHECK:STDOUT: %addr.loc8_24.7: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.7: init %empty_tuple.type = call %bound_method.loc8_24.7(%addr.loc8_24.7) // CHECK:STDOUT: %Op.bound.loc7_35.8: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.71: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.71: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.9: = bound_method %.loc7_35.1, %Op.specific_fn.71 // CHECK:STDOUT: %addr.loc7_35.8: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.8: init %empty_tuple.type = call %bound_method.loc7_35.9(%addr.loc7_35.8) // CHECK:STDOUT: %Op.bound.loc7_24.8: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.72: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.72: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.8: = bound_method %.loc7_24.2, %Op.specific_fn.72 // CHECK:STDOUT: %addr.loc7_24.8: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.8: init %empty_tuple.type = call %bound_method.loc7_24.8(%addr.loc7_24.8) @@ -1665,109 +1665,109 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc6_15: ref %D = splice_block %return {} // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc6_15 // CHECK:STDOUT: %Op.bound.loc6: = bound_method %.loc6_15, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.73: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.73: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc6: = bound_method %.loc6_15, %Op.specific_fn.73 // CHECK:STDOUT: %addr.loc6: %ptr.f29 = addr_of %.loc6_15 // CHECK:STDOUT: %no_op.loc6: init %empty_tuple.type = call %bound_method.loc6(%addr.loc6) // CHECK:STDOUT: %Op.bound.loc14_35.2: = bound_method %.loc14_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.74: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.74: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc14_35.3: = bound_method %.loc14_35.1, %Op.specific_fn.74 // CHECK:STDOUT: %addr.loc14_35.2: %ptr.f29 = addr_of %.loc14_35.1 // CHECK:STDOUT: %no_op.loc14_35.2: init %empty_tuple.type = call %bound_method.loc14_35.3(%addr.loc14_35.2) // CHECK:STDOUT: %Op.bound.loc14_24.2: = bound_method %.loc14_24.2, constants.%Op.6fc -// CHECK:STDOUT: %Op.specific_fn.75: = specific_function constants.%Op.6fc, @Op.2(constants.%C.304) [concrete = constants.%Op.specific_fn.a08] +// CHECK:STDOUT: %Op.specific_fn.75: = specific_function constants.%Op.6fc, @Op.1(constants.%C.304) [concrete = constants.%Op.specific_fn.a08] // CHECK:STDOUT: %bound_method.loc14_24.2: = bound_method %.loc14_24.2, %Op.specific_fn.75 // CHECK:STDOUT: %addr.loc14_24.2: %ptr.dc3 = addr_of %.loc14_24.2 // CHECK:STDOUT: %no_op.loc14_24.2: init %empty_tuple.type = call %bound_method.loc14_24.2(%addr.loc14_24.2) // CHECK:STDOUT: %Op.bound.loc13_35.3: = bound_method %.loc13_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.76: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.76: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc13_35.4: = bound_method %.loc13_35.1, %Op.specific_fn.76 // CHECK:STDOUT: %addr.loc13_35.3: %ptr.f29 = addr_of %.loc13_35.1 // CHECK:STDOUT: %no_op.loc13_35.3: init %empty_tuple.type = call %bound_method.loc13_35.4(%addr.loc13_35.3) // CHECK:STDOUT: %Op.bound.loc13_24.3: = bound_method %.loc13_24.2, constants.%Op.ca5 -// CHECK:STDOUT: %Op.specific_fn.77: = specific_function constants.%Op.ca5, @Op.2(constants.%C.c60) [concrete = constants.%Op.specific_fn.8d0] +// CHECK:STDOUT: %Op.specific_fn.77: = specific_function constants.%Op.ca5, @Op.1(constants.%C.c60) [concrete = constants.%Op.specific_fn.8d0] // CHECK:STDOUT: %bound_method.loc13_24.3: = bound_method %.loc13_24.2, %Op.specific_fn.77 // CHECK:STDOUT: %addr.loc13_24.3: %ptr.b5e = addr_of %.loc13_24.2 // CHECK:STDOUT: %no_op.loc13_24.3: init %empty_tuple.type = call %bound_method.loc13_24.3(%addr.loc13_24.3) // CHECK:STDOUT: %Op.bound.loc12_35.4: = bound_method %.loc12_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.78: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.78: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc12_35.5: = bound_method %.loc12_35.1, %Op.specific_fn.78 // CHECK:STDOUT: %addr.loc12_35.4: %ptr.f29 = addr_of %.loc12_35.1 // CHECK:STDOUT: %no_op.loc12_35.4: init %empty_tuple.type = call %bound_method.loc12_35.5(%addr.loc12_35.4) // CHECK:STDOUT: %Op.bound.loc12_24.4: = bound_method %.loc12_24.2, constants.%Op.985 -// CHECK:STDOUT: %Op.specific_fn.79: = specific_function constants.%Op.985, @Op.2(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] +// CHECK:STDOUT: %Op.specific_fn.79: = specific_function constants.%Op.985, @Op.1(constants.%C.f0a) [concrete = constants.%Op.specific_fn.a66] // CHECK:STDOUT: %bound_method.loc12_24.4: = bound_method %.loc12_24.2, %Op.specific_fn.79 // CHECK:STDOUT: %addr.loc12_24.4: %ptr.24c = addr_of %.loc12_24.2 // CHECK:STDOUT: %no_op.loc12_24.4: init %empty_tuple.type = call %bound_method.loc12_24.4(%addr.loc12_24.4) // CHECK:STDOUT: %Op.bound.loc11_35.5: = bound_method %.loc11_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.80: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.80: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc11_35.6: = bound_method %.loc11_35.1, %Op.specific_fn.80 // CHECK:STDOUT: %addr.loc11_35.5: %ptr.f29 = addr_of %.loc11_35.1 // CHECK:STDOUT: %no_op.loc11_35.5: init %empty_tuple.type = call %bound_method.loc11_35.6(%addr.loc11_35.5) // CHECK:STDOUT: %Op.bound.loc11_24.5: = bound_method %.loc11_24.2, constants.%Op.6b4 -// CHECK:STDOUT: %Op.specific_fn.81: = specific_function constants.%Op.6b4, @Op.2(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] +// CHECK:STDOUT: %Op.specific_fn.81: = specific_function constants.%Op.6b4, @Op.1(constants.%C.89d) [concrete = constants.%Op.specific_fn.357] // CHECK:STDOUT: %bound_method.loc11_24.5: = bound_method %.loc11_24.2, %Op.specific_fn.81 // CHECK:STDOUT: %addr.loc11_24.5: %ptr.c28b = addr_of %.loc11_24.2 // CHECK:STDOUT: %no_op.loc11_24.5: init %empty_tuple.type = call %bound_method.loc11_24.5(%addr.loc11_24.5) // CHECK:STDOUT: %Op.bound.loc10_35.6: = bound_method %.loc10_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.82: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.82: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc10_35.7: = bound_method %.loc10_35.1, %Op.specific_fn.82 // CHECK:STDOUT: %addr.loc10_35.6: %ptr.f29 = addr_of %.loc10_35.1 // CHECK:STDOUT: %no_op.loc10_35.6: init %empty_tuple.type = call %bound_method.loc10_35.7(%addr.loc10_35.6) // CHECK:STDOUT: %Op.bound.loc10_24.6: = bound_method %.loc10_24.2, constants.%Op.9cf -// CHECK:STDOUT: %Op.specific_fn.83: = specific_function constants.%Op.9cf, @Op.2(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] +// CHECK:STDOUT: %Op.specific_fn.83: = specific_function constants.%Op.9cf, @Op.1(constants.%C.7ac) [concrete = constants.%Op.specific_fn.694] // CHECK:STDOUT: %bound_method.loc10_24.6: = bound_method %.loc10_24.2, %Op.specific_fn.83 // CHECK:STDOUT: %addr.loc10_24.6: %ptr.2b1 = addr_of %.loc10_24.2 // CHECK:STDOUT: %no_op.loc10_24.6: init %empty_tuple.type = call %bound_method.loc10_24.6(%addr.loc10_24.6) // CHECK:STDOUT: %Op.bound.loc9_35.7: = bound_method %.loc9_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.84: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.84: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc9_35.8: = bound_method %.loc9_35.1, %Op.specific_fn.84 // CHECK:STDOUT: %addr.loc9_35.7: %ptr.f29 = addr_of %.loc9_35.1 // CHECK:STDOUT: %no_op.loc9_35.7: init %empty_tuple.type = call %bound_method.loc9_35.8(%addr.loc9_35.7) // CHECK:STDOUT: %Op.bound.loc9_24.7: = bound_method %.loc9_24.2, constants.%Op.404 -// CHECK:STDOUT: %Op.specific_fn.85: = specific_function constants.%Op.404, @Op.2(constants.%C.681) [concrete = constants.%Op.specific_fn.822] +// CHECK:STDOUT: %Op.specific_fn.85: = specific_function constants.%Op.404, @Op.1(constants.%C.681) [concrete = constants.%Op.specific_fn.822] // CHECK:STDOUT: %bound_method.loc9_24.7: = bound_method %.loc9_24.2, %Op.specific_fn.85 // CHECK:STDOUT: %addr.loc9_24.7: %ptr.3bd = addr_of %.loc9_24.2 // CHECK:STDOUT: %no_op.loc9_24.7: init %empty_tuple.type = call %bound_method.loc9_24.7(%addr.loc9_24.7) // CHECK:STDOUT: %Op.bound.loc8_35.8: = bound_method %.loc8_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.86: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.86: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc8_35.9: = bound_method %.loc8_35.1, %Op.specific_fn.86 // CHECK:STDOUT: %addr.loc8_35.8: %ptr.f29 = addr_of %.loc8_35.1 // CHECK:STDOUT: %no_op.loc8_35.8: init %empty_tuple.type = call %bound_method.loc8_35.9(%addr.loc8_35.8) // CHECK:STDOUT: %Op.bound.loc8_24.8: = bound_method %.loc8_24.2, constants.%Op.ad8 -// CHECK:STDOUT: %Op.specific_fn.87: = specific_function constants.%Op.ad8, @Op.2(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] +// CHECK:STDOUT: %Op.specific_fn.87: = specific_function constants.%Op.ad8, @Op.1(constants.%C.674) [concrete = constants.%Op.specific_fn.6b6] // CHECK:STDOUT: %bound_method.loc8_24.8: = bound_method %.loc8_24.2, %Op.specific_fn.87 // CHECK:STDOUT: %addr.loc8_24.8: %ptr.625 = addr_of %.loc8_24.2 // CHECK:STDOUT: %no_op.loc8_24.8: init %empty_tuple.type = call %bound_method.loc8_24.8(%addr.loc8_24.8) // CHECK:STDOUT: %Op.bound.loc7_35.9: = bound_method %.loc7_35.1, constants.%Op.f5a -// CHECK:STDOUT: %Op.specific_fn.88: = specific_function constants.%Op.f5a, @Op.2(constants.%D) [concrete = constants.%Op.specific_fn.bd1] +// CHECK:STDOUT: %Op.specific_fn.88: = specific_function constants.%Op.f5a, @Op.1(constants.%D) [concrete = constants.%Op.specific_fn.bd1] // CHECK:STDOUT: %bound_method.loc7_35.10: = bound_method %.loc7_35.1, %Op.specific_fn.88 // CHECK:STDOUT: %addr.loc7_35.9: %ptr.f29 = addr_of %.loc7_35.1 // CHECK:STDOUT: %no_op.loc7_35.9: init %empty_tuple.type = call %bound_method.loc7_35.10(%addr.loc7_35.9) // CHECK:STDOUT: %Op.bound.loc7_24.9: = bound_method %.loc7_24.2, constants.%Op.ae6 -// CHECK:STDOUT: %Op.specific_fn.89: = specific_function constants.%Op.ae6, @Op.2(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] +// CHECK:STDOUT: %Op.specific_fn.89: = specific_function constants.%Op.ae6, @Op.1(constants.%C.b00) [concrete = constants.%Op.specific_fn.e42] // CHECK:STDOUT: %bound_method.loc7_24.9: = bound_method %.loc7_24.2, %Op.specific_fn.89 // CHECK:STDOUT: %addr.loc7_24.9: %ptr.697 = addr_of %.loc7_24.2 // CHECK:STDOUT: %no_op.loc7_24.9: init %empty_tuple.type = call %bound_method.loc7_24.9(%addr.loc7_24.9) // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: +// CHECK:STDOUT: fn @Convert.2 [from "library.carbon"]; +// CHECK:STDOUT: +// CHECK:STDOUT: fn @Convert.3 [from "library.carbon"]; +// CHECK:STDOUT: +// CHECK:STDOUT: fn @Convert.4 [from "library.carbon"]; +// CHECK:STDOUT: +// CHECK:STDOUT: fn @Convert.5 [from "library.carbon"]; +// CHECK:STDOUT: +// CHECK:STDOUT: fn @Convert.6 [from "library.carbon"]; +// CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.7 [from "library.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.8 [from "library.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: fn @Convert.9 [from "library.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.10 [from "library.carbon"]; -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.11 [from "library.carbon"]; -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.12 [from "library.carbon"]; -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.13 [from "library.carbon"]; -// CHECK:STDOUT: -// CHECK:STDOUT: fn @Convert.14 [from "library.carbon"]; -// CHECK:STDOUT: // CHECK:STDOUT: fn @Make [from "library.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%N.51e) { diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index 07fad134ae4d..e8603c789bbc 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -48,18 +48,18 @@ fn G() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] @@ -73,10 +73,10 @@ fn G() -> i32 { // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.2, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.2(%i32) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -150,7 +150,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc21_43.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %impl.elem0.loc21_43.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_43.1: = bound_method %int_1, %impl.elem0.loc21_43.1 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc21_43.1: = specific_function %impl.elem0.loc21_43.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc21_43.1: = specific_function %impl.elem0.loc21_43.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_43.2: = bound_method %int_1, %specific_fn.loc21_43.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc21_43.1: init %i32 = call %bound_method.loc21_43.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc21_43.2: init %i32 = converted %int_1, %int.convert_checked.loc21_43.1 [concrete = constants.%int_1.5d2] @@ -158,7 +158,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc21_43.4: init %i32 = initialize_from %.loc21_43.2 to %.loc21_43.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %impl.elem0.loc21_43.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_43.3: = bound_method %int_2, %impl.elem0.loc21_43.2 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc21_43.2: = specific_function %impl.elem0.loc21_43.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc21_43.2: = specific_function %impl.elem0.loc21_43.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_43.4: = bound_method %int_2, %specific_fn.loc21_43.2 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc21_43.2: init %i32 = call %bound_method.loc21_43.4(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc21_43.5: init %i32 = converted %int_2, %int.convert_checked.loc21_43.2 [concrete = constants.%int_2.ef8] @@ -182,7 +182,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc26_12.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc26_12: init %i32 = converted %int_0, %int.convert_checked [concrete = constants.%int_0.6a9] @@ -194,7 +194,7 @@ fn G() -> i32 { // CHECK:STDOUT: %result: ref %i32 = bind_name result, %result.var // CHECK:STDOUT: %.loc26_16: %i32 = bind_value %result // CHECK:STDOUT: %Op.bound: = bound_method %result.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.e6a, @Op.2(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc26_12.3: = bound_method %result.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %result.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc26_12.3(%addr) diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 5dfcee7fd18c..9ada64c3cef1 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -47,17 +47,17 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] @@ -65,10 +65,10 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.3, @Destroy.impl(%i32) [concrete] +// CHECK:STDOUT: %Op.type.a17: type = fn_type @Op.1, @Destroy.impl(%i32) [concrete] // CHECK:STDOUT: %Op.e6a: %Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.3(%i32) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.e6a, @Op.1(%i32) [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] @@ -143,7 +143,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %int_0.loc17: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc17: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_14.1: = bound_method %int_0.loc17, %impl.elem0.loc17 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_14.2: = bound_method %int_0.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %bound_method.loc17_14.2(%int_0.loc17) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc17_14: init %i32 = converted %int_0.loc17, %int.convert_checked.loc17 [concrete = constants.%int_0.6a9] @@ -168,7 +168,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc20: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_1, %impl.elem0.loc20 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_1, %specific_fn.loc20 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %bound_method.loc20_14.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc20_14: init %i32 = converted %int_1, %int.convert_checked.loc20 [concrete = constants.%int_1.5d2] @@ -184,18 +184,18 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %int_0.loc22: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc22: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_11.1: = bound_method %int_0.loc22, %impl.elem0.loc22 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_11.2: = bound_method %int_0.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc22: init %i32 = call %bound_method.loc22_11.2(%int_0.loc22) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc22_11.1: %i32 = value_of_initializer %int.convert_checked.loc22 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc22_11.2: %i32 = converted %int_0.loc22, %.loc22_11.1 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %Op.bound.loc20: = bound_method %w.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_14.3: = bound_method %w.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20: %ptr.235 = addr_of %w.var // CHECK:STDOUT: %no_op.loc20: init %empty_tuple.type = call %bound_method.loc20_14.3(%addr.loc20) // CHECK:STDOUT: %Op.bound.loc17: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) @@ -216,7 +216,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0.loc27: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_14.1: = bound_method %int_0, %impl.elem0.loc27 [concrete = constants.%Convert.bound.d04] -// CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_14.2: = bound_method %int_0, %specific_fn.loc27 [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked.loc27: init %i32 = call %bound_method.loc27_14.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc27_14: init %i32 = converted %int_0, %int.convert_checked.loc27 [concrete = constants.%int_0.6a9] @@ -228,7 +228,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %v: ref %i32 = bind_name v, %v.var // CHECK:STDOUT: %.loc27_18: %i32 = bind_value %v // CHECK:STDOUT: %Op.bound.loc27_14.1: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc27_14.3: = bound_method %v.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27_14.1: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op.loc27_14.1: init %empty_tuple.type = call %bound_method.loc27_14.3(%addr.loc27_14.1) @@ -243,7 +243,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %impl.elem0.loc30: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc30_12.1: = bound_method %int_1, %impl.elem0.loc30 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc30_12.2: = bound_method %int_1, %specific_fn.loc30 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc30: init %i32 = call %bound_method.loc30_12.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc30_12: init %i32 = converted %int_1, %int.convert_checked.loc30 [concrete = constants.%int_1.5d2] @@ -255,12 +255,12 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %.loc30_16: %i32 = bind_value %w // CHECK:STDOUT: %Op.bound.loc30: = bound_method %w.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc30_12.3: = bound_method %w.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.235 = addr_of %w.var // CHECK:STDOUT: %no_op.loc30: init %empty_tuple.type = call %bound_method.loc30_12.3(%addr.loc30) // CHECK:STDOUT: %Op.bound.loc27_14.2: = bound_method %v.var, constants.%Op.e6a -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.e6a, @Op.3(constants.%i32) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.e6a, @Op.1(constants.%i32) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc27_14.4: = bound_method %v.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc27_14.2: %ptr.235 = addr_of %v.var // CHECK:STDOUT: %no_op.loc27_14.2: init %empty_tuple.type = call %bound_method.loc27_14.4(%addr.loc27_14.2) diff --git a/toolchain/check/testdata/return/struct.carbon b/toolchain/check/testdata/return/struct.carbon index 05c520f0b874..3f41fb5b8bad 100644 --- a/toolchain/check/testdata/return/struct.carbon +++ b/toolchain/check/testdata/return/struct.carbon @@ -32,17 +32,17 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %struct: %struct_type.a.ba9 = struct_value (%int_3.822) [concrete] @@ -85,7 +85,7 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: %.loc16_17.1: %struct_type.a.a6c = struct_literal (%int_3) // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_17.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_17.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_17.2(%int_3) [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc16_17.2: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_3.822] diff --git a/toolchain/check/testdata/return/tuple.carbon b/toolchain/check/testdata/return/tuple.carbon index a5dc378dd5f3..a22d6a47ab8f 100644 --- a/toolchain/check/testdata/return/tuple.carbon +++ b/toolchain/check/testdata/return/tuple.carbon @@ -35,17 +35,17 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.75f: = bound_method %int_15.447, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method.984: = bound_method %int_15.447, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_15.7f7: %i32 = int_value 15 [concrete] // CHECK:STDOUT: %Convert.bound.76a: = bound_method %int_35.c79, %Convert.956 [concrete] @@ -95,7 +95,7 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %.loc17_17.1: %tuple.type.f94 = tuple_literal (%int_15, %int_35) // CHECK:STDOUT: %impl.elem0.loc17_17.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_17.1: = bound_method %int_15, %impl.elem0.loc17_17.1 [concrete = constants.%Convert.bound.75f] -// CHECK:STDOUT: %specific_fn.loc17_17.1: = specific_function %impl.elem0.loc17_17.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc17_17.1: = specific_function %impl.elem0.loc17_17.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_17.2: = bound_method %int_15, %specific_fn.loc17_17.1 [concrete = constants.%bound_method.984] // CHECK:STDOUT: %int.convert_checked.loc17_17.1: init %i32 = call %bound_method.loc17_17.2(%int_15) [concrete = constants.%int_15.7f7] // CHECK:STDOUT: %.loc17_17.2: init %i32 = converted %int_15, %int.convert_checked.loc17_17.1 [concrete = constants.%int_15.7f7] @@ -103,7 +103,7 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %.loc17_17.3: init %i32 = initialize_from %.loc17_17.2 to %tuple.elem0 [concrete = constants.%int_15.7f7] // CHECK:STDOUT: %impl.elem0.loc17_17.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_17.3: = bound_method %int_35, %impl.elem0.loc17_17.2 [concrete = constants.%Convert.bound.76a] -// CHECK:STDOUT: %specific_fn.loc17_17.2: = specific_function %impl.elem0.loc17_17.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc17_17.2: = specific_function %impl.elem0.loc17_17.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_17.4: = bound_method %int_35, %specific_fn.loc17_17.2 [concrete = constants.%bound_method.231] // CHECK:STDOUT: %int.convert_checked.loc17_17.2: init %i32 = call %bound_method.loc17_17.4(%int_35) [concrete = constants.%int_35.c78] // CHECK:STDOUT: %.loc17_17.4: init %i32 = converted %int_35, %int.convert_checked.loc17_17.2 [concrete = constants.%int_35.c78] diff --git a/toolchain/check/testdata/return/value.carbon b/toolchain/check/testdata/return/value.carbon index 972e34d313d4..379035a8faa0 100644 --- a/toolchain/check/testdata/return/value.carbon +++ b/toolchain/check/testdata/return/value.carbon @@ -30,17 +30,17 @@ fn Main() -> i32 { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -80,7 +80,7 @@ fn Main() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %impl.elem0: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc16_11.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_11.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index 728056fa6f8a..245f76442776 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -184,7 +184,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %i32.loc8_27: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.501] // CHECK:STDOUT: } -// CHECK:STDOUT: %S.loc8_9.1: %struct_type.a.b.501 = bind_symbolic_name S, 0 [symbolic = %S.loc8_9.2 (constants.%S)] +// CHECK:STDOUT: %S.loc8_9.2: %struct_type.a.b.501 = bind_symbolic_name S, 0 [symbolic = %S.loc8_9.1 (constants.%S)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %return.patt: %pattern_type.4f9 = return_slot_pattern [concrete] @@ -216,8 +216,8 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(%S.loc8_9.1: %struct_type.a.b.501) { -// CHECK:STDOUT: %S.loc8_9.2: %struct_type.a.b.501 = bind_symbolic_name S, 0 [symbolic = %S.loc8_9.2 (constants.%S)] +// CHECK:STDOUT: generic class @C(%S.loc8_9.2: %struct_type.a.b.501) { +// CHECK:STDOUT: %S.loc8_9.1: %struct_type.a.b.501 = bind_symbolic_name S, 0 [symbolic = %S.loc8_9.1 (constants.%S)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -288,11 +288,11 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%S) { -// CHECK:STDOUT: %S.loc8_9.2 => constants.%S +// CHECK:STDOUT: %S.loc8_9.1 => constants.%S // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%struct.ed5) { -// CHECK:STDOUT: %S.loc8_9.2 => constants.%struct.ed5 +// CHECK:STDOUT: %S.loc8_9.1 => constants.%struct.ed5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- implicit.impl.carbon diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index 16c5b01f25a2..52a92a0afcb4 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -38,9 +38,9 @@ fn F() -> i32 { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.a.b.c.4ca: type = struct_type {.a: Core.IntLiteral, .b: %struct_type.x.y.z, .c: Core.IntLiteral} [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.f60: type = fn_type @Op.2, @Destroy.impl(%struct_type.x.y.z) [concrete] +// CHECK:STDOUT: %Op.type.f60: type = fn_type @Op.1, @Destroy.impl(%struct_type.x.y.z) [concrete] // CHECK:STDOUT: %Op.1a4: %Op.type.f60 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1a4, @Op.2(%struct_type.x.y.z) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.1a4, @Op.1(%struct_type.x.y.z) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -110,7 +110,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc18_36: %struct_type.x.y.z = struct_access %.loc18_35.3, element1 // CHECK:STDOUT: %.loc18_38: %i32 = struct_access %.loc18_36, element1 // CHECK:STDOUT: %Op.bound: = bound_method %.loc18_26.1, constants.%Op.1a4 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1a4, @Op.2(constants.%struct_type.x.y.z) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.1a4, @Op.1(constants.%struct_type.x.y.z) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.loc18_26.1, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6eb = addr_of %.loc18_26.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/struct/nested_struct_in_place.carbon b/toolchain/check/testdata/struct/nested_struct_in_place.carbon index 682cccf90ce4..009432556c65 100644 --- a/toolchain/check/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/check/testdata/struct/nested_struct_in_place.carbon @@ -37,13 +37,13 @@ fn G() { // CHECK:STDOUT: %ptr.7ae: type = ptr_type %tuple.type.189 [concrete] // CHECK:STDOUT: %pattern_type.3c2: type = pattern_type %struct_type.a.b.2f9 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.19f: type = fn_type @Op.3, @Destroy.impl(%tuple.type.189) [concrete] +// CHECK:STDOUT: %Op.type.19f: type = fn_type @Op.1, @Destroy.impl(%tuple.type.189) [concrete] // CHECK:STDOUT: %Op.672: %Op.type.19f = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.cf9: = specific_function %Op.672, @Op.3(%tuple.type.189) [concrete] -// CHECK:STDOUT: %Op.type.840: type = fn_type @Op.3, @Destroy.impl(%struct_type.a.b.2f9) [concrete] +// CHECK:STDOUT: %Op.specific_fn.cf9: = specific_function %Op.672, @Op.1(%tuple.type.189) [concrete] +// CHECK:STDOUT: %Op.type.840: type = fn_type @Op.1, @Destroy.impl(%struct_type.a.b.2f9) [concrete] // CHECK:STDOUT: %Op.52b: %Op.type.840 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c95: type = ptr_type %struct_type.a.b.2f9 [concrete] -// CHECK:STDOUT: %Op.specific_fn.c7e: = specific_function %Op.52b, @Op.3(%struct_type.a.b.2f9) [concrete] +// CHECK:STDOUT: %Op.specific_fn.c7e: = specific_function %Op.52b, @Op.1(%struct_type.a.b.2f9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -122,17 +122,17 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %struct_type.a.b.2f9 = bind_name v, %v.var // CHECK:STDOUT: %Op.bound.loc18_74.1: = bound_method %.loc18_74.2, constants.%Op.672 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.672, @Op.3(constants.%tuple.type.189) [concrete = constants.%Op.specific_fn.cf9] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.672, @Op.1(constants.%tuple.type.189) [concrete = constants.%Op.specific_fn.cf9] // CHECK:STDOUT: %bound_method.loc18_74.1: = bound_method %.loc18_74.2, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18_74.1: %ptr.7ae = addr_of %.loc18_74.2 // CHECK:STDOUT: %no_op.loc18_74.1: init %empty_tuple.type = call %bound_method.loc18_74.1(%addr.loc18_74.1) // CHECK:STDOUT: %Op.bound.loc18_74.2: = bound_method %.loc18_74.1, constants.%Op.672 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.672, @Op.3(constants.%tuple.type.189) [concrete = constants.%Op.specific_fn.cf9] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.672, @Op.1(constants.%tuple.type.189) [concrete = constants.%Op.specific_fn.cf9] // CHECK:STDOUT: %bound_method.loc18_74.2: = bound_method %.loc18_74.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18_74.2: %ptr.7ae = addr_of %.loc18_74.1 // CHECK:STDOUT: %no_op.loc18_74.2: init %empty_tuple.type = call %bound_method.loc18_74.2(%addr.loc18_74.2) // CHECK:STDOUT: %Op.bound.loc18_3: = bound_method %v.var, constants.%Op.52b -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.52b, @Op.3(constants.%struct_type.a.b.2f9) [concrete = constants.%Op.specific_fn.c7e] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.52b, @Op.1(constants.%struct_type.a.b.2f9) [concrete = constants.%Op.specific_fn.c7e] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %v.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc18_3: %ptr.c95 = addr_of %v.var // CHECK:STDOUT: %no_op.loc18_3: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18_3) diff --git a/toolchain/check/testdata/struct/partially_const.carbon b/toolchain/check/testdata/struct/partially_const.carbon index d74615d9b9e9..96a721383622 100644 --- a/toolchain/check/testdata/struct/partially_const.carbon +++ b/toolchain/check/testdata/struct/partially_const.carbon @@ -33,17 +33,17 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] -// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] +// CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.2, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] -// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] +// CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.c75: = impl_witness imports.%ImplicitAs.impl_witness_table.a2f, @ImplicitAs.impl.4f9(%int_32) [concrete] -// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%int_32) [concrete] +// CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.1, @ImplicitAs.impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.c75) [concrete] // CHECK:STDOUT: %.9c3: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] -// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] +// CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.1(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] // CHECK:STDOUT: } @@ -99,7 +99,7 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %.loc16_33.1: %struct_type.a.b.c.1ee = struct_literal (%int_0.loc16_16, %n.ref, %int_0.loc16_32) // CHECK:STDOUT: %impl.elem0.loc16_33.1: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_33.1: = bound_method %int_0.loc16_16, %impl.elem0.loc16_33.1 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc16_33.1: = specific_function %impl.elem0.loc16_33.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_33.1: = specific_function %impl.elem0.loc16_33.1, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_33.2: = bound_method %int_0.loc16_16, %specific_fn.loc16_33.1 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc16_33.1: init %i32 = call %bound_method.loc16_33.2(%int_0.loc16_16) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_33.2: init %i32 = converted %int_0.loc16_16, %int.convert_checked.loc16_33.1 [concrete = constants.%int_0.6a9] @@ -109,7 +109,7 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %.loc16_33.6: init %i32 = initialize_from %n.ref to %.loc16_33.5 // CHECK:STDOUT: %impl.elem0.loc16_33.2: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_33.3: = bound_method %int_0.loc16_32, %impl.elem0.loc16_33.2 [concrete = constants.%Convert.bound] -// CHECK:STDOUT: %specific_fn.loc16_33.2: = specific_function %impl.elem0.loc16_33.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc16_33.2: = specific_function %impl.elem0.loc16_33.2, @Convert.1(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_33.4: = bound_method %int_0.loc16_32, %specific_fn.loc16_33.2 [concrete = constants.%bound_method] // CHECK:STDOUT: %int.convert_checked.loc16_33.2: init %i32 = call %bound_method.loc16_33.4(%int_0.loc16_32) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc16_33.7: init %i32 = converted %int_0.loc16_32, %int.convert_checked.loc16_33.2 [concrete = constants.%int_0.6a9] diff --git a/toolchain/check/testdata/tuple/element_access.carbon b/toolchain/check/testdata/tuple/element_access.carbon index 8829ace5d6ee..c26e48eadcbe 100644 --- a/toolchain/check/testdata/tuple/element_access.carbon +++ b/toolchain/check/testdata/tuple/element_access.carbon @@ -354,7 +354,7 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %Op.type.438: type = fn_type @Op.3, @Destroy.impl(%tuple.type.a1c) [concrete] +// CHECK:STDOUT: %Op.type.438: type = fn_type @Op.2, @Destroy.impl(%tuple.type.a1c) [concrete] // CHECK:STDOUT: %Op.c8e: %Op.type.438 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0b7: type = ptr_type %tuple.type.a1c [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon index 02dae28c9cf7..bd78276e7c2d 100644 --- a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon +++ b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon @@ -60,7 +60,7 @@ fn H() { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.261: type = ptr_type %tuple.type.d07 [concrete] -// CHECK:STDOUT: %Op.type.a4a: type = fn_type @Op.3, @Destroy.impl(%tuple.type.d07) [concrete] +// CHECK:STDOUT: %Op.type.a4a: type = fn_type @Op.1, @Destroy.impl(%tuple.type.d07) [concrete] // CHECK:STDOUT: %Op.7c6: %Op.type.a4a = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: } @@ -149,9 +149,9 @@ fn H() { // CHECK:STDOUT: %To: Core.IntLiteral = bind_symbolic_name To, 0 [symbolic] // CHECK:STDOUT: %Convert.type.0f9: type = fn_type @Convert.2, @ImplicitAs.impl.4f9(%To) [symbolic] // CHECK:STDOUT: %Convert.f06: %Convert.type.0f9 = struct_value () [symbolic] -// CHECK:STDOUT: %Op.type.19f: type = fn_type @Op.3, @Destroy.impl(%tuple.type.189) [concrete] +// CHECK:STDOUT: %Op.type.19f: type = fn_type @Op.1, @Destroy.impl(%tuple.type.189) [concrete] // CHECK:STDOUT: %Op.672: %Op.type.19f = struct_value () [concrete] -// CHECK:STDOUT: %Op.type.387: type = fn_type @Op.3, @Destroy.impl(%tuple.type.99b) [concrete] +// CHECK:STDOUT: %Op.type.387: type = fn_type @Op.1, @Destroy.impl(%tuple.type.99b) [concrete] // CHECK:STDOUT: %Op.b09: %Op.type.387 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8bc: type = ptr_type %tuple.type.99b [concrete] // CHECK:STDOUT: %tuple.type.3a3: type = tuple_type (type, %tuple.type.ff9, type) [concrete] @@ -174,7 +174,7 @@ fn H() { // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.b92: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %Op.type.701: type = fn_type @Op.3, @Destroy.impl(%tuple.type.516) [concrete] +// CHECK:STDOUT: %Op.type.701: type = fn_type @Op.1, @Destroy.impl(%tuple.type.516) [concrete] // CHECK:STDOUT: %Op.dfb: %Op.type.701 = struct_value () [concrete] // CHECK:STDOUT: %ptr.12e: type = ptr_type %tuple.type.516 [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/tuple/tuple_pattern.carbon b/toolchain/check/testdata/tuple/tuple_pattern.carbon index c14888c6efa2..d63d3979e5b9 100644 --- a/toolchain/check/testdata/tuple/tuple_pattern.carbon +++ b/toolchain/check/testdata/tuple/tuple_pattern.carbon @@ -129,7 +129,7 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %pattern_type.de4: type = pattern_type %tuple.type.b6b [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple: %tuple.type.b6b = tuple_value (%empty_struct, %empty_struct) [concrete] -// CHECK:STDOUT: %Op.type.72a: type = fn_type @Op.2, @Destroy.impl(%tuple.type.b6b) [concrete] +// CHECK:STDOUT: %Op.type.72a: type = fn_type @Op.1, @Destroy.impl(%tuple.type.b6b) [concrete] // CHECK:STDOUT: %Op.973: %Op.type.72a = struct_value () [concrete] // CHECK:STDOUT: %ptr.8fc: type = ptr_type %tuple.type.b6b [concrete] // CHECK:STDOUT: } @@ -234,7 +234,7 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %tuple: %tuple.type.b6b = tuple_value (%empty_struct, %empty_struct) [concrete] // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] -// CHECK:STDOUT: %Op.type.72a: type = fn_type @Op.2, @Destroy.impl(%tuple.type.b6b) [concrete] +// CHECK:STDOUT: %Op.type.72a: type = fn_type @Op.1, @Destroy.impl(%tuple.type.b6b) [concrete] // CHECK:STDOUT: %Op.973: %Op.type.72a = struct_value () [concrete] // CHECK:STDOUT: %ptr.8fc: type = ptr_type %tuple.type.b6b [concrete] // CHECK:STDOUT: %MakeTuple.type: type = fn_type @MakeTuple [concrete] diff --git a/toolchain/check/testdata/var/decl.carbon b/toolchain/check/testdata/var/decl.carbon index e3cf44995fbe..dc56af238afc 100644 --- a/toolchain/check/testdata/var/decl.carbon +++ b/toolchain/check/testdata/var/decl.carbon @@ -26,10 +26,10 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,7 +63,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/var/decl_with_init.carbon b/toolchain/check/testdata/var/decl_with_init.carbon index 31be50d29252..3254490ba6e6 100644 --- a/toolchain/check/testdata/var/decl_with_init.carbon +++ b/toolchain/check/testdata/var/decl_with_init.carbon @@ -27,10 +27,10 @@ fn Main() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -68,7 +68,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/var/fail_duplicate_decl.carbon b/toolchain/check/testdata/var/fail_duplicate_decl.carbon index 56ca464fed35..ac1e0937e006 100644 --- a/toolchain/check/testdata/var/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/var/fail_duplicate_decl.carbon @@ -35,10 +35,10 @@ fn Main() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,12 +90,12 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %x.loc11: ref %empty_tuple.type = bind_name x, %x.var.loc11 // CHECK:STDOUT: %Op.bound.loc11: = bound_method %x.var.loc11, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11: = bound_method %x.var.loc11, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc11: %ptr.843 = addr_of %x.var.loc11 // CHECK:STDOUT: %no_op.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) // CHECK:STDOUT: %Op.bound.loc3: = bound_method %x.var.loc3, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc3: = bound_method %x.var.loc3, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc3: %ptr.843 = addr_of %x.var.loc3 // CHECK:STDOUT: %no_op.loc3: init %empty_tuple.type = call %bound_method.loc3(%addr.loc3) diff --git a/toolchain/check/testdata/var/fail_init_with_self.carbon b/toolchain/check/testdata/var/fail_init_with_self.carbon index f8fb23a113da..17147e07bf68 100644 --- a/toolchain/check/testdata/var/fail_init_with_self.carbon +++ b/toolchain/check/testdata/var/fail_init_with_self.carbon @@ -30,10 +30,10 @@ fn Main() { // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -69,7 +69,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon index 7c6ddf5f5fd1..600c9fedfe79 100644 --- a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon +++ b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon @@ -32,10 +32,10 @@ var y: () = x; // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -81,7 +81,7 @@ var y: () = x; // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/var/fail_not_copyable.carbon b/toolchain/check/testdata/var/fail_not_copyable.carbon index 2b094f129f82..d9222d4fd0f6 100644 --- a/toolchain/check/testdata/var/fail_not_copyable.carbon +++ b/toolchain/check/testdata/var/fail_not_copyable.carbon @@ -46,13 +46,13 @@ fn F(x: X) { // CHECK:STDOUT: %pattern_type.b05: type = pattern_type String [concrete] // CHECK:STDOUT: %str: String = string_literal "hello" [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.2, @Destroy.impl(%X) [concrete] +// CHECK:STDOUT: %Op.type.9e1: type = fn_type @Op.1, @Destroy.impl(%X) [concrete] // CHECK:STDOUT: %Op.33a: %Op.type.9e1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] -// CHECK:STDOUT: %Op.specific_fn.d1f: = specific_function %Op.33a, @Op.2(%X) [concrete] -// CHECK:STDOUT: %Op.type.051: type = fn_type @Op.2, @Destroy.impl(String) [concrete] +// CHECK:STDOUT: %Op.specific_fn.d1f: = specific_function %Op.33a, @Op.1(%X) [concrete] +// CHECK:STDOUT: %Op.type.051: type = fn_type @Op.1, @Destroy.impl(String) [concrete] // CHECK:STDOUT: %Op.5ef: %Op.type.051 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.93f: = specific_function %Op.5ef, @Op.2(String) [concrete] +// CHECK:STDOUT: %Op.specific_fn.93f: = specific_function %Op.5ef, @Op.1(String) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -111,12 +111,12 @@ fn F(x: X) { // CHECK:STDOUT: %X.ref.loc32: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %y: ref %X = bind_name y, %y.var // CHECK:STDOUT: %Op.bound.loc32: = bound_method %y.var, constants.%Op.33a -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.33a, @Op.2(constants.%X) [concrete = constants.%Op.specific_fn.d1f] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.33a, @Op.1(constants.%X) [concrete = constants.%Op.specific_fn.d1f] // CHECK:STDOUT: %bound_method.loc32: = bound_method %y.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc32: %ptr.d17 = addr_of %y.var // CHECK:STDOUT: %no_op.loc32: init %empty_tuple.type = call %bound_method.loc32(%addr.loc32) // CHECK:STDOUT: %Op.bound.loc25: = bound_method %s.var, constants.%Op.5ef -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5ef, @Op.2(String) [concrete = constants.%Op.specific_fn.93f] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5ef, @Op.1(String) [concrete = constants.%Op.specific_fn.93f] // CHECK:STDOUT: %bound_method.loc25: = bound_method %s.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.a45 = addr_of %s.var // CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) diff --git a/toolchain/check/testdata/var/global_lookup_in_scope.carbon b/toolchain/check/testdata/var/global_lookup_in_scope.carbon index 7ef221404745..69aa267b909f 100644 --- a/toolchain/check/testdata/var/global_lookup_in_scope.carbon +++ b/toolchain/check/testdata/var/global_lookup_in_scope.carbon @@ -32,10 +32,10 @@ fn Main() { // CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete] // CHECK:STDOUT: %Main: %Main.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.7e5: type = fn_type @Op.2, @Destroy.impl(%struct_type.v) [concrete] +// CHECK:STDOUT: %Op.type.7e5: type = fn_type @Op.1, @Destroy.impl(%struct_type.v) [concrete] // CHECK:STDOUT: %Op.477: %Op.type.7e5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ef9: type = ptr_type %struct_type.v [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.477, @Op.2(%struct_type.v) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.477, @Op.1(%struct_type.v) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -90,7 +90,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %struct_type.v = bind_name y, %y.var // CHECK:STDOUT: %Op.bound: = bound_method %y.var, constants.%Op.477 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.477, @Op.2(constants.%struct_type.v) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.477, @Op.1(constants.%struct_type.v) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %y.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ef9 = addr_of %y.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/var/lookup.carbon b/toolchain/check/testdata/var/lookup.carbon index 9180ee87cfcd..bb52e0011428 100644 --- a/toolchain/check/testdata/var/lookup.carbon +++ b/toolchain/check/testdata/var/lookup.carbon @@ -26,10 +26,10 @@ fn Main() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -68,7 +68,7 @@ fn Main() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %x.ref: ref %empty_tuple.type = name_ref x, %x // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/var/shadowing.carbon b/toolchain/check/testdata/var/shadowing.carbon index 5b8bdc2d3113..4c6a767a462a 100644 --- a/toolchain/check/testdata/var/shadowing.carbon +++ b/toolchain/check/testdata/var/shadowing.carbon @@ -39,10 +39,10 @@ fn Main() { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,17 +127,17 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %Op.bound.loc10: = bound_method %x.var.loc10, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var.loc10, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.843 = addr_of %x.var.loc10 // CHECK:STDOUT: %no_op.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %Op.bound.loc8: = bound_method %x.var.loc8, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8: = bound_method %x.var.loc8, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.843 = addr_of %x.var.loc8 // CHECK:STDOUT: %no_op.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %Op.bound.loc5: = bound_method %NS.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc5: = bound_method %NS.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc5: %ptr.843 = addr_of %NS.var // CHECK:STDOUT: %no_op.loc5: init %empty_tuple.type = call %bound_method.loc5(%addr.loc5) diff --git a/toolchain/check/testdata/var/var_pattern.carbon b/toolchain/check/testdata/var/var_pattern.carbon index 694292506cbf..2e59fd7481e0 100644 --- a/toolchain/check/testdata/var/var_pattern.carbon +++ b/toolchain/check/testdata/var/var_pattern.carbon @@ -154,10 +154,10 @@ fn G() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -195,7 +195,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %x.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -213,10 +213,10 @@ fn G() { // CHECK:STDOUT: %pattern_type.5b8: type = pattern_type %tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -265,7 +265,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %y.var // CHECK:STDOUT: %Op.bound: = bound_method %y.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %y.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %y.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -285,9 +285,9 @@ fn G() { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.2, @Destroy.impl(%tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.1, @Destroy.impl(%tuple.type) [concrete] // CHECK:STDOUT: %Op.166: %Op.type.4e8 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.166, @Op.2(%tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.166, @Op.1(%tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -342,7 +342,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %tuple.elem1.loc5_3 // CHECK:STDOUT: %Op.bound: = bound_method %.var, constants.%Op.166 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.166, @Op.2(constants.%tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.166, @Op.1(constants.%tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.709 = addr_of %.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -362,9 +362,9 @@ fn G() { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.2, @Destroy.impl(%tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.1, @Destroy.impl(%tuple.type) [concrete] // CHECK:STDOUT: %Op.166: %Op.type.4e8 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.166, @Op.2(%tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.166, @Op.1(%tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -419,7 +419,7 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %tuple.elem1.loc5_7 // CHECK:STDOUT: %Op.bound: = bound_method %.var, constants.%Op.166 -// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.166, @Op.2(constants.%tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.166, @Op.1(constants.%tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %.var, %Op.specific_fn // CHECK:STDOUT: %addr: %ptr.709 = addr_of %.var // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method(%addr) @@ -437,10 +437,10 @@ fn G() { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -511,12 +511,12 @@ fn G() { // CHECK:STDOUT: assign %.loc4_13.1, %.loc4_13.2 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%.loc8_5, %.loc4_13.1) // CHECK:STDOUT: %Op.bound.loc4: = bound_method %.loc4_13.1, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc4: = bound_method %.loc4_13.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc4: %ptr.843 = addr_of %.loc4_13.1 // CHECK:STDOUT: %no_op.loc4: init %empty_tuple.type = call %bound_method.loc4(%addr.loc4) // CHECK:STDOUT: %Op.bound.loc7: = bound_method %v.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc7: = bound_method %v.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.843 = addr_of %v.var // CHECK:STDOUT: %no_op.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) @@ -632,18 +632,18 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.assoc_type: type = assoc_entity_type @Destroy [concrete] // CHECK:STDOUT: %assoc0: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.725 [concrete] -// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.1 [concrete] +// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.651: %Op.type.bae = struct_value () [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %Op.type.bc9: type = fn_type @Op.2, @Destroy.impl(%T) [symbolic] +// CHECK:STDOUT: %Op.type.bc9: type = fn_type @Op.1, @Destroy.impl(%T) [symbolic] // CHECK:STDOUT: %Op.46f: %Op.type.bc9 = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.impl_witness.1dc: = impl_witness imports.%Destroy.impl_witness_table, @Destroy.impl(%empty_tuple.type) [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %empty_tuple.type, (%Destroy.impl_witness.1dc) [concrete] // CHECK:STDOUT: %.346: type = fn_type_with_self_type %Op.type.bae, %Destroy.facet [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -691,7 +691,7 @@ fn G() { // CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.f99 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %.346 = impl_witness_access constants.%Destroy.impl_witness.1dc, element0 [concrete = constants.%Op.ea3] // CHECK:STDOUT: %bound_method.1: = bound_method %.1, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.2: = bound_method %.1, %specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %.1 // CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.2(%addr) @@ -715,13 +715,13 @@ fn G() { // CHECK:STDOUT: %ptr.709: type = ptr_type %tuple.type.bcd [concrete] // CHECK:STDOUT: %tuple: %tuple.type.bcd = tuple_value (%empty_tuple, %empty_tuple) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.2, @Destroy.impl(%tuple.type.bcd) [concrete] +// CHECK:STDOUT: %Op.type.4e8: type = fn_type @Op.1, @Destroy.impl(%tuple.type.bcd) [concrete] // CHECK:STDOUT: %Op.166: %Op.type.4e8 = struct_value () [concrete] -// CHECK:STDOUT: %Op.specific_fn.48a: = specific_function %Op.166, @Op.2(%tuple.type.bcd) [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.48a: = specific_function %Op.166, @Op.1(%tuple.type.bcd) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn.393: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -792,12 +792,12 @@ fn G() { // CHECK:STDOUT: } // CHECK:STDOUT: %z: ref %empty_tuple.type = bind_name z, %z.var // CHECK:STDOUT: %Op.bound.loc9_15: = bound_method %.var, constants.%Op.166 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.166, @Op.2(constants.%tuple.type.bcd) [concrete = constants.%Op.specific_fn.48a] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.166, @Op.1(constants.%tuple.type.bcd) [concrete = constants.%Op.specific_fn.48a] // CHECK:STDOUT: %bound_method.loc9_15: = bound_method %.var, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_15: %ptr.709 = addr_of %.var // CHECK:STDOUT: %no_op.loc9_15: init %empty_tuple.type = call %bound_method.loc9_15(%addr.loc9_15) // CHECK:STDOUT: %Op.bound.loc9_27: = bound_method %z.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] // CHECK:STDOUT: %bound_method.loc9_27: = bound_method %z.var, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_27: %ptr.843 = addr_of %z.var // CHECK:STDOUT: %no_op.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27(%addr.loc9_27) @@ -879,10 +879,10 @@ fn G() { // CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %tuple.type [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.2, @Destroy.impl(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.type.a63: type = fn_type @Op.1, @Destroy.impl(%empty_tuple.type) [concrete] // CHECK:STDOUT: %Op.ea3: %Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.2(%empty_tuple.type) [concrete] +// CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.ea3, @Op.1(%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -957,17 +957,17 @@ fn G() { // CHECK:STDOUT: %.loc8_48.3: %empty_tuple.type = converted %F.call.loc8_48, %tuple.loc8_48 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %z: %empty_tuple.type = bind_name z, %.loc8_48.3 // CHECK:STDOUT: %Op.bound.loc8_48: = bound_method %.loc8_48.1, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_48: = bound_method %.loc8_48.1, %Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8_48: %ptr.843 = addr_of %.loc8_48.1 // CHECK:STDOUT: %no_op.loc8_48: init %empty_tuple.type = call %bound_method.loc8_48(%addr.loc8_48) // CHECK:STDOUT: %Op.bound.loc8_38: = bound_method %.loc8_38.1, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_38: = bound_method %.loc8_38.1, %Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_38: %ptr.843 = addr_of %.loc8_38.1 // CHECK:STDOUT: %no_op.loc8_38: init %empty_tuple.type = call %bound_method.loc8_38(%addr.loc8_38) // CHECK:STDOUT: %Op.bound.loc8_15: = bound_method %y.var, constants.%Op.ea3 -// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] +// CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.ea3, @Op.1(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_15: = bound_method %y.var, %Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_15: %ptr.843 = addr_of %y.var // CHECK:STDOUT: %no_op.loc8_15: init %empty_tuple.type = call %bound_method.loc8_15(%addr.loc8_15) diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index f21bbca75605..741c90becc3f 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -215,7 +215,7 @@ fn F() { // CHECK:STDOUT: requirement_impls %.loc7_18, type // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc7_6.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc7_6.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] @@ -231,28 +231,28 @@ fn F() { // CHECK:STDOUT: requirement_impls %.loc13_18, %Type.ref // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc13_6.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc13_6.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%T.loc7_6.1: %I.type) { -// CHECK:STDOUT: %T.loc7_6.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.2 (constants.%T)] +// CHECK:STDOUT: generic fn @F(%T.loc7_6.2: %I.type) { +// CHECK:STDOUT: %T.loc7_6.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @G(%T.loc13_6.1: %I.type) { -// CHECK:STDOUT: %T.loc13_6.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.2 (constants.%T)] +// CHECK:STDOUT: generic fn @G(%T.loc13_6.2: %I.type) { +// CHECK:STDOUT: %T.loc13_6.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { -// CHECK:STDOUT: %T.loc7_6.2 => constants.%T +// CHECK:STDOUT: %T.loc7_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { -// CHECK:STDOUT: %T.loc13_6.2 => constants.%T +// CHECK:STDOUT: %T.loc13_6.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_self_impls_error.carbon @@ -340,7 +340,7 @@ fn F() { // CHECK:STDOUT: requirement_equivalent %.Self.ref, %.loc12_37 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc12_15.1: %I_where.type.cad = bind_symbolic_name U, 0 [symbolic = %U.loc12_15.2 (constants.%U)] +// CHECK:STDOUT: %U.loc12_15.2: %I_where.type.cad = bind_symbolic_name U, 0 [symbolic = %U.loc12_15.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %Impls.decl: %Impls.type = fn_decl @Impls [concrete = constants.%Impls] { // CHECK:STDOUT: %V.patt: %pattern_type.d2b = symbolic_binding_pattern V, 0 [concrete] @@ -356,7 +356,7 @@ fn F() { // CHECK:STDOUT: requirement_impls %.loc14_22, %I.ref // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc14_10.1: %J_where.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_10.2 (constants.%V)] +// CHECK:STDOUT: %V.loc14_10.2: %J_where.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_10.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: %And.decl: %And.type = fn_decl @And [concrete = constants.%And] { // CHECK:STDOUT: %W.patt: %pattern_type.127 = symbolic_binding_pattern W, 0 [concrete] @@ -379,38 +379,38 @@ fn F() { // CHECK:STDOUT: requirement_equivalent %impl.elem0, %.loc16_50 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc16_8.1: %I_where.type.427 = bind_symbolic_name W, 0 [symbolic = %W.loc16_8.2 (constants.%W)] +// CHECK:STDOUT: %W.loc16_8.2: %I_where.type.427 = bind_symbolic_name W, 0 [symbolic = %W.loc16_8.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EqualEqual(%U.loc12_15.1: %I_where.type.cad) { -// CHECK:STDOUT: %U.loc12_15.2: %I_where.type.cad = bind_symbolic_name U, 0 [symbolic = %U.loc12_15.2 (constants.%U)] +// CHECK:STDOUT: generic fn @EqualEqual(%U.loc12_15.2: %I_where.type.cad) { +// CHECK:STDOUT: %U.loc12_15.1: %I_where.type.cad = bind_symbolic_name U, 0 [symbolic = %U.loc12_15.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Impls(%V.loc14_10.1: %J_where.type) { -// CHECK:STDOUT: %V.loc14_10.2: %J_where.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_10.2 (constants.%V)] +// CHECK:STDOUT: generic fn @Impls(%V.loc14_10.2: %J_where.type) { +// CHECK:STDOUT: %V.loc14_10.1: %J_where.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_10.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @And(%W.loc16_8.1: %I_where.type.427) { -// CHECK:STDOUT: %W.loc16_8.2: %I_where.type.427 = bind_symbolic_name W, 0 [symbolic = %W.loc16_8.2 (constants.%W)] +// CHECK:STDOUT: generic fn @And(%W.loc16_8.2: %I_where.type.427) { +// CHECK:STDOUT: %W.loc16_8.1: %I_where.type.427 = bind_symbolic_name W, 0 [symbolic = %W.loc16_8.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @EqualEqual(constants.%U) { -// CHECK:STDOUT: %U.loc12_15.2 => constants.%U +// CHECK:STDOUT: %U.loc12_15.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Impls(constants.%V) { -// CHECK:STDOUT: %V.loc14_10.2 => constants.%V +// CHECK:STDOUT: %V.loc14_10.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @And(constants.%W) { -// CHECK:STDOUT: %W.loc16_8.2 => constants.%W +// CHECK:STDOUT: %W.loc16_8.1 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- associated_type_impls.carbon @@ -455,18 +455,18 @@ fn F() { // CHECK:STDOUT: requirement_impls %.loc12_36.2, %M.ref // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc12_24.1: %K_where.type = bind_symbolic_name W, 0 [symbolic = %W.loc12_24.2 (constants.%W)] +// CHECK:STDOUT: %W.loc12_24.2: %K_where.type = bind_symbolic_name W, 0 [symbolic = %W.loc12_24.1 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @AssociatedTypeImpls(%W.loc12_24.1: %K_where.type) { -// CHECK:STDOUT: %W.loc12_24.2: %K_where.type = bind_symbolic_name W, 0 [symbolic = %W.loc12_24.2 (constants.%W)] +// CHECK:STDOUT: generic fn @AssociatedTypeImpls(%W.loc12_24.2: %K_where.type) { +// CHECK:STDOUT: %W.loc12_24.1: %K_where.type = bind_symbolic_name W, 0 [symbolic = %W.loc12_24.1 (constants.%W)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AssociatedTypeImpls(constants.%W) { -// CHECK:STDOUT: %W.loc12_24.2 => constants.%W +// CHECK:STDOUT: %W.loc12_24.1 => constants.%W // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_error_in_constraint.carbon diff --git a/toolchain/check/testdata/where_expr/designator.carbon b/toolchain/check/testdata/where_expr/designator.carbon index 34c4c0a5c2f6..3423af225006 100644 --- a/toolchain/check/testdata/where_expr/designator.carbon +++ b/toolchain/check/testdata/where_expr/designator.carbon @@ -176,7 +176,7 @@ fn G(T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: requirement_equivalent %.Self.ref, %.loc9_37 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_15.1: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_15.2 (constants.%T)] +// CHECK:STDOUT: %T.loc9_15.2: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_15.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %PeriodMember.decl: %PeriodMember.type = fn_decl @PeriodMember [concrete = constants.%PeriodMember] { // CHECK:STDOUT: %U.patt: %pattern_type.f03 = symbolic_binding_pattern U, 0 [concrete] @@ -194,7 +194,7 @@ fn G(T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: requirement_equivalent %impl.elem0, %.loc11_41 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U.loc11_17.1: %I_where.type = bind_symbolic_name U, 0 [symbolic = %U.loc11_17.2 (constants.%U)] +// CHECK:STDOUT: %U.loc11_17.2: %I_where.type = bind_symbolic_name U, 0 [symbolic = %U.loc11_17.1 (constants.%U)] // CHECK:STDOUT: } // CHECK:STDOUT: %TypeSelfImpls.decl: %TypeSelfImpls.type = fn_decl @TypeSelfImpls [concrete = constants.%TypeSelfImpls] { // CHECK:STDOUT: %V.patt: %pattern_type.2b5 = symbolic_binding_pattern V, 0 [concrete] @@ -207,37 +207,37 @@ fn G(T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: requirement_impls %.Self.ref, %I.ref // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc13_18.1: %type_where = bind_symbolic_name V, 0 [symbolic = %V.loc13_18.2 (constants.%V)] +// CHECK:STDOUT: %V.loc13_18.2: %type_where = bind_symbolic_name V, 0 [symbolic = %V.loc13_18.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @PeriodSelf(%T.loc9_15.1: %I_where.type) { -// CHECK:STDOUT: %T.loc9_15.2: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_15.2 (constants.%T)] +// CHECK:STDOUT: generic fn @PeriodSelf(%T.loc9_15.2: %I_where.type) { +// CHECK:STDOUT: %T.loc9_15.1: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_15.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @PeriodMember(%U.loc11_17.1: %I_where.type) { -// CHECK:STDOUT: %U.loc11_17.2: %I_where.type = bind_symbolic_name U, 0 [symbolic = %U.loc11_17.2 (constants.%U)] +// CHECK:STDOUT: generic fn @PeriodMember(%U.loc11_17.2: %I_where.type) { +// CHECK:STDOUT: %U.loc11_17.1: %I_where.type = bind_symbolic_name U, 0 [symbolic = %U.loc11_17.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @TypeSelfImpls(%V.loc13_18.1: %type_where) { -// CHECK:STDOUT: %V.loc13_18.2: %type_where = bind_symbolic_name V, 0 [symbolic = %V.loc13_18.2 (constants.%V)] +// CHECK:STDOUT: generic fn @TypeSelfImpls(%V.loc13_18.2: %type_where) { +// CHECK:STDOUT: %V.loc13_18.1: %type_where = bind_symbolic_name V, 0 [symbolic = %V.loc13_18.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PeriodSelf(constants.%T) { -// CHECK:STDOUT: %T.loc9_15.2 => constants.%T +// CHECK:STDOUT: %T.loc9_15.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PeriodMember(constants.%U) { -// CHECK:STDOUT: %U.loc11_17.2 => constants.%U +// CHECK:STDOUT: %U.loc11_17.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TypeSelfImpls(constants.%V) { -// CHECK:STDOUT: %V.loc13_18.2 => constants.%V +// CHECK:STDOUT: %V.loc13_18.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/where_expr/dot_self_index.carbon b/toolchain/check/testdata/where_expr/dot_self_index.carbon index 908c5f44da73..a4808c27a1a5 100644 --- a/toolchain/check/testdata/where_expr/dot_self_index.carbon +++ b/toolchain/check/testdata/where_expr/dot_self_index.carbon @@ -73,44 +73,44 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %U.param_patt: @H.%pattern_type (%pattern_type.668) = value_param_pattern %U.patt, call_param0 [concrete] // CHECK:STDOUT: %V.patt: %pattern_type.98f = symbolic_binding_pattern V, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc21_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.2 (constants.%T)] +// CHECK:STDOUT: %T.loc21_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.1 (constants.%T)] // CHECK:STDOUT: %U.param: @H.%Empty_where.type (%Empty_where.type.b73) = value_param call_param0 // CHECK:STDOUT: %.loc21_28.1: type = splice_block %.loc21_28.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.b73)] { // CHECK:STDOUT: %Empty.ref: %Empty.type.d5a = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.generic] -// CHECK:STDOUT: %T.ref.loc21_25: type = name_ref T, %T.loc21_6.1 [symbolic = %T.loc21_6.2 (constants.%T)] -// CHECK:STDOUT: %Empty.type.loc21_26.1: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc21_26.2 (constants.%Empty.type.3e5fde.2)] +// CHECK:STDOUT: %T.ref.loc21_25: type = name_ref T, %T.loc21_6.2 [symbolic = %T.loc21_6.1 (constants.%T)] +// CHECK:STDOUT: %Empty.type.loc21_26.2: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc21_26.1 (constants.%Empty.type.3e5fde.2)] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc21_26.2 (%Empty.type.3e5fde.2) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.c95)] +// CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc21_26.1 (%Empty.type.3e5fde.2) = name_ref .Self, %.Self.2 [symbolic = %.Self.1 (constants.%.Self.c95)] // CHECK:STDOUT: %.loc21_34.1: @H.%Empty.assoc_type (%Empty.assoc_type.3cf698.2) = specific_constant @A.%assoc0, @Empty(constants.%T) [symbolic = %assoc0 (constants.%assoc0.3715ce.2)] // CHECK:STDOUT: %A.ref: @H.%Empty.assoc_type (%Empty.assoc_type.3cf698.2) = name_ref A, %.loc21_34.1 [symbolic = %assoc0 (constants.%assoc0.3715ce.2)] -// CHECK:STDOUT: %.Self.as_type.loc21_34.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc21_34.2 (constants.%.Self.as_type.a75)] -// CHECK:STDOUT: %.loc21_34.2: type = converted %.Self.ref, %.Self.as_type.loc21_34.1 [symbolic = %.Self.as_type.loc21_34.2 (constants.%.Self.as_type.a75)] -// CHECK:STDOUT: %impl.elem0.loc21_34.1: type = impl_witness_access constants.%Empty.lookup_impl_witness.b1d, element0 [symbolic = %impl.elem0.loc21_34.2 (constants.%impl.elem0.c6e)] -// CHECK:STDOUT: %T.ref.loc21_39: type = name_ref T, %T.loc21_6.1 [symbolic = %T.loc21_6.2 (constants.%T)] -// CHECK:STDOUT: %ptr.loc21_40.1: type = ptr_type %T.ref.loc21_39 [symbolic = %ptr.loc21_40.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %.loc21_28.2: type = where_expr %.Self.1 [symbolic = %Empty_where.type (constants.%Empty_where.type.b73)] { -// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc21_34.1, %ptr.loc21_40.1 +// CHECK:STDOUT: %.Self.as_type.loc21_34.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc21_34.1 (constants.%.Self.as_type.a75)] +// CHECK:STDOUT: %.loc21_34.2: type = converted %.Self.ref, %.Self.as_type.loc21_34.2 [symbolic = %.Self.as_type.loc21_34.1 (constants.%.Self.as_type.a75)] +// CHECK:STDOUT: %impl.elem0.loc21_34.2: type = impl_witness_access constants.%Empty.lookup_impl_witness.b1d, element0 [symbolic = %impl.elem0.loc21_34.1 (constants.%impl.elem0.c6e)] +// CHECK:STDOUT: %T.ref.loc21_39: type = name_ref T, %T.loc21_6.2 [symbolic = %T.loc21_6.1 (constants.%T)] +// CHECK:STDOUT: %ptr.loc21_40.2: type = ptr_type %T.ref.loc21_39 [symbolic = %ptr.loc21_40.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %.loc21_28.2: type = where_expr %.Self.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.b73)] { +// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc21_34.2, %ptr.loc21_40.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %U: @H.%Empty_where.type (%Empty_where.type.b73) = bind_name U, %U.param -// CHECK:STDOUT: %V.loc21_43.1: type = bind_symbolic_name V, 1 [symbolic = %V.loc21_43.2 (constants.%V)] +// CHECK:STDOUT: %V.loc21_43.2: type = bind_symbolic_name V, 1 [symbolic = %V.loc21_43.1 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @H(%T.loc21_6.1: type, %V.loc21_43.1: type) { -// CHECK:STDOUT: %T.loc21_6.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.2 (constants.%T)] -// CHECK:STDOUT: %Empty.type.loc21_26.2: type = facet_type <@Empty, @Empty(%T.loc21_6.2)> [symbolic = %Empty.type.loc21_26.2 (constants.%Empty.type.3e5fde.2)] +// CHECK:STDOUT: generic fn @H(%T.loc21_6.2: type, %V.loc21_43.2: type) { +// CHECK:STDOUT: %T.loc21_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.1 (constants.%T)] +// CHECK:STDOUT: %Empty.type.loc21_26.1: type = facet_type <@Empty, @Empty(%T.loc21_6.1)> [symbolic = %Empty.type.loc21_26.1 (constants.%Empty.type.3e5fde.2)] // CHECK:STDOUT: -// CHECK:STDOUT: %require_complete.loc21_34: = require_complete_type %Empty.type.loc21_26.2 [symbolic = %require_complete.loc21_34 (constants.%require_complete.22f)] -// CHECK:STDOUT: %Empty.assoc_type: type = assoc_entity_type @Empty, @Empty(%T.loc21_6.2) [symbolic = %Empty.assoc_type (constants.%Empty.assoc_type.3cf698.2)] +// CHECK:STDOUT: %require_complete.loc21_34: = require_complete_type %Empty.type.loc21_26.1 [symbolic = %require_complete.loc21_34 (constants.%require_complete.22f)] +// CHECK:STDOUT: %Empty.assoc_type: type = assoc_entity_type @Empty, @Empty(%T.loc21_6.1) [symbolic = %Empty.assoc_type (constants.%Empty.assoc_type.3cf698.2)] // CHECK:STDOUT: %assoc0: @H.%Empty.assoc_type (%Empty.assoc_type.3cf698.2) = assoc_entity element0, @Empty.%A [symbolic = %assoc0 (constants.%assoc0.3715ce.2)] -// CHECK:STDOUT: %.Self.as_type.loc21_34.2: type = facet_access_type %.Self.2 [symbolic = %.Self.as_type.loc21_34.2 (constants.%.Self.as_type.a75)] -// CHECK:STDOUT: %Empty.lookup_impl_witness: = lookup_impl_witness %.Self.2, @Empty, @Empty(%T.loc21_6.2) [symbolic = %Empty.lookup_impl_witness (constants.%Empty.lookup_impl_witness.b1d)] -// CHECK:STDOUT: %impl.elem0.loc21_34.2: type = impl_witness_access %Empty.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_34.2 (constants.%impl.elem0.c6e)] -// CHECK:STDOUT: %ptr.loc21_40.2: type = ptr_type %T.loc21_6.2 [symbolic = %ptr.loc21_40.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc21_6.2) where %impl.elem0.loc21_34.2 = %ptr.loc21_40.2> [symbolic = %Empty_where.type (constants.%Empty_where.type.b73)] +// CHECK:STDOUT: %.Self.as_type.loc21_34.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc21_34.1 (constants.%.Self.as_type.a75)] +// CHECK:STDOUT: %Empty.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Empty, @Empty(%T.loc21_6.1) [symbolic = %Empty.lookup_impl_witness (constants.%Empty.lookup_impl_witness.b1d)] +// CHECK:STDOUT: %impl.elem0.loc21_34.1: type = impl_witness_access %Empty.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_34.1 (constants.%impl.elem0.c6e)] +// CHECK:STDOUT: %ptr.loc21_40.1: type = ptr_type %T.loc21_6.1 [symbolic = %ptr.loc21_40.1 (constants.%ptr.79f)] +// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc21_6.1) where %impl.elem0.loc21_34.1 = %ptr.loc21_40.1> [symbolic = %Empty_where.type (constants.%Empty_where.type.b73)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Empty_where.type [symbolic = %pattern_type (constants.%pattern_type.668)] -// CHECK:STDOUT: %V.loc21_43.2: type = bind_symbolic_name V, 1 [symbolic = %V.loc21_43.2 (constants.%V)] +// CHECK:STDOUT: %V.loc21_43.1: type = bind_symbolic_name V, 1 [symbolic = %V.loc21_43.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc21_17: = require_complete_type %Empty_where.type [symbolic = %require_complete.loc21_17 (constants.%require_complete.af8)] @@ -122,35 +122,35 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%T, constants.%V) { -// CHECK:STDOUT: %T.loc21_6.2 => constants.%T -// CHECK:STDOUT: %Empty.type.loc21_26.2 => constants.%Empty.type.3e5fde.2 -// CHECK:STDOUT: %.Self.2 => constants.%.Self.c95 +// CHECK:STDOUT: %T.loc21_6.1 => constants.%T +// CHECK:STDOUT: %Empty.type.loc21_26.1 => constants.%Empty.type.3e5fde.2 +// CHECK:STDOUT: %.Self.1 => constants.%.Self.c95 // CHECK:STDOUT: %require_complete.loc21_34 => constants.%require_complete.22f // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.3cf698.2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.3715ce.2 -// CHECK:STDOUT: %.Self.as_type.loc21_34.2 => constants.%.Self.as_type.a75 +// CHECK:STDOUT: %.Self.as_type.loc21_34.1 => constants.%.Self.as_type.a75 // CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.b1d -// CHECK:STDOUT: %impl.elem0.loc21_34.2 => constants.%impl.elem0.c6e -// CHECK:STDOUT: %ptr.loc21_40.2 => constants.%ptr.79f +// CHECK:STDOUT: %impl.elem0.loc21_34.1 => constants.%impl.elem0.c6e +// CHECK:STDOUT: %ptr.loc21_40.1 => constants.%ptr.79f // CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.b73 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.668 -// CHECK:STDOUT: %V.loc21_43.2 => constants.%V +// CHECK:STDOUT: %V.loc21_43.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%i32, bool) { -// CHECK:STDOUT: %T.loc21_6.2 => constants.%i32 -// CHECK:STDOUT: %Empty.type.loc21_26.2 => constants.%Empty.type.f0b -// CHECK:STDOUT: %.Self.2 => constants.%.Self.e6e +// CHECK:STDOUT: %T.loc21_6.1 => constants.%i32 +// CHECK:STDOUT: %Empty.type.loc21_26.1 => constants.%Empty.type.f0b +// CHECK:STDOUT: %.Self.1 => constants.%.Self.e6e // CHECK:STDOUT: %require_complete.loc21_34 => constants.%complete_type.091 // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.7c7 // CHECK:STDOUT: %assoc0 => constants.%assoc0.758 -// CHECK:STDOUT: %.Self.as_type.loc21_34.2 => constants.%.Self.as_type.920 +// CHECK:STDOUT: %.Self.as_type.loc21_34.1 => constants.%.Self.as_type.920 // CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.4e3 -// CHECK:STDOUT: %impl.elem0.loc21_34.2 => constants.%impl.elem0.64a -// CHECK:STDOUT: %ptr.loc21_40.2 => constants.%ptr.235 +// CHECK:STDOUT: %impl.elem0.loc21_34.1 => constants.%impl.elem0.64a +// CHECK:STDOUT: %ptr.loc21_40.1 => constants.%ptr.235 // CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.fc2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.012 -// CHECK:STDOUT: %V.loc21_43.2 => bool +// CHECK:STDOUT: %V.loc21_43.1 => bool // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc21_17 => constants.%complete_type.a3f diff --git a/toolchain/check/testdata/where_expr/equal_rewrite.carbon b/toolchain/check/testdata/where_expr/equal_rewrite.carbon index be4eb2d57b66..140b9d588319 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -246,18 +246,18 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc9_28.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc9_10.1: %N_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_10.2 (constants.%T)] +// CHECK:STDOUT: %T.loc9_10.2: %N_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_10.1 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Equal(%T.loc9_10.1: %N_where.type) { -// CHECK:STDOUT: %T.loc9_10.2: %N_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_10.2 (constants.%T)] +// CHECK:STDOUT: generic fn @Equal(%T.loc9_10.2: %N_where.type) { +// CHECK:STDOUT: %T.loc9_10.1: %N_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_10.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Equal(constants.%T) { -// CHECK:STDOUT: %T.loc9_10.2 => constants.%T +// CHECK:STDOUT: %T.loc9_10.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested_rewrites.carbon @@ -319,18 +319,18 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: requirement_rewrite %impl.elem1, %.loc10_54.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %D.loc10_18.1: %A_where.type.2d0 = bind_symbolic_name D, 0 [symbolic = %D.loc10_18.2 (constants.%D)] +// CHECK:STDOUT: %D.loc10_18.2: %A_where.type.2d0 = bind_symbolic_name D, 0 [symbolic = %D.loc10_18.1 (constants.%D)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NestedRewrite(%D.loc10_18.1: %A_where.type.2d0) { -// CHECK:STDOUT: %D.loc10_18.2: %A_where.type.2d0 = bind_symbolic_name D, 0 [symbolic = %D.loc10_18.2 (constants.%D)] +// CHECK:STDOUT: generic fn @NestedRewrite(%D.loc10_18.2: %A_where.type.2d0) { +// CHECK:STDOUT: %D.loc10_18.1: %A_where.type.2d0 = bind_symbolic_name D, 0 [symbolic = %D.loc10_18.1 (constants.%D)] // CHECK:STDOUT: // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NestedRewrite(constants.%D) { -// CHECK:STDOUT: %D.loc10_18.2 => constants.%D +// CHECK:STDOUT: %D.loc10_18.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- repeated_rewrite.carbon @@ -378,7 +378,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: requirement_rewrite %impl.elem0, %i32 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %G.loc9_15.1: %E_where.type = bind_symbolic_name G, 0 [symbolic = %G.loc9_15.2 (constants.%G)] +// CHECK:STDOUT: %G.loc9_15.2: %E_where.type = bind_symbolic_name G, 0 [symbolic = %G.loc9_15.1 (constants.%G)] // CHECK:STDOUT: } // CHECK:STDOUT: %RepeatedRewrite.decl: %RepeatedRewrite.type = fn_decl @RepeatedRewrite [concrete = constants.%RepeatedRewrite] { // CHECK:STDOUT: %H.patt: %pattern_type.c64 = symbolic_binding_pattern H, 0 [concrete] @@ -405,12 +405,12 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc11_45, %i32.loc11_50 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %H.loc11_20.1: %E_where.type = bind_symbolic_name H, 0 [symbolic = %H.loc11_20.2 (constants.%H)] +// CHECK:STDOUT: %H.loc11_20.2: %E_where.type = bind_symbolic_name H, 0 [symbolic = %H.loc11_20.1 (constants.%H)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @OneRewrite(%G.loc9_15.1: %E_where.type) { -// CHECK:STDOUT: %G.loc9_15.2: %E_where.type = bind_symbolic_name G, 0 [symbolic = %G.loc9_15.2 (constants.%G)] +// CHECK:STDOUT: generic fn @OneRewrite(%G.loc9_15.2: %E_where.type) { +// CHECK:STDOUT: %G.loc9_15.1: %E_where.type = bind_symbolic_name G, 0 [symbolic = %G.loc9_15.1 (constants.%G)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -420,8 +420,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @RepeatedRewrite(%H.loc11_20.1: %E_where.type) { -// CHECK:STDOUT: %H.loc11_20.2: %E_where.type = bind_symbolic_name H, 0 [symbolic = %H.loc11_20.2 (constants.%H)] +// CHECK:STDOUT: generic fn @RepeatedRewrite(%H.loc11_20.2: %E_where.type) { +// CHECK:STDOUT: %H.loc11_20.1: %E_where.type = bind_symbolic_name H, 0 [symbolic = %H.loc11_20.1 (constants.%H)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -433,28 +433,28 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OneRewrite(constants.%G) { -// CHECK:STDOUT: %G.loc9_15.2 => constants.%G +// CHECK:STDOUT: %G.loc9_15.1 => constants.%G // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @RepeatedRewrite(constants.%H) { -// CHECK:STDOUT: %H.loc11_20.2 => constants.%H +// CHECK:STDOUT: %H.loc11_20.1 => constants.%H // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OneRewrite(constants.%H) { -// CHECK:STDOUT: %G.loc9_15.2 => constants.%H +// CHECK:STDOUT: %G.loc9_15.1 => constants.%H // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @RepeatedRewrite(constants.%I) { -// CHECK:STDOUT: %H.loc11_20.2 => constants.%I +// CHECK:STDOUT: %H.loc11_20.1 => constants.%I // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %OneRewrite.specific_fn.loc13_3.2 => constants.%OneRewrite.specific_fn.7fa5d5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OneRewrite(constants.%I) { -// CHECK:STDOUT: %G.loc9_15.2 => constants.%I +// CHECK:STDOUT: %G.loc9_15.1 => constants.%I // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -514,7 +514,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: requirement_rewrite %impl.elem1, %.loc10_46.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %M.loc10_17.1: %J_where.type = bind_symbolic_name M, 0 [symbolic = %M.loc10_17.2 (constants.%M)] +// CHECK:STDOUT: %M.loc10_17.2: %J_where.type = bind_symbolic_name M, 0 [symbolic = %M.loc10_17.1 (constants.%M)] // CHECK:STDOUT: } // CHECK:STDOUT: %Reversed.decl: %Reversed.type = fn_decl @Reversed [concrete = constants.%Reversed] { // CHECK:STDOUT: %N.patt: %pattern_type.49f = symbolic_binding_pattern N, 0 [concrete] @@ -542,12 +542,12 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc12_45.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %N.loc12_13.1: %J_where.type = bind_symbolic_name N, 0 [symbolic = %N.loc12_13.2 (constants.%N)] +// CHECK:STDOUT: %N.loc12_13.2: %J_where.type = bind_symbolic_name N, 0 [symbolic = %N.loc12_13.1 (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Alphabetical(%M.loc10_17.1: %J_where.type) { -// CHECK:STDOUT: %M.loc10_17.2: %J_where.type = bind_symbolic_name M, 0 [symbolic = %M.loc10_17.2 (constants.%M)] +// CHECK:STDOUT: generic fn @Alphabetical(%M.loc10_17.2: %J_where.type) { +// CHECK:STDOUT: %M.loc10_17.1: %J_where.type = bind_symbolic_name M, 0 [symbolic = %M.loc10_17.1 (constants.%M)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -557,8 +557,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Reversed(%N.loc12_13.1: %J_where.type) { -// CHECK:STDOUT: %N.loc12_13.2: %J_where.type = bind_symbolic_name N, 0 [symbolic = %N.loc12_13.2 (constants.%N)] +// CHECK:STDOUT: generic fn @Reversed(%N.loc12_13.2: %J_where.type) { +// CHECK:STDOUT: %N.loc12_13.1: %J_where.type = bind_symbolic_name N, 0 [symbolic = %N.loc12_13.1 (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -570,15 +570,15 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Alphabetical(constants.%M) { -// CHECK:STDOUT: %M.loc10_17.2 => constants.%M +// CHECK:STDOUT: %M.loc10_17.1 => constants.%M // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Reversed(constants.%N) { -// CHECK:STDOUT: %N.loc12_13.2 => constants.%N +// CHECK:STDOUT: %N.loc12_13.1 => constants.%N // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Alphabetical(constants.%N) { -// CHECK:STDOUT: %M.loc10_17.2 => constants.%N +// CHECK:STDOUT: %M.loc10_17.1 => constants.%N // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/sem_ir/inst_namer.cpp b/toolchain/sem_ir/inst_namer.cpp index 46c3f7d5121c..eaf9b2a4dfce 100644 --- a/toolchain/sem_ir/inst_namer.cpp +++ b/toolchain/sem_ir/inst_namer.cpp @@ -32,15 +32,14 @@ namespace Carbon::SemIR { class InstNamer::NamingContext { public: - explicit NamingContext(InstNamer* inst_namer, - llvm::SmallVector>* queue, - InstNamer::ScopeId scope_id, InstId inst_id); + explicit NamingContext(InstNamer* inst_namer, InstNamer::ScopeId scope_id, + InstId inst_id); // Names the single instruction. Use bound names where available. Otherwise, // assign a backup name. // // Insts with a type_id are required to add names; other insts may - // optionally set a name. All insts may enqueue other insts to be named. + // optionally set a name. All insts may push other insts to be named. auto NameInst() -> void; private: @@ -49,7 +48,7 @@ class InstNamer::NamingContext { // Adds the instruction's name by `NameId`. auto AddInstNameId(NameId name_id, llvm::StringRef suffix = "") -> void { - AddInstName((sem_ir().names().GetIRBaseName(name_id).str() + suffix).str()); + AddInstName((sem_ir().names().GetIRBaseName(name_id) + suffix).str()); } // Names an `IntType` or `FloatType`. @@ -60,18 +59,21 @@ class InstNamer::NamingContext { auto AddWitnessTableName(InstId witness_table_inst_id, std::string name) -> void; - // Enqueues all instructions in a block, by ID. - auto QueueBlockId(ScopeId scope_id, InstBlockId block_id) -> void { - if (block_id.has_value()) { - inst_namer_->QueueBlockInsts(*queue_, scope_id, - sem_ir().inst_blocks().Get(block_id)); - } + // Pushes all instructions in a block, by ID. + auto PushBlockId(ScopeId scope_id, InstBlockId block_id) -> void { + inst_namer_->PushBlockId(scope_id, block_id); + } + + // Names the instruction as an entity. May push processing of the entity. + template + auto AddEntityNameAndMaybePush(EntityIdT id, llvm::StringRef suffix = "") + -> void { + AddInstName((inst_namer_->MaybePushEntity(id) + suffix).str()); } auto sem_ir() -> const SemIR::File& { return *inst_namer_->sem_ir_; } InstNamer* inst_namer_; - llvm::SmallVector>* queue_; ScopeId scope_id_; InstId inst_id_; Inst inst_; @@ -83,107 +85,32 @@ InstNamer::InstNamer(const File* sem_ir) : sem_ir_(sem_ir) { scopes_.resize(GetScopeIdOffset(ScopeIdTypeEnum::None)); generic_scopes_.resize(sem_ir->generics().size(), ScopeId::None); - // Build the constants scope. - CollectNamesInBlock(ScopeId::Constants, sem_ir->constants().array_ref()); - - // Build the imports scope. - CollectNamesInBlock(ScopeId::Imports, - sem_ir->inst_blocks().Get(InstBlockId::Imports)); - - // Build the file scope. - CollectNamesInBlock(ScopeId::File, sem_ir->top_inst_block_id()); - - // Build each function scope. - for (auto [fn_id, fn] : sem_ir->functions().enumerate()) { - auto fn_scope = GetScopeFor(fn_id); - LocId fn_loc(fn.latest_decl_id()); - GetScopeInfo(fn_scope).name = globals_.AllocateName( - *this, fn_loc, sem_ir->names().GetIRBaseName(fn.name_id).str()); - CollectNamesInBlock(fn_scope, fn.call_params_id); - CollectNamesInBlock(fn_scope, fn.pattern_block_id); - if (!fn.body_block_ids.empty()) { - AddBlockLabel(fn_scope, fn.body_block_ids.front(), "entry", fn_loc); + // We process the stack between each large block in order to reduce the + // temporary size of the stack. + auto process_stack = [&] { + while (!stack_.empty()) { + auto [scope_id, inst_id] = stack_.pop_back_val(); + NamingContext context(this, scope_id, inst_id); + context.NameInst(); } - for (auto block_id : fn.body_block_ids) { - CollectNamesInBlock(fn_scope, block_id); - } - for (auto block_id : fn.body_block_ids) { - AddBlockLabel(fn_scope, block_id); - } - CollectNamesInGeneric(fn_scope, fn.generic_id); - } + }; - // Build each class scope. - for (auto [class_id, class_info] : sem_ir->classes().enumerate()) { - auto class_scope = GetScopeFor(class_id); - LocId class_loc(class_info.latest_decl_id()); - GetScopeInfo(class_scope).name = globals_.AllocateName( - *this, class_loc, - sem_ir->names().GetIRBaseName(class_info.name_id).str()); - CollectNamesInBlock(class_scope, class_info.pattern_block_id); - AddBlockLabel(class_scope, class_info.body_block_id, "class", class_loc); - CollectNamesInBlock(class_scope, class_info.body_block_id); - CollectNamesInGeneric(class_scope, class_info.generic_id); - } + // Name each of the top-level scopes, in order. We use these as the roots of + // walking the IR. - // Build each vtable scope. - for (auto [vtable_id, vtable_info] : sem_ir->vtables().enumerate()) { - auto vtable_scope = GetScopeFor(vtable_id); - auto class_info = sem_ir->classes().Get(vtable_info.class_id); - LocId vtable_loc(class_info.latest_decl_id()); - GetScopeInfo(vtable_scope).name = globals_.AllocateName( - *this, vtable_loc, - sem_ir->names().GetIRBaseName(class_info.name_id).str() + ".vtable"); - } + PushBlockInsts(ScopeId::Constants, sem_ir->constants().array_ref()); + process_stack(); - // Build each interface scope. - for (auto [interface_id, interface_info] : sem_ir->interfaces().enumerate()) { - auto interface_scope = GetScopeFor(interface_id); - LocId interface_loc(interface_info.latest_decl_id()); - GetScopeInfo(interface_scope).name = globals_.AllocateName( - *this, interface_loc, - sem_ir->names().GetIRBaseName(interface_info.name_id).str()); - CollectNamesInBlock(interface_scope, interface_info.pattern_block_id); - AddBlockLabel(interface_scope, interface_info.body_block_id, "interface", - interface_loc); - CollectNamesInBlock(interface_scope, interface_info.body_block_id); - CollectNamesInGeneric(interface_scope, interface_info.generic_id); - } + PushBlockId(ScopeId::Imports, InstBlockId::Imports); + process_stack(); - // Build each associated constant scope. - for (auto [assoc_const_id, assoc_const_info] : - sem_ir->associated_constants().enumerate()) { - auto assoc_const_scope = GetScopeFor(assoc_const_id); - GetScopeInfo(assoc_const_scope).name = globals_.AllocateName( - *this, LocId(assoc_const_info.decl_id), - sem_ir->names().GetIRBaseName(assoc_const_info.name_id).str()); - CollectNamesInGeneric(assoc_const_scope, assoc_const_info.generic_id); - } + PushBlockId(ScopeId::File, sem_ir->top_inst_block_id()); + process_stack(); - // Build each impl scope. - for (auto [impl_id, impl_info] : sem_ir->impls().enumerate()) { - auto impl_scope = GetScopeFor(impl_id); - auto impl_fingerprint = fingerprinter_.GetOrCompute(sem_ir_, impl_id); - - // TODO: Invent a name based on the self and constraint types. - std::string impl_name; - if (auto interface_id = sem_ir->impls().Get(impl_id).interface.interface_id; - interface_id.has_value()) { - auto interface_info = sem_ir->interfaces().Get(interface_id); - impl_name = llvm::formatv( - "{0}.impl", - sem_ir->names().GetIRBaseName(interface_info.name_id).str()); - } else { - impl_name = "impl"; - } - GetScopeInfo(impl_scope).name = - globals_.AllocateName(*this, impl_fingerprint, impl_name); - - CollectNamesInBlock(impl_scope, impl_info.pattern_block_id); - AddBlockLabel(impl_scope, impl_info.body_block_id, "impl", - impl_fingerprint); - CollectNamesInBlock(impl_scope, impl_info.body_block_id); - CollectNamesInGeneric(impl_scope, impl_info.generic_id); + // Global init won't have any other references, so we add it directly. + if (sem_ir_->global_ctor_id().has_value()) { + MaybePushEntity(sem_ir_->global_ctor_id()); + process_stack(); } } @@ -241,7 +168,7 @@ auto InstNamer::GetScopeName(ScopeId scope) const -> std::string { // For everything else, use an @ prefix. default: - return ("@" + GetScopeInfo(scope).name.str()).str(); + return ("@" + GetScopeInfo(scope).name.GetFullName()).str(); } } @@ -250,7 +177,7 @@ auto InstNamer::GetUnscopedNameFor(InstId inst_id) const -> llvm::StringRef { return ""; } const auto& inst_name = insts_[inst_id.index].second; - return inst_name ? inst_name.str() : ""; + return inst_name ? inst_name.GetFullName() : ""; } auto InstNamer::GetNameFor(ScopeId scope_id, InstId inst_id) const @@ -284,9 +211,9 @@ auto InstNamer::GetNameFor(ScopeId scope_id, InstId inst_id) const return out.TakeStr(); } if (inst_scope == scope_id) { - return ("%" + inst_name.str()).str(); + return ("%" + inst_name.GetFullName()).str(); } - return (GetScopeName(inst_scope) + ".%" + inst_name.str()).str(); + return (GetScopeName(inst_scope) + ".%" + inst_name.GetFullName()).str(); } auto InstNamer::GetUnscopedLabelFor(InstBlockId block_id) const @@ -295,7 +222,7 @@ auto InstNamer::GetUnscopedLabelFor(InstBlockId block_id) const return ""; } const auto& label_name = labels_[block_id.index].second; - return label_name ? label_name.str() : ""; + return label_name ? label_name.GetFullName() : ""; } // Returns the IR name to use for a label, when referenced from a given scope. @@ -313,20 +240,29 @@ auto InstNamer::GetLabelFor(ScopeId scope_id, InstBlockId block_id) const return out.TakeStr(); } if (label_scope == scope_id) { - return ("!" + label_name.str()).str(); + return ("!" + label_name.GetFullName()).str(); } - return (GetScopeName(label_scope) + ".!" + label_name.str()).str(); + return (GetScopeName(label_scope) + ".!" + label_name.GetFullName()).str(); } -auto InstNamer::Namespace::Name::str() const -> llvm::StringRef { +auto InstNamer::Namespace::Name::GetFullName() const -> llvm::StringRef { + if (!value_) { + return ""; + } llvm::StringMapEntry* value = value_; - CARBON_CHECK(value, "cannot print a null name"); while (value->second.ambiguous && value->second.fallback) { value = value->second.fallback.value_; } return value->first(); } +auto InstNamer::Namespace::Name::GetBaseName() const -> llvm::StringRef { + if (!value_) { + return ""; + } + return value_->first().take_front(base_name_size_); +} + auto InstNamer::Namespace::AllocateName( const InstNamer& inst_namer, std::variant loc_id_or_fingerprint, std::string name) @@ -336,10 +272,12 @@ auto InstNamer::Namespace::AllocateName( Name best; Name current; + const size_t base_name_size = name.size(); + // Add `name` as a name for this entity. auto add_name = [&](bool mark_ambiguous = true) { - auto [it, added] = allocated.insert({name, NameResult()}); - Name new_name = Name(it); + auto [it, added] = allocated_.insert({name, NameResult()}); + Name new_name = Name(it, base_name_size); if (!added) { if (mark_ambiguous) { @@ -512,52 +450,133 @@ auto InstNamer::AddBlockLabel(ScopeId scope_id, LocId loc_id, AnyBranch branch) AddBlockLabel(scope_id, branch.target_id, label, loc_id); } -auto InstNamer::CollectNamesInBlock(ScopeId scope_id, InstBlockId block_id) - -> void { +auto InstNamer::PushBlockId(ScopeId scope_id, InstBlockId block_id) -> void { if (block_id.has_value()) { - CollectNamesInBlock(scope_id, sem_ir_->inst_blocks().Get(block_id)); + PushBlockInsts(scope_id, sem_ir_->inst_blocks().Get(block_id)); } } -auto InstNamer::CollectNamesInBlock(ScopeId top_scope_id, - llvm::ArrayRef block) -> void { - llvm::SmallVector> queue; - - QueueBlockInsts(queue, top_scope_id, block); - - while (!queue.empty()) { - auto [scope_id, inst_id] = queue.pop_back_val(); - NamingContext context(this, &queue, scope_id, inst_id); - context.NameInst(); +auto InstNamer::PushBlockInsts(ScopeId scope_id, + llvm::ArrayRef inst_ids) -> void { + for (auto inst_id : llvm::reverse(inst_ids)) { + if (inst_id.has_value() && !IsSingletonInstId(inst_id)) { + stack_.push_back(std::make_pair(scope_id, inst_id)); + } } } -auto InstNamer::CollectNamesInGeneric(ScopeId scope_id, GenericId generic_id) - -> void { +auto InstNamer::PushGeneric(ScopeId scope_id, GenericId generic_id) -> void { if (!generic_id.has_value()) { return; } generic_scopes_[generic_id.index] = scope_id; const auto& generic = sem_ir_->generics().Get(generic_id); - CollectNamesInBlock(scope_id, generic.decl_block_id); - CollectNamesInBlock(scope_id, generic.definition_block_id); + + // Push blocks in reverse order. + PushBlockId(scope_id, generic.definition_block_id); + PushBlockId(scope_id, generic.decl_block_id); } -auto InstNamer::QueueBlockInsts( - llvm::SmallVector>& queue, ScopeId scope_id, - llvm::ArrayRef inst_ids) -> void { - for (auto inst_id : llvm::reverse(inst_ids)) { - if (inst_id.has_value() && !IsSingletonInstId(inst_id)) { - queue.push_back(std::make_pair(scope_id, inst_id)); - } +auto InstNamer::PushEntity(AssociatedConstantId associated_constant_id, + ScopeId scope_id, Scope& scope) -> void { + const auto& assoc_const = + sem_ir_->associated_constants().Get(associated_constant_id); + scope.name = globals_.AllocateName( + *this, LocId(assoc_const.decl_id), + sem_ir_->names().GetIRBaseName(assoc_const.name_id).str()); + + // Push blocks in reverse order. + PushGeneric(scope_id, assoc_const.generic_id); +} + +auto InstNamer::PushEntity(ClassId class_id, ScopeId scope_id, Scope& scope) + -> void { + const auto& class_info = sem_ir_->classes().Get(class_id); + LocId class_loc(class_info.latest_decl_id()); + scope.name = globals_.AllocateName( + *this, class_loc, + sem_ir_->names().GetIRBaseName(class_info.name_id).str()); + AddBlockLabel(scope_id, class_info.body_block_id, "class", class_loc); + PushGeneric(scope_id, class_info.generic_id); + + // Push blocks in reverse order. + PushBlockId(scope_id, class_info.body_block_id); + PushBlockId(scope_id, class_info.pattern_block_id); +} + +auto InstNamer::PushEntity(FunctionId function_id, ScopeId scope_id, + Scope& scope) -> void { + const auto& fn = sem_ir_->functions().Get(function_id); + LocId fn_loc(fn.latest_decl_id()); + scope.name = globals_.AllocateName( + *this, fn_loc, sem_ir_->names().GetIRBaseName(fn.name_id).str()); + if (!fn.body_block_ids.empty()) { + AddBlockLabel(scope_id, fn.body_block_ids.front(), "entry", fn_loc); } + + // Push blocks in reverse order. + PushGeneric(scope_id, fn.generic_id); + for (auto block_id : llvm::reverse(fn.body_block_ids)) { + PushBlockId(scope_id, block_id); + } + PushBlockId(scope_id, fn.pattern_block_id); + PushBlockId(scope_id, fn.call_params_id); } -InstNamer::NamingContext::NamingContext( - InstNamer* inst_namer, llvm::SmallVector>* queue, - InstNamer::ScopeId scope_id, InstId inst_id) +auto InstNamer::PushEntity(ImplId impl_id, ScopeId scope_id, Scope& scope) + -> void { + const auto& impl = sem_ir_->impls().Get(impl_id); + auto impl_fingerprint = fingerprinter_.GetOrCompute(sem_ir_, impl_id); + + // TODO: Invent a name based on the self and constraint types. + std::string impl_name; + if (auto interface_id = impl.interface.interface_id; + interface_id.has_value()) { + auto interface_info = sem_ir_->interfaces().Get(interface_id); + impl_name = llvm::formatv( + "{0}.impl", + sem_ir_->names().GetIRBaseName(interface_info.name_id).str()); + } else { + impl_name = "impl"; + } + scope.name = globals_.AllocateName(*this, impl_fingerprint, impl_name); + AddBlockLabel(scope_id, impl.body_block_id, "impl", impl_fingerprint); + + // Push blocks in reverse order. + PushGeneric(scope_id, impl.generic_id); + PushBlockId(scope_id, impl.body_block_id); + PushBlockId(scope_id, impl.pattern_block_id); +} + +auto InstNamer::PushEntity(InterfaceId interface_id, ScopeId scope_id, + Scope& scope) -> void { + const auto& interface = sem_ir_->interfaces().Get(interface_id); + LocId interface_loc(interface.latest_decl_id()); + scope.name = globals_.AllocateName( + *this, interface_loc, + sem_ir_->names().GetIRBaseName(interface.name_id).str()); + AddBlockLabel(scope_id, interface.body_block_id, "interface", interface_loc); + + // Push blocks in reverse order. + PushGeneric(scope_id, interface.generic_id); + PushBlockId(scope_id, interface.body_block_id); + PushBlockId(scope_id, interface.pattern_block_id); +} + +auto InstNamer::PushEntity(VtableId vtable_id, ScopeId /*scope_id*/, + Scope& scope) -> void { + const auto& vtable = sem_ir_->vtables().Get(vtable_id); + const auto& class_info = sem_ir_->classes().Get(vtable.class_id); + LocId vtable_loc(class_info.latest_decl_id()); + scope.name = globals_.AllocateName( + *this, vtable_loc, + sem_ir_->names().GetIRBaseName(class_info.name_id).str() + ".vtable"); +} + +InstNamer::NamingContext::NamingContext(InstNamer* inst_namer, + InstNamer::ScopeId scope_id, + InstId inst_id) : inst_namer_(inst_namer), - queue_(queue), scope_id_(scope_id), inst_id_(inst_id), inst_(sem_ir().insts().Get(inst_id)) {} @@ -626,10 +645,9 @@ auto InstNamer::NamingContext::NameInst() -> void { return; } case CARBON_KIND(AssociatedConstantDecl inst): { - AddInstNameId( - sem_ir().associated_constants().Get(inst.assoc_const_id).name_id); - QueueBlockId(inst_namer_->GetScopeFor(inst.assoc_const_id), - inst.decl_block_id); + AddEntityNameAndMaybePush(inst.assoc_const_id); + PushBlockId(inst_namer_->GetScopeFor(inst.assoc_const_id), + inst.decl_block_id); return; } case CARBON_KIND(AssociatedEntity inst): { @@ -639,8 +657,7 @@ auto InstNamer::NamingContext::NameInst() -> void { return; } case CARBON_KIND(AssociatedEntityType inst): { - const auto& interface_info = sem_ir().interfaces().Get(inst.interface_id); - AddInstNameId(interface_info.name_id, ".assoc_type"); + AddEntityNameAndMaybePush(inst.interface_id, ".assoc_type"); return; } case BindAlias::Kind: @@ -672,8 +689,7 @@ auto InstNamer::NamingContext::NameInst() -> void { case CARBON_KIND(BoundMethod inst): { auto type_id = sem_ir().insts().Get(inst.function_decl_id).type_id(); if (auto fn_ty = sem_ir().types().TryGetAs(type_id)) { - AddInstNameId(sem_ir().functions().Get(fn_ty->function_id).name_id, - ".bound"); + AddEntityNameAndMaybePush(fn_ty->function_id, ".bound"); } else { AddInstName("bound_method"); } @@ -694,6 +710,8 @@ auto InstNamer::NamingContext::NameInst() -> void { } const auto& function = sem_ir().functions().Get(callee_function.function_id); + auto function_name = + inst_namer_->MaybePushEntity(callee_function.function_id); // Name the call's result based on the callee. if (function.builtin_function_kind() != BuiltinFunctionKind::None) { // For a builtin, use the builtin name. Otherwise, we'd typically pick @@ -702,14 +720,13 @@ auto InstNamer::NamingContext::NameInst() -> void { return; } - AddInstNameId(function.name_id, ".call"); + AddInstName((function_name + ".call").str()); return; } case CARBON_KIND(ClassDecl inst): { - const auto& class_info = sem_ir().classes().Get(inst.class_id); - AddInstNameId(class_info.name_id, ".decl"); + AddEntityNameAndMaybePush(inst.class_id, ".decl"); auto class_scope_id = inst_namer_->GetScopeFor(inst.class_id); - QueueBlockId(class_scope_id, inst.decl_block_id); + PushBlockId(class_scope_id, inst.decl_block_id); return; } case CARBON_KIND(ClassType inst): { @@ -717,7 +734,7 @@ auto InstNamer::NamingContext::NameInst() -> void { literal_info.is_valid()) { AddInstName(literal_info.GetLiteralAsString(sem_ir())); } else { - AddInstNameId(sem_ir().classes().Get(inst.class_id).name_id); + AddEntityNameAndMaybePush(inst.class_id); } return; } @@ -729,10 +746,10 @@ auto InstNamer::NamingContext::NameInst() -> void { case CARBON_KIND(VtablePtr inst): { const auto& vtable = sem_ir().vtables().Get(inst.vtable_id); if (inst_namer_->GetScopeFor(vtable.class_id) == scope_id_) { + inst_namer_->MaybePushEntity(inst.vtable_id); AddInstName("vtable_ptr"); } else { - const auto& class_info = sem_ir().classes().Get(vtable.class_id); - AddInstNameId(class_info.name_id, ".vtable_ptr"); + AddEntityNameAndMaybePush(inst.vtable_id, "_ptr"); } return; } @@ -765,10 +782,9 @@ auto InstNamer::NamingContext::NameInst() -> void { !facet_type_info.self_impls_constraints.empty() || !facet_type_info.rewrite_constraints.empty(); if (facet_type_info.extend_constraints.size() == 1) { - const auto& interface_info = sem_ir().interfaces().Get( - facet_type_info.extend_constraints.front().interface_id); - AddInstNameId(interface_info.name_id, - has_where ? "_where.type" : ".type"); + AddEntityNameAndMaybePush( + facet_type_info.extend_constraints.front().interface_id, + has_where ? "_where.type" : ".type"); } else if (facet_type_info.extend_constraints.empty()) { AddInstName(has_where ? "type_where" : "type"); } else { @@ -782,9 +798,7 @@ auto InstNamer::NamingContext::NameInst() -> void { const auto& facet_type_info = sem_ir().facet_types().Get(facet_type->facet_type_id); if (auto interface = facet_type_info.TryAsSingleInterface()) { - const auto& interface_info = - sem_ir().interfaces().Get(interface->interface_id); - AddInstNameId(interface_info.name_id, ".facet"); + AddEntityNameAndMaybePush(interface->interface_id, ".facet"); return; } } @@ -800,36 +814,34 @@ auto InstNamer::NamingContext::NameInst() -> void { return; } case CARBON_KIND(FunctionDecl inst): { - const auto& function_info = sem_ir().functions().Get(inst.function_id); - AddInstNameId(function_info.name_id, ".decl"); + AddEntityNameAndMaybePush(inst.function_id, ".decl"); auto function_scope_id = inst_namer_->GetScopeFor(inst.function_id); - QueueBlockId(function_scope_id, inst.decl_block_id); + PushBlockId(function_scope_id, inst.decl_block_id); return; } case CARBON_KIND(FunctionType inst): { - AddInstNameId(sem_ir().functions().Get(inst.function_id).name_id, - ".type"); + AddEntityNameAndMaybePush(inst.function_id, ".type"); return; } case CARBON_KIND(GenericClassType inst): { - AddInstNameId(sem_ir().classes().Get(inst.class_id).name_id, ".type"); + AddEntityNameAndMaybePush(inst.class_id, ".type"); return; } case CARBON_KIND(GenericInterfaceType inst): { - AddInstNameId(sem_ir().interfaces().Get(inst.interface_id).name_id, - ".type"); + AddEntityNameAndMaybePush(inst.interface_id, ".type"); return; } case CARBON_KIND(ImplDecl inst): { - auto impl_scope_id = inst_namer_->GetScopeFor(inst.impl_id); - QueueBlockId(impl_scope_id, inst.decl_block_id); + // `impl` declarations aren't named because they aren't added to any + // namespace, and so aren't referenced directly. + inst_namer_->MaybePushEntity(inst.impl_id); + PushBlockId(inst_namer_->GetScopeFor(inst.impl_id), inst.decl_block_id); return; } case CARBON_KIND(LookupImplWitness inst): { const auto& interface = sem_ir().specific_interfaces().Get(inst.query_specific_interface_id); - AddInstNameId(sem_ir().interfaces().Get(interface.interface_id).name_id, - ".lookup_impl_witness"); + AddEntityNameAndMaybePush(interface.interface_id, ".lookup_impl_witness"); return; } case CARBON_KIND(ImplWitness inst): { @@ -898,24 +910,23 @@ auto InstNamer::NamingContext::NameInst() -> void { if (const_id.has_value() && const_id.is_concrete()) { auto const_inst_id = sem_ir().constant_values().GetInstId(const_id); if (!inst_namer_->insts_[const_inst_id.index].second) { - inst_namer_->QueueBlockInsts(*queue_, ScopeId::Imports, - llvm::ArrayRef(const_inst_id)); + inst_namer_->PushBlockInsts(ScopeId::Imports, + llvm::ArrayRef(const_inst_id)); } } return; } case CARBON_KIND(InstValue inst): { - inst_namer_->QueueBlockInsts(*queue_, scope_id_, inst.inst_id); + inst_namer_->PushBlockInsts(scope_id_, inst.inst_id); AddInstName( ("inst." + sem_ir().insts().Get(inst.inst_id).kind().ir_name()) .str()); return; } case CARBON_KIND(InterfaceDecl inst): { - const auto& interface_info = sem_ir().interfaces().Get(inst.interface_id); - AddInstNameId(interface_info.name_id, ".decl"); + AddEntityNameAndMaybePush(inst.interface_id, ".decl"); auto interface_scope_id = inst_namer_->GetScopeFor(inst.interface_id); - QueueBlockId(interface_scope_id, inst.decl_block_id); + PushBlockId(interface_scope_id, inst.decl_block_id); return; } case CARBON_KIND(IntType inst): { @@ -930,7 +941,7 @@ auto InstNamer::NamingContext::NameInst() -> void { return; } case CARBON_KIND(NameBindingDecl inst): { - QueueBlockId(scope_id_, inst.pattern_block_id); + PushBlockId(scope_id_, inst.pattern_block_id); return; } case CARBON_KIND(NameRef inst): { @@ -974,8 +985,7 @@ auto InstNamer::NamingContext::NameInst() -> void { case CARBON_KIND(SpecificFunction inst): { auto type_id = sem_ir().insts().Get(inst.callee_id).type_id(); if (auto fn_ty = sem_ir().types().TryGetAs(type_id)) { - AddInstNameId(sem_ir().functions().Get(fn_ty->function_id).name_id, - ".specific_fn"); + AddEntityNameAndMaybePush(fn_ty->function_id, ".specific_fn"); } else { AddInstName("specific_fn"); } @@ -984,8 +994,7 @@ auto InstNamer::NamingContext::NameInst() -> void { case CARBON_KIND(SpecificImplFunction inst): { auto type_id = sem_ir().insts().Get(inst.callee_id).type_id(); if (auto fn_ty = sem_ir().types().TryGetAs(type_id)) { - AddInstNameId(sem_ir().functions().Get(fn_ty->function_id).name_id, - ".specific_impl_fn"); + AddEntityNameAndMaybePush(fn_ty->function_id, ".specific_impl_fn"); } else { AddInstName("specific_impl_fn"); } @@ -996,7 +1005,7 @@ auto InstNamer::NamingContext::NameInst() -> void { return; } case CARBON_KIND(SpliceBlock inst): { - QueueBlockId(scope_id_, inst.block_id); + PushBlockId(scope_id_, inst.block_id); AddInstName(""); return; } @@ -1006,17 +1015,14 @@ auto InstNamer::NamingContext::NameInst() -> void { } case CARBON_KIND(StructValue inst): { if (auto fn_ty = sem_ir().types().TryGetAs(inst.type_id)) { - AddInstNameId(sem_ir().functions().Get(fn_ty->function_id).name_id); + AddEntityNameAndMaybePush(fn_ty->function_id); } else if (auto class_ty = sem_ir().types().TryGetAs(inst.type_id)) { - AddInstNameId(sem_ir().classes().Get(class_ty->class_id).name_id, - ".val"); + AddEntityNameAndMaybePush(class_ty->class_id, ".val"); } else if (auto generic_class_ty = sem_ir().types().TryGetAs( inst.type_id)) { - AddInstNameId( - sem_ir().classes().Get(generic_class_ty->class_id).name_id, - ".generic"); + AddEntityNameAndMaybePush(generic_class_ty->class_id, ".generic"); } else if (auto generic_interface_ty = sem_ir().types().TryGetAs( inst.type_id)) { @@ -1075,8 +1081,7 @@ auto InstNamer::NamingContext::NameInst() -> void { case CARBON_KIND(UnboundElementType inst): { if (auto class_ty = sem_ir().insts().TryGetAs(inst.class_type_inst_id)) { - AddInstNameId(sem_ir().classes().Get(class_ty->class_id).name_id, - ".elem"); + AddEntityNameAndMaybePush(class_ty->class_id, ".elem"); } else { AddInstName("elem_type"); } diff --git a/toolchain/sem_ir/inst_namer.h b/toolchain/sem_ir/inst_namer.h index 786badb0598f..fcaf44c2b7d6 100644 --- a/toolchain/sem_ir/inst_namer.h +++ b/toolchain/sem_ir/inst_namer.h @@ -17,6 +17,11 @@ namespace Carbon::SemIR { // Assigns names to instructions, blocks, and scopes in the Semantics IR. +// +// If `` occurs in output of valid SemIR, it often means the +// instruction needs to be handled by `NamingContext::NameInst` (see the cpp +// file). Note that `` can occur in invalid SemIR just because we're +// unable to correctly walk the SemIR. class InstNamer { public: // int32_t matches the input value size. @@ -90,44 +95,52 @@ class InstNamer { private: // A space in which unique names can be allocated. - struct Namespace { + class Namespace { + private: // A result of a name lookup. struct NameResult; + public: // A name in a namespace, which might be redirected to refer to another name // for disambiguation purposes. class Name { public: - Name() : value_(nullptr) {} - explicit Name(llvm::StringMapIterator it) : value_(&*it) {} + explicit Name() : value_(nullptr) {} + explicit Name(llvm::StringMapIterator it, + size_t base_name_size) + : value_(&*it), base_name_size_(base_name_size) {} explicit operator bool() const { return value_; } - auto str() const -> llvm::StringRef; + // Returns the disambiguated name. + auto GetFullName() const -> llvm::StringRef; + + // Returns the base name, without any disambiguators. + auto GetBaseName() const -> llvm::StringRef; auto SetFallback(Name name) -> void { value_->second.fallback = name; } auto SetAmbiguous() -> void { value_->second.ambiguous = true; } private: - llvm::StringMapEntry* value_ = nullptr; + llvm::StringMapEntry* value_; + + // The base name length within `value_->first()`. + size_t base_name_size_; }; + // Allocates and returns a name, handling ambiguity. + auto AllocateName(const InstNamer& inst_namer, + std::variant loc_id_or_fingerprint, + std::string name) -> Name; + + private: struct NameResult { bool ambiguous = false; Name fallback = Name(); }; - llvm::StringMap allocated = {}; - int unnamed_count = 0; - - auto AddNameUnchecked(llvm::StringRef name) -> Name { - return Name(allocated.insert({name, NameResult()}).first); - } - - auto AllocateName(const InstNamer& inst_namer, - std::variant loc_id_or_fingerprint, - std::string name) -> Name; + llvm::StringMap allocated_; }; // A named scope that contains named entities. @@ -162,27 +175,40 @@ class InstNamer { // represents some kind of branch. auto AddBlockLabel(ScopeId scope_id, LocId loc_id, AnyBranch branch) -> void; - auto CollectNamesInBlock(ScopeId scope_id, InstBlockId block_id) -> void; - - // Collects names from the provided block. - // - // This is essential for finding instructions that we need to name. If - // `` occurs in output of valid SemIR, it often means the - // instruction needs to be handled here. Note that `` can occur in - // invalid SemIR just because we're unable to correctly walk the SemIR. - auto CollectNamesInBlock(ScopeId scope_id, llvm::ArrayRef block) - -> void; - - auto CollectNamesInGeneric(ScopeId scope_id, GenericId generic_id) -> void; - // Adds a scope and instructions to walk. Avoids recursion while allowing // the loop to below add more instructions during iteration. The new - // instructions are queued such that they will be the next to be walked. + // instructions are pushed such that they will be the next to be walked. // Internally that means they are reversed and added to the end of the vector, // since we pop from the back of the vector. - auto QueueBlockInsts(llvm::SmallVector>& queue, - ScopeId scope_id, llvm::ArrayRef inst_ids) + auto PushBlockInsts(ScopeId scope_id, llvm::ArrayRef inst_ids) -> void; + auto PushBlockId(ScopeId scope_id, InstBlockId block_id) -> void; + + // Pushes generic information for an entity. + auto PushGeneric(ScopeId scope_id, GenericId generic_id) -> void; + + // Names an entity, and pushes processing of its blocks. + auto PushEntity(AssociatedConstantId associated_constant_id, ScopeId scope_id, + Scope& scope) -> void; + auto PushEntity(ClassId class_id, ScopeId scope_id, Scope& scope) -> void; + auto PushEntity(FunctionId function_id, ScopeId scope_id, Scope& scope) + -> void; + auto PushEntity(ImplId impl_id, ScopeId scope_id, Scope& scope) -> void; + auto PushEntity(InterfaceId interface_id, ScopeId scope_id, Scope& scope) + -> void; + auto PushEntity(VtableId vtable_id, ScopeId scope_id, Scope& scope) -> void; + + // Always returns the name of the entity. May push it if it has not yet been + // pushed. + template + auto MaybePushEntity(EntityIdT entity_id) -> llvm::StringRef { + auto scope_id = GetScopeFor(entity_id); + auto& scope = GetScopeInfo(scope_id); + if (!scope.name) { + PushEntity(entity_id, scope_id, scope); + } + return scope.name.GetBaseName(); + } const File* sem_ir_; InstFingerprinter fingerprinter_; @@ -201,6 +227,9 @@ class InstNamer { // The scope IDs corresponding to generics. The vector indexes are the // GenericId index. std::vector generic_scopes_; + + // The stack of instructions to name. + llvm::SmallVector> stack_; }; } // namespace Carbon::SemIR