diff --git a/core/prelude/destroy.carbon b/core/prelude/destroy.carbon index 7592cdea83b3..89adc107fc66 100644 --- a/core/prelude/destroy.carbon +++ b/core/prelude/destroy.carbon @@ -4,35 +4,22 @@ package Core library "prelude/destroy"; -import library "prelude/types/bool"; -import library "prelude/types/int_literal"; +// TODO: Add `Destructor`, as in: +// interface Destructor { +// private fn Op[ref self: Self](); +// } -// Destroys objects. Note this is distinct from memory deallocation. -// TODO: Switch to `Destructor`+`Destroy` model. +// Destroys objects. This will invoke `Destructor` impls recursively on members; +// it does not deallocate memory. interface Destroy { + // TODO: This should be `final fn Op[ref self: Self]() = "type.destroy"`. fn Op[addr self: Self*](); } -// Add destruction for essential builtin types. This can't be done earlier -// because `Destroy` is using them. -// TODO: This should match trivial destruction. -impl bool as Destroy { - fn Op[addr self: Self*]() = "no_op"; -} -impl type as Destroy { - fn Op[addr self: Self*]() = "no_op"; -} -impl forall [PointeeT:! type] PointeeT* as Destroy { - fn Op[addr self: Self*]() = "no_op"; -} +// Returns a constraint that matches all types that should have a `Destroy` impl. +private fn CanDestroy() -> type = "type.can_destroy"; -// Handles builtin aggregate type destruction. -private fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; -impl forall [AggregateT:! CanAggregateDestroy()] AggregateT as Destroy { - fn Op[addr self: Self*]() = "type.aggregate_destroy"; -} - -// `const` instances always use the non-`const` destructor. -impl forall [NonConstT:! Destroy] const NonConstT as Destroy { - fn Op[addr self: Self*]() { (self unsafe as NonConstT*)->(Destroy.Op)(); } +// Destroys an instance of `DestroyT`. This is also used for trivial types. +final impl forall [DestroyT:! CanDestroy()] DestroyT as Destroy { + fn Op[addr self: Self*]() = "type.destroy"; } diff --git a/toolchain/check/eval.cpp b/toolchain/check/eval.cpp index 467c83a28252..ee62141056cb 100644 --- a/toolchain/check/eval.cpp +++ b/toolchain/check/eval.cpp @@ -1646,7 +1646,7 @@ static auto MakeConstantForBuiltinCall(EvalContext& eval_context, CARBON_FATAL("Not a builtin function."); case SemIR::BuiltinFunctionKind::NoOp: - case SemIR::BuiltinFunctionKind::TypeAggregateDestroy: { + case SemIR::BuiltinFunctionKind::TypeDestroy: { // Return an empty tuple value. auto type_id = GetTupleType(eval_context.context(), {}); return MakeConstantResult( @@ -1656,11 +1656,11 @@ static auto MakeConstantForBuiltinCall(EvalContext& eval_context, phase); } - case SemIR::BuiltinFunctionKind::TypeCanAggregateDestroy: { + case SemIR::BuiltinFunctionKind::TypeCanDestroy: { CARBON_CHECK(arg_ids.empty()); auto id = eval_context.facet_types().Add( {.builtin_constraint_mask = - SemIR::BuiltinConstraintMask::TypeCanAggregateDestroy}); + SemIR::BuiltinConstraintMask::TypeCanDestroy}); return MakeConstantResult( eval_context.context(), SemIR::FacetType{.type_id = SemIR::TypeType::TypeId, diff --git a/toolchain/check/impl_lookup.cpp b/toolchain/check/impl_lookup.cpp index 150e3f0c782f..6d8ff2fbd1d8 100644 --- a/toolchain/check/impl_lookup.cpp +++ b/toolchain/check/impl_lookup.cpp @@ -542,27 +542,34 @@ static auto GetOrAddLookupImplWitness(Context& context, SemIR::LocId loc_id, return context.constant_values().GetInstId(witness_const_id); } -// Returns true if the `Self` supports aggregate destruction. -static auto TypeCanAggregateDestroy(Context& context, - SemIR::ConstantId query_self_const_id) - -> bool { +// Returns true if the `Self` should impl `Destroy`. +static auto TypeCanDestroy(Context& context, + SemIR::ConstantId query_self_const_id) -> bool { auto inst = context.insts().Get( context.constant_values().GetInstId(query_self_const_id)); CARBON_KIND_SWITCH(inst) { case CARBON_KIND(SemIR::ClassType class_type): { auto class_info = context.classes().Get(class_type.class_id); - // Incomplete classes can't be destroyed. + // Incomplete and abstract classes can't be destroyed. // TODO: Return false if the object repr doesn't impl `Destroy`. // TODO: Return false for C++ types that lack a destructor. - return class_info.is_complete(); + return class_info.is_complete() && + class_info.inheritance_kind != + SemIR::Class::InheritanceKind::Abstract; } case SemIR::ArrayType::Kind: + case SemIR::ConstType::Kind: case SemIR::MaybeUnformedType::Kind: + case SemIR::PartialType::Kind: case SemIR::StructType::Kind: case SemIR::TupleType::Kind: // TODO: Return false for types that indirectly reference a type that // doesn't impl `Destroy`. return true; + case SemIR::BoolType::Kind: + case SemIR::PointerType::Kind: + // Trivially destructible. + return true; default: return false; } @@ -597,8 +604,8 @@ auto LookupImplWitness(Context& context, SemIR::LocId loc_id, return SemIR::InstBlockId::None; } if (builtin_constraint_mask.HasAnyOf( - SemIR::BuiltinConstraintMask::TypeCanAggregateDestroy) && - !TypeCanAggregateDestroy(context, query_self_const_id)) { + SemIR::BuiltinConstraintMask::TypeCanDestroy) && + !TypeCanDestroy(context, query_self_const_id)) { return SemIR::InstBlockId::None; } if (interfaces.empty()) { diff --git a/toolchain/check/testdata/array/basics.carbon b/toolchain/check/testdata/array/basics.carbon index 9e9880e1e161..97c395ca1d6d 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f05: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6cc: %AggregateT.as_type.as.Destroy.impl.Op.type.f05 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f05: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6cc: %DestroyT.as_type.as.Destroy.impl.Op.type.f05 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -225,11 +225,11 @@ var a: array(1, 1); // CHECK:STDOUT: %v: ref %array_type = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6cc +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6cc // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c6b = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -244,13 +244,13 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c7f: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b05: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1d6: %AggregateT.as_type.as.Destroy.impl.Op.type.b05 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b05: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1d6: %DestroyT.as_type.as.Destroy.impl.Op.type.b05 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.4cf: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.7a9: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.4cf) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.190: %AggregateT.as_type.as.Destroy.impl.Op.type.7a9 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7a9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4cf) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.190: %DestroyT.as_type.as.Destroy.impl.Op.type.7a9 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -288,18 +288,18 @@ var a: array(1, 1); // CHECK:STDOUT: %b: ref %tuple.type = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value.c7f] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%tuple.type, %facet_value.loc8 [concrete = constants.%facet_value.c7f] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.1d6 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1d6 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8: %ptr.7fe = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.4cf] // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%array_type, %facet_value.loc7 [concrete = constants.%facet_value.4cf] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.190 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.190 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.20b = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -317,14 +317,14 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.132: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.2ee: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.132) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7ed: %AggregateT.as_type.as.Destroy.impl.Op.type.2ee = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.132) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7ed: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee = struct_value () [concrete] // CHECK:STDOUT: %ptr.652: type = ptr_type %tuple.type [concrete] // CHECK:STDOUT: %facet_value.c1b: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c21: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c1b) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e50: %AggregateT.as_type.as.Destroy.impl.Op.type.c21 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c21: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c1b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e50: %DestroyT.as_type.as.Destroy.impl.Op.type.c21 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -358,18 +358,18 @@ var a: array(1, 1); // CHECK:STDOUT: %t: ref %array_type = bind_name t, %t.var // CHECK:STDOUT: %facet_value.loc8_27: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value.132] // CHECK:STDOUT: %.loc8_27.7: %type_where = converted constants.%tuple.type, %facet_value.loc8_27 [concrete = constants.%facet_value.132] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_27: = bound_method %.loc8_27.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.7ed +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_27: = bound_method %.loc8_27.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.7ed // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_27: = bound_method %.loc8_27.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc8_27: = bound_method %.loc8_27.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8_27: %ptr.652 = addr_of %.loc8_27.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_27: init %empty_tuple.type = call %bound_method.loc8_27(%addr.loc8_27) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_27: init %empty_tuple.type = call %bound_method.loc8_27(%addr.loc8_27) // CHECK:STDOUT: %facet_value.loc8_3: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.c1b] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%array_type, %facet_value.loc8_3 [concrete = constants.%facet_value.c1b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_3: = bound_method %t.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e50 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_3: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e50 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %t.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_3: %ptr.b99 = addr_of %t.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_3: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_3: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/array/import.carbon b/toolchain/check/testdata/array/import.carbon index d5b6cfe7d376..a24ceb19259a 100644 --- a/toolchain/check/testdata/array/import.carbon +++ b/toolchain/check/testdata/array/import.carbon @@ -79,10 +79,10 @@ fn F() -> array(i32, 1) { // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b6e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.91f: %AggregateT.as_type.as.Destroy.impl.Op.type.b6e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.91f: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -109,11 +109,11 @@ fn F() -> array(i32, 1) { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_15.2(%.loc6_15.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_12.3: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc6_12.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.91f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc6_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.91f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc6_12: = bound_method %.loc6_12.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc6_12: = bound_method %.loc6_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.830 = addr_of %.loc6_12.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_12(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_12(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // 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 84a823a6e3ce..08cd777105d0 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -93,10 +93,10 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e7e: %AggregateT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e7e: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -173,11 +173,11 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc10_20.15, %.loc10_23.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_20.16: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_20.14, constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_20.14, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_20.7: = bound_method %.loc10_20.14, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc10_20.7: = bound_method %.loc10_20.14, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f01 = addr_of %.loc10_20.14 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_20.7(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_20.7(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index 7e8816377201..716d98b21cfb 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -69,17 +69,18 @@ fn H() { G(3); } // CHECK:STDOUT: %array.2ed: %array_type.281 = tuple_value () [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.bf1: %type_where = facet_value %array_type.281, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.f4a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.bf1) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.565: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bf1) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dd2: %DestroyT.as_type.as.Destroy.impl.Op.type.565 = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.662: = require_complete_type %ptr.e06 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3b0: = lookup_impl_witness %array_type.281, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.52c: %Destroy.type = facet_value %array_type.281, (%Destroy.lookup_impl_witness.3b0) [symbolic] -// CHECK:STDOUT: %.657: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.52c [symbolic] -// CHECK:STDOUT: %impl.elem0.36c: %.657 = impl_witness_access %Destroy.lookup_impl_witness.3b0, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a25: = specific_impl_function %impl.elem0.36c, @Destroy.Op(%Destroy.facet.52c) [symbolic] +// CHECK:STDOUT: %Destroy.facet.f25: %Destroy.type = facet_value %array_type.281, (%Destroy.impl_witness.f4a) [symbolic] +// CHECK:STDOUT: %.3d9: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.f25 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c7c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.dd2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.bf1) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %array_type.6f1: type = array_type %int_0, %C [concrete] // CHECK:STDOUT: %ptr.cf4: type = ptr_type %array_type.6f1 [concrete] @@ -87,23 +88,18 @@ fn H() { G(3); } // CHECK:STDOUT: %pattern_type.9c8: type = pattern_type %array_type.6f1 [concrete] // CHECK:STDOUT: %array.2e5: %array_type.6f1 = tuple_value () [concrete] // CHECK:STDOUT: %facet_value.cba: %type_where = facet_value %array_type.6f1, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.20d: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value.cba) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.710: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.cba) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.0db: %AggregateT.as_type.as.Destroy.impl.Op.type.710 = struct_value () [concrete] -// CHECK:STDOUT: %complete_type.3e1: = complete_type_witness %ptr.cf4 [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.20d: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.cba) [concrete] // CHECK:STDOUT: %Destroy.facet.ad5: %Destroy.type = facet_value %array_type.6f1, (%Destroy.impl_witness.20d) [concrete] // CHECK:STDOUT: %.600: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.ad5 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.0db, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.cba) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.710: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.cba) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0db: %DestroyT.as_type.as.Destroy.impl.Op.type.710 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f19: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0db, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.cba) [concrete] +// CHECK:STDOUT: %complete_type.3e1: = complete_type_witness %ptr.cf4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: file { -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.6f1, () [concrete = constants.%facet_value.cba] -// CHECK:STDOUT: %.loc7: %type_where = converted constants.%array_type.6f1, %facet_value [concrete = constants.%facet_value.cba] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc4_6.2: type) { @@ -115,11 +111,12 @@ fn H() { G(3); } // 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)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %array_type.loc7_22.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.bf1)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %array_type.loc7_22.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.3b0)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc7_22.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.52c)] -// CHECK:STDOUT: %.loc7_3.4: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.4 (constants.%.657)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @G.%.loc7_3.4 (%.657) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.36c)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.a25)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.f4a)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc7_22.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.f25)] +// CHECK:STDOUT: %.loc7_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.3 (constants.%.3d9)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.565)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @G.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.565) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.dd2)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c7c)] // CHECK:STDOUT: %ptr: type = ptr_type %array_type.loc7_22.2 [symbolic = %ptr (constants.%ptr.e06)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr [symbolic = %require_complete.loc7_3 (constants.%require_complete.662)] // CHECK:STDOUT: @@ -142,12 +139,12 @@ fn H() { G(3); } // CHECK:STDOUT: %arr: ref @G.%array_type.loc7_22.2 (%array_type.281) = bind_name arr, %arr.var // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%array_type.281, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.bf1)] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%array_type.281, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.bf1)] -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @G.%.loc7_3.4 (%.657) = impl_witness_access constants.%Destroy.lookup_impl_witness.3b0, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.36c)] -// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %arr.var, %impl.elem0.loc7_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.Op(constants.%Destroy.facet.52c) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.a25)] -// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %arr.var, %specific_impl_fn.loc7_3.1 +// CHECK:STDOUT: %impl.elem0: @G.%.loc7_3.3 (%.3d9) = impl_witness_access constants.%Destroy.impl_witness.f4a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.dd2)] +// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %arr.var, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.bf1) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c7c)] +// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %arr.var, %specific_fn // CHECK:STDOUT: %addr: @G.%ptr (%ptr.e06) = addr_of %arr.var -// CHECK:STDOUT: %.loc7_3.3: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -165,11 +162,12 @@ fn H() { G(3); } // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9c8 // CHECK:STDOUT: %array => constants.%array.2e5 // CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.cba -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.20d +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.20d // CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.ad5 -// CHECK:STDOUT: %.loc7_3.4 => constants.%.600 -// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.0db -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %.loc7_3.3 => constants.%.600 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.710 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.0db +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f19 // CHECK:STDOUT: %ptr => constants.%ptr.cf4 // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.3e1 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/basics.carbon b/toolchain/check/testdata/as/basics.carbon index fc8e902cad6a..0fdf55f13659 100644 --- a/toolchain/check/testdata/as/basics.carbon +++ b/toolchain/check/testdata/as/basics.carbon @@ -209,14 +209,14 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.b19: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.b19) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.177: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b19) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] // CHECK:STDOUT: %facet_value.4ff: %type_where = facet_value %tuple.type.b67, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.1bb: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.4ff) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.482: %AggregateT.as_type.as.Destroy.impl.Op.type.1bb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1bb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4ff) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.482: %DestroyT.as_type.as.Destroy.impl.Op.type.1bb = struct_value () [concrete] // CHECK:STDOUT: %ptr.120: type = ptr_type %tuple.type.b67 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -254,18 +254,18 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %a: %tuple.type.b67 = bind_name a, %.loc13_34.2 // CHECK:STDOUT: %facet_value.loc13_33: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value.b19] // CHECK:STDOUT: %.loc13_33.4: %type_where = converted constants.%X, %facet_value.loc13_33 [concrete = constants.%facet_value.b19] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_33: %ptr.d17 = addr_of %.loc13_33.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) // CHECK:STDOUT: %facet_value.loc13_25: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value.b19] // CHECK:STDOUT: %.loc13_25.4: %type_where = converted constants.%X, %facet_value.loc13_25 [concrete = constants.%facet_value.b19] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_25: = bound_method %.loc13_25.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_25: = bound_method %.loc13_25.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13_25: = bound_method %.loc13_25.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc13_25: = bound_method %.loc13_25.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_25: %ptr.d17 = addr_of %.loc13_25.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_25: init %empty_tuple.type = call %bound_method.loc13_25(%addr.loc13_25) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_25: init %empty_tuple.type = call %bound_method.loc13_25(%addr.loc13_25) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -299,11 +299,11 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %b: ref %tuple.type.b67 = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.b67, () [concrete = constants.%facet_value.4ff] // CHECK:STDOUT: %.loc20_3.2: %type_where = converted constants.%tuple.type.b67, %facet_value [concrete = constants.%facet_value.4ff] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.482 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.482 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.120 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -317,10 +317,10 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.177: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -371,11 +371,11 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %x: ref %X = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_3.2: %type_where = converted constants.%X, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d17 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/const.carbon b/toolchain/check/testdata/as/const.carbon index 9e353f7765d8..e31b7add3e44 100644 --- a/toolchain/check/testdata/as/const.carbon +++ b/toolchain/check/testdata/as/const.carbon @@ -100,27 +100,19 @@ fn Use() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] -// CHECK:STDOUT: %const.dde: type = const_type %X [concrete] -// CHECK:STDOUT: %pattern_type.d7f91: type = pattern_type %const.dde [concrete] -// CHECK:STDOUT: %ptr.cbd: type = ptr_type %const.dde [concrete] +// CHECK:STDOUT: %const: type = const_type %X [concrete] +// CHECK:STDOUT: %pattern_type.d7f91: type = pattern_type %const [concrete] +// CHECK:STDOUT: %ptr.cbd: type = ptr_type %const [concrete] // CHECK:STDOUT: %pattern_type.855: type = pattern_type %ptr.cbd [concrete] -// CHECK:STDOUT: %reference.var: ref %const.dde = var file.%reference.var_patt [concrete] +// CHECK:STDOUT: %reference.var: ref %const = var file.%reference.var_patt [concrete] // CHECK:STDOUT: %addr.0c5: %ptr.cbd = addr_of %reference.var [concrete] -// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.079: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %Destroy.facet.074: %Destroy.type = facet_value %X, (%Destroy.impl_witness.079) [concrete] -// CHECK:STDOUT: %const.as.Destroy.impl.Op.type.4e9: type = fn_type @const.as.Destroy.impl.Op, @const.as.Destroy.impl(%Destroy.facet.074) [concrete] -// CHECK:STDOUT: %const.as.Destroy.impl.Op.3cc: %const.as.Destroy.impl.Op.type.4e9 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %const, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b7b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b9c: %DestroyT.as_type.as.Destroy.impl.Op.type.b7b = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Use() { @@ -129,45 +121,45 @@ fn Use() { // CHECK:STDOUT: %i.patt: %pattern_type.d7f91 = binding_pattern i [concrete] // CHECK:STDOUT: %i.var_patt: %pattern_type.d7f91 = var_pattern %i.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %i.var: ref %const.dde = var %i.var_patt +// CHECK:STDOUT: %i.var: ref %const = var %i.var_patt // CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] -// CHECK:STDOUT: %.loc14_3.1: ref %const.dde = splice_block %i.var {} +// CHECK:STDOUT: %.loc14_3.1: ref %const = splice_block %i.var {} // CHECK:STDOUT: %Init.call: init %X = call %Init.ref() to %.loc14_3.1 // CHECK:STDOUT: %X.ref.loc14_36: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc14_30: type = const_type %X.ref.loc14_36 [concrete = constants.%const.dde] -// CHECK:STDOUT: %.loc14_27.1: init %const.dde = as_compatible %Init.call -// CHECK:STDOUT: %.loc14_27.2: init %const.dde = converted %Init.call, %.loc14_27.1 +// CHECK:STDOUT: %const.loc14_30: type = const_type %X.ref.loc14_36 [concrete = constants.%const] +// CHECK:STDOUT: %.loc14_27.1: init %const = as_compatible %Init.call +// CHECK:STDOUT: %.loc14_27.2: init %const = converted %Init.call, %.loc14_27.1 // CHECK:STDOUT: assign %i.var, %.loc14_27.2 -// CHECK:STDOUT: %.loc14_10: type = splice_block %const.loc14_10 [concrete = constants.%const.dde] { +// CHECK:STDOUT: %.loc14_10: type = splice_block %const.loc14_10 [concrete = constants.%const] { // CHECK:STDOUT: %X.ref.loc14_16: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc14_10: type = const_type %X.ref.loc14_16 [concrete = constants.%const.dde] +// CHECK:STDOUT: %const.loc14_10: type = const_type %X.ref.loc14_16 [concrete = constants.%const] // CHECK:STDOUT: } -// CHECK:STDOUT: %i: ref %const.dde = bind_name i, %i.var +// CHECK:STDOUT: %i: ref %const = bind_name i, %i.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: %pattern_type.d7f91 = binding_pattern v [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value // CHECK:STDOUT: %X.ref.loc15_35: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc15_29: type = const_type %X.ref.loc15_35 [concrete = constants.%const.dde] -// CHECK:STDOUT: %.loc15_26.1: %const.dde = as_compatible %value.ref -// CHECK:STDOUT: %.loc15_26.2: %const.dde = converted %value.ref, %.loc15_26.1 -// CHECK:STDOUT: %.loc15_10: type = splice_block %const.loc15_10 [concrete = constants.%const.dde] { +// CHECK:STDOUT: %const.loc15_29: type = const_type %X.ref.loc15_35 [concrete = constants.%const] +// CHECK:STDOUT: %.loc15_26.1: %const = as_compatible %value.ref +// CHECK:STDOUT: %.loc15_26.2: %const = converted %value.ref, %.loc15_26.1 +// CHECK:STDOUT: %.loc15_10: type = splice_block %const.loc15_10 [concrete = constants.%const] { // CHECK:STDOUT: %X.ref.loc15_16: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc15_10: type = const_type %X.ref.loc15_16 [concrete = constants.%const.dde] +// CHECK:STDOUT: %const.loc15_10: type = const_type %X.ref.loc15_16 [concrete = constants.%const] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: %const.dde = bind_name v, %.loc15_26.2 +// CHECK:STDOUT: %v: %const = bind_name v, %.loc15_26.2 // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.855 = binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var] // CHECK:STDOUT: %X.ref.loc16_42: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc16_36: type = const_type %X.ref.loc16_42 [concrete = constants.%const.dde] -// CHECK:STDOUT: %.loc16_33.1: ref %const.dde = as_compatible %reference.ref [concrete = constants.%reference.var] -// CHECK:STDOUT: %.loc16_33.2: ref %const.dde = converted %reference.ref, %.loc16_33.1 [concrete = constants.%reference.var] +// CHECK:STDOUT: %const.loc16_36: type = const_type %X.ref.loc16_42 [concrete = constants.%const] +// CHECK:STDOUT: %.loc16_33.1: ref %const = as_compatible %reference.ref [concrete = constants.%reference.var] +// CHECK:STDOUT: %.loc16_33.2: ref %const = converted %reference.ref, %.loc16_33.1 [concrete = constants.%reference.var] // CHECK:STDOUT: %addr.loc16: %ptr.cbd = addr_of %.loc16_33.2 [concrete = constants.%addr.0c5] // CHECK:STDOUT: %.loc16_17: type = splice_block %ptr.loc16 [concrete = constants.%ptr.cbd] { // CHECK:STDOUT: %X.ref.loc16_16: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc16_10: type = const_type %X.ref.loc16_16 [concrete = constants.%const.dde] +// CHECK:STDOUT: %const.loc16_10: type = const_type %X.ref.loc16_16 [concrete = constants.%const] // CHECK:STDOUT: %ptr.loc16: type = ptr_type %const.loc16_10 [concrete = constants.%ptr.cbd] // CHECK:STDOUT: } // CHECK:STDOUT: %a: %ptr.cbd = bind_name a, %addr.loc16 @@ -176,25 +168,23 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: %ptr.ref: %ptr.d17 = name_ref ptr, file.%ptr.loc9_5 // CHECK:STDOUT: %X.ref.loc17_34: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc17_28: type = const_type %X.ref.loc17_34 [concrete = constants.%const.dde] +// CHECK:STDOUT: %const.loc17_28: type = const_type %X.ref.loc17_34 [concrete = constants.%const] // CHECK:STDOUT: %ptr.loc17_35: type = ptr_type %const.loc17_28 [concrete = constants.%ptr.cbd] // CHECK:STDOUT: %.loc17_25.1: %ptr.cbd = as_compatible %ptr.ref // CHECK:STDOUT: %.loc17_25.2: %ptr.cbd = converted %ptr.ref, %.loc17_25.1 // CHECK:STDOUT: %.loc17_17: type = splice_block %ptr.loc17_17 [concrete = constants.%ptr.cbd] { // CHECK:STDOUT: %X.ref.loc17_16: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %const.loc17_10: type = const_type %X.ref.loc17_16 [concrete = constants.%const.dde] +// CHECK:STDOUT: %const.loc17_10: type = const_type %X.ref.loc17_16 [concrete = constants.%const] // CHECK:STDOUT: %ptr.loc17_17: type = ptr_type %const.loc17_10 [concrete = constants.%ptr.cbd] // CHECK:STDOUT: } // CHECK:STDOUT: %b: %ptr.cbd = bind_name b, %.loc17_25.2 -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%X, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value constants.%X, (constants.%Destroy.impl_witness.079) [concrete = constants.%Destroy.facet.074] -// CHECK:STDOUT: %.loc14_3.3: %Destroy.type = converted constants.%X, %Destroy.facet [concrete = constants.%Destroy.facet.074] -// CHECK:STDOUT: %const.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%const.as.Destroy.impl.Op.3cc +// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%const, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%const, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b9c // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %const.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc14: %ptr.cbd = addr_of %i.var -// CHECK:STDOUT: %const.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc14) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc14) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -207,15 +197,15 @@ fn Use() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %const.dde: type = const_type %X [concrete] +// CHECK:STDOUT: %const: type = const_type %X [concrete] // CHECK:STDOUT: %Init.type: type = fn_type @Init [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.019: type = pattern_type %X [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.177: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -231,7 +221,7 @@ fn Use() { // CHECK:STDOUT: %i.var: ref %X = var %i.var_patt // CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] // CHECK:STDOUT: %.loc12_3.1: ref %X = splice_block %i.var {} -// CHECK:STDOUT: %Init.call: init %const.dde = call %Init.ref() to %.loc12_3.1 +// CHECK:STDOUT: %Init.call: init %const = call %Init.ref() to %.loc12_3.1 // CHECK:STDOUT: %X.ref.loc12_24: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc12_21.1: init %X = as_compatible %Init.call // CHECK:STDOUT: %.loc12_21.2: init %X = converted %Init.call, %.loc12_21.1 @@ -241,7 +231,7 @@ fn Use() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: %pattern_type.019 = binding_pattern v [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %value.ref: %const.dde = name_ref value, file.%value +// CHECK:STDOUT: %value.ref: %const = name_ref value, file.%value // CHECK:STDOUT: %X.ref.loc13_23: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %.loc13_20.1: %X = as_compatible %value.ref // CHECK:STDOUT: %.loc13_20.2: %X = converted %value.ref, %.loc13_20.1 @@ -249,11 +239,11 @@ fn Use() { // CHECK:STDOUT: %v: %X = bind_name v, %.loc13_20.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%X, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d17 = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/maybe_unformed.carbon b/toolchain/check/testdata/as/maybe_unformed.carbon index 0681a2a6c93a..9ec0dcf34aaf 100644 --- a/toolchain/check/testdata/as/maybe_unformed.carbon +++ b/toolchain/check/testdata/as/maybe_unformed.carbon @@ -218,10 +218,10 @@ fn Use() { // CHECK:STDOUT: %As.type.90f: type = generic_interface_type @As [concrete] // CHECK:STDOUT: %As.generic: %As.type.90f = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %MaybeUnformed.275, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.354: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bae: %AggregateT.as_type.as.Destroy.impl.Op.type.354 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.354: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bae: %DestroyT.as_type.as.Destroy.impl.Op.type.354 = struct_value () [concrete] // CHECK:STDOUT: %ptr.58e: type = ptr_type %MaybeUnformed.275 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,11 +279,11 @@ fn Use() { // CHECK:STDOUT: %v: %MaybeUnformed.275 = bind_name v, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%MaybeUnformed.275, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%MaybeUnformed.275, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bae +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bae // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.58e = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/partial.carbon b/toolchain/check/testdata/as/partial.carbon index 765cabdbca58..c34fefb70ee0 100644 --- a/toolchain/check/testdata/as/partial.carbon +++ b/toolchain/check/testdata/as/partial.carbon @@ -10,7 +10,7 @@ // TIP: To dump output, run: // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/as/partial.carbon -// --- fail_todo_add_partial.carbon +// --- add_partial.carbon library "[[@TEST_NAME]]"; @@ -24,10 +24,6 @@ let ptr: X* = &reference; fn Use() { // TODO: Should some of these be valid without the `as`? //@dump-sem-ir-begin - // CHECK:STDERR: fail_todo_add_partial.carbon:[[@LINE+4]]:3: error: cannot access member of interface `Core.Destroy` in type `partial X` that does not implement that interface [MissingImplInMemberAccess] - // CHECK:STDERR: var i: partial X = Init() as partial X; - // CHECK:STDERR: ^~~~~~~~~~~~~~~~ - // CHECK:STDERR: var i: partial X = Init() as partial X; let v: partial X = value as partial X; let a: partial X* = &(reference as partial X); @@ -132,11 +128,12 @@ fn Use() { //@dump-sem-ir-end } -// CHECK:STDOUT: --- fail_todo_add_partial.carbon +// CHECK:STDOUT: --- add_partial.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %Init.type: type = fn_type @Init [concrete] +// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] // CHECK:STDOUT: %.e71: type = partial_type %X [concrete] @@ -145,6 +142,10 @@ fn Use() { // CHECK:STDOUT: %pattern_type.46e: type = pattern_type %ptr.7b2 [concrete] // CHECK:STDOUT: %reference.var: ref %.e71 = var file.%reference.var_patt [concrete] // CHECK:STDOUT: %addr.e01: %ptr.7b2 = addr_of %reference.var [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %.e71, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.65e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5f4: %DestroyT.as_type.as.Destroy.impl.Op.type.65e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -158,61 +159,68 @@ fn Use() { // CHECK:STDOUT: } // CHECK:STDOUT: %i.var: ref %.e71 = var %i.var_patt // CHECK:STDOUT: %Init.ref: %Init.type = name_ref Init, file.%Init.decl [concrete = constants.%Init] -// CHECK:STDOUT: %.loc18_3: ref %.e71 = splice_block %i.var {} -// CHECK:STDOUT: %Init.call: init %X = call %Init.ref() to %.loc18_3 -// CHECK:STDOUT: %X.ref.loc18_40: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc18_32: type = partial_type %X.ref.loc18_40 [concrete = constants.%.e71] -// CHECK:STDOUT: %.loc18_29.1: init %.e71 = as_compatible %Init.call -// CHECK:STDOUT: %.loc18_29.2: init %.e71 = converted %Init.call, %.loc18_29.1 -// CHECK:STDOUT: assign %i.var, %.loc18_29.2 -// CHECK:STDOUT: %.loc18_10.1: type = splice_block %.loc18_10.2 [concrete = constants.%.e71] { -// CHECK:STDOUT: %X.ref.loc18_18: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc18_10.2: type = partial_type %X.ref.loc18_18 [concrete = constants.%.e71] +// CHECK:STDOUT: %.loc14_3.1: ref %.e71 = splice_block %i.var {} +// CHECK:STDOUT: %Init.call: init %X = call %Init.ref() to %.loc14_3.1 +// CHECK:STDOUT: %X.ref.loc14_40: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc14_32: type = partial_type %X.ref.loc14_40 [concrete = constants.%.e71] +// CHECK:STDOUT: %.loc14_29.1: init %.e71 = as_compatible %Init.call +// CHECK:STDOUT: %.loc14_29.2: init %.e71 = converted %Init.call, %.loc14_29.1 +// CHECK:STDOUT: assign %i.var, %.loc14_29.2 +// CHECK:STDOUT: %.loc14_10.1: type = splice_block %.loc14_10.2 [concrete = constants.%.e71] { +// CHECK:STDOUT: %X.ref.loc14_18: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc14_10.2: type = partial_type %X.ref.loc14_18 [concrete = constants.%.e71] // CHECK:STDOUT: } // CHECK:STDOUT: %i: ref %.e71 = bind_name i, %i.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: %pattern_type.a53 = binding_pattern v [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %value.ref: %X = name_ref value, file.%value -// CHECK:STDOUT: %X.ref.loc19_39: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc19_31: type = partial_type %X.ref.loc19_39 [concrete = constants.%.e71] -// CHECK:STDOUT: %.loc19_28.1: %.e71 = as_compatible %value.ref -// CHECK:STDOUT: %.loc19_28.2: %.e71 = converted %value.ref, %.loc19_28.1 -// CHECK:STDOUT: %.loc19_10.1: type = splice_block %.loc19_10.2 [concrete = constants.%.e71] { -// CHECK:STDOUT: %X.ref.loc19_18: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc19_10.2: type = partial_type %X.ref.loc19_18 [concrete = constants.%.e71] +// CHECK:STDOUT: %X.ref.loc15_39: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc15_31: type = partial_type %X.ref.loc15_39 [concrete = constants.%.e71] +// CHECK:STDOUT: %.loc15_28.1: %.e71 = as_compatible %value.ref +// CHECK:STDOUT: %.loc15_28.2: %.e71 = converted %value.ref, %.loc15_28.1 +// CHECK:STDOUT: %.loc15_10.1: type = splice_block %.loc15_10.2 [concrete = constants.%.e71] { +// CHECK:STDOUT: %X.ref.loc15_18: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc15_10.2: type = partial_type %X.ref.loc15_18 [concrete = constants.%.e71] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: %.e71 = bind_name v, %.loc19_28.2 +// CHECK:STDOUT: %v: %.e71 = bind_name v, %.loc15_28.2 // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.46e = binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %reference.ref: ref %X = name_ref reference, file.%reference [concrete = file.%reference.var] -// CHECK:STDOUT: %X.ref.loc20_46: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc20_38: type = partial_type %X.ref.loc20_46 [concrete = constants.%.e71] -// CHECK:STDOUT: %.loc20_35.1: ref %.e71 = as_compatible %reference.ref [concrete = constants.%reference.var] -// CHECK:STDOUT: %.loc20_35.2: ref %.e71 = converted %reference.ref, %.loc20_35.1 [concrete = constants.%reference.var] -// CHECK:STDOUT: %addr: %ptr.7b2 = addr_of %.loc20_35.2 [concrete = constants.%addr.e01] -// CHECK:STDOUT: %.loc20_19: type = splice_block %ptr.loc20 [concrete = constants.%ptr.7b2] { -// CHECK:STDOUT: %X.ref.loc20_18: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc20_10: type = partial_type %X.ref.loc20_18 [concrete = constants.%.e71] -// CHECK:STDOUT: %ptr.loc20: type = ptr_type %.loc20_10 [concrete = constants.%ptr.7b2] +// CHECK:STDOUT: %X.ref.loc16_46: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc16_38: type = partial_type %X.ref.loc16_46 [concrete = constants.%.e71] +// CHECK:STDOUT: %.loc16_35.1: ref %.e71 = as_compatible %reference.ref [concrete = constants.%reference.var] +// CHECK:STDOUT: %.loc16_35.2: ref %.e71 = converted %reference.ref, %.loc16_35.1 [concrete = constants.%reference.var] +// CHECK:STDOUT: %addr.loc16: %ptr.7b2 = addr_of %.loc16_35.2 [concrete = constants.%addr.e01] +// CHECK:STDOUT: %.loc16_19: type = splice_block %ptr.loc16 [concrete = constants.%ptr.7b2] { +// CHECK:STDOUT: %X.ref.loc16_18: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc16_10: type = partial_type %X.ref.loc16_18 [concrete = constants.%.e71] +// CHECK:STDOUT: %ptr.loc16: type = ptr_type %.loc16_10 [concrete = constants.%ptr.7b2] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: %ptr.7b2 = bind_name a, %addr +// CHECK:STDOUT: %a: %ptr.7b2 = bind_name a, %addr.loc16 // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %b.patt: %pattern_type.46e = binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %ptr.ref: %ptr.d17 = name_ref ptr, file.%ptr.loc9_5 -// CHECK:STDOUT: %X.ref.loc21_38: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc21_30: type = partial_type %X.ref.loc21_38 [concrete = constants.%.e71] -// CHECK:STDOUT: %ptr.loc21_39: type = ptr_type %.loc21_30 [concrete = constants.%ptr.7b2] -// CHECK:STDOUT: %.loc21_27.1: %ptr.7b2 = as_compatible %ptr.ref -// CHECK:STDOUT: %.loc21_27.2: %ptr.7b2 = converted %ptr.ref, %.loc21_27.1 -// CHECK:STDOUT: %.loc21_19: type = splice_block %ptr.loc21_19 [concrete = constants.%ptr.7b2] { -// CHECK:STDOUT: %X.ref.loc21_18: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %.loc21_10: type = partial_type %X.ref.loc21_18 [concrete = constants.%.e71] -// CHECK:STDOUT: %ptr.loc21_19: type = ptr_type %.loc21_10 [concrete = constants.%ptr.7b2] +// CHECK:STDOUT: %X.ref.loc17_38: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc17_30: type = partial_type %X.ref.loc17_38 [concrete = constants.%.e71] +// CHECK:STDOUT: %ptr.loc17_39: type = ptr_type %.loc17_30 [concrete = constants.%ptr.7b2] +// CHECK:STDOUT: %.loc17_27.1: %ptr.7b2 = as_compatible %ptr.ref +// CHECK:STDOUT: %.loc17_27.2: %ptr.7b2 = converted %ptr.ref, %.loc17_27.1 +// CHECK:STDOUT: %.loc17_19: type = splice_block %ptr.loc17_19 [concrete = constants.%ptr.7b2] { +// CHECK:STDOUT: %X.ref.loc17_18: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %.loc17_10: type = partial_type %X.ref.loc17_18 [concrete = constants.%.e71] +// CHECK:STDOUT: %ptr.loc17_19: type = ptr_type %.loc17_10 [concrete = constants.%ptr.7b2] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: %ptr.7b2 = bind_name b, %.loc21_27.2 +// CHECK:STDOUT: %b: %ptr.7b2 = bind_name b, %.loc17_27.2 +// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%.e71, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%.e71, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5f4 +// CHECK:STDOUT: +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %addr.loc14: %ptr.7b2 = addr_of %i.var +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc14) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -230,10 +238,10 @@ fn Use() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Init: %Init.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.019: type = pattern_type %X [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.177: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -282,25 +290,25 @@ fn Use() { // CHECK:STDOUT: %k: ref %X = bind_name k, %k.var // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_3: %type_where = converted constants.%X, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %k.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %k.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc34: = bound_method %k.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc34: = bound_method %k.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34: %ptr.d17 = addr_of %k.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_3: %type_where = converted constants.%X, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %j.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %j.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc26: = bound_method %j.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc26: = bound_method %j.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.d17 = addr_of %j.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%X, %facet_value.loc18 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc18: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc18: %ptr.d17 = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) // CHECK:STDOUT: // 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 9f65d3e7618f..5a783c2e2552 100644 --- a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon +++ b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon @@ -104,10 +104,10 @@ library "[[@TEST_NAME]]"; // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] @@ -162,11 +162,11 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %.loc20_11: init %empty_tuple.type = converted %c.ref.loc20, %.loc20_10 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %.loc20_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -224,10 +224,10 @@ library "[[@TEST_NAME]]"; // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -254,19 +254,19 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc17_7.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc17 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %.loc17_7.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %.loc17_7.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc17: = bound_method %.loc17_7.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc17: = bound_method %.loc17_7.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc17: %ptr.843 = addr_of %.loc17_7.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) // CHECK:STDOUT: // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_7.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc13 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_7.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_7.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_7.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_7.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc13: %ptr.843 = addr_of %.loc13_7.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: // CHECK:STDOUT: } // 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 d1d49a850ce6..37e52de0d476 100644 --- a/toolchain/check/testdata/basics/duplicate_name_same_line.carbon +++ b/toolchain/check/testdata/basics/duplicate_name_same_line.carbon @@ -25,10 +25,10 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -68,18 +68,18 @@ fn A() { // CHECK:STDOUT: !if.done: // CHECK:STDOUT: %facet_value.loc18_25: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_25: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_25 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18_25: = bound_method %n.var.loc18_25, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_25: = bound_method %n.var.loc18_25, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_25: = bound_method %n.var.loc18_25, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc18_25: = bound_method %n.var.loc18_25, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18_25: %ptr.843 = addr_of %n.var.loc18_25 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18_25: init %empty_tuple.type = call %bound_method.loc18_25(%addr.loc18_25) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_25: init %empty_tuple.type = call %bound_method.loc18_25(%addr.loc18_25) // CHECK:STDOUT: %facet_value.loc18_5: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_5: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_5 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18_5: = bound_method %n.var.loc18_5, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_5: = bound_method %n.var.loc18_5, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %n.var.loc18_5, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %n.var.loc18_5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18_5: %ptr.843 = addr_of %n.var.loc18_5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18_5: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18_5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_5: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18_5) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/type/can_aggregate_destroy.carbon b/toolchain/check/testdata/builtins/type/can_destroy.carbon similarity index 76% rename from toolchain/check/testdata/builtins/type/can_aggregate_destroy.carbon rename to toolchain/check/testdata/builtins/type/can_destroy.carbon index bd348afb3ac9..78f25d45223b 100644 --- a/toolchain/check/testdata/builtins/type/can_aggregate_destroy.carbon +++ b/toolchain/check/testdata/builtins/type/can_destroy.carbon @@ -6,16 +6,16 @@ // // AUTOUPDATE // TIP: To test this file alone, run: -// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/type/can_aggregate_destroy.carbon +// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/type/can_destroy.carbon // TIP: To dump output, run: -// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/builtins/type/can_aggregate_destroy.carbon +// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/builtins/type/can_destroy.carbon // --- param.carbon library "[[@TEST_NAME]]"; -fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; +fn CanDestroy() -> type = "type.can_destroy"; -fn F(T:! CanAggregateDestroy()) {} +fn F(T:! CanDestroy()) {} fn G() { //@dump-sem-ir-begin @@ -27,9 +27,9 @@ fn G() { // --- impls.carbon library "[[@TEST_NAME]]"; -fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; +fn CanDestroy() -> type = "type.can_destroy"; -fn F(T:! type where .Self impls CanAggregateDestroy()) {} +fn F(T:! type where .Self impls CanDestroy()) {} fn G() { //@dump-sem-ir-begin @@ -38,28 +38,50 @@ fn G() { //@dump-sem-ir-end } -// --- fail_type_mismatch.carbon +// --- fail_incomplete.carbon library "[[@TEST_NAME]]"; -fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; +fn CanDestroy() -> type = "type.can_destroy"; -fn F(T:! CanAggregateDestroy()) {} +fn F(T:! CanDestroy()) {} + +class Incomplete; fn G() { - // CHECK:STDERR: fail_type_mismatch.carbon:[[@LINE+7]]:3: error: cannot convert type `bool` into type implementing `type where .Self impls Core.CanAggregateDestroy` [ConversionFailureTypeToFacet] - // CHECK:STDERR: F(bool); - // CHECK:STDERR: ^~~~~~~ - // CHECK:STDERR: fail_type_mismatch.carbon:[[@LINE-6]]:6: note: initializing generic parameter `T` declared here [InitializingGenericParam] - // CHECK:STDERR: fn F(T:! CanAggregateDestroy()) {} + // CHECK:STDERR: fail_incomplete.carbon:[[@LINE+7]]:3: error: cannot convert type `Incomplete` into type implementing `type where .Self impls Core.CanDestroy` [ConversionFailureTypeToFacet] + // CHECK:STDERR: F(Incomplete); + // CHECK:STDERR: ^~~~~~~~~~~~~ + // CHECK:STDERR: fail_incomplete.carbon:[[@LINE-8]]:6: note: initializing generic parameter `T` declared here [InitializingGenericParam] + // CHECK:STDERR: fn F(T:! CanDestroy()) {} // CHECK:STDERR: ^ // CHECK:STDERR: - F(bool); + F(Incomplete); +} + +// --- fail_abstract.carbon +library "[[@TEST_NAME]]"; + +fn CanDestroy() -> type = "type.can_destroy"; + +fn F(T:! CanDestroy()) {} + +abstract class Abstract {} + +fn G() { + // CHECK:STDERR: fail_abstract.carbon:[[@LINE+7]]:3: error: cannot convert type `Abstract` into type implementing `type where .Self impls Core.CanDestroy` [ConversionFailureTypeToFacet] + // CHECK:STDERR: F(Abstract); + // CHECK:STDERR: ^~~~~~~~~~~ + // CHECK:STDERR: fail_abstract.carbon:[[@LINE-8]]:6: note: initializing generic parameter `T` declared here [InitializingGenericParam] + // CHECK:STDERR: fn F(T:! CanDestroy()) {} + // CHECK:STDERR: ^ + // CHECK:STDERR: + F(Abstract); } // --- fail_impl.carbon library "[[@TEST_NAME]]"; -fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; +fn CanDestroy() -> type = "type.can_destroy"; fn TypeAnd(a: type, b: type) -> type = "type.and"; class C {} @@ -67,28 +89,28 @@ class C {} interface I {} // CHECK:STDERR: fail_impl.carbon:[[@LINE+4]]:1: error: impl as 0 interfaces, expected 1 [ImplOfNotOneInterface] -// CHECK:STDERR: impl C as CanAggregateDestroy() {} -// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// CHECK:STDERR: impl C as CanDestroy() {} +// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: -impl C as CanAggregateDestroy() {} +impl C as CanDestroy() {} // --- impl_with_interface.carbon library "[[@TEST_NAME]]"; -fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; +fn CanDestroy() -> type = "type.can_destroy"; fn TypeAnd(a: type, b: type) -> type = "type.and"; class C {} interface I {} -impl C as TypeAnd(I, CanAggregateDestroy()) {} +impl C as TypeAnd(I, CanDestroy()) {} // CHECK:STDOUT: --- param.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] @@ -122,7 +144,7 @@ impl C as TypeAnd(I, CanAggregateDestroy()) {} // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] diff --git a/toolchain/check/testdata/builtins/type/aggregate_destroy.carbon b/toolchain/check/testdata/builtins/type/destroy.carbon similarity index 93% rename from toolchain/check/testdata/builtins/type/aggregate_destroy.carbon rename to toolchain/check/testdata/builtins/type/destroy.carbon index 81d02b58a9ce..98c8c5c6c8fd 100644 --- a/toolchain/check/testdata/builtins/type/aggregate_destroy.carbon +++ b/toolchain/check/testdata/builtins/type/destroy.carbon @@ -6,9 +6,9 @@ // // AUTOUPDATE // TIP: To test this file alone, run: -// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/type/aggregate_destroy.carbon +// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/type/destroy.carbon // TIP: To dump output, run: -// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/builtins/type/aggregate_destroy.carbon +// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/builtins/type/destroy.carbon // --- forall.carbon library "[[@TEST_NAME]]"; @@ -18,7 +18,7 @@ interface DestroyLike { } impl forall [T:! type] T as DestroyLike { - fn Op[addr self: Self*]() = "type.aggregate_destroy"; + fn Op[addr self: Self*]() = "type.destroy"; } var a: (); @@ -31,20 +31,6 @@ fn F() { //@dump-sem-ir-end } -// --- todo_fail_wrong_type.carbon -library "[[@TEST_NAME]]"; - -interface DestroyLike { - fn Op[addr self: Self*](); -} - -class C {} - -impl C as DestroyLike { - // TODO: This should fail because it has the wrong type. - fn Op[addr self: Self*]() = "type.aggregate_destroy"; -} - // CHECK:STDOUT: --- forall.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { diff --git a/toolchain/check/testdata/class/access_modifers.carbon b/toolchain/check/testdata/class/access_modifers.carbon index 5c4493321400..9824931bb3d8 100644 --- a/toolchain/check/testdata/class/access_modifers.carbon +++ b/toolchain/check/testdata/class/access_modifers.carbon @@ -194,12 +194,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Circle, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.25b: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.031: %AggregateT.as_type.as.Destroy.impl.Op.type.25b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.25b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.031: %DestroyT.as_type.as.Destroy.impl.Op.type.25b = struct_value () [concrete] // CHECK:STDOUT: %ptr.54d: type = ptr_type %Circle [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.031, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.031, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -338,11 +338,11 @@ class A { // CHECK:STDOUT: %SomeInternalFunction.ref: = name_ref SomeInternalFunction, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Circle, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_36.4: %type_where = converted constants.%Circle, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.031 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.031, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.031 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.031, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.54d = addr_of %.loc18_36.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index e97415efb98a..36f577cf303d 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -183,12 +183,12 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.567: %type_where = facet_value %AdaptCopyable, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.2be: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.567) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1b8: %AggregateT.as_type.as.Destroy.impl.Op.type.2be = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2be: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.567) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1b8: %DestroyT.as_type.as.Destroy.impl.Op.type.2be = struct_value () [concrete] // CHECK:STDOUT: %ptr.4c1: type = ptr_type %AdaptCopyable [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6d3: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.1b8, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.567) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6d3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.1b8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.567) [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] @@ -207,9 +207,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.6a4: %type_where = facet_value %tuple.type.2a3, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.285: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.6a4) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a01: %AggregateT.as_type.as.Destroy.impl.Op.type.285 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.610: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.8a01, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.6a4) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.285: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.6a4) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a01: %DestroyT.as_type.as.Destroy.impl.Op.type.285 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.610: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.8a01, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.6a4) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -302,11 +302,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc24: %AdaptCopyable = bind_value %d.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptCopyable, () [concrete = constants.%facet_value.567] // CHECK:STDOUT: %.loc16: %type_where = converted constants.%AdaptCopyable, %facet_value [concrete = constants.%facet_value.567] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.1b8 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.1b8, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.567) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6d3] -// CHECK:STDOUT: %bound_method: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1b8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.1b8, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.567) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6d3] +// CHECK:STDOUT: %bound_method: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.4c1 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -358,11 +358,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc43_11: init %tuple.type.2a3 = converted %d.ref, %.loc43_10.5 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.2a3, () [concrete = constants.%facet_value.6a4] // CHECK:STDOUT: %.loc35_3.2: %type_where = converted constants.%tuple.type.2a3, %facet_value [concrete = constants.%facet_value.6a4] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.8a01 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.8a01, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.6a4) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.610] -// CHECK:STDOUT: %bound_method.loc35_3: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8a01 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.8a01, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.6a4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.610] +// CHECK:STDOUT: %bound_method.loc35_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c30 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc35_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc35_3(%addr) // CHECK:STDOUT: return %.loc43_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -393,12 +393,12 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.a7e: %type_where = facet_value %AdaptTuple, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.5a3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.a7e) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.002: %AggregateT.as_type.as.Destroy.impl.Op.type.5a3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.5a3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.a7e) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.002: %DestroyT.as_type.as.Destroy.impl.Op.type.5a3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ca3: type = ptr_type %AdaptTuple [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.83b: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.002, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.a7e) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.83b: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.002, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.a7e) [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] @@ -415,10 +415,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9a3 [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.262: %type_where = facet_value %tuple.type.f69, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.3a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.262) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.030: %AggregateT.as_type.as.Destroy.impl.Op.type.3a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.3a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.262) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.030: %DestroyT.as_type.as.Destroy.impl.Op.type.3a4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ed5: type = ptr_type %tuple.type.f69 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.554: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.030, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.262) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.554: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.030, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.262) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -560,11 +560,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.9: init %AdaptTuple = converted %d.ref, %.loc10_11.8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptTuple, () [concrete = constants.%facet_value.a7e] // CHECK:STDOUT: %.loc9_3.8: %type_where = converted constants.%AdaptTuple, %facet_value [concrete = constants.%facet_value.a7e] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.002 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.002, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.a7e) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.83b] -// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.002 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.002, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.a7e) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.83b] +// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ca3 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) // CHECK:STDOUT: return %.loc10_11.9 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -657,11 +657,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_11: init %tuple.type.f69 = converted %d.ref, %.loc15_10.12 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.f69, () [concrete = constants.%facet_value.262] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%tuple.type.f69, %facet_value [concrete = constants.%facet_value.262] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.030 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.030, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.262) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.554] -// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.030 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.030, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.262) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.554] +// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ed5 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) // CHECK:STDOUT: return %.loc15_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -678,12 +678,12 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AdaptNoncopyable, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.3de: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6f7: %AggregateT.as_type.as.Destroy.impl.Op.type.3de = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.3de: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6f7: %DestroyT.as_type.as.Destroy.impl.Op.type.3de = struct_value () [concrete] // CHECK:STDOUT: %ptr.ed9: type = ptr_type %AdaptNoncopyable [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.6f7, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6f7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -756,11 +756,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc28: %AdaptNoncopyable = bind_value %b.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptNoncopyable, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20: %type_where = converted constants.%AdaptNoncopyable, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6f7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.6f7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6f7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6f7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ed9 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -794,12 +794,12 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AdaptNoncopyableIndirect, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.26a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.02b: %AggregateT.as_type.as.Destroy.impl.Op.type.26a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.26a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.02b: %DestroyT.as_type.as.Destroy.impl.Op.type.26a = struct_value () [concrete] // CHECK:STDOUT: %ptr.921: type = ptr_type %AdaptNoncopyableIndirect [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.02b, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.02b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -905,11 +905,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc34_11.5: %Noncopyable = bind_value %tuple.elem1.loc34 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptNoncopyableIndirect, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_3.4: %type_where = converted constants.%AdaptNoncopyableIndirect, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.02b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.02b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_3.3: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.02b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.02b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc23_3.3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.921 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_3.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_3.3(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -939,12 +939,12 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.14c: %type_where = facet_value %AdaptStruct, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b5b: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.14c) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.987: %AggregateT.as_type.as.Destroy.impl.Op.type.b5b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b5b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.14c) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.987: %DestroyT.as_type.as.Destroy.impl.Op.type.b5b = struct_value () [concrete] // CHECK:STDOUT: %ptr.e10: type = ptr_type %AdaptStruct [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4f8: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.987, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.14c) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4f8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.987, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.14c) [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] @@ -962,10 +962,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9a3 [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.03e: %type_where = facet_value %tuple.type.80b, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.a7b: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.03e) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.4cc: %AggregateT.as_type.as.Destroy.impl.Op.type.a7b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a7b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.03e) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4cc: %DestroyT.as_type.as.Destroy.impl.Op.type.a7b = struct_value () [concrete] // CHECK:STDOUT: %ptr.b09: type = ptr_type %tuple.type.80b [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.0cd: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.4cc, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.03e) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0cd: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.4cc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.03e) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1106,11 +1106,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.13: init %AdaptStruct = converted %h.ref, %.loc10_11.12 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptStruct, () [concrete = constants.%facet_value.14c] // CHECK:STDOUT: %.loc9_3.12: %type_where = converted constants.%AdaptStruct, %facet_value [concrete = constants.%facet_value.14c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %h.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.987 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.987, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.14c) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4f8] -// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %h.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %h.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.987 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.987, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4f8] +// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %h.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e10 = addr_of %h.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) // CHECK:STDOUT: return %.loc10_11.13 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1203,11 +1203,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_11: init %tuple.type.80b = converted %d.ref, %.loc15_10.16 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.80b, () [concrete = constants.%facet_value.03e] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%tuple.type.80b, %facet_value [concrete = constants.%facet_value.03e] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.4cc -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.4cc, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.03e) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.0cd] -// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.4cc +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.4cc, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.03e) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0cd] +// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.b09 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) // CHECK:STDOUT: return %.loc15_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/derived_to_base.carbon b/toolchain/check/testdata/class/derived_to_base.carbon index e98d35e98fce..b29f9f0ef645 100644 --- a/toolchain/check/testdata/class/derived_to_base.carbon +++ b/toolchain/check/testdata/class/derived_to_base.carbon @@ -191,10 +191,10 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -416,11 +416,11 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %a: %A = bind_name a, %.loc32_59.5 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc32_57.10: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc32_57.9, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc32_57.9, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc32_57.3: = bound_method %.loc32_57.9, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc32_57.3: = bound_method %.loc32_57.9, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc32_57.9 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc32_57.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc32_57.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/destroy_calls.carbon b/toolchain/check/testdata/class/destroy_calls.carbon index 87e0e17aa79e..5a9d5a083e8f 100644 --- a/toolchain/check/testdata/class/destroy_calls.carbon +++ b/toolchain/check/testdata/class/destroy_calls.carbon @@ -100,18 +100,18 @@ fn G() { F({}); } // CHECK:STDOUT: %pattern_type.c10: type = pattern_type %A [concrete] // CHECK:STDOUT: %pattern_type.049: type = pattern_type %B [concrete] // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.5f2: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.68f: %AggregateT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.900: %AggregateT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -147,25 +147,25 @@ fn G() { F({}); } // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc12: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc12: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.5f2] // CHECK:STDOUT: %.loc11: %type_where = converted constants.%B, %facet_value.loc11 [concrete = constants.%facet_value.5f2] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11: %ptr.e79 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc10: %type_where = converted constants.%A, %facet_value.loc10 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10: %ptr.6db = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -182,18 +182,18 @@ fn G() { F({}); } // CHECK:STDOUT: %pattern_type.049: type = pattern_type %B [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.5f2: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.68f: %AggregateT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.900: %AggregateT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -236,25 +236,25 @@ fn G() { F({}); } // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc13: %type_where = converted constants.%C, %facet_value.loc13 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.5f2] // CHECK:STDOUT: %.loc11: %type_where = converted constants.%B, %facet_value.loc11 [concrete = constants.%facet_value.5f2] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11: %ptr.e79 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc10: %type_where = converted constants.%A, %facet_value.loc10 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10: %ptr.6db = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -273,18 +273,18 @@ fn G() { F({}); } // CHECK:STDOUT: %C.Make: %C.Make.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.5f2: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.68f: %AggregateT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.900: %AggregateT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -314,25 +314,25 @@ fn G() { F({}); } // CHECK:STDOUT: %.loc14_10.2: ref %C = temporary %.loc14_10.1, %C.Make.call // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc14_10.3: %type_where = converted constants.%C, %facet_value.loc14 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_10.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_10.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_10.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_10.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.019 = addr_of %.loc14_10.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.5f2] // CHECK:STDOUT: %.loc13_10.3: %type_where = converted constants.%B, %facet_value.loc13 [concrete = constants.%facet_value.5f2] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_10.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_10.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_10.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_10.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13: %ptr.e79 = addr_of %.loc13_10.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc12_10.3: %type_where = converted constants.%A, %facet_value.loc12 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_10.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_10.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_10.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_10.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.6db = addr_of %.loc12_10.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -347,10 +347,10 @@ fn G() { F({}); } // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %D.113: type = class_type @D, @D(%C) [concrete] // CHECK:STDOUT: %pattern_type.c957: type = pattern_type %D.113 [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %D.113, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6df: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d42: %AggregateT.as_type.as.Destroy.impl.Op.type.6df = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6df: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d42: %DestroyT.as_type.as.Destroy.impl.Op.type.6df = struct_value () [concrete] // CHECK:STDOUT: %ptr.22d: type = ptr_type %D.113 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -376,11 +376,11 @@ fn G() { F({}); } // CHECK:STDOUT: %a: ref %D.113 = bind_name a, %a.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%D.113, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%D.113, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.d42 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d42 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.22d = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -401,34 +401,35 @@ fn G() { F({}); } // CHECK:STDOUT: %pattern_type.e5e: type = pattern_type %C.f2e [template] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.cb6: %type_where = facet_value %C.f2e, () [template] +// CHECK:STDOUT: %Destroy.impl_witness.688: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.cb6) [template] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.216: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.cb6) [template] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6d0: %DestroyT.as_type.as.Destroy.impl.Op.type.216 = struct_value () [template] // CHECK:STDOUT: %ptr.7d2: type = ptr_type %C.f2e [template] // CHECK:STDOUT: %require_complete.448: = require_complete_type %ptr.7d2 [template] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.ede: = lookup_impl_witness %C.f2e, @Destroy [template] -// CHECK:STDOUT: %Destroy.facet.036: %Destroy.type = facet_value %C.f2e, (%Destroy.lookup_impl_witness.ede) [template] -// CHECK:STDOUT: %.9ae: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.036 [template] -// CHECK:STDOUT: %impl.elem0.107: %.9ae = impl_witness_access %Destroy.lookup_impl_witness.ede, element0 [template] -// CHECK:STDOUT: %specific_impl_fn.1a1: = specific_impl_function %impl.elem0.107, @Destroy.Op(%Destroy.facet.036) [template] +// CHECK:STDOUT: %Destroy.facet.945: %Destroy.type = facet_value %C.f2e, (%Destroy.impl_witness.688) [template] +// CHECK:STDOUT: %.86d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.945 [template] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ed1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6d0, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.cb6) [template] // CHECK:STDOUT: %C.7a7: type = class_type @C, @C(%empty_struct_type) [concrete] // CHECK:STDOUT: %pattern_type.99a: type = pattern_type %C.7a7 [concrete] // CHECK:STDOUT: %facet_value.036: %type_where = facet_value %C.7a7, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.de7: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value.036) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6ad: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.036) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.76a: %AggregateT.as_type.as.Destroy.impl.Op.type.6ad = struct_value () [concrete] -// CHECK:STDOUT: %ptr.308: type = ptr_type %C.7a7 [concrete] -// CHECK:STDOUT: %complete_type.903: = complete_type_witness %ptr.308 [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.de7: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.036) [concrete] // CHECK:STDOUT: %Destroy.facet.0b0: %Destroy.type = facet_value %C.7a7, (%Destroy.impl_witness.de7) [concrete] // CHECK:STDOUT: %.e7d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.0b0 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.76a, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.036) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ad: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.036) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.76a: %DestroyT.as_type.as.Destroy.impl.Op.type.6ad = struct_value () [concrete] +// CHECK:STDOUT: %ptr.308: type = ptr_type %C.7a7 [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e5: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.76a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.036) [concrete] +// CHECK:STDOUT: %complete_type.903: = complete_type_witness %ptr.308 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -438,8 +439,6 @@ fn G() { F({}); } // CHECK:STDOUT: // CHECK:STDOUT: %T.loc6_15.2: type = bind_symbolic_name T, 0, template [template = %T.loc6_15.1 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.7a7, () [concrete = constants.%facet_value.036] -// CHECK:STDOUT: %.loc7: %type_where = converted constants.%C.7a7, %facet_value [concrete = constants.%facet_value.036] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc6_15.2: type) { @@ -450,11 +449,12 @@ fn G() { F({}); } // CHECK:STDOUT: %require_complete.loc7_13: = require_complete_type %C.loc7_13.2 [template = %require_complete.loc7_13 (constants.%require_complete.389)] // CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc7_13.2 [template = %pattern_type (constants.%pattern_type.e5e)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %C.loc7_13.2, () [template = %facet_value.loc7_3.2 (constants.%facet_value.cb6)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C.loc7_13.2, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.ede)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.loc7_13.2, (%Destroy.lookup_impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.036)] -// CHECK:STDOUT: %.loc7_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [template = %.loc7_3.3 (constants.%.9ae)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.3 (%.9ae) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc7_3.2 (constants.%impl.elem0.107)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.Op(%Destroy.facet) [template = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.1a1)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [template = %Destroy.impl_witness (constants.%Destroy.impl_witness.688)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.loc7_13.2, (%Destroy.impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.945)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [template = %.loc7_3.2 (constants.%.86d)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [template = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.216)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.216) = struct_value () [template = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.6d0)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [template = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ed1)] // CHECK:STDOUT: %ptr: type = ptr_type %C.loc7_13.2 [template = %ptr (constants.%ptr.7d2)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr [template = %require_complete.loc7_3 (constants.%require_complete.448)] // CHECK:STDOUT: @@ -473,12 +473,12 @@ fn G() { F({}); } // CHECK:STDOUT: %v: ref @F.%C.loc7_13.2 (%C.f2e) = bind_name v, %v.var // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%C.f2e, () [template = %facet_value.loc7_3.2 (constants.%facet_value.cb6)] // CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%C.f2e, %facet_value.loc7_3.1 [template = %facet_value.loc7_3.2 (constants.%facet_value.cb6)] -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.3 (%.9ae) = impl_witness_access constants.%Destroy.lookup_impl_witness.ede, element0 [template = %impl.elem0.loc7_3.2 (constants.%impl.elem0.107)] -// 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, @Destroy.Op(constants.%Destroy.facet.036) [template = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.1a1)] -// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_impl_fn.loc7_3.1 +// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.86d) = impl_witness_access constants.%Destroy.impl_witness.688, element0 [template = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.6d0)] +// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.cb6) [template = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ed1)] +// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn // CHECK:STDOUT: %addr: @F.%ptr (%ptr.7d2) = addr_of %v.var -// CHECK:STDOUT: %.loc7_3.2: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -495,11 +495,12 @@ fn G() { F({}); } // CHECK:STDOUT: %require_complete.loc7_13 => constants.%complete_type.357 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.99a // CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.036 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.de7 +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.de7 // CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.0b0 -// CHECK:STDOUT: %.loc7_3.3 => constants.%.e7d -// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.76a -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %.loc7_3.2 => constants.%.e7d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.6ad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.76a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e5 // CHECK:STDOUT: %ptr => constants.%ptr.308 // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.903 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/field_access.carbon b/toolchain/check/testdata/class/field_access.carbon index 8f0f1206f014..1f61148bcc8c 100644 --- a/toolchain/check/testdata/class/field_access.carbon +++ b/toolchain/check/testdata/class/field_access.carbon @@ -74,17 +74,17 @@ fn Run() { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %facet_value.d3d: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7c2: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -206,25 +206,25 @@ fn Run() { // CHECK:STDOUT: %ck: ref %i32 = bind_name ck, %ck.var // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc25_3: %type_where = converted constants.%i32, %facet_value.loc25 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %ck.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %ck.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %ck.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %ck.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %ck.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc24_3: %type_where = converted constants.%i32, %facet_value.loc24 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %cj.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %cj.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %cj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %cj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc24: %ptr.235 = addr_of %cj.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value.d3d] // CHECK:STDOUT: %.loc21: %type_where = converted constants.%Class, %facet_value.loc21 [concrete = constants.%facet_value.d3d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.043] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.e71 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/field_access_in_value.carbon b/toolchain/check/testdata/class/field_access_in_value.carbon index e3f1c6948ed7..45733b92d9a9 100644 --- a/toolchain/check/testdata/class/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field_access_in_value.carbon @@ -75,17 +75,17 @@ fn Test() { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %facet_value.d3d: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7c2: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -214,25 +214,25 @@ fn Test() { // CHECK:STDOUT: %ck: ref %i32 = bind_name ck, %ck.var // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc26_3: %type_where = converted constants.%i32, %facet_value.loc26 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %ck.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %ck.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %ck.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %ck.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.235 = addr_of %ck.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc25_3: %type_where = converted constants.%i32, %facet_value.loc25 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %cj.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %cj.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %cj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %cj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %cj.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value.d3d] // CHECK:STDOUT: %.loc21: %type_where = converted constants.%Class, %facet_value.loc21 [concrete = constants.%facet_value.d3d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %cv.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.043] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %cv.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %cv.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %cv.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.e71 = addr_of %cv.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 786ecb0a260a..8ed752e3c35b 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -481,12 +481,12 @@ class Class(U:! type) { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %CompleteClass.F.specific_fn: = specific_function %CompleteClass.F.f7c, @CompleteClass.F(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %CompleteClass.e9e, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c18: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.62b: %AggregateT.as_type.as.Destroy.impl.Op.type.c18 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c18: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.62b: %DestroyT.as_type.as.Destroy.impl.Op.type.c18 = struct_value () [concrete] // CHECK:STDOUT: %ptr.a97: type = ptr_type %CompleteClass.e9e [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.62b, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.62b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %UseField.type: type = fn_type @UseField [concrete] // CHECK:STDOUT: %UseField: %UseField.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] @@ -601,11 +601,11 @@ class Class(U:! type) { // CHECK:STDOUT: %CompleteClass.F.call: init %i32 = call %CompleteClass.F.specific_fn() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%CompleteClass.e9e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_3.2: %type_where = converted constants.%CompleteClass.e9e, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.62b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.62b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.62b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.62b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.a97 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %CompleteClass.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -646,11 +646,11 @@ class Class(U:! type) { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc12_11.2(%.loc12_11.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%CompleteClass.e9e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.2: %type_where = converted constants.%CompleteClass.e9e, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.62b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.62b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc11: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.62b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.62b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc11: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.a97 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -714,12 +714,12 @@ 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: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %CompleteClass.0fe, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.8b2: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.634: %AggregateT.as_type.as.Destroy.impl.Op.type.8b2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8b2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.634: %DestroyT.as_type.as.Destroy.impl.Op.type.8b2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c79: type = ptr_type %CompleteClass.0fe [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.634, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.634, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -798,11 +798,11 @@ class Class(U:! type) { // CHECK:STDOUT: %v: ref %CompleteClass.0fe = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%CompleteClass.0fe, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%CompleteClass.0fe, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.634 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.634, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.634 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.634, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c79 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index 4b041403adb1..df95b9ba97f6 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -74,15 +74,19 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.38a: %type_where = facet_value %Class.a5c, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.075: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.38a) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9e8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.38a) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.379: %DestroyT.as_type.as.Destroy.impl.Op.type.9e8 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.e19: type = ptr_type %Class.a5c [symbolic] // CHECK:STDOUT: %require_complete.3cb: = require_complete_type %ptr.e19 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.a66: = lookup_impl_witness %Class.a5c, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.440: %Destroy.type = facet_value %Class.a5c, (%Destroy.lookup_impl_witness.a66) [symbolic] -// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.440 [symbolic] -// CHECK:STDOUT: %impl.elem0.134: %.4d8 = impl_witness_access %Destroy.lookup_impl_witness.a66, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.62c: = specific_impl_function %impl.elem0.134, @Destroy.Op(%Destroy.facet.440) [symbolic] +// CHECK:STDOUT: %Destroy.facet.cc3: %Destroy.type = facet_value %Class.a5c, (%Destroy.impl_witness.075) [symbolic] +// CHECK:STDOUT: %.979: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.cc3 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7e3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.379, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.38a) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -104,8 +108,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.06f: %type_where = facet_value %Class.247, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bf8: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.06f) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bc0: %AggregateT.as_type.as.Destroy.impl.Op.type.bf8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.06f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bc0: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f7c: type = ptr_type %Class.247 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -119,6 +123,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.import_ref.d0f6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.afd) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.6cd)] // CHECK:STDOUT: %Copy.impl_witness_table.1ed = impl_witness_table (%Core.import_ref.d0f6), @Int.as.Copy.impl [concrete] @@ -187,11 +193,12 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.Op(%T.loc9_26.1) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.as_type.loc9_44.1 [symbolic = %Class.elem (constants.%Class.elem.14a)] // CHECK:STDOUT: %facet_value.loc10_3.2: %type_where = facet_value %Class.loc10_17.2, () [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.38a)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc10_17.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.a66)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.440)] -// CHECK:STDOUT: %.loc10_3.4: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc10_3.4 (constants.%.4d8)] -// CHECK:STDOUT: %impl.elem0.loc10_3.2: @InitFromStructGeneric.%.loc10_3.4 (%.4d8) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.134)] -// CHECK:STDOUT: %specific_impl_fn.loc10_3.2: = specific_impl_function %impl.elem0.loc10_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.62c)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc10_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.075)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.cc3)] +// CHECK:STDOUT: %.loc10_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc10_3.3 (constants.%.979)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc10_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.9e8)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @InitFromStructGeneric.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.9e8) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.379)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc10_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7e3)] // CHECK:STDOUT: %ptr: type = ptr_type %Class.loc10_17.2 [symbolic = %ptr (constants.%ptr.e19)] // CHECK:STDOUT: %require_complete.loc10_3: = require_complete_type %ptr [symbolic = %require_complete.loc10_3 (constants.%require_complete.3cb)] // CHECK:STDOUT: @@ -234,12 +241,12 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %.loc11_11.3: init @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = call %bound_method.loc11_11.2(%.loc11_11.2) to %.loc9_47 // CHECK:STDOUT: %facet_value.loc10_3.1: %type_where = facet_value constants.%Class.a5c, () [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.38a)] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%Class.a5c, %facet_value.loc10_3.1 [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.38a)] -// CHECK:STDOUT: %impl.elem0.loc10_3.1: @InitFromStructGeneric.%.loc10_3.4 (%.4d8) = impl_witness_access constants.%Destroy.lookup_impl_witness.a66, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.134)] -// CHECK:STDOUT: %bound_method.loc10_3.1: = bound_method %v.var, %impl.elem0.loc10_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_3.1: = specific_impl_function %impl.elem0.loc10_3.1, @Destroy.Op(constants.%Destroy.facet.440) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.62c)] -// CHECK:STDOUT: %bound_method.loc10_3.2: = bound_method %v.var, %specific_impl_fn.loc10_3.1 +// CHECK:STDOUT: %impl.elem0.loc10_3: @InitFromStructGeneric.%.loc10_3.3 (%.979) = impl_witness_access constants.%Destroy.impl_witness.075, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.379)] +// CHECK:STDOUT: %bound_method.loc10_3.1: = bound_method %v.var, %impl.elem0.loc10_3 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc10_3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.38a) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7e3)] +// CHECK:STDOUT: %bound_method.loc10_3.2: = bound_method %v.var, %specific_fn // CHECK:STDOUT: %addr: @InitFromStructGeneric.%ptr (%ptr.e19) = addr_of %v.var -// CHECK:STDOUT: %.loc10_3.3: init %empty_tuple.type = call %bound_method.loc10_3.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_3.2(%addr) // CHECK:STDOUT: return %.loc11_11.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -281,11 +288,11 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc16: init %i32 = call %bound_method.loc16_11.2(%.loc16_11.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class.247, () [concrete = constants.%facet_value.06f] // CHECK:STDOUT: %.loc15_3.2: %type_where = converted constants.%Class.247, %facet_value [concrete = constants.%facet_value.06f] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bc0 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bc0 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15_3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc15_3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f7c = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_3(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call.loc16 to %return // 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 e80865482eda..5cefd27262bc 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -133,12 +133,12 @@ fn Test() -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Inner.d35, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c43: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.0f4: %AggregateT.as_type.as.Destroy.impl.Op.type.c43 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c43: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0f4: %DestroyT.as_type.as.Destroy.impl.Op.type.c43 = struct_value () [concrete] // CHECK:STDOUT: %ptr.44b: type = ptr_type %Inner.d35 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.0f4, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0f4, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -340,11 +340,11 @@ fn Test() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc14_11.2(%.loc14_11.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Inner.d35, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%Inner.d35, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.0f4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.0f4, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.0f4 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.0f4, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.44b = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -447,8 +447,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.lookup_impl_witness: = lookup_impl_witness %C.390, @Inner, @Inner(%T) [symbolic] // CHECK:STDOUT: %Inner.facet.949: %Inner.type.d07 = facet_value %C.390, (%Inner.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %.4e7: type = fn_type_with_self_type %Inner.F.type.0f3, %Inner.facet.949 [symbolic] -// CHECK:STDOUT: %impl.elem0.e4d: %.4e7 = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.3e8: = specific_impl_function %impl.elem0.e4d, @Inner.F(%T, %Inner.facet.949) [symbolic] +// CHECK:STDOUT: %impl.elem0: %.4e7 = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Inner.F(%T, %Inner.facet.949) [symbolic] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] @@ -482,12 +482,12 @@ fn Test() -> i32 { // CHECK:STDOUT: %.3eb: type = fn_type_with_self_type %Inner.F.type.86e, %Inner.facet.3aa [concrete] // CHECK:STDOUT: %C.as.Inner.impl.F.specific_fn: = specific_function %C.as.Inner.impl.F.cd5, @C.as.Inner.impl.F(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.70f, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.be9: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.46c: %AggregateT.as_type.as.Destroy.impl.Op.type.be9 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.be9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.46c: %DestroyT.as_type.as.Destroy.impl.Op.type.be9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.18f: type = ptr_type %C.70f [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.46c, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.46c, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -719,8 +719,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.F.type: type = fn_type @Inner.F, @Inner(%T) [symbolic = %Inner.F.type (constants.%Inner.F.type.0f3)] // CHECK:STDOUT: %Inner.facet: @C.as.Inner.impl.F.%Inner.type (%Inner.type.d07) = facet_value %C, (%Inner.lookup_impl_witness) [symbolic = %Inner.facet (constants.%Inner.facet.949)] // CHECK:STDOUT: %.loc11_41: type = fn_type_with_self_type %Inner.F.type, %Inner.facet [symbolic = %.loc11_41 (constants.%.4e7)] -// CHECK:STDOUT: %impl.elem0.loc11_41.2: @C.as.Inner.impl.F.%.loc11_41 (%.4e7) = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0.e4d)] -// CHECK:STDOUT: %specific_impl_fn.loc11_41.2: = specific_impl_function %impl.elem0.loc11_41.2, @Inner.F(%T, %Inner.facet) [symbolic = %specific_impl_fn.loc11_41.2 (constants.%specific_impl_fn.3e8)] +// CHECK:STDOUT: %impl.elem0.loc11_41.2: @C.as.Inner.impl.F.%.loc11_41 (%.4e7) = impl_witness_access %Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc11_41.2: = specific_impl_function %impl.elem0.loc11_41.2, @Inner.F(%T, %Inner.facet) [symbolic = %specific_impl_fn.loc11_41.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%self.param: @C.as.Inner.impl.F.%C (%C.390)) -> %return.param: @C.as.Inner.impl.F.%T (%T) { // CHECK:STDOUT: !entry: @@ -729,9 +729,9 @@ fn Test() -> i32 { // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc11_43 [symbolic = %Inner.type (constants.%Inner.type.d07)] // CHECK:STDOUT: %.loc11_48: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.115) = specific_constant @Inner.%assoc0.loc6_28.1, @Inner(constants.%T) [symbolic = %assoc0 (constants.%assoc0.95e)] // CHECK:STDOUT: %F.ref: @C.as.Inner.impl.F.%Inner.assoc_type (%Inner.assoc_type.115) = name_ref F, %.loc11_48 [symbolic = %assoc0 (constants.%assoc0.95e)] -// CHECK:STDOUT: %impl.elem0.loc11_41.1: @C.as.Inner.impl.F.%.loc11_41 (%.4e7) = impl_witness_access constants.%Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0.e4d)] +// CHECK:STDOUT: %impl.elem0.loc11_41.1: @C.as.Inner.impl.F.%.loc11_41 (%.4e7) = impl_witness_access constants.%Inner.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_41.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc11_41: = bound_method %self.ref, %impl.elem0.loc11_41.1 -// CHECK:STDOUT: %specific_impl_fn.loc11_41.1: = specific_impl_function %impl.elem0.loc11_41.1, @Inner.F(constants.%T, constants.%Inner.facet.949) [symbolic = %specific_impl_fn.loc11_41.2 (constants.%specific_impl_fn.3e8)] +// CHECK:STDOUT: %specific_impl_fn.loc11_41.1: = specific_impl_function %impl.elem0.loc11_41.1, @Inner.F(constants.%T, constants.%Inner.facet.949) [symbolic = %specific_impl_fn.loc11_41.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc11_52: = bound_method %self.ref, %specific_impl_fn.loc11_41.1 // CHECK:STDOUT: %.loc11_23: ref @C.as.Inner.impl.F.%T (%T) = splice_block %return {} // CHECK:STDOUT: %.loc11_52: init @C.as.Inner.impl.F.%T (%T) = call %bound_method.loc11_52(%self.ref) to %.loc11_23 @@ -778,11 +778,11 @@ fn Test() -> i32 { // CHECK:STDOUT: %C.as.Inner.impl.F.call: init %i32 = call %bound_method.loc24_33(%.loc24_10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.70f, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_3.2: %type_where = converted constants.%C.70f, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.46c -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.46c, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.46c +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.46c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.18f = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23(%addr) // CHECK:STDOUT: return %C.as.Inner.impl.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index ab5aecdb0995..32194f684fe4 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -73,12 +73,12 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.438: = specific_function %Class.GetNoDeduce.162, @Class.GetNoDeduce(%A, %B) [concrete] // CHECK:STDOUT: %A.val: %A = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.900: %AggregateT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.900, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.56a: = complete_type_witness %tuple.type.cc6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -301,11 +301,11 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %Class.GetNoDeduce.call: init %tuple.type.cc6 = call %Class.GetNoDeduce.specific_fn(%.loc28_25.6) to %.loc27_54 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc28_25.7: %type_where = converted constants.%A, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_25.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.900 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.900, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc28_25.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_25.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc28_25.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6db = addr_of %.loc28_25.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %Class.GetNoDeduce.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index 05881a9d090d..5e79cccfc79b 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -49,15 +49,19 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.MakeClass.specific_fn: = specific_function %Class.MakeClass, @Class.MakeClass(%T) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.ebd: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2fa: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4ed: %DestroyT.as_type.as.Destroy.impl.Op.type.2fa = struct_value () [symbolic] // CHECK:STDOUT: %ptr.955: type = ptr_type %Class [symbolic] // CHECK:STDOUT: %require_complete.2ae: = require_complete_type %ptr.955 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.576: = lookup_impl_witness %Class, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class, (%Destroy.lookup_impl_witness.576) [symbolic] -// CHECK:STDOUT: %.124: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.d11: %.124 = impl_witness_access %Destroy.lookup_impl_witness.576, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.b34: = specific_impl_function %impl.elem0.d11, @Destroy.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class, (%Destroy.impl_witness.ebd) [symbolic] +// CHECK:STDOUT: %.e7b: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.4ed, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -67,6 +71,8 @@ class Class(T:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -177,11 +183,12 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.MakeClass: @Class.F.%Class.MakeClass.type (%Class.MakeClass.type) = struct_value () [symbolic = %Class.MakeClass (constants.%Class.MakeClass)] // CHECK:STDOUT: %Class.MakeClass.specific_fn.loc22_19.2: = specific_function %Class.MakeClass, @Class.MakeClass(%T) [symbolic = %Class.MakeClass.specific_fn.loc22_19.2 (constants.%Class.MakeClass.specific_fn)] // CHECK:STDOUT: %facet_value.loc22_5.2: %type_where = facet_value %Class.loc21_19.2, () [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc21_19.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.576)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc21_19.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc22_5.4: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_5.4 (constants.%.124)] -// CHECK:STDOUT: %impl.elem0.loc22_5.2: @Class.F.%.loc22_5.4 (%.124) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0.d11)] -// CHECK:STDOUT: %specific_impl_fn.loc22_5.2: = specific_impl_function %impl.elem0.loc22_5.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn.b34)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_5.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.ebd)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc21_19.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] +// CHECK:STDOUT: %.loc22_5.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_5.3 (constants.%.e7b)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_5.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.2fa)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @Class.F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.2fa) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.4ed)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc22_5.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %ptr: type = ptr_type %Class.loc21_19.2 [symbolic = %ptr (constants.%ptr.955)] // CHECK:STDOUT: %require_complete.loc22: = require_complete_type %ptr [symbolic = %require_complete.loc22 (constants.%require_complete.2ae)] // CHECK:STDOUT: @@ -222,20 +229,20 @@ class Class(T:! type) { // CHECK:STDOUT: %s: ref @Class.F.%Class.loc21_19.2 (%Class) = bind_name s, %s.var // CHECK:STDOUT: %facet_value.loc22_5.1: %type_where = facet_value constants.%Class, () [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] // CHECK:STDOUT: %.loc22_5.2: %type_where = converted constants.%Class, %facet_value.loc22_5.1 [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc22_5.1: @Class.F.%.loc22_5.4 (%.124) = impl_witness_access constants.%Destroy.lookup_impl_witness.576, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0.d11)] -// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %s.var, %impl.elem0.loc22_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc22_5.1: = specific_impl_function %impl.elem0.loc22_5.1, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn.b34)] -// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %s.var, %specific_impl_fn.loc22_5.1 +// CHECK:STDOUT: %impl.elem0.loc22: @Class.F.%.loc22_5.3 (%.e7b) = impl_witness_access constants.%Destroy.impl_witness.ebd, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.4ed)] +// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %s.var, %impl.elem0.loc22 +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %s.var, %specific_fn.loc22 // CHECK:STDOUT: %addr.loc22: @Class.F.%ptr (%ptr.955) = addr_of %s.var -// CHECK:STDOUT: %.loc22_5.3: init %empty_tuple.type = call %bound_method.loc22_5.2(%addr.loc22) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5.2(%addr.loc22) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Class, () [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] // CHECK:STDOUT: %.loc21_5.2: %type_where = converted constants.%Class, %facet_value.loc21 [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc21: @Class.F.%.loc22_5.4 (%.124) = impl_witness_access constants.%Destroy.lookup_impl_witness.576, element0 [symbolic = %impl.elem0.loc22_5.2 (constants.%impl.elem0.d11)] +// CHECK:STDOUT: %impl.elem0.loc21: @Class.F.%.loc22_5.3 (%.e7b) = impl_witness_access constants.%Destroy.impl_witness.ebd, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.4ed)] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %c.var, %impl.elem0.loc21 -// CHECK:STDOUT: %specific_impl_fn.loc21: = specific_impl_function %impl.elem0.loc21, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.2 (constants.%specific_impl_fn.b34)] -// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %c.var, %specific_impl_fn.loc21 +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %c.var, %specific_fn.loc21 // CHECK:STDOUT: %addr.loc21: @Class.F.%ptr (%ptr.955) = addr_of %c.var -// CHECK:STDOUT: %.loc21_5.3: init %empty_tuple.type = call %bound_method.loc21_5.2(%addr.loc21) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21_5.2(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index d05bf638c692..a36f70d40e76 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -225,29 +225,31 @@ 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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.6a8: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%Incomplete) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.1a6: %ptr.as.Destroy.impl.Op.type.6a8 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.a09: %type_where = facet_value %ptr.c62, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f0a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.a09) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7af: %DestroyT.as_type.as.Destroy.impl.Op.type.f0a = struct_value () [concrete] // CHECK:STDOUT: %ptr.c22: type = ptr_type %ptr.c62 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.219: = specific_function %ptr.as.Destroy.impl.Op.1a6, @ptr.as.Destroy.impl.Op(%Incomplete) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.501: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%ForwardDeclared.7b34f2.1) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.368: %ptr.as.Destroy.impl.Op.type.501 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.46e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7af, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.a09) [concrete] +// CHECK:STDOUT: %facet_value.481: %type_where = facet_value %ptr.6cf, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.647: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.481) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.16d: %DestroyT.as_type.as.Destroy.impl.Op.type.647 = struct_value () [concrete] // CHECK:STDOUT: %ptr.df0: type = ptr_type %ptr.6cf [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.0de: = specific_function %ptr.as.Destroy.impl.Op.368, @ptr.as.Destroy.impl.Op(%ForwardDeclared.7b34f2.1) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c0f: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.16d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.481) [concrete] // CHECK:STDOUT: %facet_value.c58: %type_where = facet_value %ForwardDeclared.7b34f2.1, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.870: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c58) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.189: %AggregateT.as_type.as.Destroy.impl.Op.type.870 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.839: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.189, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.c58) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.870: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c58) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.189: %DestroyT.as_type.as.Destroy.impl.Op.type.870 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.839: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.189, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c58) [concrete] // CHECK:STDOUT: %facet_value.f6b: %type_where = facet_value %Field, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f21: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.f6b) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f20: %AggregateT.as_type.as.Destroy.impl.Op.type.f21 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f21: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.f6b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f20: %DestroyT.as_type.as.Destroy.impl.Op.type.f21 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d8b: type = ptr_type %Field [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.64a: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f20, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.f6b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.64a: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f20, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.f6b) [concrete] // CHECK:STDOUT: %facet_value.8d3: %type_where = facet_value %Empty, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.e4e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.8d3) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6e7: %AggregateT.as_type.as.Destroy.impl.Op.type.e4e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e4e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.8d3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6e7: %DestroyT.as_type.as.Destroy.impl.Op.type.e4e = struct_value () [concrete] // CHECK:STDOUT: %ptr.961: type = ptr_type %Empty [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1a4: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.6e7, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.8d3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1a4: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6e7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.8d3) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -412,7 +414,7 @@ fn Run() { // CHECK:STDOUT: %bound_method.loc16_29.2: = bound_method %addr.loc16_29, %specific_fn.loc16 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6cf = call %bound_method.loc16_29.2(%addr.loc16_29) // CHECK:STDOUT: assign %d.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc16: type = splice_block %ptr.loc16 [concrete = constants.%ptr.6cf] { +// CHECK:STDOUT: %.loc16_25: type = splice_block %ptr.loc16 [concrete = constants.%ptr.6cf] { // CHECK:STDOUT: %ForwardDeclared.ref.loc16: type = name_ref ForwardDeclared, imports.%Main.ForwardDeclared [concrete = constants.%ForwardDeclared.7b34f2.1] // CHECK:STDOUT: %ptr.loc16: type = ptr_type %ForwardDeclared.ref.loc16 [concrete = constants.%ptr.6cf] // CHECK:STDOUT: } @@ -422,42 +424,46 @@ fn Run() { // CHECK:STDOUT: %e.var_patt: %pattern_type.275 = var_pattern %e.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %e.var: ref %ptr.c62 = var %e.var_patt -// CHECK:STDOUT: %.loc18: type = splice_block %ptr.loc18 [concrete = constants.%ptr.c62] { +// CHECK:STDOUT: %.loc18_20: type = splice_block %ptr.loc18 [concrete = constants.%ptr.c62] { // CHECK:STDOUT: %Incomplete.ref: type = name_ref Incomplete, imports.%Main.Incomplete [concrete = constants.%Incomplete] // CHECK:STDOUT: %ptr.loc18: type = ptr_type %Incomplete.ref [concrete = constants.%ptr.c62] // CHECK:STDOUT: } // CHECK:STDOUT: %e: ref %ptr.c62 = bind_name e, %e.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc18: = bound_method %e.var, constants.%ptr.as.Destroy.impl.Op.1a6 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%ptr.as.Destroy.impl.Op.1a6, @ptr.as.Destroy.impl.Op(constants.%Incomplete) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn.219] -// CHECK:STDOUT: %bound_method.loc18: = bound_method %e.var, %ptr.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%ptr.c62, () [concrete = constants.%facet_value.a09] +// CHECK:STDOUT: %.loc18_3: %type_where = converted constants.%ptr.c62, %facet_value.loc18 [concrete = constants.%facet_value.a09] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %e.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7af +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7af, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.a09) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.46e] +// CHECK:STDOUT: %bound_method.loc18: = bound_method %e.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18: %ptr.c22 = addr_of %e.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc16: = bound_method %d.var, constants.%ptr.as.Destroy.impl.Op.368 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%ptr.as.Destroy.impl.Op.368, @ptr.as.Destroy.impl.Op(constants.%ForwardDeclared.7b34f2.1) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn.0de] -// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %d.var, %ptr.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) +// CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%ptr.6cf, () [concrete = constants.%facet_value.481] +// CHECK:STDOUT: %.loc16_3: %type_where = converted constants.%ptr.6cf, %facet_value.loc16 [concrete = constants.%facet_value.481] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.16d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.16d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.481) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c0f] +// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc16_3: %ptr.df0 = addr_of %d.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16_3) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%ForwardDeclared.7b34f2.1, () [concrete = constants.%facet_value.c58] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%ForwardDeclared.7b34f2.1, %facet_value.loc12 [concrete = constants.%facet_value.c58] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.189 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.189, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c58) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.839] -// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.189 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.189, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c58) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.839] +// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.6cf = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%Field, () [concrete = constants.%facet_value.f6b] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%Field, %facet_value.loc9 [concrete = constants.%facet_value.f6b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.f20 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f20, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.f6b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.64a] -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f20 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f20, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.f6b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.64a] +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc9: %ptr.d8b = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%Empty, () [concrete = constants.%facet_value.8d3] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%Empty, %facet_value.loc7 [concrete = constants.%facet_value.8d3] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6e7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.6e7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.8d3) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1a4] -// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6e7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6e7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.8d3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1a4] +// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc7: %ptr.961 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import_base.carbon b/toolchain/check/testdata/class/import_base.carbon index 38dc76da9885..339b972c8cf5 100644 --- a/toolchain/check/testdata/class/import_base.carbon +++ b/toolchain/check/testdata/class/import_base.carbon @@ -181,12 +181,12 @@ fn Run() { // CHECK:STDOUT: %Base.F.type: type = fn_type @Base.F [concrete] // CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Child, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.2ac: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.db4: %AggregateT.as_type.as.Destroy.impl.Op.type.2ac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2ac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.db4: %DestroyT.as_type.as.Destroy.impl.Op.type.2ac = struct_value () [concrete] // CHECK:STDOUT: %ptr.dc0: type = ptr_type %Child [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.db4, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.db4, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -306,11 +306,11 @@ fn Run() { // CHECK:STDOUT: %Base.F.call: init %empty_tuple.type = call %Base.F.bound(%.loc9_3.3) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Child, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%Child, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.db4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.db4, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.db4 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.db4, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.dc0 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import_member_cycle.carbon b/toolchain/check/testdata/class/import_member_cycle.carbon index 7a963b9130d8..e41a9fd30dbf 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -81,10 +81,12 @@ 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: %ptr.as.Destroy.impl.Op.type.976: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%Cycle) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.594: %ptr.as.Destroy.impl.Op.type.976 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.257, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4ea: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8cd: %DestroyT.as_type.as.Destroy.impl.Op.type.4ea = struct_value () [concrete] // CHECK:STDOUT: %ptr.d80: type = ptr_type %ptr.257 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.594, @ptr.as.Destroy.impl.Op(%Cycle) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.8cd, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -126,16 +128,18 @@ fn Run() { // CHECK:STDOUT: %a.var_patt: %pattern_type.d3d = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %ptr.257 = var %a.var_patt -// CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr.257] { +// CHECK:STDOUT: %.loc7_15: type = splice_block %ptr [concrete = constants.%ptr.257] { // CHECK:STDOUT: %Cycle.ref: type = name_ref Cycle, imports.%Main.Cycle [concrete = constants.%Cycle] // CHECK:STDOUT: %ptr: type = ptr_type %Cycle.ref [concrete = constants.%ptr.257] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %ptr.257 = bind_name a, %a.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%ptr.as.Destroy.impl.Op.594 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function constants.%ptr.as.Destroy.impl.Op.594, @ptr.as.Destroy.impl.Op(constants.%Cycle) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%ptr.257, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%ptr.257, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8cd +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.8cd, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d80 = addr_of %a.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index 63d18afc37a2..a1f2e3212e94 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -71,12 +71,12 @@ fn F() -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7c2: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,11 +169,11 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc21_37.2(%.loc21_37.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc21_26.11: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc21_26.10, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_26.5: = bound_method %.loc21_26.10, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc21_26.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc21_26.5: = bound_method %.loc21_26.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc21_26.10 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_26.5(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_26.5(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index a67821a97407..b10f461105eb 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -79,12 +79,12 @@ class A { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.06a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.68a: %AggregateT.as_type.as.Destroy.impl.Op.type.06a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.06a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68a: %DestroyT.as_type.as.Destroy.impl.Op.type.06a = struct_value () [concrete] // CHECK:STDOUT: %ptr.bac: type = ptr_type %B [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.68a, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.68a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -172,11 +172,11 @@ class A { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc26_20.2(%.loc26_20.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_19.3: %type_where = converted constants.%B, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_19.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.68a -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.68a, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_19: = bound_method %.loc26_19.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_19.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.68a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.68a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_19: = bound_method %.loc26_19.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bac = addr_of %.loc26_19.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_19(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_19(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/method.carbon b/toolchain/check/testdata/class/method.carbon index 12328b8c3cbf..068c00aa2735 100644 --- a/toolchain/check/testdata/class/method.carbon +++ b/toolchain/check/testdata/class/method.carbon @@ -120,11 +120,11 @@ fn CallGOnInitializingExpr() -> i32 { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7c2: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [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] @@ -402,11 +402,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.F.call: init %i32 = call %Class.F.bound(%.loc39_20.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc39_18.8: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc39_18.7, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc39_18.3: = bound_method %.loc39_18.7, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc39_18.7, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc39_18.3: = bound_method %.loc39_18.7, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc39_18.7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc39_18.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc39_18.3(%addr) // CHECK:STDOUT: return %Class.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -426,11 +426,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.G.call: init %i32 = call %Class.G.bound(%addr.loc44) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc43: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc43: %ptr.e71 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc43) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc43) // CHECK:STDOUT: return %Class.G.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -470,11 +470,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.F.call: init %i32 = call %Class.F.bound(%.loc58_15.3) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc58_15.4: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc58_15.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc58_15.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc58_15.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc58_15.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc58_15.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %Class.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -490,11 +490,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.G.call: init %i32 = call %Class.G.bound(%addr.loc62_15.1) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc62_15.3: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc62_15.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc62_15.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc62_15.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc62_15.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc62_15.2: %ptr.e71 = addr_of %.loc62_15.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc62_15.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc62_15.2) // CHECK:STDOUT: return %Class.G.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index 1161d5494504..9b243cd3ab89 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -78,17 +78,17 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c29: %type_where = facet_value %Inner, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.479: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c29) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.450: %AggregateT.as_type.as.Destroy.impl.Op.type.479 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.479: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c29) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.450: %DestroyT.as_type.as.Destroy.impl.Op.type.479 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.27f: type = pattern_type %ptr.36a [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.438: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.450, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.c29) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c29) [concrete] // CHECK:STDOUT: %facet_value.4b4: %type_where = facet_value %Outer, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.926: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.4b4) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.581: %AggregateT.as_type.as.Destroy.impl.Op.type.926 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.926: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4b4) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.581: %DestroyT.as_type.as.Destroy.impl.Op.type.926 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.95c: type = pattern_type %ptr.5df [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cc9: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.581, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.4b4) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4b4) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] @@ -213,18 +213,18 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value.c29] // CHECK:STDOUT: %.loc19: %type_where = converted constants.%Inner, %facet_value.loc19 [concrete = constants.%facet_value.c29] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.450, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.438] -// CHECK:STDOUT: %bound_method.loc19: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438] +// CHECK:STDOUT: %bound_method.loc19: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc19: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%Outer, () [concrete = constants.%facet_value.4b4] // CHECK:STDOUT: %.loc18: %type_where = converted constants.%Outer, %facet_value.loc18 [concrete = constants.%facet_value.4b4] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %o.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.581 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.581, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cc9] -// CHECK:STDOUT: %bound_method.loc18: = bound_method %o.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %o.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.581 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9] +// CHECK:STDOUT: %bound_method.loc18: = bound_method %o.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18: %ptr.5df = addr_of %o.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -246,18 +246,18 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value.c29] // CHECK:STDOUT: %.loc30: %type_where = converted constants.%Inner, %facet_value.loc30 [concrete = constants.%facet_value.c29] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.450, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.438] -// CHECK:STDOUT: %bound_method.loc30: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438] +// CHECK:STDOUT: %bound_method.loc30: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc30: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) // CHECK:STDOUT: %facet_value.loc29: %type_where = facet_value constants.%Outer, () [concrete = constants.%facet_value.4b4] // CHECK:STDOUT: %.loc29: %type_where = converted constants.%Outer, %facet_value.loc29 [concrete = constants.%facet_value.4b4] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %o.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.581 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.581, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cc9] -// CHECK:STDOUT: %bound_method.loc29: = bound_method %o.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %o.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.581 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9] +// CHECK:STDOUT: %bound_method.loc29: = bound_method %o.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc29: %ptr.5df = addr_of %o.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,18 +279,18 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value.loc37: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value.c29] // CHECK:STDOUT: %.loc37: %type_where = converted constants.%Inner, %facet_value.loc37 [concrete = constants.%facet_value.c29] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc37: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.450, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.438] -// CHECK:STDOUT: %bound_method.loc37: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc37: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438] +// CHECK:STDOUT: %bound_method.loc37: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc37: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc37: init %empty_tuple.type = call %bound_method.loc37(%addr.loc37) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc37: init %empty_tuple.type = call %bound_method.loc37(%addr.loc37) // CHECK:STDOUT: %facet_value.loc36: %type_where = facet_value constants.%Outer, () [concrete = constants.%facet_value.4b4] // CHECK:STDOUT: %.loc36: %type_where = converted constants.%Outer, %facet_value.loc36 [concrete = constants.%facet_value.4b4] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %o.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.581 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.581, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cc9] -// CHECK:STDOUT: %bound_method.loc36: = bound_method %o.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %o.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.581 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9] +// CHECK:STDOUT: %bound_method.loc36: = bound_method %o.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc36: %ptr.5df = addr_of %o.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36(%addr.loc36) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36(%addr.loc36) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index b599865bf387..6c75257eb07e 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -60,12 +60,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Inner, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.479: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.450: %AggregateT.as_type.as.Destroy.impl.Op.type.479 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.479: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.450: %DestroyT.as_type.as.Destroy.impl.Op.type.479 = struct_value () [concrete] // CHECK:STDOUT: %ptr.36a: type = ptr_type %Inner [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.450, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,11 +169,11 @@ fn G(o: Outer) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_3: %type_where = converted constants.%Inner, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.450, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/raw_self_type.carbon b/toolchain/check/testdata/class/raw_self_type.carbon index c82618f72593..3df9ddf76b86 100644 --- a/toolchain/check/testdata/class/raw_self_type.carbon +++ b/toolchain/check/testdata/class/raw_self_type.carbon @@ -50,10 +50,12 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %.93e: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.275, @ptr.as.Copy.impl.Op(%Class) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.302: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%Class) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.e41: %ptr.as.Destroy.impl.Op.type.302 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.e71, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7e3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.079: %DestroyT.as_type.as.Destroy.impl.Op.type.7e3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0dd: type = ptr_type %ptr.e71 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.e41, @ptr.as.Destroy.impl.Op(%Class) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.079, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [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] @@ -148,7 +150,7 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %Self.var_patt: %pattern_type.796 = var_pattern %Self.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Self.var: ref %ptr.e71 = var %Self.var_patt -// CHECK:STDOUT: %.loc17: type = splice_block %ptr.loc17 [concrete = constants.%ptr.e71] { +// CHECK:STDOUT: %.loc17_21: type = splice_block %ptr.loc17 [concrete = constants.%ptr.e71] { // CHECK:STDOUT: %Self.ref.loc17: type = name_ref Self, constants.%Class [concrete = constants.%Class] // CHECK:STDOUT: %ptr.loc17: type = ptr_type %Self.ref.loc17 [concrete = constants.%ptr.e71] // CHECK:STDOUT: } @@ -171,16 +173,20 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %ptr.loc18: type = ptr_type %Self.ref.loc18_12 [concrete = constants.%ptr.e71] // CHECK:STDOUT: } // CHECK:STDOUT: %p: ref %ptr.e71 = bind_name p, %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%ptr.as.Destroy.impl.Op.e41 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%ptr.as.Destroy.impl.Op.e41, @ptr.as.Destroy.impl.Op(constants.%Class) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %p.var, %ptr.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%ptr.e71, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc18_5: %type_where = converted constants.%ptr.e71, %facet_value.loc18 [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.079 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.079, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18: %ptr.0dd = addr_of %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc17: = bound_method %Self.var, constants.%ptr.as.Destroy.impl.Op.e41 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%ptr.as.Destroy.impl.Op.e41, @ptr.as.Destroy.impl.Op(constants.%Class) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc17: = bound_method %Self.var, %ptr.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18) +// CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%ptr.e71, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc17_5: %type_where = converted constants.%ptr.e71, %facet_value.loc17 [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %Self.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.079 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.079, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc17: = bound_method %Self.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.0dd = addr_of %Self.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index 14faaca1e3f9..bd0d2a892b57 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -126,27 +126,27 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.1f3: %type_where = facet_value %D, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.473: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.1f3) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c27: %AggregateT.as_type.as.Destroy.impl.Op.type.473 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.473: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.1f3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c27: %DestroyT.as_type.as.Destroy.impl.Op.type.473 = struct_value () [concrete] // CHECK:STDOUT: %ptr.321: type = ptr_type %D [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.c92: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c27, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.1f3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c92: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c27, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.1f3) [concrete] // CHECK:STDOUT: %facet_value.fa1: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.006: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.fa1) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf0: %AggregateT.as_type.as.Destroy.impl.Op.type.006 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.006: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.fa1) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf0: %DestroyT.as_type.as.Destroy.impl.Op.type.006 = struct_value () [concrete] // CHECK:STDOUT: %ptr.388: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.f0d: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.bf0, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.fa1) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bf0, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.fa1) [concrete] // CHECK:STDOUT: %facet_value.69b: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cf4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.69b) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cec: %AggregateT.as_type.as.Destroy.impl.Op.type.cf4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cf4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.69b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cec: %DestroyT.as_type.as.Destroy.impl.Op.type.cf4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.01b: type = ptr_type %B [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.fed: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cec, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.69b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.fed: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cec, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.69b) [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.900: %AggregateT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4a1: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.900, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.bb7) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -351,32 +351,32 @@ class A { // CHECK:STDOUT: %D.DF.call: init %empty_tuple.type = call %DF.ref() // CHECK:STDOUT: %facet_value.loc36: %type_where = facet_value constants.%D, () [concrete = constants.%facet_value.1f3] // CHECK:STDOUT: %.loc36_7.2: %type_where = converted constants.%D, %facet_value.loc36 [concrete = constants.%facet_value.1f3] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c27 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c27, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.1f3) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.c92] -// CHECK:STDOUT: %bound_method.loc36_7: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c27 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c27, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.1f3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c92] +// CHECK:STDOUT: %bound_method.loc36_7: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc36: %ptr.321 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_7(%addr.loc36) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_7(%addr.loc36) // CHECK:STDOUT: %facet_value.loc35: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.fa1] // CHECK:STDOUT: %.loc35_7.2: %type_where = converted constants.%C, %facet_value.loc35 [concrete = constants.%facet_value.fa1] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf0 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.bf0, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.fa1) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.f0d] -// CHECK:STDOUT: %bound_method.loc35_7: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf0 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.fa1) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d] +// CHECK:STDOUT: %bound_method.loc35_7: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc35: %ptr.388 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_7(%addr.loc35) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_7(%addr.loc35) // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.69b] // CHECK:STDOUT: %.loc34_7.2: %type_where = converted constants.%B, %facet_value.loc34 [concrete = constants.%facet_value.69b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cec -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cec, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.69b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.fed] -// CHECK:STDOUT: %bound_method.loc34_7: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cec +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cec, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.69b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.fed] +// CHECK:STDOUT: %bound_method.loc34_7: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc34: %ptr.01b = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_7(%addr.loc34) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_7(%addr.loc34) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc33_7.2: %type_where = converted constants.%A, %facet_value.loc33 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.900 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.900, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.bb7) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4a1] -// CHECK:STDOUT: %bound_method.loc33_7: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.bb7) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a1] +// CHECK:STDOUT: %bound_method.loc33_7: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc33: %ptr.6db = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_7(%addr.loc33) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_7(%addr.loc33) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index eb2c0e5ea3fb..a115aef83448 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -73,12 +73,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -207,18 +207,18 @@ fn Run() { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc31: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc31_3: %type_where = converted constants.%i32, %facet_value.loc31 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc31: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc31: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_3: %type_where = converted constants.%i32, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc30: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc30: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/static_method.carbon b/toolchain/check/testdata/class/static_method.carbon index 381aced21afc..cb77e261598a 100644 --- a/toolchain/check/testdata/class/static_method.carbon +++ b/toolchain/check/testdata/class/static_method.carbon @@ -39,12 +39,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7c2: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -113,11 +113,11 @@ fn Run() -> i32 { // CHECK:STDOUT: %Class.F.call: init %i32 = call %F.ref() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %Class.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index 6a070861bbe0..ebc1ba64144d 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -643,12 +643,12 @@ class T2(G2:! type) { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Derived, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b9f: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.834: %AggregateT.as_type.as.Destroy.impl.Op.type.b9f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b9f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.834: %DestroyT.as_type.as.Destroy.impl.Op.type.b9f = struct_value () [concrete] // CHECK:STDOUT: %ptr.404: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.834, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.834, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -750,11 +750,11 @@ class T2(G2:! type) { // CHECK:STDOUT: %d: ref %Derived = bind_name d, %d.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Derived, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%Derived, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.834 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.834, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.834 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.834, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.404 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -870,12 +870,12 @@ class T2(G2:! type) { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Base, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c02: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.97a: %AggregateT.as_type.as.Destroy.impl.Op.type.c02 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c02: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.97a: %DestroyT.as_type.as.Destroy.impl.Op.type.c02 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f03: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.97a, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.97a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -941,11 +941,11 @@ class T2(G2:! type) { // CHECK:STDOUT: %v: ref %Base = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Base, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%Base, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.97a -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.97a, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.97a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.97a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f03 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1088,22 +1088,22 @@ class T2(G2:! type) { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.5f9: %type_where = facet_value %B2, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc2: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.5f9) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.159: %AggregateT.as_type.as.Destroy.impl.Op.type.fc2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.159: %DestroyT.as_type.as.Destroy.impl.Op.type.fc2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.afe: type = ptr_type %B2 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6a8: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.159, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.5f9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.159, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5f9) [concrete] // CHECK:STDOUT: %facet_value.bf5: %type_where = facet_value %B1, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.68e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.bf5) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.3d7: %AggregateT.as_type.as.Destroy.impl.Op.type.68e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.68e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bf5) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.3d7: %DestroyT.as_type.as.Destroy.impl.Op.type.68e = struct_value () [concrete] // CHECK:STDOUT: %ptr.890: type = ptr_type %B1 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7ca: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.3d7, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.bf5) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7ca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.3d7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.bf5) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1273,25 +1273,25 @@ class T2(G2:! type) { // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc21_3.2: %type_where = converted constants.%C, %facet_value.loc21 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc21: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%B2, () [concrete = constants.%facet_value.5f9] // CHECK:STDOUT: %.loc20_3.2: %type_where = converted constants.%B2, %facet_value.loc20 [concrete = constants.%facet_value.5f9] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %b2.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.159 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.159, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.5f9) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6a8] -// CHECK:STDOUT: %bound_method.loc20: = bound_method %b2.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %b2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.159 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.159, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.5f9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6a8] +// CHECK:STDOUT: %bound_method.loc20: = bound_method %b2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20: %ptr.afe = addr_of %b2.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%B1, () [concrete = constants.%facet_value.bf5] // CHECK:STDOUT: %.loc19_3.2: %type_where = converted constants.%B1, %facet_value.loc19 [concrete = constants.%facet_value.bf5] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.3d7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.3d7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.bf5) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7ca] -// CHECK:STDOUT: %bound_method.loc19: = bound_method %b1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.3d7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.3d7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.bf5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7ca] +// CHECK:STDOUT: %bound_method.loc19: = bound_method %b1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc19: %ptr.890 = addr_of %b1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1402,17 +1402,17 @@ class T2(G2:! type) { // CHECK:STDOUT: %bound_method.9cd: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.361: %type_where = facet_value %Base, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.473: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.361) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.12d: %AggregateT.as_type.as.Destroy.impl.Op.type.473 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.473: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.361) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.12d: %DestroyT.as_type.as.Destroy.impl.Op.type.473 = struct_value () [concrete] // CHECK:STDOUT: %ptr.11f: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7f2: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.12d, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.361) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7f2: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.12d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.361) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1575,25 +1575,25 @@ class T2(G2:! type) { // CHECK:STDOUT: assign %.loc16_5, %.loc16_9 // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%Base, () [concrete = constants.%facet_value.361] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%Base, %facet_value.loc14 [concrete = constants.%facet_value.361] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b2.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.12d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.12d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7f2] -// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b2.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.12d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.12d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7f2] +// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.11f = addr_of %b2.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_3(%addr.loc14) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_3(%addr.loc14) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%Base, () [concrete = constants.%facet_value.361] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%Base, %facet_value.loc13 [concrete = constants.%facet_value.361] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %b1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.12d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.12d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7f2] -// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %b1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.12d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.12d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7f2] +// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13: %ptr.11f = addr_of %b1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13_3(%addr.loc13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13_3(%addr.loc13) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%i32, %facet_value.loc12 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %i.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc12_3.3: = bound_method %i.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc12_3.3: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.235 = addr_of %i.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_3.3(%addr.loc12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_3.3(%addr.loc12) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index 0455752e8ff0..3caa22eb6b07 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -159,11 +159,11 @@ fn G() -> i32 { // CHECK:STDOUT: %array: %array_type.002 = tuple_value (%C.val, %C.val, %C.val) [concrete] // CHECK:STDOUT: %F.specific_fn.04a: = specific_function %F, @F(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d02: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -285,11 +285,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%.loc10) to %.loc8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -370,11 +370,11 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d02: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.595: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -517,11 +517,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%.loc10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -577,11 +577,11 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d02: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -695,11 +695,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -758,11 +758,11 @@ 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: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d02: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.8eb: = complete_type_witness %array_type.15a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -886,11 +886,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn() to %.loc8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -974,11 +974,11 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.fe4, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.9be: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6f0: %AggregateT.as_type.as.Destroy.impl.Op.type.9be = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.6f0, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9be: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6f0: %DestroyT.as_type.as.Destroy.impl.Op.type.9be = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6f0, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.595: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -1131,11 +1131,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.fe4, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.2: %type_where = converted constants.%array_type.fe4, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6f0 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.6f0, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6f0 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6f0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.af6 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1219,11 +1219,11 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d02: %AggregateT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1366,11 +1366,11 @@ fn G() -> i32 { // CHECK:STDOUT: %a.ref: ref %array_type.002 = name_ref a, %a // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.d02, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index 6aae6114456a..c2cad1f9fad3 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -756,12 +756,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %WithNontype.b82, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.058: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c50: %AggregateT.as_type.as.Destroy.impl.Op.type.058 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.058: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c50: %DestroyT.as_type.as.Destroy.impl.Op.type.058 = struct_value () [concrete] // CHECK:STDOUT: %ptr.791: type = ptr_type %WithNontype.b82 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c50, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c50, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.894: = bound_method %int_0.6a9, %Int.as.Copy.impl.Op.f59 [concrete] // CHECK:STDOUT: %bound_method.84d: = bound_method %int_0.6a9, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } @@ -898,11 +898,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%.loc9_15.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%WithNontype.b82, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_13.5: %type_where = converted constants.%WithNontype.b82, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.c50 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c50, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_13: = bound_method %.loc9_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.c50 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c50, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9_13: = bound_method %.loc9_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.791 = addr_of %.loc9_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_13(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_13(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // 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 98b97d8aa6bb..78372b3ed8c9 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -135,17 +135,17 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.a52: %type_where = facet_value %HoldsType.c09, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6cc: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.a52) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f7f: %AggregateT.as_type.as.Destroy.impl.Op.type.6cc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6cc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.a52) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f7f: %DestroyT.as_type.as.Destroy.impl.Op.type.6cc = struct_value () [concrete] // CHECK:STDOUT: %ptr.79a: type = ptr_type %HoldsType.c09 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.89c: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f7f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.a52) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f7f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.a52) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -272,18 +272,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.2, %.loc13_30.6) // CHECK:STDOUT: %facet_value.loc13_30: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc13_30.7: %type_where = converted constants.%C, %facet_value.loc13_30 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_30: = bound_method %.loc13_30.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc13_30: = bound_method %.loc13_30.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_30: = bound_method %.loc13_30.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] +// CHECK:STDOUT: %bound_method.loc13_30: = bound_method %.loc13_30.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_30: %ptr.019 = addr_of %.loc13_30.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_30: init %empty_tuple.type = call %bound_method.loc13_30(%addr.loc13_30) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_30: init %empty_tuple.type = call %bound_method.loc13_30(%addr.loc13_30) // CHECK:STDOUT: %facet_value.loc13_6: %type_where = facet_value constants.%HoldsType.c09, () [concrete = constants.%facet_value.a52] // CHECK:STDOUT: %.loc13_6.5: %type_where = converted constants.%HoldsType.c09, %facet_value.loc13_6 [concrete = constants.%facet_value.a52] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.f7f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f7f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.a52) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.89c] -// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.f7f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f7f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.a52) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89c] +// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_6: %ptr.79a = addr_of %.loc13_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -351,17 +351,17 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.451: %type_where = facet_value %HoldsType.705, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.971: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.451) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6c7: %AggregateT.as_type.as.Destroy.impl.Op.type.971 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.971: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.451) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6c7: %DestroyT.as_type.as.Destroy.impl.Op.type.971 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d1: type = ptr_type %HoldsType.705 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cd1: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.6c7, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.451) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cd1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6c7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.451) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -485,18 +485,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.2, %.loc13_33.6) // CHECK:STDOUT: %facet_value.loc13_33: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc13_33.7: %type_where = converted constants.%C, %facet_value.loc13_33 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] +// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_33: %ptr.019 = addr_of %.loc13_33.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) // CHECK:STDOUT: %facet_value.loc13_6: %type_where = facet_value constants.%HoldsType.705, () [concrete = constants.%facet_value.451] // CHECK:STDOUT: %.loc13_6.5: %type_where = converted constants.%HoldsType.705, %facet_value.loc13_6 [concrete = constants.%facet_value.451] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.6c7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.6c7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.451) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cd1] -// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6c7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6c7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.451) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cd1] +// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_6: %ptr.5d1 = addr_of %.loc13_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -571,19 +571,23 @@ fn G() { // CHECK:STDOUT: %HoldsType.val: %HoldsType.f95cf2.2 = struct_value () [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.1b5: %type_where = facet_value %HoldsType.f95cf2.2, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.bff: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.1b5) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a27: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.1b5) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.fbc: %DestroyT.as_type.as.Destroy.impl.Op.type.a27 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.deb: type = ptr_type %HoldsType.f95cf2.2 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.c18: = lookup_impl_witness %HoldsType.f95cf2.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.1db: %Destroy.type = facet_value %HoldsType.f95cf2.2, (%Destroy.lookup_impl_witness.c18) [symbolic] -// CHECK:STDOUT: %.da5: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.1db [symbolic] -// CHECK:STDOUT: %impl.elem0.9e0: %.da5 = impl_witness_access %Destroy.lookup_impl_witness.c18, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.106: = specific_impl_function %impl.elem0.9e0, @Destroy.Op(%Destroy.facet.1db) [symbolic] +// CHECK:STDOUT: %Destroy.facet.954: %Destroy.type = facet_value %HoldsType.f95cf2.2, (%Destroy.impl_witness.bff) [symbolic] +// CHECK:STDOUT: %.5b2: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.954 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ccf: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.fbc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.1b5) [symbolic] // CHECK:STDOUT: %facet_value.d3d: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7c2: %AggregateT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -597,6 +601,8 @@ fn G() { // CHECK:STDOUT: %Core.import_ref.f97: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.40f = impl_witness_table (%Core.import_ref.f97), @type.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -733,19 +739,19 @@ fn G() { // CHECK:STDOUT: %.loc27_26: %empty_struct_type = struct_literal () // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%HoldsType.f95cf2.2, () [symbolic = constants.%facet_value.1b5] // CHECK:STDOUT: %.loc27_6.5: %type_where = converted constants.%HoldsType.f95cf2.2, %facet_value.loc27 [symbolic = constants.%facet_value.1b5] -// CHECK:STDOUT: %impl.elem0.loc27: %.da5 = impl_witness_access constants.%Destroy.lookup_impl_witness.c18, element0 [symbolic = constants.%impl.elem0.9e0] +// CHECK:STDOUT: %impl.elem0.loc27: %.5b2 = impl_witness_access constants.%Destroy.impl_witness.bff, element0 [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.fbc] // CHECK:STDOUT: %bound_method.loc27_6.1: = bound_method %.loc27_6.4, %impl.elem0.loc27 -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0.loc27, @Destroy.Op(constants.%Destroy.facet.1db) [symbolic = constants.%specific_impl_fn.106] -// CHECK:STDOUT: %bound_method.loc27_6.2: = bound_method %.loc27_6.4, %specific_impl_fn +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc27, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.1b5) [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ccf] +// CHECK:STDOUT: %bound_method.loc27_6.2: = bound_method %.loc27_6.4, %specific_fn // CHECK:STDOUT: %addr.loc27: %ptr.deb = addr_of %.loc27_6.4 -// CHECK:STDOUT: %.loc27_6.6: init %empty_tuple.type = call %bound_method.loc27_6.2(%addr.loc27) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_6.2(%addr.loc27) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value.d3d] // CHECK:STDOUT: %.loc26_26.7: %type_where = converted constants.%Class, %facet_value.loc26 [concrete = constants.%facet_value.d3d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_26.6, constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7c2, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_26: = bound_method %.loc26_26.6, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_26.6, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043] +// CHECK:STDOUT: %bound_method.loc26_26: = bound_method %.loc26_26.6, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc26: %ptr.e71 = addr_of %.loc26_26.6 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_26(%addr.loc26) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -823,11 +829,11 @@ fn G() { // CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %C, %type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %array: %array_type = tuple_value (%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.9e6: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.74c: %AggregateT.as_type.as.Destroy.impl.Op.type.9e6 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.74c, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9e6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.74c: %DestroyT.as_type.as.Destroy.impl.Op.type.9e6 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.74c, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -970,11 +976,11 @@ fn G() { // CHECK:STDOUT: %.loc24_48: %empty_struct_type = struct_literal () // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_27.4: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_27.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.74c -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.74c, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc24_27: = bound_method %.loc24_27.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_27.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.74c +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.74c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc24_27: = bound_method %.loc24_27.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ea3 = addr_of %.loc24_27.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc24_27(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc24_27(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/aggregates.carbon b/toolchain/check/testdata/eval/aggregates.carbon index 23d7a9119224..9ff06c5bf585 100644 --- a/toolchain/check/testdata/eval/aggregates.carbon +++ b/toolchain/check/testdata/eval/aggregates.carbon @@ -498,10 +498,10 @@ fn G(N:! i32) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %const.a1a: type = const_type %T [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %const: type = const_type %T [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.type.4f2: type = tuple_type (%ptr.79f131.1, %const.a1a) [symbolic] +// CHECK:STDOUT: %tuple.type.4f2: type = tuple_type (%ptr.79f, %const) [symbolic] // CHECK:STDOUT: %require_complete.155: = require_complete_type %tuple.type.4f2 [symbolic] // CHECK:STDOUT: %pattern_type.973: type = pattern_type %tuple.type.4f2 [symbolic] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic] @@ -514,30 +514,36 @@ fn G(N:! i32) { // CHECK:STDOUT: %pattern_type.035: type = pattern_type %array_type.ec2 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.daa: %type_where = facet_value %array_type.ec2, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.866: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.daa) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.daa) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c0f: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.b09: = require_complete_type %ptr.1a0 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.b45: = lookup_impl_witness %array_type.ec2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.226: %Destroy.type = facet_value %array_type.ec2, (%Destroy.lookup_impl_witness.b45) [symbolic] -// CHECK:STDOUT: %.59f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.226 [symbolic] -// CHECK:STDOUT: %impl.elem0.578: %.59f = impl_witness_access %Destroy.lookup_impl_witness.b45, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.73f: = specific_impl_function %impl.elem0.578, @Destroy.Op(%Destroy.facet.226) [symbolic] +// CHECK:STDOUT: %Destroy.facet.ab3: %Destroy.type = facet_value %array_type.ec2, (%Destroy.impl_witness.866) [symbolic] +// CHECK:STDOUT: %.c92: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.ab3 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c0f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.daa) [symbolic] // CHECK:STDOUT: %facet_value.6d7: %type_where = facet_value %struct_type.a, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.76b: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.6d7) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.60c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.6d7) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.3bc: %DestroyT.as_type.as.Destroy.impl.Op.type.60c = struct_value () [symbolic] // CHECK:STDOUT: %ptr.48a: type = ptr_type %struct_type.a [symbolic] // CHECK:STDOUT: %require_complete.86d: = require_complete_type %ptr.48a [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.b34: = lookup_impl_witness %struct_type.a, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.90b: %Destroy.type = facet_value %struct_type.a, (%Destroy.lookup_impl_witness.b34) [symbolic] -// CHECK:STDOUT: %.aa5: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.90b [symbolic] -// CHECK:STDOUT: %impl.elem0.d3d: %.aa5 = impl_witness_access %Destroy.lookup_impl_witness.b34, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.612: = specific_impl_function %impl.elem0.d3d, @Destroy.Op(%Destroy.facet.90b) [symbolic] +// CHECK:STDOUT: %Destroy.facet.ad9: %Destroy.type = facet_value %struct_type.a, (%Destroy.impl_witness.76b) [symbolic] +// CHECK:STDOUT: %.60b: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.ad9 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4b1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.3bc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.6d7) [symbolic] // CHECK:STDOUT: %facet_value.2b4: %type_where = facet_value %tuple.type.4f2, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.55e: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.2b4) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.870: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.2b4) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8f8: %DestroyT.as_type.as.Destroy.impl.Op.type.870 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.6cd: type = ptr_type %tuple.type.4f2 [symbolic] // CHECK:STDOUT: %require_complete.66e: = require_complete_type %ptr.6cd [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.a8a: = lookup_impl_witness %tuple.type.4f2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.6c8: %Destroy.type = facet_value %tuple.type.4f2, (%Destroy.lookup_impl_witness.a8a) [symbolic] -// CHECK:STDOUT: %.48c: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.6c8 [symbolic] -// CHECK:STDOUT: %impl.elem0.373: %.48c = impl_witness_access %Destroy.lookup_impl_witness.a8a, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.129: = specific_impl_function %impl.elem0.373, @Destroy.Op(%Destroy.facet.6c8) [symbolic] +// CHECK:STDOUT: %Destroy.facet.fc2: %Destroy.type = facet_value %tuple.type.4f2, (%Destroy.impl_witness.55e) [symbolic] +// CHECK:STDOUT: %.8dd: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.fc2 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.918: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.8f8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.2b4) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %N.51e: %i32 = bind_symbolic_name N, 0 [symbolic] @@ -560,15 +566,18 @@ fn G(N:! i32) { // CHECK:STDOUT: %require_complete.4c7: = require_complete_type %array_type.120 [symbolic] // CHECK:STDOUT: %pattern_type.aeb: type = pattern_type %array_type.120 [symbolic] // CHECK:STDOUT: %facet_value.8b7: %type_where = facet_value %array_type.120, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.1ab: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.8b7) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.8b7) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c52: %DestroyT.as_type.as.Destroy.impl.Op.type.cb6 = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.9c4: = require_complete_type %ptr.743 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.919: = lookup_impl_witness %array_type.120, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.69e: %Destroy.type = facet_value %array_type.120, (%Destroy.lookup_impl_witness.919) [symbolic] -// CHECK:STDOUT: %.83d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.69e [symbolic] -// CHECK:STDOUT: %impl.elem0.8b9: %.83d = impl_witness_access %Destroy.lookup_impl_witness.919, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.0a7: = specific_impl_function %impl.elem0.8b9, @Destroy.Op(%Destroy.facet.69e) [symbolic] +// CHECK:STDOUT: %Destroy.facet.9bf: %Destroy.type = facet_value %array_type.120, (%Destroy.impl_witness.1ab) [symbolic] +// CHECK:STDOUT: %.c5e: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.9bf [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.58d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c52, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.8b7) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.import_ref.25c: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.543) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.c08)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.e99 = impl_witness_table (%Core.import_ref.25c), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } @@ -577,8 +586,8 @@ fn G(N:! i32) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %ptr.loc6_12.2: type = ptr_type %T.loc4_6.1 [symbolic = %ptr.loc6_12.2 (constants.%ptr.79f131.1)] -// CHECK:STDOUT: %const.loc6_15.2: type = const_type %T.loc4_6.1 [symbolic = %const.loc6_15.2 (constants.%const.a1a)] +// 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)] @@ -589,27 +598,30 @@ fn G(N:! i32) { // 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: %facet_value.loc8_3.2: %type_where = facet_value %array_type.loc8_20.2, () [symbolic = %facet_value.loc8_3.2 (constants.%facet_value.daa)] -// 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)] -// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_20.2, (%Destroy.lookup_impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.226)] -// CHECK:STDOUT: %.loc8_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc8 [symbolic = %.loc8_3.3 (constants.%.59f)] -// CHECK:STDOUT: %impl.elem0.loc8_3.2: @F.%.loc8_3.3 (%.59f) = impl_witness_access %Destroy.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.578)] -// CHECK:STDOUT: %specific_impl_fn.loc8_3.2: = specific_impl_function %impl.elem0.loc8_3.2, @Destroy.Op(%Destroy.facet.loc8) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.73f)] +// CHECK:STDOUT: %Destroy.impl_witness.loc8: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc8_3.2) [symbolic = %Destroy.impl_witness.loc8 (constants.%Destroy.impl_witness.866)] +// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_20.2, (%Destroy.impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.ab3)] +// CHECK:STDOUT: %.loc8_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc8 [symbolic = %.loc8_3.2 (constants.%.c92)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.loc8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc8_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.0ad)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.loc8: @F.%DestroyT.as_type.as.Destroy.impl.Op.type.loc8 (%DestroyT.as_type.as.Destroy.impl.Op.type.0ad) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.c0f)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.loc8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc8_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d)] // CHECK:STDOUT: %ptr.loc8: type = ptr_type %array_type.loc8_20.2 [symbolic = %ptr.loc8 (constants.%ptr.1a0)] // CHECK:STDOUT: %require_complete.loc8_3: = require_complete_type %ptr.loc8 [symbolic = %require_complete.loc8_3 (constants.%require_complete.b09)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %struct_type.a.loc7_16.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.6d7)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_16.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc7 (constants.%Destroy.lookup_impl_witness.b34)] -// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_16.2, (%Destroy.lookup_impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.90b)] -// CHECK:STDOUT: %.loc7_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc7 [symbolic = %.loc7_3.3 (constants.%.aa5)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.3 (%.aa5) = impl_witness_access %Destroy.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.d3d)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.Op(%Destroy.facet.loc7) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.612)] +// CHECK:STDOUT: %Destroy.impl_witness.loc7: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness.loc7 (constants.%Destroy.impl_witness.76b)] +// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_16.2, (%Destroy.impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.ad9)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc7 [symbolic = %.loc7_3.2 (constants.%.60b)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.loc7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.60c)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.loc7: @F.%DestroyT.as_type.as.Destroy.impl.Op.type.loc7 (%DestroyT.as_type.as.Destroy.impl.Op.type.60c) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.3bc)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc7: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.loc7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4b1)] // CHECK:STDOUT: %ptr.loc7: type = ptr_type %struct_type.a.loc7_16.2 [symbolic = %ptr.loc7 (constants.%ptr.48a)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7 [symbolic = %require_complete.loc7_3 (constants.%require_complete.86d)] // CHECK:STDOUT: %facet_value.loc6_3.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc6_3.2 (constants.%facet_value.2b4)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc6 (constants.%Destroy.lookup_impl_witness.a8a)] -// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.6c8)] -// CHECK:STDOUT: %.loc6_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc6 [symbolic = %.loc6_3.3 (constants.%.48c)] -// CHECK:STDOUT: %impl.elem0.loc6_3.2: @F.%.loc6_3.3 (%.48c) = impl_witness_access %Destroy.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.373)] -// CHECK:STDOUT: %specific_impl_fn.loc6_3.2: = specific_impl_function %impl.elem0.loc6_3.2, @Destroy.Op(%Destroy.facet.loc6) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.129)] +// CHECK:STDOUT: %Destroy.impl_witness.loc6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc6_3.2) [symbolic = %Destroy.impl_witness.loc6 (constants.%Destroy.impl_witness.55e)] +// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.fc2)] +// CHECK:STDOUT: %.loc6_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc6 [symbolic = %.loc6_3.2 (constants.%.8dd)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.loc6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc6_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.870)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.loc6: @F.%DestroyT.as_type.as.Destroy.impl.Op.type.loc6 (%DestroyT.as_type.as.Destroy.impl.Op.type.870) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.8f8)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc6: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.loc6, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc6_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.918)] // CHECK:STDOUT: %ptr.loc6_3: type = ptr_type %tuple.type [symbolic = %ptr.loc6_3 (constants.%ptr.6cd)] // CHECK:STDOUT: %require_complete.loc6_3: = require_complete_type %ptr.loc6_3 [symbolic = %require_complete.loc6_3 (constants.%require_complete.66e)] // CHECK:STDOUT: @@ -622,9 +634,9 @@ fn G(N:! i32) { // 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.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.79f131.1)] +// 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.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.a1a)] +// 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)] // CHECK:STDOUT: } @@ -652,28 +664,28 @@ fn G(N:! i32) { // CHECK:STDOUT: %w: ref @F.%array_type.loc8_20.2 (%array_type.ec2) = bind_name w, %w.var // CHECK:STDOUT: %facet_value.loc8_3.1: %type_where = facet_value constants.%array_type.ec2, () [symbolic = %facet_value.loc8_3.2 (constants.%facet_value.daa)] // CHECK:STDOUT: %.loc8_3.1: %type_where = converted constants.%array_type.ec2, %facet_value.loc8_3.1 [symbolic = %facet_value.loc8_3.2 (constants.%facet_value.daa)] -// CHECK:STDOUT: %impl.elem0.loc8_3.1: @F.%.loc8_3.3 (%.59f) = impl_witness_access constants.%Destroy.lookup_impl_witness.b45, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.578)] -// CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %w.var, %impl.elem0.loc8_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc8_3.1: = specific_impl_function %impl.elem0.loc8_3.1, @Destroy.Op(constants.%Destroy.facet.226) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.73f)] -// CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %w.var, %specific_impl_fn.loc8_3.1 +// CHECK:STDOUT: %impl.elem0.loc8: @F.%.loc8_3.2 (%.c92) = impl_witness_access constants.%Destroy.impl_witness.866, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.c0f)] +// CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %w.var, %impl.elem0.loc8 +// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.daa) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d)] +// CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %w.var, %specific_fn.loc8 // CHECK:STDOUT: %addr.loc8: @F.%ptr.loc8 (%ptr.1a0) = addr_of %w.var -// CHECK:STDOUT: %.loc8_3.2: init %empty_tuple.type = call %bound_method.loc8_3.2(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.2(%addr.loc8) // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%struct_type.a, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.6d7)] // CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%struct_type.a, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.6d7)] -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.3 (%.aa5) = impl_witness_access constants.%Destroy.lookup_impl_witness.b34, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.d3d)] -// 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, @Destroy.Op(constants.%Destroy.facet.90b) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.612)] -// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_impl_fn.loc7_3.1 +// CHECK:STDOUT: %impl.elem0.loc7: @F.%.loc7_3.2 (%.60b) = impl_witness_access constants.%Destroy.impl_witness.76b, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.3bc)] +// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0.loc7 +// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.6d7) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4b1)] +// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn.loc7 // CHECK:STDOUT: %addr.loc7: @F.%ptr.loc7 (%ptr.48a) = addr_of %v.var -// CHECK:STDOUT: %.loc7_3.2: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr.loc7) // CHECK:STDOUT: %facet_value.loc6_3.1: %type_where = facet_value constants.%tuple.type.4f2, () [symbolic = %facet_value.loc6_3.2 (constants.%facet_value.2b4)] // CHECK:STDOUT: %.loc6_3.1: %type_where = converted constants.%tuple.type.4f2, %facet_value.loc6_3.1 [symbolic = %facet_value.loc6_3.2 (constants.%facet_value.2b4)] -// CHECK:STDOUT: %impl.elem0.loc6_3.1: @F.%.loc6_3.3 (%.48c) = impl_witness_access constants.%Destroy.lookup_impl_witness.a8a, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.373)] -// CHECK:STDOUT: %bound_method.loc6_3.1: = bound_method %u.var, %impl.elem0.loc6_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_3.1: = specific_impl_function %impl.elem0.loc6_3.1, @Destroy.Op(constants.%Destroy.facet.6c8) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.129)] -// CHECK:STDOUT: %bound_method.loc6_3.2: = bound_method %u.var, %specific_impl_fn.loc6_3.1 +// CHECK:STDOUT: %impl.elem0.loc6: @F.%.loc6_3.2 (%.8dd) = impl_witness_access constants.%Destroy.impl_witness.55e, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.8f8)] +// CHECK:STDOUT: %bound_method.loc6_3.1: = bound_method %u.var, %impl.elem0.loc6 +// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.2b4) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.918)] +// CHECK:STDOUT: %bound_method.loc6_3.2: = bound_method %u.var, %specific_fn.loc6 // CHECK:STDOUT: %addr.loc6: @F.%ptr.loc6_3 (%ptr.6cd) = addr_of %u.var -// CHECK:STDOUT: %.loc6_3.2: init %empty_tuple.type = call %bound_method.loc6_3.2(%addr.loc6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6_3.2(%addr.loc6) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -689,11 +701,12 @@ fn G(N:! i32) { // CHECK:STDOUT: %require_complete.loc14_22: = require_complete_type %array_type.loc14_22.2 [symbolic = %require_complete.loc14_22 (constants.%require_complete.4c7)] // CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc14_22.2 [symbolic = %pattern_type (constants.%pattern_type.aeb)] // CHECK:STDOUT: %facet_value.loc14_3.2: %type_where = facet_value %array_type.loc14_22.2, () [symbolic = %facet_value.loc14_3.2 (constants.%facet_value.8b7)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %array_type.loc14_22.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.919)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc14_22.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.69e)] -// CHECK:STDOUT: %.loc14_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc14_3.3 (constants.%.83d)] -// CHECK:STDOUT: %impl.elem0.loc14_3.2: @G.%.loc14_3.3 (%.83d) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_3.2 (constants.%impl.elem0.8b9)] -// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.0a7)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc14_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.1ab)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc14_22.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.9bf)] +// CHECK:STDOUT: %.loc14_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc14_3.2 (constants.%.c5e)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc14_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.cb6)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @G.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.cb6) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.c52)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc14_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.58d)] // CHECK:STDOUT: %ptr: type = ptr_type %array_type.loc14_22.2 [symbolic = %ptr (constants.%ptr.743)] // CHECK:STDOUT: %require_complete.loc14_3: = require_complete_type %ptr [symbolic = %require_complete.loc14_3 (constants.%require_complete.9c4)] // CHECK:STDOUT: @@ -710,8 +723,8 @@ fn G(N:! i32) { // 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: %.81e = impl_witness_access constants.%ImplicitAs.impl_witness.6bf, element0 [concrete = constants.%Int.as.ImplicitAs.impl.Convert.b09] // CHECK:STDOUT: %bound_method.loc14_21.1: = bound_method %N.ref, %impl.elem0.loc14_21 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound)] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc14_21, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.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: %specific_fn.loc14_21: = specific_function %impl.elem0.loc14_21, @Int.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Int.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %bound_method.loc14_21.2: = bound_method %N.ref, %specific_fn.loc14_21 [symbolic = %bound_method.loc14_21.3 (constants.%bound_method)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc14_21.1: init Core.IntLiteral = call %bound_method.loc14_21.2(%N.ref) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc14_21.2 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc14_21.1: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call.loc14_21.1 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc14_21.2 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %.loc14_21.2: Core.IntLiteral = converted %N.ref, %.loc14_21.1 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc14_21.2 (constants.%Int.as.ImplicitAs.impl.Convert.call)] @@ -720,12 +733,12 @@ fn G(N:! i32) { // CHECK:STDOUT: %k: ref @G.%array_type.loc14_22.2 (%array_type.120) = bind_name k, %k.var // CHECK:STDOUT: %facet_value.loc14_3.1: %type_where = facet_value constants.%array_type.120, () [symbolic = %facet_value.loc14_3.2 (constants.%facet_value.8b7)] // CHECK:STDOUT: %.loc14_3.1: %type_where = converted constants.%array_type.120, %facet_value.loc14_3.1 [symbolic = %facet_value.loc14_3.2 (constants.%facet_value.8b7)] -// CHECK:STDOUT: %impl.elem0.loc14_3.1: @G.%.loc14_3.3 (%.83d) = impl_witness_access constants.%Destroy.lookup_impl_witness.919, element0 [symbolic = %impl.elem0.loc14_3.2 (constants.%impl.elem0.8b9)] -// CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %k.var, %impl.elem0.loc14_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.Op(constants.%Destroy.facet.69e) [symbolic = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.0a7)] -// CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %k.var, %specific_impl_fn.loc14_3.1 +// CHECK:STDOUT: %impl.elem0.loc14_3: @G.%.loc14_3.2 (%.c5e) = impl_witness_access constants.%Destroy.impl_witness.1ab, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.c52)] +// CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %k.var, %impl.elem0.loc14_3 +// CHECK:STDOUT: %specific_fn.loc14_3: = specific_function %impl.elem0.loc14_3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.8b7) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.58d)] +// CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %k.var, %specific_fn.loc14_3 // CHECK:STDOUT: %addr: @G.%ptr (%ptr.743) = addr_of %k.var -// CHECK:STDOUT: %.loc14_3.2: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr) // CHECK:STDOUT: // 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 25fc163f6b4c..f256b3c9bce3 100644 --- a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon @@ -114,12 +114,12 @@ fn F() { // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%facet_value.c74) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %.1ee: type = fn_type_with_self_type %A.AA.type, %A.facet.d7e [concrete] // CHECK:STDOUT: %.d72: type = fn_type_with_self_type %B.BB.type, %B.facet.c0b [concrete] // CHECK:STDOUT: } @@ -368,11 +368,11 @@ fn F() { // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn(%.loc45_8.2) // CHECK:STDOUT: %facet_value.loc45_6: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc45_6.5: %type_where = converted constants.%C, %facet_value.loc45_6 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc45_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc45_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc45_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc45_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc45_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // 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 7371ed3ab5e0..0b206f34af52 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 @@ -408,12 +408,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %GenericParam, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.13c: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.a0a: %AggregateT.as_type.as.Destroy.impl.Op.type.13c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a0a: %DestroyT.as_type.as.Destroy.impl.Op.type.13c = struct_value () [concrete] // CHECK:STDOUT: %ptr.f73: type = ptr_type %GenericParam [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.a0a, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -562,11 +562,11 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc18_38.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%GenericParam, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_36.5: %type_where = converted constants.%GenericParam, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.a0a -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.a0a, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f73 = addr_of %.loc18_36.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // 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 befdee0bf26c..56807ffd5741 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 @@ -49,12 +49,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.353: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.353, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -157,11 +157,11 @@ fn F() { // CHECK:STDOUT: %WalkAnimal.call: init %empty_tuple.type = call %WalkAnimal.specific_fn(%.loc23_17.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_15.5: %type_where = converted constants.%Goat, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.353 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.353, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc23_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc23_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.940 = addr_of %.loc23_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 20dc9a962d44..cb1024454134 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 @@ -143,8 +143,8 @@ fn B() { // CHECK:STDOUT: %require_complete.9a6: = require_complete_type %Generic.type.2db63e.2 [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] // CHECK:STDOUT: %.468: type = fn_type_with_self_type %Generic.F.type.f439a9.2, %U [symbolic] -// CHECK:STDOUT: %impl.elem0.31b: %.468 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6af: = specific_impl_function %impl.elem0.31b, @Generic.F(%T, %U) [symbolic] +// CHECK:STDOUT: %impl.elem0: %.468 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Generic.F(%T, %U) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %ImplsGeneric.val: %ImplsGeneric = struct_value () [concrete] @@ -154,17 +154,17 @@ fn B() { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.6cb: %type_where = facet_value %GenericParam, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.13c: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.6cb) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.a0a: %AggregateT.as_type.as.Destroy.impl.Op.type.13c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.6cb) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a0a: %DestroyT.as_type.as.Destroy.impl.Op.type.13c = struct_value () [concrete] // CHECK:STDOUT: %ptr.f73: type = ptr_type %GenericParam [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.994: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.a0a, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.6cb) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.994: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.6cb) [concrete] // CHECK:STDOUT: %facet_value.004: %type_where = facet_value %ImplsGeneric, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.028: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.004) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.4ac: %AggregateT.as_type.as.Destroy.impl.Op.type.028 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.028: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.004) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4ac: %DestroyT.as_type.as.Destroy.impl.Op.type.028 = struct_value () [concrete] // CHECK:STDOUT: %ptr.011: type = ptr_type %ImplsGeneric [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e4a: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.4ac, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.004) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e4a: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.4ac, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.004) [concrete] // CHECK:STDOUT: %complete_type.ca2: = complete_type_witness %Generic.type.621 [concrete] // CHECK:STDOUT: %.573: type = fn_type_with_self_type %Generic.F.type.4cf, %Generic.facet [concrete] // CHECK:STDOUT: } @@ -309,8 +309,8 @@ fn B() { // 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: %Generic.F.type: type = fn_type @Generic.F, @Generic(%T.loc15_22.1) [symbolic = %Generic.F.type (constants.%Generic.F.type.f439a9.2)] // CHECK:STDOUT: %.loc16_4.3: type = fn_type_with_self_type %Generic.F.type, %U.loc15_32.1 [symbolic = %.loc16_4.3 (constants.%.468)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.468) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.31b)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Generic.F(%T.loc15_22.1, %U.loc15_32.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6af)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.468) = 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, @Generic.F(%T.loc15_22.1, %U.loc15_32.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // 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: @@ -319,8 +319,8 @@ fn B() { // 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.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 (%.468) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.31b)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Generic.F(constants.%T, constants.%U) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.6af)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.468) = 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, @Generic.F(constants.%T, constants.%U) [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() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -349,18 +349,18 @@ fn B() { // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc20_24.2, %.loc20_44.2) // CHECK:STDOUT: %facet_value.loc20_42: %type_where = facet_value constants.%GenericParam, () [concrete = constants.%facet_value.6cb] // CHECK:STDOUT: %.loc20_42.5: %type_where = converted constants.%GenericParam, %facet_value.loc20_42 [concrete = constants.%facet_value.6cb] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc20_42: = bound_method %.loc20_42.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.a0a -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.a0a, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.6cb) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.994] -// CHECK:STDOUT: %bound_method.loc20_42: = bound_method %.loc20_42.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20_42: = bound_method %.loc20_42.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.6cb) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.994] +// CHECK:STDOUT: %bound_method.loc20_42: = bound_method %.loc20_42.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20_42: %ptr.f73 = addr_of %.loc20_42.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc20_42: init %empty_tuple.type = call %bound_method.loc20_42(%addr.loc20_42) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20_42: init %empty_tuple.type = call %bound_method.loc20_42(%addr.loc20_42) // CHECK:STDOUT: %facet_value.loc20_22: %type_where = facet_value constants.%ImplsGeneric, () [concrete = constants.%facet_value.004] // CHECK:STDOUT: %.loc20_22.5: %type_where = converted constants.%ImplsGeneric, %facet_value.loc20_22 [concrete = constants.%facet_value.004] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc20_22: = bound_method %.loc20_22.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.4ac -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.4ac, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.004) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e4a] -// CHECK:STDOUT: %bound_method.loc20_22: = bound_method %.loc20_22.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20_22: = bound_method %.loc20_22.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4ac +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.4ac, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.004) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e4a] +// CHECK:STDOUT: %bound_method.loc20_22: = bound_method %.loc20_22.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20_22: %ptr.011 = addr_of %.loc20_22.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc20_22: init %empty_tuple.type = call %bound_method.loc20_22(%addr.loc20_22) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20_22: init %empty_tuple.type = call %bound_method.loc20_22(%addr.loc20_22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -469,12 +469,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -616,11 +616,11 @@ fn B() { // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.specific_fn(%.loc12_8.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_6.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc12_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc12_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc12_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -712,12 +712,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -852,11 +852,11 @@ fn B() { // CHECK:STDOUT: %.loc19_8: ref %C = converted %.loc19_6.1, %.loc19_6.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_6.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc19_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -927,12 +927,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.c74, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.26f: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.64f: %AggregateT.as_type.as.Destroy.impl.Op.type.26f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.26f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.64f: %DestroyT.as_type.as.Destroy.impl.Op.type.26f = struct_value () [concrete] // CHECK:STDOUT: %ptr.128: type = ptr_type %C.c74 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.64f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.64f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1064,11 +1064,11 @@ fn B() { // CHECK:STDOUT: %.loc19_8: ref %C.c74 = converted %.loc19_6.1, %.loc19_6.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.c74, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_6.5: %type_where = converted constants.%C.c74, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.64f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.64f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.64f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.64f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.128 = addr_of %.loc19_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // 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 d670bf196b72..99dcc66b8091 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 @@ -148,10 +148,10 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %pattern_type.ab7: type = pattern_type %Goat [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] // CHECK:STDOUT: %.843: type = fn_type_with_self_type %Eats.Eat.type, %Eats.facet [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.353: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -217,25 +217,25 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %Goat.as.Eats.impl.Eat.call.loc27: init %empty_tuple.type = call %impl.elem0.loc27() // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_6.5: %type_where = converted constants.%Goat, %facet_value.loc27 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27: %ptr.940 = addr_of %.loc27_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_6.5: %type_where = converted constants.%Goat, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.940 = addr_of %.loc26_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_28.5: %type_where = converted constants.%Goat, %facet_value.loc22 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_28.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_28.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc22: = bound_method %.loc22_28.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc22: = bound_method %.loc22_28.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.940 = addr_of %.loc22_28.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: 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 969b0448060e..a395100b0c28 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 @@ -105,17 +105,17 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c0f: %type_where = facet_value %Grass, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.7e4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c0f) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d49: %AggregateT.as_type.as.Destroy.impl.Op.type.7e4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7e4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c0f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d49: %DestroyT.as_type.as.Destroy.impl.Op.type.7e4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.2bd: type = ptr_type %Grass [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6af: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.d49, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.c0f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6af: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d49, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c0f) [concrete] // CHECK:STDOUT: %facet_value.8dd: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.8dd) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.353: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.8dd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.89e: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.353, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.8dd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.8dd) [concrete] // CHECK:STDOUT: %Eats.type.cee: type = facet_type <@Eats, @Eats(%Grass)> [concrete] // CHECK:STDOUT: %Self.16a: %Eats.type.cee = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %complete_type.eba: = complete_type_witness %Eats.type.cee [concrete] @@ -430,18 +430,18 @@ fn F() { // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc35_19.2, %.loc35_31.2) // CHECK:STDOUT: %facet_value.loc35_29: %type_where = facet_value constants.%Grass, () [concrete = constants.%facet_value.c0f] // CHECK:STDOUT: %.loc35_29.5: %type_where = converted constants.%Grass, %facet_value.loc35_29 [concrete = constants.%facet_value.c0f] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc35_29: = bound_method %.loc35_29.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.d49 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.d49, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c0f) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6af] -// CHECK:STDOUT: %bound_method.loc35_29: = bound_method %.loc35_29.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35_29: = bound_method %.loc35_29.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.d49 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d49, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c0f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6af] +// CHECK:STDOUT: %bound_method.loc35_29: = bound_method %.loc35_29.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35_29: %ptr.2bd = addr_of %.loc35_29.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc35_29: init %empty_tuple.type = call %bound_method.loc35_29(%addr.loc35_29) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35_29: init %empty_tuple.type = call %bound_method.loc35_29(%addr.loc35_29) // CHECK:STDOUT: %facet_value.loc35_17: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value.8dd] // CHECK:STDOUT: %.loc35_17.5: %type_where = converted constants.%Goat, %facet_value.loc35_17 [concrete = constants.%facet_value.8dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc35_17: = bound_method %.loc35_17.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.353 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.353, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.8dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.89e] -// CHECK:STDOUT: %bound_method.loc35_17: = bound_method %.loc35_17.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35_17: = bound_method %.loc35_17.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.8dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89e] +// CHECK:STDOUT: %bound_method.loc35_17: = bound_method %.loc35_17.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc35_17: %ptr.940 = addr_of %.loc35_17.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc35_17: init %empty_tuple.type = call %bound_method.loc35_17(%addr.loc35_17) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35_17: init %empty_tuple.type = call %bound_method.loc35_17(%addr.loc35_17) // CHECK:STDOUT: return // CHECK:STDOUT: } // 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 14aa1d461645..5835a6b762d3 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 @@ -54,12 +54,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.353: %AggregateT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.353, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %FeedAnimal.specific_fn.2ba: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -203,11 +203,11 @@ fn F() { // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc25_19.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_17.5: %type_where = converted constants.%Goat, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_17.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.353 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.353, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc25_17.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_17.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc25_17.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.940 = addr_of %.loc25_17.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // 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 68cb40409160..efc879cd8844 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 @@ -86,17 +86,17 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %.838: type = fn_type_with_self_type %ImplicitAs.Convert.type.50a, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound: = bound_method %from, %RuntimeConvertFrom.as.ImplicitAs.impl.Convert [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d7d: %type_where = facet_value %RuntimeConvertTo, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d4d: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d7d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c9f: %AggregateT.as_type.as.Destroy.impl.Op.type.d4d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d4d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d7d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c9f: %DestroyT.as_type.as.Destroy.impl.Op.type.d4d = struct_value () [concrete] // CHECK:STDOUT: %ptr.339: type = ptr_type %RuntimeConvertTo [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e71: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c9f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d7d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e71: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c9f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d7d) [concrete] // CHECK:STDOUT: %facet_value.631: %type_where = facet_value %RuntimeConvertFrom, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.abd: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.631) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.58a: %AggregateT.as_type.as.Destroy.impl.Op.type.abd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.abd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.631) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.58a: %DestroyT.as_type.as.Destroy.impl.Op.type.abd = struct_value () [concrete] // CHECK:STDOUT: %ptr.415: type = ptr_type %RuntimeConvertFrom [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.b86: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.58a, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.631) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b86: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.58a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.631) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -292,18 +292,18 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%holds_to.ref) // CHECK:STDOUT: %facet_value.loc41: %type_where = facet_value constants.%RuntimeConvertTo, () [concrete = constants.%facet_value.d7d] // CHECK:STDOUT: %.loc41_19.5: %type_where = converted constants.%RuntimeConvertTo, %facet_value.loc41 [concrete = constants.%facet_value.d7d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_19.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.c9f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c9f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d7d) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e71] -// CHECK:STDOUT: %bound_method.loc41_19.2: = bound_method %.loc41_19.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_19.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.c9f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c9f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d7d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e71] +// CHECK:STDOUT: %bound_method.loc41_19.2: = bound_method %.loc41_19.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.339 = addr_of %.loc41_19.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_19.2(%addr.loc41) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_19.2(%addr.loc41) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%RuntimeConvertFrom, () [concrete = constants.%facet_value.631] // CHECK:STDOUT: %.loc30_36.5: %type_where = converted constants.%RuntimeConvertFrom, %facet_value.loc30 [concrete = constants.%facet_value.631] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_36.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.58a -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.58a, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.631) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.b86] -// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_36.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_36.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.58a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.58a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.631) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b86] +// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_36.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.415 = addr_of %.loc30_36.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index ee089147d36d..c7c16a729ed0 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -150,13 +150,17 @@ fn Read() { // CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.dff, @Optional.Some(%Copy.facet.cd7) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Int.49d0e6.1, () [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.34a: = lookup_impl_witness %Int.49d0e6.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.49d0e6.1, (%Destroy.lookup_impl_witness.34a) [symbolic] -// CHECK:STDOUT: %.358: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.999: %.358 = impl_witness_access %Destroy.lookup_impl_witness.34a, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5f7: = specific_impl_function %impl.elem0.999, @Destroy.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.920: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.16a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.35f: %DestroyT.as_type.as.Destroy.impl.Op.type.16a = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.49d0e6.1, (%Destroy.impl_witness.920) [symbolic] +// CHECK:STDOUT: %.4ec: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.35f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.016, @Optional.None(%Copy.facet.cd7) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -236,6 +240,8 @@ fn Read() { // CHECK:STDOUT: %OrderedWith.impl_witness_table.95f = impl_witness_table (%Core.import_ref.ab6, %Core.import_ref.54d, %Core.import_ref.e00, %Core.import_ref.a77), @Int.as.OrderedWith.impl.aed [concrete] // CHECK:STDOUT: %Core.Inc: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [concrete = constants.%Inc.type] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.import_ref.ee7: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.340) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.1c0)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.9e9 = impl_witness_table (%Core.import_ref.ee7), @Core.IntLiteral.as.ImplicitAs.impl [concrete] @@ -577,11 +583,12 @@ fn Read() { // CHECK:STDOUT: %Optional.Some: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.20f) = struct_value () [symbolic = %Optional.Some (constants.%Optional.Some.dff)] // CHECK:STDOUT: %Optional.Some.specific_fn.loc15_42.2: = specific_function %Optional.Some, @Optional.Some(%Copy.facet.loc11_75.1) [symbolic = %Optional.Some.specific_fn.loc15_42.2 (constants.%Optional.Some.specific_fn)] // CHECK:STDOUT: %facet_value.loc12_7.3: %type_where = facet_value %Int.loc11_43.1, () [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.34a)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc12_7.5: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc12_7.5 (constants.%.358)] -// CHECK:STDOUT: %impl.elem0.loc12_7.3: @IntRange.as.Iterate.impl.Next.%.loc12_7.5 (%.358) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.999)] -// CHECK:STDOUT: %specific_impl_fn.loc12_7.3: = specific_impl_function %impl.elem0.loc12_7.3, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.5f7)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc12_7.3) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.920)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc11_43.1, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] +// CHECK:STDOUT: %.loc12_7.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc12_7.3 (constants.%.4ec)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc12_7.3) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.16a)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @IntRange.as.Iterate.impl.Next.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.16a) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc12_7.3) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %Optional.None.type: type = fn_type @Optional.None, @Optional(%Copy.facet.loc11_75.1) [symbolic = %Optional.None.type (constants.%Optional.None.type.66e)] // CHECK:STDOUT: %Optional.None: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.66e) = struct_value () [symbolic = %Optional.None (constants.%Optional.None.016)] // CHECK:STDOUT: %Optional.None.specific_fn.loc17_42.2: = specific_function %Optional.None, @Optional.None(%Copy.facet.loc11_75.1) [symbolic = %Optional.None.specific_fn.loc17_42.2 (constants.%Optional.None.specific_fn)] @@ -619,8 +626,8 @@ fn Read() { // CHECK:STDOUT: %Less.ref: @IntRange.as.Iterate.impl.Next.%OrderedWith.assoc_type (%OrderedWith.assoc_type.d92) = name_ref Less, %.loc13_17.1 [symbolic = %assoc0 (constants.%assoc0.2ae)] // CHECK:STDOUT: %impl.elem0.loc13: @IntRange.as.Iterate.impl.Next.%.loc13_17.2 (%.050) = impl_witness_access constants.%OrderedWith.impl_witness.cef, element0 [symbolic = %Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.9bd)] // CHECK:STDOUT: %bound_method.loc13_17.1: = bound_method %value.ref.loc13, %impl.elem0.loc13 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc13, @Int.as.OrderedWith.impl.Less.1(constants.%N, constants.%N) [symbolic = %Int.as.OrderedWith.impl.Less.specific_fn (constants.%Int.as.OrderedWith.impl.Less.specific_fn.331)] -// CHECK:STDOUT: %bound_method.loc13_17.2: = bound_method %value.ref.loc13, %specific_fn +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Int.as.OrderedWith.impl.Less.1(constants.%N, constants.%N) [symbolic = %Int.as.OrderedWith.impl.Less.specific_fn (constants.%Int.as.OrderedWith.impl.Less.specific_fn.331)] +// CHECK:STDOUT: %bound_method.loc13_17.2: = bound_method %value.ref.loc13, %specific_fn.loc13 // CHECK:STDOUT: %.loc13_11: @IntRange.as.Iterate.impl.Next.%Int.loc11_43.1 (%Int.49d0e6.1) = bind_value %value.ref.loc13 // CHECK:STDOUT: %Int.as.OrderedWith.impl.Less.call: init bool = call %bound_method.loc13_17.2(%.loc13_11, %.loc13_23.2) // CHECK:STDOUT: %.loc13_27.1: bool = value_of_initializer %Int.as.OrderedWith.impl.Less.call @@ -658,12 +665,12 @@ fn Read() { // CHECK:STDOUT: %Optional.Some.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.671) = call %Optional.Some.specific_fn.loc15_42.1(%.loc15_48) to %.loc11_47.1 // CHECK:STDOUT: %facet_value.loc12_7.1: %type_where = facet_value constants.%Int.49d0e6.1, () [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc12_7.1: %type_where = converted constants.%Int.49d0e6.1, %facet_value.loc12_7.1 [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc12_7.1: @IntRange.as.Iterate.impl.Next.%.loc12_7.5 (%.358) = impl_witness_access constants.%Destroy.lookup_impl_witness.34a, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.999)] +// CHECK:STDOUT: %impl.elem0.loc12_7.1: @IntRange.as.Iterate.impl.Next.%.loc12_7.3 (%.4ec) = impl_witness_access constants.%Destroy.impl_witness.920, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] // 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, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.5f7)] -// CHECK:STDOUT: %bound_method.loc12_7.2: = bound_method %value.var, %specific_impl_fn.loc12_7.1 +// CHECK:STDOUT: %specific_fn.loc12_7.1: = specific_function %impl.elem0.loc12_7.1, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %bound_method.loc12_7.2: = bound_method %value.var, %specific_fn.loc12_7.1 // CHECK:STDOUT: %addr.loc12_7.1: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.784) = addr_of %value.var -// CHECK:STDOUT: %.loc12_7.2: init %empty_tuple.type = call %bound_method.loc12_7.2(%addr.loc12_7.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_7.1: init %empty_tuple.type = call %bound_method.loc12_7.2(%addr.loc12_7.1) // CHECK:STDOUT: return %Optional.Some.call to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -682,13 +689,13 @@ fn Read() { // CHECK:STDOUT: %.loc11_47.2: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.671) = splice_block %return {} // CHECK:STDOUT: %Optional.None.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.671) = call %Optional.None.specific_fn.loc17_42.1() to %.loc11_47.2 // CHECK:STDOUT: %facet_value.loc12_7.2: %type_where = facet_value constants.%Int.49d0e6.1, () [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] -// CHECK:STDOUT: %.loc12_7.3: %type_where = converted constants.%Int.49d0e6.1, %facet_value.loc12_7.2 [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc12_7.2: @IntRange.as.Iterate.impl.Next.%.loc12_7.5 (%.358) = impl_witness_access constants.%Destroy.lookup_impl_witness.34a, element0 [symbolic = %impl.elem0.loc12_7.3 (constants.%impl.elem0.999)] +// CHECK:STDOUT: %.loc12_7.2: %type_where = converted constants.%Int.49d0e6.1, %facet_value.loc12_7.2 [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0.loc12_7.2: @IntRange.as.Iterate.impl.Next.%.loc12_7.3 (%.4ec) = impl_witness_access constants.%Destroy.impl_witness.920, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] // 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, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc12_7.3 (constants.%specific_impl_fn.5f7)] -// CHECK:STDOUT: %bound_method.loc12_7.4: = bound_method %value.var, %specific_impl_fn.loc12_7.2 +// CHECK:STDOUT: %specific_fn.loc12_7.2: = specific_function %impl.elem0.loc12_7.2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %bound_method.loc12_7.4: = bound_method %value.var, %specific_fn.loc12_7.2 // CHECK:STDOUT: %addr.loc12_7.2: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.784) = addr_of %value.var -// CHECK:STDOUT: %.loc12_7.4: init %empty_tuple.type = call %bound_method.loc12_7.4(%addr.loc12_7.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_7.2: init %empty_tuple.type = call %bound_method.loc12_7.4(%addr.loc12_7.2) // CHECK:STDOUT: return %Optional.None.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -871,12 +878,12 @@ fn Read() { // CHECK:STDOUT: %bound_method: = bound_method %y, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [symbolic] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method(%y) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %IntRange.365, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f39: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.0ed: %AggregateT.as_type.as.Destroy.impl.Op.type.f39 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f39: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0ed: %DestroyT.as_type.as.Destroy.impl.Op.type.f39 = struct_value () [concrete] // CHECK:STDOUT: %ptr.049: type = ptr_type %IntRange.365 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.0ed, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0ed, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -979,11 +986,11 @@ fn Read() { // CHECK:STDOUT: %x: ref %IntRange.365 = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%IntRange.365, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_3.2: %type_where = converted constants.%IntRange.365, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.0ed -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.0ed, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_3: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.0ed +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.0ed, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc6_3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.049 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/basic.carbon b/toolchain/check/testdata/for/basic.carbon index a1bfd4041687..c1cbfb7b81ff 100644 --- a/toolchain/check/testdata/for/basic.carbon +++ b/toolchain/check/testdata/for/basic.carbon @@ -95,17 +95,17 @@ fn Run() { // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.5e3, @Optional.HasValue(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.1d7, @Optional.Get(%Copy.facet) [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.136: %type_where = facet_value %Optional.68c, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.9ac: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.136) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b5c: %AggregateT.as_type.as.Destroy.impl.Op.type.9ac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9ac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.136) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b5c: %DestroyT.as_type.as.Destroy.impl.Op.type.9ac = struct_value () [concrete] // CHECK:STDOUT: %ptr.17e: type = ptr_type %Optional.68c [concrete] // CHECK:STDOUT: %facet_value.441: %type_where = facet_value %TrivialRange, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d73: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.441) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.9e0: %AggregateT.as_type.as.Destroy.impl.Op.type.d73 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d73: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.441) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.9e0: %DestroyT.as_type.as.Destroy.impl.Op.type.d73 = struct_value () [concrete] // CHECK:STDOUT: %ptr.41d: type = ptr_type %TrivialRange [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Copy.impl.Op.type: type = fn_type @empty_tuple.type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Copy.impl.Op: %empty_tuple.type.as.Copy.impl.Op.type = struct_value () [concrete] @@ -184,32 +184,32 @@ fn Run() { // CHECK:STDOUT: %AfterLoop.call: init %empty_tuple.type = call %AfterLoop.ref() // CHECK:STDOUT: %facet_value.loc18_35.1: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc18_35.12: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_35.1 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18_35.1: = bound_method %.loc18_35.10, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_35.1: = bound_method %.loc18_35.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_35.5: = bound_method %.loc18_35.10, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc18_35.5: = bound_method %.loc18_35.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18_35.2: %ptr.843 = addr_of %.loc18_35.10 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18_35.1: init %empty_tuple.type = call %bound_method.loc18_35.5(%addr.loc18_35.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_35.1: init %empty_tuple.type = call %bound_method.loc18_35.5(%addr.loc18_35.2) // CHECK:STDOUT: %facet_value.loc18_35.2: %type_where = facet_value constants.%Optional.68c, () [concrete = constants.%facet_value.136] // CHECK:STDOUT: %.loc18_35.13: %type_where = converted constants.%Optional.68c, %facet_value.loc18_35.2 [concrete = constants.%facet_value.136] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18_35.2: = bound_method %.loc18_35.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.b5c +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_35.2: = bound_method %.loc18_35.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b5c // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_35.6: = bound_method %.loc18_35.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc18_35.6: = bound_method %.loc18_35.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18_35.3: %ptr.17e = addr_of %.loc18_35.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18_35.2: init %empty_tuple.type = call %bound_method.loc18_35.6(%addr.loc18_35.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_35.2: init %empty_tuple.type = call %bound_method.loc18_35.6(%addr.loc18_35.3) // CHECK:STDOUT: %facet_value.loc18_35.3: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc18_35.14: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_35.3 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18_35.3: = bound_method %var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_35.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_35.7: = bound_method %var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc18_35.7: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc18_35.4: %ptr.843 = addr_of %var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18_35.3: init %empty_tuple.type = call %bound_method.loc18_35.7(%addr.loc18_35.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_35.3: init %empty_tuple.type = call %bound_method.loc18_35.7(%addr.loc18_35.4) // CHECK:STDOUT: %facet_value.loc18_18: %type_where = facet_value constants.%TrivialRange, () [concrete = constants.%facet_value.441] // CHECK:STDOUT: %.loc18_18.5: %type_where = converted constants.%TrivialRange, %facet_value.loc18_18 [concrete = constants.%facet_value.441] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc18_18: = bound_method %.loc18_18.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.9e0 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_18: = bound_method %.loc18_18.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.9e0 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_18: = bound_method %.loc18_18.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc18_18: = bound_method %.loc18_18.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc18_18: %ptr.41d = addr_of %.loc18_18.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc18_18: init %empty_tuple.type = call %bound_method.loc18_18(%addr.loc18_18) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_18: init %empty_tuple.type = call %bound_method.loc18_18(%addr.loc18_18) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/pattern.carbon b/toolchain/check/testdata/for/pattern.carbon index e5a4265fba18..78b31723e08c 100644 --- a/toolchain/check/testdata/for/pattern.carbon +++ b/toolchain/check/testdata/for/pattern.carbon @@ -167,21 +167,21 @@ fn Run() { // CHECK:STDOUT: %Optional.Get.71a: %Optional.Get.type.f65 = struct_value () [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.ac0, @Optional.HasValue(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.94b: %type_where = facet_value %Optional.47f, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.94b) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.a7d: %AggregateT.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.94b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a7d: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c56: type = ptr_type %Optional.47f [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b6d: %type_where = facet_value %EmptyRange.ab3, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.8c7: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e27: %AggregateT.as_type.as.Destroy.impl.Op.type.8c7 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e27: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7 = struct_value () [concrete] // CHECK:STDOUT: %ptr.43f: type = ptr_type %EmptyRange.ab3 [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] @@ -270,32 +270,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_36.1: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc10_36.12: %type_where = converted constants.%C, %facet_value.loc10_36.1 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_36.1: = bound_method %.loc10_36.10, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_36.1: = bound_method %.loc10_36.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_36.7: = bound_method %.loc10_36.10, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_36.7: = bound_method %.loc10_36.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_36.2: %ptr.019 = addr_of %.loc10_36.10 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_36.1: init %empty_tuple.type = call %bound_method.loc10_36.7(%addr.loc10_36.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_36.1: init %empty_tuple.type = call %bound_method.loc10_36.7(%addr.loc10_36.2) // CHECK:STDOUT: %facet_value.loc10_36.2: %type_where = facet_value constants.%Optional.47f, () [concrete = constants.%facet_value.94b] // CHECK:STDOUT: %.loc10_36.13: %type_where = converted constants.%Optional.47f, %facet_value.loc10_36.2 [concrete = constants.%facet_value.94b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_36.2: = bound_method %.loc10_36.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.a7d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_36.2: = bound_method %.loc10_36.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.a7d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_36.8: = bound_method %.loc10_36.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_36.8: = bound_method %.loc10_36.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_36.3: %ptr.c56 = addr_of %.loc10_36.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_36.2: init %empty_tuple.type = call %bound_method.loc10_36.8(%addr.loc10_36.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_36.2: init %empty_tuple.type = call %bound_method.loc10_36.8(%addr.loc10_36.3) // CHECK:STDOUT: %facet_value.loc10_36.3: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_36.14: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_36.3 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_36.3: = bound_method %var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_36.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_36.9: = bound_method %var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_36.9: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_36.4: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_36.3: init %empty_tuple.type = call %bound_method.loc10_36.9(%addr.loc10_36.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_36.3: init %empty_tuple.type = call %bound_method.loc10_36.9(%addr.loc10_36.4) // CHECK:STDOUT: %facet_value.loc10_35: %type_where = facet_value constants.%EmptyRange.ab3, () [concrete = constants.%facet_value.b6d] // CHECK:STDOUT: %.loc10_35.5: %type_where = converted constants.%EmptyRange.ab3, %facet_value.loc10_35 [concrete = constants.%facet_value.b6d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_35: = bound_method %.loc10_35.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.e27 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_35: = bound_method %.loc10_35.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e27 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_35: = bound_method %.loc10_35.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc10_35: = bound_method %.loc10_35.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc10_35: %ptr.43f = addr_of %.loc10_35.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_35: init %empty_tuple.type = call %bound_method.loc10_35(%addr.loc10_35) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_35: init %empty_tuple.type = call %bound_method.loc10_35(%addr.loc10_35) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -350,20 +350,20 @@ fn Run() { // CHECK:STDOUT: %Optional.Get.71a: %Optional.Get.type.f65 = struct_value () [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.ac0, @Optional.HasValue(%Copy.facet) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet) [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.94b: %type_where = facet_value %Optional.47f, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.94b) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.a7d: %AggregateT.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.94b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a7d: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c56: type = ptr_type %Optional.47f [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b6d: %type_where = facet_value %EmptyRange.ab3, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.8c7: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e27: %AggregateT.as_type.as.Destroy.impl.Op.type.8c7 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e27: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7 = struct_value () [concrete] // CHECK:STDOUT: %ptr.43f: type = ptr_type %EmptyRange.ab3 [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] @@ -454,32 +454,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc10_8.2: %type_where = converted constants.%C, %facet_value.loc10_8 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_8: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_8: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_8: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_8: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_8: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_8: init %empty_tuple.type = call %bound_method.loc10_8(%addr.loc10_8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_8: init %empty_tuple.type = call %bound_method.loc10_8(%addr.loc10_8) // CHECK:STDOUT: %facet_value.loc10_40.1: %type_where = facet_value constants.%Optional.47f, () [concrete = constants.%facet_value.94b] // CHECK:STDOUT: %.loc10_40.9: %type_where = converted constants.%Optional.47f, %facet_value.loc10_40.1 [concrete = constants.%facet_value.94b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_40.1: = bound_method %.loc10_40.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.a7d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_40.1: = bound_method %.loc10_40.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.a7d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_40.7: = bound_method %.loc10_40.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_40.7: = bound_method %.loc10_40.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_40.2: %ptr.c56 = addr_of %.loc10_40.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_40.1: init %empty_tuple.type = call %bound_method.loc10_40.7(%addr.loc10_40.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_40.1: init %empty_tuple.type = call %bound_method.loc10_40.7(%addr.loc10_40.2) // CHECK:STDOUT: %facet_value.loc10_40.2: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_40.10: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_40.2 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_40.2: = bound_method %var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_40.2: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_40.8: = bound_method %var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_40.8: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_40.3: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_40.2: init %empty_tuple.type = call %bound_method.loc10_40.8(%addr.loc10_40.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_40.2: init %empty_tuple.type = call %bound_method.loc10_40.8(%addr.loc10_40.3) // CHECK:STDOUT: %facet_value.loc10_39: %type_where = facet_value constants.%EmptyRange.ab3, () [concrete = constants.%facet_value.b6d] // CHECK:STDOUT: %.loc10_39.5: %type_where = converted constants.%EmptyRange.ab3, %facet_value.loc10_39 [concrete = constants.%facet_value.b6d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_39: = bound_method %.loc10_39.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.e27 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_39: = bound_method %.loc10_39.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e27 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_39: = bound_method %.loc10_39.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc10_39: = bound_method %.loc10_39.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc10_39: %ptr.43f = addr_of %.loc10_39.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_39: init %empty_tuple.type = call %bound_method.loc10_39(%addr.loc10_39) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_39: init %empty_tuple.type = call %bound_method.loc10_39(%addr.loc10_39) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -543,20 +543,20 @@ fn Run() { // CHECK:STDOUT: %ptr.b85: type = ptr_type %tuple.type.784 [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.efe, @Optional.HasValue(%Copy.facet.bd7) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.3c3, @Optional.Get(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d7c: %type_where = facet_value %tuple.type.784, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fa2: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d7c) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b18: %AggregateT.as_type.as.Destroy.impl.Op.type.fa2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fa2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d7c) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b18: %DestroyT.as_type.as.Destroy.impl.Op.type.fa2 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.33f: %type_where = facet_value %Optional.82d, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.1dd: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.33f) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.961: %AggregateT.as_type.as.Destroy.impl.Op.type.1dd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1dd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.33f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.961: %DestroyT.as_type.as.Destroy.impl.Op.type.1dd = struct_value () [concrete] // CHECK:STDOUT: %ptr.e7c: type = ptr_type %Optional.82d [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.83c: %type_where = facet_value %EmptyRange.9df, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.5b5: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.83c) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b0d: %AggregateT.as_type.as.Destroy.impl.Op.type.5b5 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.5b5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.83c) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b0d: %DestroyT.as_type.as.Destroy.impl.Op.type.5b5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.dd0: type = ptr_type %EmptyRange.9df [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] @@ -672,32 +672,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_61.1: %type_where = facet_value constants.%tuple.type.784, () [concrete = constants.%facet_value.d7c] // CHECK:STDOUT: %.loc10_61.13: %type_where = converted constants.%tuple.type.784, %facet_value.loc10_61.1 [concrete = constants.%facet_value.d7c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_61.1: = bound_method %.loc10_61.10, constants.%AggregateT.as_type.as.Destroy.impl.Op.b18 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_61.1: = bound_method %.loc10_61.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.b18 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_61.7: = bound_method %.loc10_61.10, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_61.7: = bound_method %.loc10_61.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_61.2: %ptr.b85 = addr_of %.loc10_61.10 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_61.1: init %empty_tuple.type = call %bound_method.loc10_61.7(%addr.loc10_61.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_61.1: init %empty_tuple.type = call %bound_method.loc10_61.7(%addr.loc10_61.2) // CHECK:STDOUT: %facet_value.loc10_61.2: %type_where = facet_value constants.%Optional.82d, () [concrete = constants.%facet_value.33f] // CHECK:STDOUT: %.loc10_61.14: %type_where = converted constants.%Optional.82d, %facet_value.loc10_61.2 [concrete = constants.%facet_value.33f] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_61.2: = bound_method %.loc10_61.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.961 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_61.2: = bound_method %.loc10_61.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.961 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_61.8: = bound_method %.loc10_61.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_61.8: = bound_method %.loc10_61.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_61.3: %ptr.e7c = addr_of %.loc10_61.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_61.2: init %empty_tuple.type = call %bound_method.loc10_61.8(%addr.loc10_61.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_61.2: init %empty_tuple.type = call %bound_method.loc10_61.8(%addr.loc10_61.3) // CHECK:STDOUT: %facet_value.loc10_61.3: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_61.15: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_61.3 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_61.3: = bound_method %var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_61.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_61.9: = bound_method %var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_61.9: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_61.4: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_61.3: init %empty_tuple.type = call %bound_method.loc10_61.9(%addr.loc10_61.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_61.3: init %empty_tuple.type = call %bound_method.loc10_61.9(%addr.loc10_61.4) // CHECK:STDOUT: %facet_value.loc10_60: %type_where = facet_value constants.%EmptyRange.9df, () [concrete = constants.%facet_value.83c] // CHECK:STDOUT: %.loc10_60.5: %type_where = converted constants.%EmptyRange.9df, %facet_value.loc10_60 [concrete = constants.%facet_value.83c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_60: = bound_method %.loc10_60.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.b0d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_60: = bound_method %.loc10_60.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b0d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_60: = bound_method %.loc10_60.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc10_60: = bound_method %.loc10_60.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc10_60: %ptr.dd0 = addr_of %.loc10_60.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_60: init %empty_tuple.type = call %bound_method.loc10_60(%addr.loc10_60) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_60: init %empty_tuple.type = call %bound_method.loc10_60(%addr.loc10_60) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -759,21 +759,21 @@ fn Run() { // CHECK:STDOUT: %Optional.Get.f3d: %Optional.Get.type.cc9 = struct_value () [concrete] // CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.4c8, @Optional.HasValue(%Copy.facet.ee6) [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.f3d, @Optional.Get(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c79: %type_where = facet_value %tuple.type.56b, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bf8: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c79) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.40e: %AggregateT.as_type.as.Destroy.impl.Op.type.bf8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c79) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.40e: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.9f0: type = ptr_type %tuple.type.56b [concrete] // CHECK:STDOUT: %facet_value.44a: %type_where = facet_value %Optional.696, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6ab: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.44a) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e4f: %AggregateT.as_type.as.Destroy.impl.Op.type.6ab = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ab: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.44a) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.6ab = struct_value () [concrete] // CHECK:STDOUT: %ptr.676: type = ptr_type %Optional.696 [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.c8d: %type_where = facet_value %EmptyRange.f6a, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c8d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.000: %AggregateT.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c8d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.000: %DestroyT.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.1e6: type = ptr_type %EmptyRange.f6a [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] @@ -878,32 +878,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_49.1: %type_where = facet_value constants.%tuple.type.56b, () [concrete = constants.%facet_value.c79] // CHECK:STDOUT: %.loc10_49.13: %type_where = converted constants.%tuple.type.56b, %facet_value.loc10_49.1 [concrete = constants.%facet_value.c79] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_49.1: = bound_method %.loc10_49.10, constants.%AggregateT.as_type.as.Destroy.impl.Op.40e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_49.1: = bound_method %.loc10_49.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.40e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_49.7: = bound_method %.loc10_49.10, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_49.7: = bound_method %.loc10_49.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_49.2: %ptr.9f0 = addr_of %.loc10_49.10 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_49.1: init %empty_tuple.type = call %bound_method.loc10_49.7(%addr.loc10_49.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_49.1: init %empty_tuple.type = call %bound_method.loc10_49.7(%addr.loc10_49.2) // CHECK:STDOUT: %facet_value.loc10_49.2: %type_where = facet_value constants.%Optional.696, () [concrete = constants.%facet_value.44a] // CHECK:STDOUT: %.loc10_49.14: %type_where = converted constants.%Optional.696, %facet_value.loc10_49.2 [concrete = constants.%facet_value.44a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_49.2: = bound_method %.loc10_49.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_49.2: = bound_method %.loc10_49.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_49.8: = bound_method %.loc10_49.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_49.8: = bound_method %.loc10_49.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_49.3: %ptr.676 = addr_of %.loc10_49.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_49.2: init %empty_tuple.type = call %bound_method.loc10_49.8(%addr.loc10_49.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_49.2: init %empty_tuple.type = call %bound_method.loc10_49.8(%addr.loc10_49.3) // CHECK:STDOUT: %facet_value.loc10_49.3: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_49.15: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_49.3 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_49.3: = bound_method %var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_49.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_49.9: = bound_method %var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_49.9: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_49.4: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_49.3: init %empty_tuple.type = call %bound_method.loc10_49.9(%addr.loc10_49.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_49.3: init %empty_tuple.type = call %bound_method.loc10_49.9(%addr.loc10_49.4) // CHECK:STDOUT: %facet_value.loc10_48: %type_where = facet_value constants.%EmptyRange.f6a, () [concrete = constants.%facet_value.c8d] // CHECK:STDOUT: %.loc10_48.5: %type_where = converted constants.%EmptyRange.f6a, %facet_value.loc10_48 [concrete = constants.%facet_value.c8d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_48: = bound_method %.loc10_48.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.000 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_48: = bound_method %.loc10_48.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.000 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_48: = bound_method %.loc10_48.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc10_48: = bound_method %.loc10_48.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc10_48: %ptr.1e6 = addr_of %.loc10_48.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_48: init %empty_tuple.type = call %bound_method.loc10_48(%addr.loc10_48) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_48: init %empty_tuple.type = call %bound_method.loc10_48(%addr.loc10_48) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/alias.carbon b/toolchain/check/testdata/function/call/alias.carbon index 2ab18e4e507b..e6aed6aa8e2e 100644 --- a/toolchain/check/testdata/function/call/alias.carbon +++ b/toolchain/check/testdata/function/call/alias.carbon @@ -31,12 +31,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -95,11 +95,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %empty_tuple.type = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 089351110082..623bae53da9f 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -61,12 +61,12 @@ fn Run() { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -135,11 +135,11 @@ fn Run() { // CHECK:STDOUT: %x: ref %i32 = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index 5893076b2520..aa1eec42b2b6 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -62,12 +62,12 @@ fn Main() { // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -152,11 +152,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index f7ba14ab6613..566c56b615fb 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -61,12 +61,12 @@ fn Main() { // CHECK:STDOUT: %bound_method.0ef: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.a1c, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fb1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.5c6: %AggregateT.as_type.as.Destroy.impl.Op.type.fb1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5c6: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0b7: type = ptr_type %tuple.type.a1c [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.5c6, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5c6, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -159,11 +159,11 @@ fn Main() { // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc20_8, %.loc20_12.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.a1c, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%tuple.type.a1c, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.5c6 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.5c6, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5c6 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.5c6, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.0b7 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/return_implicit.carbon b/toolchain/check/testdata/function/call/return_implicit.carbon index 1cda256db520..133aa09cb488 100644 --- a/toolchain/check/testdata/function/call/return_implicit.carbon +++ b/toolchain/check/testdata/function/call/return_implicit.carbon @@ -29,12 +29,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -79,11 +79,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %empty_tuple.type = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 33e1c2279894..b4fc6c68d558 100644 --- a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon @@ -211,12 +211,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %D, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.707: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.34d: %AggregateT.as_type.as.Destroy.impl.Op.type.707 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.707: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.34d: %DestroyT.as_type.as.Destroy.impl.Op.type.707 = struct_value () [concrete] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.34d, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.34d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -279,18 +279,18 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %.loc34_15.2: ref %D = temporary %.loc34_15.1, %ReturnDUsed.call // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%D, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_15.3: %type_where = converted constants.%D, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_15.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.34d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.34d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_15.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_15.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.34d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.34d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_15.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34: %ptr.19c = addr_of %.loc34_15.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%D, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc33_17.3: %type_where = converted constants.%D, %facet_value.loc33 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_17.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.34d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.34d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_17.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_17.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.34d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.34d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_17.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.19c = addr_of %.loc33_17.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/fail_local_decl.carbon b/toolchain/check/testdata/function/definition/fail_local_decl.carbon index 41e76e6a1560..e0b47317520b 100644 --- a/toolchain/check/testdata/function/definition/fail_local_decl.carbon +++ b/toolchain/check/testdata/function/definition/fail_local_decl.carbon @@ -103,12 +103,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.bf3, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -153,18 +153,18 @@ fn F() { // CHECK:STDOUT: %w: ref %empty_struct_type = bind_name w, %w.var // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_13: %type_where = converted constants.%empty_struct_type, %facet_value.loc14 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %w.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc14: = bound_method %w.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc14: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.c28 = addr_of %w.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_11: %type_where = converted constants.%empty_struct_type, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9: %ptr.c28 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 00db6331030e..38f53c54ca06 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -516,12 +516,12 @@ fn F() { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f131.1 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f [symbolic] // CHECK:STDOUT: %ExplicitAndAlsoDeduced.type: type = fn_type @ExplicitAndAlsoDeduced [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %ExplicitAndAlsoDeduced: %ExplicitAndAlsoDeduced.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f131.1 [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] // CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.41d: = specific_function %ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T) [symbolic] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] @@ -532,12 +532,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.900: %AggregateT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.7ea: = complete_type_witness %ptr.6db [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.900, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -566,14 +566,14 @@ fn F() { // 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.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.79f131.1)] +// CHECK:STDOUT: %ptr.loc6_47.2: type = ptr_type %T.ref.loc6_46 [symbolic = %ptr.loc6_47.1 (constants.%ptr.79f)] // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // 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.79f131.1) = out_param call_param1 -// CHECK:STDOUT: %return: ref @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f131.1) = return_slot %return.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] @@ -597,7 +597,7 @@ fn F() { // 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.79f131.1)] +// 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: @@ -605,13 +605,13 @@ fn F() { // 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.1 (%T)) -> @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f131.1) { +// 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.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.1 (%ptr.79f131.1) = call %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1(%x.ref) +// CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init @ExplicitAndAlsoDeduced.%ptr.loc6_47.1 (%ptr.79f) = call %ExplicitAndAlsoDeduced.specific_fn.loc7_10.1(%x.ref) // CHECK:STDOUT: return %ExplicitAndAlsoDeduced.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -630,18 +630,18 @@ fn F() { // CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init %ptr.6db = call %ExplicitAndAlsoDeduced.specific_fn(%.loc11_37.6) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_37.7: %type_where = converted constants.%A, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc11_37.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.900 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.900, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc11_37.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc11_37.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc11_37.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6db = addr_of %.loc11_37.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %ExplicitAndAlsoDeduced.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ExplicitAndAlsoDeduced(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.1 => constants.%ptr.79f131.1 +// CHECK:STDOUT: %ptr.loc6_47.1 => constants.%ptr.79f // CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/function/generic/resolve_used.carbon b/toolchain/check/testdata/function/generic/resolve_used.carbon index 9e575471074e..650b37564f71 100644 --- a/toolchain/check/testdata/function/generic/resolve_used.carbon +++ b/toolchain/check/testdata/function/generic/resolve_used.carbon @@ -57,18 +57,19 @@ fn CallNegative() { // CHECK:STDOUT: %pattern_type.896: type = pattern_type %Int [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.818: %type_where = facet_value %Int, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.920: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.818) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.16a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.818) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.35f: %DestroyT.as_type.as.Destroy.impl.Op.type.16a = struct_value () [symbolic] // CHECK:STDOUT: %ptr.784: type = ptr_type %Int [symbolic] // CHECK:STDOUT: %require_complete.0f5: = require_complete_type %ptr.784 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.34a: = lookup_impl_witness %Int, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.267: %Destroy.type = facet_value %Int, (%Destroy.lookup_impl_witness.34a) [symbolic] -// CHECK:STDOUT: %.358: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.267 [symbolic] -// CHECK:STDOUT: %impl.elem0.999: %.358 = impl_witness_access %Destroy.lookup_impl_witness.34a, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.5f7: = specific_impl_function %impl.elem0.999, @Destroy.Op(%Destroy.facet.267) [symbolic] +// CHECK:STDOUT: %Destroy.facet.e38: %Destroy.type = facet_value %Int, (%Destroy.impl_witness.920) [symbolic] +// CHECK:STDOUT: %.4ec: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.e38 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9f5: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.35f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.818) [symbolic] // CHECK:STDOUT: %CallNegative.type: type = fn_type @CallNegative [concrete] // CHECK:STDOUT: %CallNegative: %CallNegative.type = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] @@ -77,14 +78,14 @@ fn CallNegative() { // CHECK:STDOUT: %complete_type.d94: = complete_type_witness [concrete] // CHECK:STDOUT: %pattern_type.47b: type = pattern_type %i0 [concrete] // CHECK:STDOUT: %facet_value.5b4: %type_where = facet_value %i0, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.20d: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.59e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.701: %AggregateT.as_type.as.Destroy.impl.Op.type.59e = struct_value () [concrete] -// CHECK:STDOUT: %ptr.3f1: type = ptr_type %i0 [concrete] -// CHECK:STDOUT: %complete_type.588: = complete_type_witness %ptr.3f1 [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.20d: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] // CHECK:STDOUT: %Destroy.facet.168: %Destroy.type = facet_value %i0, (%Destroy.impl_witness.20d) [concrete] // CHECK:STDOUT: %.6d5: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.168 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.701, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.5b4) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.59e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.701: %DestroyT.as_type.as.Destroy.impl.Op.type.59e = struct_value () [concrete] +// CHECK:STDOUT: %ptr.3f1: type = ptr_type %i0 [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8e8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.701, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5b4) [concrete] +// CHECK:STDOUT: %complete_type.588: = complete_type_witness %ptr.3f1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -98,8 +99,8 @@ fn CallNegative() { // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -123,8 +124,6 @@ fn CallNegative() { // 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: %facet_value: %type_where = facet_value constants.%i0, () [concrete = constants.%facet_value.5b4] -// CHECK:STDOUT: %.loc15: %type_where = converted constants.%i0, %facet_value [concrete = constants.%facet_value.5b4] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ErrorIfNIsZero(%N.loc4_19.2: Core.IntLiteral) { @@ -135,11 +134,12 @@ fn CallNegative() { // CHECK:STDOUT: %require_complete.loc15_20: = require_complete_type %Int.loc15_20.2 [symbolic = %require_complete.loc15_20 (constants.%require_complete.b4f)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc15_20.2 [symbolic = %pattern_type (constants.%pattern_type.896)] // CHECK:STDOUT: %facet_value.loc15_3.2: %type_where = facet_value %Int.loc15_20.2, () [symbolic = %facet_value.loc15_3.2 (constants.%facet_value.818)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc15_20.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.34a)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc15_20.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.267)] -// CHECK:STDOUT: %.loc15_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc15_3.3 (constants.%.358)] -// CHECK:STDOUT: %impl.elem0.loc15_3.2: @ErrorIfNIsZero.%.loc15_3.3 (%.358) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_3.2 (constants.%impl.elem0.999)] -// CHECK:STDOUT: %specific_impl_fn.loc15_3.2: = specific_impl_function %impl.elem0.loc15_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc15_3.2 (constants.%specific_impl_fn.5f7)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc15_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.920)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc15_20.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.e38)] +// CHECK:STDOUT: %.loc15_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc15_3.2 (constants.%.4ec)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc15_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.16a)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @ErrorIfNIsZero.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.16a) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc15_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9f5)] // CHECK:STDOUT: %ptr: type = ptr_type %Int.loc15_20.2 [symbolic = %ptr (constants.%ptr.784)] // CHECK:STDOUT: %require_complete.loc15_3: = require_complete_type %ptr [symbolic = %require_complete.loc15_3 (constants.%require_complete.0f5)] // CHECK:STDOUT: @@ -159,12 +159,12 @@ fn CallNegative() { // CHECK:STDOUT: %v: ref @ErrorIfNIsZero.%Int.loc15_20.2 (%Int) = bind_name v, %v.var // CHECK:STDOUT: %facet_value.loc15_3.1: %type_where = facet_value constants.%Int, () [symbolic = %facet_value.loc15_3.2 (constants.%facet_value.818)] // CHECK:STDOUT: %.loc15_3.1: %type_where = converted constants.%Int, %facet_value.loc15_3.1 [symbolic = %facet_value.loc15_3.2 (constants.%facet_value.818)] -// CHECK:STDOUT: %impl.elem0.loc15_3.1: @ErrorIfNIsZero.%.loc15_3.3 (%.358) = impl_witness_access constants.%Destroy.lookup_impl_witness.34a, element0 [symbolic = %impl.elem0.loc15_3.2 (constants.%impl.elem0.999)] -// CHECK:STDOUT: %bound_method.loc15_3.1: = bound_method %v.var, %impl.elem0.loc15_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc15_3.1: = specific_impl_function %impl.elem0.loc15_3.1, @Destroy.Op(constants.%Destroy.facet.267) [symbolic = %specific_impl_fn.loc15_3.2 (constants.%specific_impl_fn.5f7)] -// CHECK:STDOUT: %bound_method.loc15_3.2: = bound_method %v.var, %specific_impl_fn.loc15_3.1 +// CHECK:STDOUT: %impl.elem0: @ErrorIfNIsZero.%.loc15_3.2 (%.4ec) = impl_witness_access constants.%Destroy.impl_witness.920, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] +// CHECK:STDOUT: %bound_method.loc15_3.1: = bound_method %v.var, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.818) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9f5)] +// CHECK:STDOUT: %bound_method.loc15_3.2: = bound_method %v.var, %specific_fn // CHECK:STDOUT: %addr: @ErrorIfNIsZero.%ptr (%ptr.784) = addr_of %v.var -// CHECK:STDOUT: %.loc15_3.2: init %empty_tuple.type = call %bound_method.loc15_3.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -190,11 +190,12 @@ fn CallNegative() { // CHECK:STDOUT: %require_complete.loc15_20 => constants.%complete_type.d94 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.47b // CHECK:STDOUT: %facet_value.loc15_3.2 => constants.%facet_value.5b4 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.20d +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.20d // CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.168 -// CHECK:STDOUT: %.loc15_3.3 => constants.%.6d5 -// CHECK:STDOUT: %impl.elem0.loc15_3.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.701 -// CHECK:STDOUT: %specific_impl_fn.loc15_3.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %.loc15_3.2 => constants.%.6d5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.59e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.701 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8e8 // CHECK:STDOUT: %ptr => constants.%ptr.3f1 // CHECK:STDOUT: %require_complete.loc15_3 => constants.%complete_type.588 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index 030c7c7f4f9e..1cbfa898021e 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -72,22 +72,22 @@ fn G() { // CHECK:STDOUT: %Wrap.Make.e4b: %Wrap.Make.type.708 = struct_value () [concrete] // CHECK:STDOUT: %Wrap.Make.specific_fn.834: = specific_function %Wrap.Make.e4b, @Wrap.Make(%C) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %complete_type.782: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -239,25 +239,25 @@ fn G() { // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc24_3.2: %type_where = converted constants.%C, %facet_value.loc24 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] +// CHECK:STDOUT: %bound_method.loc24: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc23_3: %type_where = converted constants.%empty_tuple.type, %facet_value.loc23 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc22_3: %type_where = converted constants.%i32, %facet_value.loc22 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc22: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/type_param.carbon b/toolchain/check/testdata/function/generic/type_param.carbon index 803871d04afa..e8347fcfb495 100644 --- a/toolchain/check/testdata/function/generic/type_param.carbon +++ b/toolchain/check/testdata/function/generic/type_param.carbon @@ -27,20 +27,26 @@ fn F(T:! type) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f131.1 [symbolic] -// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f131.1 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f [symbolic] // CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %ptr.a13abe.2: type = ptr_type %ptr.79f131.1 [symbolic] -// CHECK:STDOUT: %require_complete.1328e0.2: = require_complete_type %ptr.a13abe.2 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3af: = lookup_impl_witness %ptr.79f131.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] -// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.108: %.fc8 = impl_witness_access %Destroy.lookup_impl_witness.3af, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.79f, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.132: = require_complete_type %ptr.a13 [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] +// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -50,6 +56,8 @@ fn F(T:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -70,18 +78,20 @@ fn F(T:! 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.1 [symbolic = %ptr.loc16_11.2 (constants.%ptr.79f131.1)] +// 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.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.3af)] -// 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.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc16_3.2 (constants.%.fc8)] -// CHECK:STDOUT: %impl.elem0.loc16_3.2: @F.%.loc16_3.2 (%.fc8) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.108)] -// CHECK:STDOUT: %specific_impl_fn.loc16_3.2: = specific_impl_function %impl.elem0.loc16_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.a84)] -// CHECK:STDOUT: %ptr.loc16_3: type = ptr_type %ptr.loc16_11.2 [symbolic = %ptr.loc16_3 (constants.%ptr.a13abe.2)] -// CHECK:STDOUT: %require_complete.loc16_3: = require_complete_type %ptr.loc16_3 [symbolic = %require_complete.loc16_3 (constants.%require_complete.1328e0.2)] +// CHECK:STDOUT: %facet_value.loc16_3.2: %type_where = facet_value %ptr.loc16_11.2, () [symbolic = %facet_value.loc16_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc16_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.71a)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc16_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] +// CHECK:STDOUT: %.loc16_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc16_3.2 (constants.%.280)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc16_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.13f)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.13f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc16_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %ptr.loc16_3: type = ptr_type %ptr.loc16_11.2 [symbolic = %ptr.loc16_3 (constants.%ptr.a13)] +// CHECK:STDOUT: %require_complete.loc16_3: = require_complete_type %ptr.loc16_3 [symbolic = %require_complete.loc16_3 (constants.%require_complete.132)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -89,27 +99,29 @@ fn F(T:! type) { // CHECK:STDOUT: %p.patt: @F.%pattern_type.loc16 (%pattern_type.afe) = binding_pattern p [concrete] // CHECK:STDOUT: %p.var_patt: @F.%pattern_type.loc16 (%pattern_type.afe) = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref @F.%ptr.loc16_11.2 (%ptr.79f131.1) = var %p.var_patt -// CHECK:STDOUT: %.loc16_11: type = splice_block %ptr.loc16_11.1 [symbolic = %ptr.loc16_11.2 (constants.%ptr.79f131.1)] { +// 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.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.79f131.1)] +// 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.79f131.1) = bind_name p, %p.var +// CHECK:STDOUT: %p: ref @F.%ptr.loc16_11.2 (%ptr.79f) = bind_name p, %p.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %n.patt: @F.%pattern_type.loc17 (%pattern_type.7dc) = binding_pattern n [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.ref: ref @F.%ptr.loc16_11.2 (%ptr.79f131.1) = name_ref p, %p -// CHECK:STDOUT: %.loc17_15: @F.%ptr.loc16_11.2 (%ptr.79f131.1) = bind_value %p.ref +// 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.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 (%.fc8) = impl_witness_access constants.%Destroy.lookup_impl_witness.3af, element0 [symbolic = %impl.elem0.loc16_3.2 (constants.%impl.elem0.108)] -// 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, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc16_3.2 (constants.%specific_impl_fn.a84)] -// CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %p.var, %specific_impl_fn.loc16_3.1 -// CHECK:STDOUT: %addr: @F.%ptr.loc16_3 (%ptr.a13abe.2) = addr_of %p.var -// CHECK:STDOUT: %.loc16_3.1: init %empty_tuple.type = call %bound_method.loc16_3.2(%addr) +// CHECK:STDOUT: %facet_value.loc16_3.1: %type_where = facet_value constants.%ptr.79f, () [symbolic = %facet_value.loc16_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %.loc16_3.1: %type_where = converted constants.%ptr.79f, %facet_value.loc16_3.1 [symbolic = %facet_value.loc16_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc16_3.2 (%.280) = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %p.var, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %p.var, %specific_fn +// CHECK:STDOUT: %addr: @F.%ptr.loc16_3 (%ptr.a13) = addr_of %p.var +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/generic/complete_type.carbon b/toolchain/check/testdata/generic/complete_type.carbon index 65b053fec483..d312702b09d1 100644 --- a/toolchain/check/testdata/generic/complete_type.carbon +++ b/toolchain/check/testdata/generic/complete_type.carbon @@ -207,22 +207,25 @@ fn G() { F(B); } // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f131.1 [symbolic] -// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f131.1 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f [symbolic] // CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %PointeeT: type = bind_symbolic_name PointeeT, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.eb7d1c.1: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%PointeeT) [symbolic] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.60a6c7.1: %ptr.as.Destroy.impl.Op.type.eb7d1c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.a13abe.2: type = ptr_type %ptr.79f131.1 [symbolic] -// CHECK:STDOUT: %require_complete.1328e0.2: = require_complete_type %ptr.a13abe.2 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3af: = lookup_impl_witness %ptr.79f131.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.64e: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] -// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.64e [symbolic] -// CHECK:STDOUT: %impl.elem0.108: %.fc8 = impl_witness_access %Destroy.lookup_impl_witness.3af, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet.64e) [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %facet_value.57a: %type_where = facet_value %ptr.79f, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.132: = require_complete_type %ptr.a13 [symbolic] +// CHECK:STDOUT: %Destroy.facet.b1a: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] +// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b1a [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.57a) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%B) [concrete] @@ -231,14 +234,15 @@ fn G() { F(B); } // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %complete_type.3bf: = complete_type_witness %ptr.e79 [concrete] // CHECK:STDOUT: %pattern_type.960: type = pattern_type %ptr.e79 [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.40d: = impl_witness imports.%Destroy.impl_witness_table.1ab, @ptr.as.Destroy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.083: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.4a5: %ptr.as.Destroy.impl.Op.type.083 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.888: %type_where = facet_value %ptr.e79, () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.211: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %Destroy.facet.3ce: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.211) [concrete] +// CHECK:STDOUT: %.c0d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.3ce [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5d8: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.3fb: type = ptr_type %ptr.e79 [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5d8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.888) [concrete] // CHECK:STDOUT: %complete_type.c9f: = complete_type_witness %ptr.3fb [concrete] -// CHECK:STDOUT: %Destroy.facet.f4c: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.40d) [concrete] -// CHECK:STDOUT: %.f78: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.f4c [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.4a5, @ptr.as.Destroy.impl.Op(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -248,8 +252,8 @@ fn G() { F(B); } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.58c: @ptr.as.Destroy.impl.%ptr.as.Destroy.impl.Op.type (%ptr.as.Destroy.impl.Op.type.eb7d1c.1) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Destroy.impl.%ptr.as.Destroy.impl.Op (constants.%ptr.as.Destroy.impl.Op.60a6c7.1)] -// CHECK:STDOUT: %Destroy.impl_witness_table.1ab = impl_witness_table (%Core.import_ref.58c), @ptr.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -283,17 +287,19 @@ fn G() { F(B); } // 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: %ptr.loc7_11.2: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f131.1)] +// CHECK:STDOUT: %ptr.loc7_11.2: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f)] // CHECK:STDOUT: %require_complete.loc7_11: = require_complete_type %ptr.loc7_11.2 [symbolic = %require_complete.loc7_11 (constants.%require_complete.6e5)] // CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc7_11.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc7_11.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.3af)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.64e)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.fc8)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.2 (%.fc8) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.108)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.a84)] -// CHECK:STDOUT: %ptr.loc7_3: type = ptr_type %ptr.loc7_11.2 [symbolic = %ptr.loc7_3 (constants.%ptr.a13abe.2)] -// CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7_3 [symbolic = %require_complete.loc7_3 (constants.%require_complete.1328e0.2)] +// CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %ptr.loc7_11.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.71a)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.b1a)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.280)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.13f)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.13f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %ptr.loc7_3: type = ptr_type %ptr.loc7_11.2 [symbolic = %ptr.loc7_3 (constants.%ptr.a13)] +// CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7_3 [symbolic = %require_complete.loc7_3 (constants.%require_complete.132)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -301,21 +307,23 @@ fn G() { F(B); } // CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.afe) = binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.afe) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%ptr.loc7_11.2 (%ptr.79f131.1) = var %v.var_patt -// CHECK:STDOUT: %.loc7_11: type = splice_block %ptr.loc7_11.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f131.1)] { +// CHECK:STDOUT: %v.var: ref @F.%ptr.loc7_11.2 (%ptr.79f) = var %v.var_patt +// CHECK:STDOUT: %.loc7_11: type = splice_block %ptr.loc7_11.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] -// CHECK:STDOUT: %ptr.loc7_11.1: type = ptr_type %T.ref [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f131.1)] +// CHECK:STDOUT: %ptr.loc7_11.1: type = ptr_type %T.ref [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @F.%ptr.loc7_11.2 (%ptr.79f131.1) = bind_name v, %v.var -// CHECK:STDOUT: %v.ref: ref @F.%ptr.loc7_11.2 (%ptr.79f131.1) = name_ref v, %v -// CHECK:STDOUT: %.loc8_4: @F.%ptr.loc7_11.2 (%ptr.79f131.1) = bind_value %v.ref +// CHECK:STDOUT: %v: ref @F.%ptr.loc7_11.2 (%ptr.79f) = bind_name v, %v.var +// CHECK:STDOUT: %v.ref: ref @F.%ptr.loc7_11.2 (%ptr.79f) = name_ref v, %v +// CHECK:STDOUT: %.loc8_4: @F.%ptr.loc7_11.2 (%ptr.79f) = bind_value %v.ref // CHECK:STDOUT: %.loc8_3: ref @F.%T.loc6_6.1 (%T) = deref %.loc8_4 -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.2 (%.fc8) = impl_witness_access constants.%Destroy.lookup_impl_witness.3af, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.108)] -// 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, @Destroy.Op(constants.%Destroy.facet.64e) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.a84)] -// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_impl_fn.loc7_3.1 -// CHECK:STDOUT: %addr: @F.%ptr.loc7_3 (%ptr.a13abe.2) = addr_of %v.var -// CHECK:STDOUT: %.loc7_3.1: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%ptr.79f, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] +// CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%ptr.79f, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.280) = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.57a) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn +// CHECK:STDOUT: %addr: @F.%ptr.loc7_3 (%ptr.a13) = addr_of %v.var +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -341,11 +349,13 @@ fn G() { F(B); } // CHECK:STDOUT: %require_complete.loc7_11 => constants.%complete_type.3bf // CHECK:STDOUT: %pattern_type => constants.%pattern_type.960 // CHECK:STDOUT: %require_complete.loc8 => constants.%complete_type.357 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.40d -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.f4c -// CHECK:STDOUT: %.loc7_3.2 => constants.%.f78 -// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%ptr.as.Destroy.impl.Op.4a5 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.888 +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.211 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.3ce +// CHECK:STDOUT: %.loc7_3.2 => constants.%.c0d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.fc9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.5d8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca // CHECK:STDOUT: %ptr.loc7_3 => constants.%ptr.3fb // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.c9f // CHECK:STDOUT: } @@ -361,36 +371,40 @@ fn G() { F(B); } // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f131.1 [symbolic] -// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f131.1 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] +// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f [symbolic] // CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %PointeeT: type = bind_symbolic_name PointeeT, 0 [symbolic] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.eb7d1c.1: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%PointeeT) [symbolic] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.60a6c7.1: %ptr.as.Destroy.impl.Op.type.eb7d1c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.a13abe.2: type = ptr_type %ptr.79f131.1 [symbolic] -// CHECK:STDOUT: %require_complete.1328e0.2: = require_complete_type %ptr.a13abe.2 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3af: = lookup_impl_witness %ptr.79f131.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.64e: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] -// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.64e [symbolic] -// CHECK:STDOUT: %impl.elem0.108: %.fc8 = impl_witness_access %Destroy.lookup_impl_witness.3af, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet.64e) [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %facet_value.57a: %type_where = facet_value %ptr.79f, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] +// CHECK:STDOUT: %require_complete.132: = require_complete_type %ptr.a13 [symbolic] +// CHECK:STDOUT: %Destroy.facet.b1a: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] +// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b1a [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.57a) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%B) [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %complete_type.3bf: = complete_type_witness %ptr.e79 [concrete] // CHECK:STDOUT: %pattern_type.960: type = pattern_type %ptr.e79 [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.40d: = impl_witness imports.%Destroy.impl_witness_table.1ab, @ptr.as.Destroy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.083: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%B) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.4a5: %ptr.as.Destroy.impl.Op.type.083 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.888: %type_where = facet_value %ptr.e79, () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.211: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %Destroy.facet.3ce: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.211) [concrete] +// CHECK:STDOUT: %.c0d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.3ce [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5d8: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.3fb: type = ptr_type %ptr.e79 [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5d8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.888) [concrete] // CHECK:STDOUT: %complete_type.c9f: = complete_type_witness %ptr.3fb [concrete] -// CHECK:STDOUT: %Destroy.facet.f4c: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.40d) [concrete] -// CHECK:STDOUT: %.f78: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.f4c [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.4a5, @ptr.as.Destroy.impl.Op(%B) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -400,8 +414,8 @@ fn G() { F(B); } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.58c: @ptr.as.Destroy.impl.%ptr.as.Destroy.impl.Op.type (%ptr.as.Destroy.impl.Op.type.eb7d1c.1) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Destroy.impl.%ptr.as.Destroy.impl.Op (constants.%ptr.as.Destroy.impl.Op.60a6c7.1)] -// CHECK:STDOUT: %Destroy.impl_witness_table.1ab = impl_witness_table (%Core.import_ref.58c), @ptr.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -428,17 +442,19 @@ fn G() { F(B); } // 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: %ptr.loc7_11.2: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f131.1)] +// CHECK:STDOUT: %ptr.loc7_11.2: type = ptr_type %T.loc6_6.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f)] // CHECK:STDOUT: %require_complete.loc7_11: = require_complete_type %ptr.loc7_11.2 [symbolic = %require_complete.loc7_11 (constants.%require_complete.6e5)] // CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc7_11.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc14 (constants.%require_complete.4ae)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc7_11.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.3af)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.64e)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.fc8)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3.2 (%.fc8) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.108)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.a84)] -// CHECK:STDOUT: %ptr.loc7_3: type = ptr_type %ptr.loc7_11.2 [symbolic = %ptr.loc7_3 (constants.%ptr.a13abe.2)] -// CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7_3 [symbolic = %require_complete.loc7_3 (constants.%require_complete.1328e0.2)] +// CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %ptr.loc7_11.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.71a)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.b1a)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.280)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.13f)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.13f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %ptr.loc7_3: type = ptr_type %ptr.loc7_11.2 [symbolic = %ptr.loc7_3 (constants.%ptr.a13)] +// CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7_3 [symbolic = %require_complete.loc7_3 (constants.%require_complete.132)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -446,21 +462,23 @@ fn G() { F(B); } // CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.afe) = binding_pattern v [concrete] // CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.afe) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%ptr.loc7_11.2 (%ptr.79f131.1) = var %v.var_patt -// CHECK:STDOUT: %.loc7_11: type = splice_block %ptr.loc7_11.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f131.1)] { +// CHECK:STDOUT: %v.var: ref @F.%ptr.loc7_11.2 (%ptr.79f) = var %v.var_patt +// CHECK:STDOUT: %.loc7_11: type = splice_block %ptr.loc7_11.1 [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f)] { // CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc6_6.2 [symbolic = %T.loc6_6.1 (constants.%T)] -// CHECK:STDOUT: %ptr.loc7_11.1: type = ptr_type %T.ref [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f131.1)] +// CHECK:STDOUT: %ptr.loc7_11.1: type = ptr_type %T.ref [symbolic = %ptr.loc7_11.2 (constants.%ptr.79f)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @F.%ptr.loc7_11.2 (%ptr.79f131.1) = bind_name v, %v.var -// CHECK:STDOUT: %v.ref: ref @F.%ptr.loc7_11.2 (%ptr.79f131.1) = name_ref v, %v -// CHECK:STDOUT: %.loc14_4: @F.%ptr.loc7_11.2 (%ptr.79f131.1) = bind_value %v.ref +// CHECK:STDOUT: %v: ref @F.%ptr.loc7_11.2 (%ptr.79f) = bind_name v, %v.var +// CHECK:STDOUT: %v.ref: ref @F.%ptr.loc7_11.2 (%ptr.79f) = name_ref v, %v +// CHECK:STDOUT: %.loc14_4: @F.%ptr.loc7_11.2 (%ptr.79f) = bind_value %v.ref // CHECK:STDOUT: %.loc14_3: ref @F.%T.loc6_6.1 (%T) = deref %.loc14_4 -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3.2 (%.fc8) = impl_witness_access constants.%Destroy.lookup_impl_witness.3af, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.108)] -// 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, @Destroy.Op(constants.%Destroy.facet.64e) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.a84)] -// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_impl_fn.loc7_3.1 -// CHECK:STDOUT: %addr: @F.%ptr.loc7_3 (%ptr.a13abe.2) = addr_of %v.var -// CHECK:STDOUT: %.loc7_3.1: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%ptr.79f, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] +// CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%ptr.79f, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.280) = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.57a) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn +// CHECK:STDOUT: %addr: @F.%ptr.loc7_3 (%ptr.a13) = addr_of %v.var +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -486,11 +504,13 @@ fn G() { F(B); } // CHECK:STDOUT: %require_complete.loc7_11 => constants.%complete_type.3bf // CHECK:STDOUT: %pattern_type => constants.%pattern_type.960 // CHECK:STDOUT: %require_complete.loc14 => -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.40d -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.f4c -// CHECK:STDOUT: %.loc7_3.2 => constants.%.f78 -// CHECK:STDOUT: %impl.elem0.loc7_3.2 => constants.%ptr.as.Destroy.impl.Op.4a5 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2 => constants.%ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.888 +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.211 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.3ce +// CHECK:STDOUT: %.loc7_3.2 => constants.%.c0d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.fc9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.5d8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca // CHECK:STDOUT: %ptr.loc7_3 => constants.%ptr.3fb // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.c9f // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/generic/local.carbon b/toolchain/check/testdata/generic/local.carbon index 0d71be52f1a1..8ad0213d9f8b 100644 --- a/toolchain/check/testdata/generic/local.carbon +++ b/toolchain/check/testdata/generic/local.carbon @@ -95,12 +95,12 @@ class C(C:! type) { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.d45, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.782: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b6b: %AggregateT.as_type.as.Destroy.impl.Op.type.782 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.782: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b6b: %DestroyT.as_type.as.Destroy.impl.Op.type.782 = struct_value () [concrete] // CHECK:STDOUT: %ptr.9c7: type = ptr_type %C.d45 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b6b, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b6b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -185,11 +185,11 @@ class C(C:! type) { // CHECK:STDOUT: %v: ref %C.d45 = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.d45, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C.d45, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b6b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b6b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b6b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b6b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.9c7 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index 02b0568bc652..ce0bcca87e32 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -256,7 +256,7 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.f78d44.1: = require_complete_type %T.as_type.a11 [template] +// CHECK:STDOUT: %require_complete.f78: = require_complete_type %T.as_type.a11 [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] @@ -270,18 +270,18 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Copy.impl_witness.dc4: = impl_witness imports.%Copy.impl_witness_table.965, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.dc4) [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.a2f397.2: = lookup_impl_witness %T.9ff, @Destroy [template] -// CHECK:STDOUT: %.8eb584.2: type = fn_type_with_self_type %Destroy.Op.type, %T.9ff [template] -// CHECK:STDOUT: %impl.elem0.b2e868.2: %.8eb584.2 = impl_witness_access %Destroy.lookup_impl_witness.a2f397.2, element0 [template] -// CHECK:STDOUT: %ptr.983a2f.3: type = ptr_type %T.as_type.a11 [template] -// CHECK:STDOUT: %specific_impl_fn.b6bc42.2: = specific_impl_function %impl.elem0.b2e868.2, @Destroy.Op(%T.9ff) [template] -// CHECK:STDOUT: %require_complete.a61215.2: = require_complete_type %ptr.983a2f.3 [template] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.9ff, @Destroy [template] +// CHECK:STDOUT: %.8eb: type = fn_type_with_self_type %Destroy.Op.type, %T.9ff [template] +// CHECK:STDOUT: %impl.elem0.b2e: %.8eb = impl_witness_access %Destroy.lookup_impl_witness, element0 [template] +// CHECK:STDOUT: %ptr.983a2f.2: type = ptr_type %T.as_type.a11 [template] +// CHECK:STDOUT: %specific_impl_fn.b6b: = specific_impl_function %impl.elem0.b2e, @Destroy.Op(%T.9ff) [template] +// CHECK:STDOUT: %require_complete.a61: = require_complete_type %ptr.983a2f.2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -332,16 +332,16 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc4_36.1 [template = %pattern_type (constants.%pattern_type.d62)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4: = require_complete_type %T.as_type.loc4_36.1 [template = %require_complete.loc4 (constants.%require_complete.f78d44.1)] +// CHECK:STDOUT: %require_complete.loc4: = require_complete_type %T.as_type.loc4_36.1 [template = %require_complete.loc4 (constants.%require_complete.f78)] // CHECK:STDOUT: %ImplicitAs.type.loc14_3.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.loc4_36.1)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.57b)] -// 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.1, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.a2f397.2)] -// CHECK:STDOUT: %.loc14_3.6: type = fn_type_with_self_type constants.%Destroy.Op.type, %T.loc4_15.1 [template = %.loc14_3.6 (constants.%.8eb584.2)] -// CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.6 (%.8eb584.2) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e868.2)] -// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.Op(%T.loc4_15.1) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6bc42.2)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc4_36.1 [template = %ptr (constants.%ptr.983a2f.3)] -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %ptr [template = %require_complete.loc14 (constants.%require_complete.a61215.2)] +// CHECK:STDOUT: %.loc14_3.5: = access_member_action %ImplicitAs.type.loc14_3.1, Convert [template] +// CHECK:STDOUT: %.loc14_3.6: type = type_of_inst %.loc14_3.5 [template] +// 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: %.loc14_3.7: type = fn_type_with_self_type constants.%Destroy.Op.type, %T.loc4_15.1 [template = %.loc14_3.7 (constants.%.8eb)] +// CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.7 (%.8eb) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.Op(%T.loc4_15.1) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6b)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc4_36.1 [template = %ptr (constants.%ptr.983a2f.2)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %ptr [template = %require_complete.loc14 (constants.%require_complete.a61)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.a11)) { // CHECK:STDOUT: !entry: @@ -352,13 +352,13 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %v.var: ref @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = 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.as_type.a11)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.57b)] -// CHECK:STDOUT: %.loc14_3.1: @F.%.loc14_3.5 (@F.%.loc14_3.5) = splice_inst %.loc14_3.4 +// CHECK:STDOUT: %.loc14_3.1: @F.%.loc14_3.6 (@F.%.loc14_3.6) = splice_inst %.loc14_3.5 // CHECK:STDOUT: %.loc14_3.2: @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = converted %int_0, [concrete = ] // CHECK:STDOUT: assign %v.var, // CHECK:STDOUT: %.loc14_10.1: type = splice_block %.loc14_10.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] { // CHECK:STDOUT: %T.ref.loc14: %Destroy.type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T.9ff)] -// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] -// CHECK:STDOUT: %.loc14_10.2: type = converted %T.ref.loc14, %T.as_type.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] +// CHECK:STDOUT: %T.as_type.loc14_10: type = facet_access_type %T.ref.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] +// CHECK:STDOUT: %.loc14_10.2: type = converted %T.ref.loc14, %T.as_type.loc14_10 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = bind_name v, %v.var // CHECK:STDOUT: name_binding_decl { @@ -380,17 +380,19 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_3.4: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %w.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %w.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc22: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc22: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) -// CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.6 (%.8eb584.2) = impl_witness_access constants.%Destroy.lookup_impl_witness.a2f397.2, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e868.2)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %T.as_type.loc14_3: type = facet_access_type constants.%T.9ff [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] +// CHECK:STDOUT: %.loc14_3.3: type = converted constants.%T.9ff, %T.as_type.loc14_3 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] +// CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.7 (%.8eb) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e)] // 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, @Destroy.Op(constants.%T.9ff) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6bc42.2)] +// CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.Op(constants.%T.9ff) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6b)] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %v.var, %specific_impl_fn.loc14_3.1 -// CHECK:STDOUT: %addr.loc14: @F.%ptr (%ptr.983a2f.3) = addr_of %v.var -// CHECK:STDOUT: %.loc14_3.3: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr.loc14) +// CHECK:STDOUT: %addr.loc14: @F.%ptr (%ptr.983a2f.2) = addr_of %v.var +// CHECK:STDOUT: %.loc14_3.4: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr.loc14) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index cd0bbdc97f9f..e6764d485b16 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -66,11 +66,11 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.32d: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ab1: %AggregateT.as_type.as.Destroy.impl.Op.type.32d = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.ab1, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.32d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ab1: %DestroyT.as_type.as.Destroy.impl.Op.type.32d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ab1, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -194,11 +194,11 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc17_10.2(%.loc17_10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.ab1 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.ab1, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.ab1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ab1, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.260 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index e6e89613ebbd..a3a8dc37b1d2 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -101,15 +101,16 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7d5 [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %PartiallyConstant.type: type = fn_type @PartiallyConstant [concrete] // CHECK:STDOUT: %PartiallyConstant: %PartiallyConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -357,7 +358,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: br !if.expr.result.loc28(%ptr.loc28) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc28: -// CHECK:STDOUT: %.loc28: type = block_arg !if.expr.result.loc28 [concrete = constants.%ptr.235] +// CHECK:STDOUT: %.loc28_10: type = block_arg !if.expr.result.loc28 [concrete = constants.%ptr.235] // CHECK:STDOUT: br !.loc28_7 // CHECK:STDOUT: // CHECK:STDOUT: !.loc28_7: @@ -371,18 +372,20 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc29_10.2: = bound_method %.loc29_10.2, %specific_fn.loc29 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc29_10.2(%.loc29_10.2) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %w.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc28_3: = bound_method %w.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc28: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc28_3: %type_where = converted constants.%ptr.235, %facet_value.loc28 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc28: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc28_3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc28_3: %ptr.5d5 = addr_of %w.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc28_3(%addr.loc28_3) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc27_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_3.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28_3(%addr.loc28_3) +// CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %.loc27_3.2: %type_where = converted constants.%i32, %facet_value.loc27 [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc27_3.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc27: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc27_3.3(%addr.loc27) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_3.3(%addr.loc27) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -452,7 +455,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: br !if.expr.result.loc34(%ptr) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc34: -// CHECK:STDOUT: %.loc34: type = block_arg !if.expr.result.loc34 [concrete = constants.%ptr.235] +// CHECK:STDOUT: %.loc34_10: type = block_arg !if.expr.result.loc34 [concrete = constants.%ptr.235] // CHECK:STDOUT: br !.loc34_7 // CHECK:STDOUT: // CHECK:STDOUT: !.loc34_7: @@ -466,18 +469,20 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc35_10.2: = bound_method %.loc35_10.2, %specific_fn.loc35 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc35_10.2(%.loc35_10.2) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %w.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc34_3: = bound_method %w.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc34_3: %type_where = converted constants.%ptr.235, %facet_value.loc34 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc34_3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34_3: %ptr.5d5 = addr_of %w.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc34_3(%addr.loc34_3) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc33_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_3(%addr.loc34_3) +// CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %.loc33_3.2: %type_where = converted constants.%i32, %facet_value.loc33 [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index 1c2df87a1215..99c7338a4946 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -61,11 +61,11 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.a.b.501, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f75: %AggregateT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f75, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f75: %DestroyT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -188,11 +188,11 @@ fn F(cond: bool) { // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.ref(%.loc19_5) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.a.b.501, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%struct_type.a.b.501, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.f75 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f75, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f75 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.3ee = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) // CHECK:STDOUT: return // 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 ee931baa1c38..183932a93f78 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -126,17 +126,17 @@ class X(U:! type) { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.654: %type_where = facet_value %Param, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.654) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.934: %AggregateT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.654) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.934: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] // CHECK:STDOUT: %ptr.756: type = ptr_type %Param [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.24c: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.934, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.654) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.934, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.654) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -337,25 +337,25 @@ class X(U:! type) { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc22_20: %type_where = facet_value constants.%Param, () [concrete = constants.%facet_value.654] // CHECK:STDOUT: %.loc22_20.3: %type_where = converted constants.%Param, %facet_value.loc22_20 [concrete = constants.%facet_value.654] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22_20: = bound_method %.loc22_20.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.934 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.934, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.24c] -// CHECK:STDOUT: %bound_method.loc22_20: = bound_method %.loc22_20.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22_20: = bound_method %.loc22_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.934 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.934, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24c] +// CHECK:STDOUT: %bound_method.loc22_20: = bound_method %.loc22_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc22_20: %ptr.756 = addr_of %.loc22_20.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22_20: init %empty_tuple.type = call %bound_method.loc22_20(%addr.loc22_20) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22_20: init %empty_tuple.type = call %bound_method.loc22_20(%addr.loc22_20) // CHECK:STDOUT: %facet_value.loc22_3: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc22_3: %type_where = converted constants.%i32, %facet_value.loc22_3 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22_3: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22_3: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc22_3: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22_3: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22_3: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22_3) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Param, () [concrete = constants.%facet_value.654] // CHECK:STDOUT: %.loc21_20.3: %type_where = converted constants.%Param, %facet_value.loc21 [concrete = constants.%facet_value.654] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_20.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.934 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.934, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.24c] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_20.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.934 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.934, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24c] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.756 = addr_of %.loc21_20.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon index bc15d0215df9..42e2444f5789 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon @@ -187,12 +187,12 @@ fn F() { // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] // CHECK:STDOUT: %.672: type = fn_type_with_self_type %Z.Zero.type, %Z.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Point, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.e2d: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.51d: %AggregateT.as_type.as.Destroy.impl.Op.type.e2d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.51d: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d = struct_value () [concrete] // CHECK:STDOUT: %ptr.536: type = ptr_type %Point [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.51d, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -303,11 +303,11 @@ fn F() { // CHECK:STDOUT: %Point.as.Z.impl.Zero.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Point, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_5.5: %type_where = converted constants.%Point, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.51d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.51d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc25_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.51d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc25_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.536 = addr_of %.loc25_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon index 073a6362a5b7..67de1c07854d 100644 --- a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon @@ -255,12 +255,12 @@ class X { // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] // CHECK:STDOUT: %.142: type = fn_type_with_self_type %Z.Method.type, %Z.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Point, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.e2d: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.51d: %AggregateT.as_type.as.Destroy.impl.Op.type.e2d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.51d: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d = struct_value () [concrete] // CHECK:STDOUT: %ptr.536: type = ptr_type %Point [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.51d, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -444,11 +444,11 @@ class X { // CHECK:STDOUT: %Point.as.Z.impl.Method.call: init %empty_tuple.type = call %bound_method.loc29_16(%.loc29_7.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Point, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc29_5.5: %type_where = converted constants.%Point, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc29_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.51d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.51d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc29_5: = bound_method %.loc29_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc29_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.51d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc29_5: = bound_method %.loc29_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.536 = addr_of %.loc29_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc29_5(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc29_5(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index 787b0d2e35eb..3609d6ba79ce 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -45,12 +45,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -128,11 +128,11 @@ class C { // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_7.2: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index ca0e23517073..d200329123ea 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -332,10 +332,10 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.d.c.b36, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.80a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b26: %AggregateT.as_type.as.Destroy.impl.Op.type.80a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.80a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b26: %DestroyT.as_type.as.Destroy.impl.Op.type.80a = struct_value () [concrete] // CHECK:STDOUT: %ptr.eab: type = ptr_type %struct_type.d.c.b36 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,11 +399,11 @@ impl () as I({}) { // CHECK:STDOUT: %.loc10_48.12: init %struct_type.c.d.15a = converted %empty_tuple.type.as.I.impl.F.call, %.loc10_48.11 [concrete = constants.%struct] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.d.c.b36, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_48.13: %type_where = converted constants.%struct_type.d.c.b36, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_48.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.b26 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_48.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b26 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc10_48.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc10_48.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.eab = addr_of %.loc10_48.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %.loc10_48.12 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -666,10 +666,10 @@ impl () as I({}) { // CHECK:STDOUT: %A.as.X.impl.F.0afbb1.1: %A.as.X.impl.F.type.dc7bda.1 = struct_value () [concrete] // CHECK:STDOUT: %A.as.X.impl.F.type.dc7bda.2: type = fn_type @A.as.X.impl.F.loc23_14.2 [concrete] // CHECK:STDOUT: %A.as.X.impl.F.0afbb1.2: %A.as.X.impl.F.type.dc7bda.2 = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.68f: %AggregateT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -711,11 +711,11 @@ impl () as I({}) { // CHECK:STDOUT: %.loc23_14.5: %A = bind_value %.loc23_14.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_14.6: %type_where = converted constants.%B, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_14.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_14.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc23_14.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc23_14.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e79 = addr_of %.loc23_14.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1013,10 +1013,10 @@ impl () as I({}) { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.3e8bab.2: %empty_tuple.type.as.I.impl.F.type.109800.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.b.a.1b0, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ee6: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.696: %AggregateT.as_type.as.Destroy.impl.Op.type.ee6 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ee6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.696: %DestroyT.as_type.as.Destroy.impl.Op.type.ee6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.30d: type = ptr_type %struct_type.b.a.1b0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1068,11 +1068,11 @@ impl () as I({}) { // CHECK:STDOUT: %.loc10_29.12: init %struct_type.a.b.f95 = converted %empty_tuple.type.as.I.impl.F.call, %.loc10_29.11 [concrete = constants.%struct] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.b.a.1b0, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_29.13: %type_where = converted constants.%struct_type.b.a.1b0, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_29.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.696 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_29.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.696 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc10_29.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc10_29.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.30d = addr_of %.loc10_29.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %.loc10_29.12 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_thunk.carbon b/toolchain/check/testdata/impl/import_thunk.carbon index d620b13e5d47..049376997c6f 100644 --- a/toolchain/check/testdata/impl/import_thunk.carbon +++ b/toolchain/check/testdata/impl/import_thunk.carbon @@ -132,15 +132,19 @@ fn G() { // CHECK:STDOUT: %assoc0: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.725 [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.13320f.2, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.177: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.020: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb = struct_value () [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: %Destroy.lookup_impl_witness.947: = lookup_impl_witness %C.13320f.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.13320f.2, (%Destroy.lookup_impl_witness.947) [symbolic] -// CHECK:STDOUT: %.763: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.ea9: %.763 = impl_witness_access %Destroy.lookup_impl_witness.947, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c3e: = specific_impl_function %impl.elem0.ea9, @Destroy.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.13320f.2, (%Destroy.impl_witness.177) [symbolic] +// CHECK:STDOUT: %.f4e: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.020, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -157,6 +161,8 @@ fn G() { // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.import_ref.f99: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.import_ref.725: %Destroy.Op.type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%Destroy.Op] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -284,11 +290,12 @@ fn G() { // CHECK:STDOUT: %require_complete.1: = require_complete_type %C [symbolic = %require_complete.1 (constants.%require_complete.a35)] // CHECK:STDOUT: %C.val: @C.as.I.impl.F.loc8_17.2.%C (%C.13320f.2) = struct_value () [symbolic = %C.val (constants.%C.val)] // CHECK:STDOUT: %facet_value.2: %type_where = facet_value %C, () [symbolic = %facet_value.2 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.947)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.8: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.8 (constants.%.763)] -// CHECK:STDOUT: %impl.elem0.2: @C.as.I.impl.F.loc8_17.2.%.8 (%.763) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0.ea9)] -// CHECK:STDOUT: %specific_impl_fn.2: = specific_impl_function %impl.elem0.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn.c3e)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.177)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] +// CHECK:STDOUT: %.7: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.7 (constants.%.f4e)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.4eb)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @C.as.I.impl.F.loc8_17.2.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.4eb) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.020)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_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: @@ -307,12 +314,12 @@ fn G() { // CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.f99 [concrete = constants.%assoc0] // CHECK:STDOUT: %facet_value.1: %type_where = facet_value constants.%C.13320f.2, () [symbolic = %facet_value.2 (constants.%facet_value)] // CHECK:STDOUT: %.6: %type_where = converted constants.%C.13320f.2, %facet_value.1 [symbolic = %facet_value.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.1: @C.as.I.impl.F.loc8_17.2.%.8 (%.763) = impl_witness_access constants.%Destroy.lookup_impl_witness.947, element0 [symbolic = %impl.elem0.2 (constants.%impl.elem0.ea9)] -// CHECK:STDOUT: %bound_method.1: = bound_method %.3, %impl.elem0.1 -// CHECK:STDOUT: %specific_impl_fn.1: = specific_impl_function %impl.elem0.1, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.2 (constants.%specific_impl_fn.c3e)] -// CHECK:STDOUT: %bound_method.2: = bound_method %.3, %specific_impl_fn.1 +// CHECK:STDOUT: %impl.elem0: @C.as.I.impl.F.loc8_17.2.%.7 (%.f4e) = impl_witness_access constants.%Destroy.impl_witness.177, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.020)] +// CHECK:STDOUT: %bound_method.1: = bound_method %.3, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %bound_method.2: = bound_method %.3, %specific_fn // CHECK:STDOUT: %addr: @C.as.I.impl.F.loc8_17.2.%ptr (%ptr.40d) = addr_of %.3 -// CHECK:STDOUT: %.7: init %empty_tuple.type = call %bound_method.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -384,15 +391,19 @@ fn G() { // CHECK:STDOUT: %require_complete.a35: = require_complete_type %C.13320f.2 [symbolic] // CHECK:STDOUT: %C.as.I.impl.F.specific_fn.091: = specific_function %C.as.I.impl.F.e1c928.1, @C.as.I.impl.F.1(%Y) [symbolic] // CHECK:STDOUT: %C.val.56a: %C.13320f.2 = struct_value () [symbolic] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.2c0: %type_where = facet_value %C.13320f.2, () [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.5ce: = lookup_impl_witness %C.13320f.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.886: %Destroy.type = facet_value %C.13320f.2, (%Destroy.lookup_impl_witness.5ce) [symbolic] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.9f6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.2c0) [symbolic] +// CHECK:STDOUT: %Destroy.facet.3a2: %Destroy.type = facet_value %C.13320f.2, (%Destroy.impl_witness.9f6) [symbolic] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %.6b6: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.886 [symbolic] -// CHECK:STDOUT: %impl.elem0.adb: %.6b6 = impl_witness_access %Destroy.lookup_impl_witness.5ce, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.833: = specific_impl_function %impl.elem0.adb, @Destroy.Op(%Destroy.facet.886) [symbolic] +// CHECK:STDOUT: %.0fa: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.3a2 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.3ba: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.736: %DestroyT.as_type.as.Destroy.impl.Op.type.3ba = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bdb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.2c0) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ff5: %DestroyT.as_type.as.Destroy.impl.Op.type.bdb = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.52e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ff5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.2c0) [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: %I.impl_witness.a00: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_tuple) [concrete] @@ -407,18 +418,15 @@ fn G() { // CHECK:STDOUT: %pattern_type.186: type = pattern_type %C.607 [concrete] // CHECK:STDOUT: %C.as.I.impl.F.specific_fn.9d8118.2: = specific_function %C.as.I.impl.F.1dded6.1, @C.as.I.impl.F.1(%empty_tuple) [concrete] // CHECK:STDOUT: %C.val.12f: %C.607 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.3ba: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.736: %AggregateT.as_type.as.Destroy.impl.Op.type.3ba = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.637: %type_where = facet_value %C.607, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.b37: = impl_witness imports.%Destroy.impl_witness_table.d2f, @AggregateT.as_type.as.Destroy.impl(%facet_value.637) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.30b: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.637) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e24: %AggregateT.as_type.as.Destroy.impl.Op.type.30b = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.07b: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.637) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.30b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.637) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e24: %DestroyT.as_type.as.Destroy.impl.Op.type.30b = 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.fc9: %Destroy.type = facet_value %C.607, (%Destroy.impl_witness.b37) [concrete] -// CHECK:STDOUT: %.4a1: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.fc9 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.e24, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.637) [concrete] +// CHECK:STDOUT: %Destroy.facet.b25: %Destroy.type = facet_value %C.607, (%Destroy.impl_witness.07b) [concrete] +// CHECK:STDOUT: %.734: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b25 [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.60f: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e24, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.637) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -446,9 +454,9 @@ fn G() { // CHECK:STDOUT: %Main.import_ref.eb1c17.3: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Main.import_ref.eb1c17.4: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Main.F.162: @C.as.I.impl.%C.as.I.impl.F.type.1 (%C.as.I.impl.F.type.a1f290.1) = import_ref Main//b, F, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.1 (constants.%C.as.I.impl.F.e1c928.1)] +// CHECK:STDOUT: %Main.import_ref.19f: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.3ba) = import_ref Main//b, inst{{\d+}} [indirect], loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.736)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Main.import_ref.19f), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Main.import_ref.026: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.3ba) = import_ref Main//b, inst{{\d+}} [indirect], loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.736)] -// CHECK:STDOUT: %Destroy.impl_witness_table.d2f = impl_witness_table (%Main.import_ref.026), @AggregateT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -461,8 +469,6 @@ fn G() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.607, () [concrete = constants.%facet_value.637] -// CHECK:STDOUT: %.1: %type_where = converted constants.%C.607, %facet_value [concrete = constants.%facet_value.637] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "a.carbon"] { @@ -531,11 +537,11 @@ fn G() { // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %C.as.I.impl.F.specific_fn(%.loc7_16.7) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.607, () [concrete = constants.%facet_value.637] // CHECK:STDOUT: %.loc7_16.8: %type_where = converted constants.%C.607, %facet_value [concrete = constants.%facet_value.637] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_16.5, constants.%AggregateT.as_type.as.Destroy.impl.Op.e24 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e24, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.637) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc7_16.5, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_16.5, constants.%DestroyT.as_type.as.Destroy.impl.Op.e24 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e24, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.637) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.60f] +// CHECK:STDOUT: %bound_method: = bound_method %.loc7_16.5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.2ce = addr_of %.loc7_16.5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -564,11 +570,12 @@ fn G() { // CHECK:STDOUT: %require_complete.1: = require_complete_type %C [symbolic = %require_complete.1 (constants.%require_complete.a35)] // CHECK:STDOUT: %C.val: @C.as.I.impl.F.2.%C (%C.13320f.2) = struct_value () [symbolic = %C.val (constants.%C.val.56a)] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [symbolic = %facet_value (constants.%facet_value.2c0)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %C, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.5ce)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.886)] -// CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.1 (constants.%.6b6)] -// CHECK:STDOUT: %impl.elem0: @C.as.I.impl.F.2.%.1 (%.6b6) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0 (constants.%impl.elem0.adb)] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn.833)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.9f6)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.3a2)] +// CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.1 (constants.%.0fa)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.bdb)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @C.as.I.impl.F.2.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.bdb) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.ff5)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.52e)] // 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: @@ -638,11 +645,12 @@ fn G() { // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.357 // CHECK:STDOUT: %C.val => constants.%C.val.12f // CHECK:STDOUT: %facet_value => constants.%facet_value.637 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.b37 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.fc9 -// CHECK:STDOUT: %.1 => constants.%.4a1 -// CHECK:STDOUT: %impl.elem0 => constants.%AggregateT.as_type.as.Destroy.impl.Op.e24 -// CHECK:STDOUT: %specific_impl_fn => constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.07b +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.b25 +// CHECK:STDOUT: %.1 => constants.%.734 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.30b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.e24 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.60f // CHECK:STDOUT: %ptr => constants.%ptr.2ce // CHECK:STDOUT: %require_complete.2 => constants.%complete_type.e2c // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon index f0b35ba920cc..447322a7ee59 100644 --- a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon +++ b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon @@ -91,8 +91,8 @@ fn G() { // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T, @J [symbolic] // CHECK:STDOUT: %J.facet.10a: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %.4b9: type = fn_type_with_self_type %J.JJ.type, %J.facet.10a [symbolic] -// CHECK:STDOUT: %impl.elem0.366: %.4b9 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7b5: = specific_impl_function %impl.elem0.366, @J.JJ(%J.facet.10a) [symbolic] +// CHECK:STDOUT: %impl.elem0: %.4b9 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @J.JJ(%J.facet.10a) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -112,12 +112,12 @@ fn G() { // CHECK:STDOUT: %facet_value.d36: %facet_type = facet_value %C, (%I.impl_witness, %J.impl_witness) [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%facet_value.d36) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c6b: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c6b) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f2c: %AggregateT.as_type.as.Destroy.impl.Op.type.cb1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c6b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f2c: %DestroyT.as_type.as.Destroy.impl.Op.type.cb1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8e6: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f2c, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.c6b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f2c, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c6b) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -300,8 +300,8 @@ fn G() { // 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.10a)] // CHECK:STDOUT: %.loc26_69: type = fn_type_with_self_type constants.%J.JJ.type, %J.facet.loc26_33.2 [symbolic = %.loc26_69 (constants.%.4b9)] -// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.4b9) = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0.366)] -// CHECK:STDOUT: %specific_impl_fn.loc26_69.2: = specific_impl_function %impl.elem0.loc26_69.2, @J.JJ(%J.facet.loc26_33.2) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn.7b5)] +// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.4b9) = 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, @J.JJ(%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.1 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -329,9 +329,9 @@ fn G() { // 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: %impl.elem0.loc26_69.1: @F.%.loc26_69 (%.4b9) = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0.366)] +// CHECK:STDOUT: %impl.elem0.loc26_69.1: @F.%.loc26_69 (%.4b9) = 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, @J.JJ(constants.%J.facet.10a) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn.7b5)] +// CHECK:STDOUT: %specific_impl_fn.loc26_69.1: = specific_impl_function %impl.elem0.loc26_69.1, @J.JJ(constants.%J.facet.10a) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc26_73: = bound_method %t.ref, %specific_impl_fn.loc26_69.1 // CHECK:STDOUT: %.loc26_73: init %empty_tuple.type = call %bound_method.loc26_73(%t.ref) // CHECK:STDOUT: return @@ -392,18 +392,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc46_11.2) // CHECK:STDOUT: %facet_value.loc46_9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.c6b] // CHECK:STDOUT: %.loc46_9.5: %type_where = converted constants.%C, %facet_value.loc46_9 [concrete = constants.%facet_value.c6b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc46: = bound_method %.loc46_9.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.f2c -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f2c, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc46: = bound_method %.loc46_9.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc46: = bound_method %.loc46_9.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc46: = bound_method %.loc46_9.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc46: %ptr.8e6 = addr_of %.loc46_9.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc46: init %empty_tuple.type = call %bound_method.loc46(%addr.loc46) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc46: init %empty_tuple.type = call %bound_method.loc46(%addr.loc46) // CHECK:STDOUT: %facet_value.loc40: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.c6b] // CHECK:STDOUT: %.loc40_6.5: %type_where = converted constants.%C, %facet_value.loc40 [concrete = constants.%facet_value.c6b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc40: = bound_method %.loc40_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.f2c -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f2c, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc40_6: = bound_method %.loc40_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc40: = bound_method %.loc40_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc40_6: = bound_method %.loc40_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc40: %ptr.8e6 = addr_of %.loc40_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc40: init %empty_tuple.type = call %bound_method.loc40_6(%addr.loc40) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc40: init %empty_tuple.type = call %bound_method.loc40_6(%addr.loc40) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/import.carbon b/toolchain/check/testdata/impl/lookup/import.carbon index 2a1314a5092c..d4df916cdd95 100644 --- a/toolchain/check/testdata/impl/lookup/import.carbon +++ b/toolchain/check/testdata/impl/lookup/import.carbon @@ -1477,12 +1477,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] // CHECK:STDOUT: %.41c: type = fn_type_with_self_type %Y.K.type, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.241, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.925: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.290: %AggregateT.as_type.as.Destroy.impl.Op.type.925 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.925: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.290: %DestroyT.as_type.as.Destroy.impl.Op.type.925 = struct_value () [concrete] // CHECK:STDOUT: %ptr.301: type = ptr_type %AnyParam.241 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.290, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.290, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1635,11 +1635,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc14(%.loc14) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.241, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%AnyParam.241, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.290 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.290, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.290 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.290, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %obj.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1710,12 +1710,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.861, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.0b7: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.596: %AggregateT.as_type.as.Destroy.impl.Op.type.0b7 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0b7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.596: %DestroyT.as_type.as.Destroy.impl.Op.type.0b7 = struct_value () [concrete] // CHECK:STDOUT: %ptr.1ef: type = ptr_type %AnyParam.861 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.596, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.596, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1838,11 +1838,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc10(%.loc10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.861, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%AnyParam.861, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.596 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.596, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.596 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.596, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.1ef = addr_of %obj.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1922,12 +1922,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] // CHECK:STDOUT: %.507: type = fn_type_with_self_type %Y.K.type, %Y.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.0dd, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.846: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bde: %AggregateT.as_type.as.Destroy.impl.Op.type.846 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.846: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bde: %DestroyT.as_type.as.Destroy.impl.Op.type.846 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d96: type = ptr_type %AnyParam.0dd [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.bde, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bde, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2078,11 +2078,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc14(%.loc14) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.0dd, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%AnyParam.0dd, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bde -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.bde, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bde +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bde, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d96 = addr_of %obj.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2151,12 +2151,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.d71, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.1a0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1aa: %AggregateT.as_type.as.Destroy.impl.Op.type.1a0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1a0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1aa: %DestroyT.as_type.as.Destroy.impl.Op.type.1a0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8ee: type = ptr_type %AnyParam.d71 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.1aa, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.1aa, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2279,11 +2279,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc9(%.loc9) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.d71, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%AnyParam.d71, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.1aa -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.1aa, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1aa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.1aa, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8ee = addr_of %obj.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index df15308319b9..606c29811e76 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -288,12 +288,12 @@ fn Call() { // CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete] // CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -364,11 +364,11 @@ fn Call() { // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method.loc9_8(%.loc9_7.3) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_7.4: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_7.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_7: = bound_method %.loc9_7.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_7.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9_7: = bound_method %.loc9_7.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc9_7.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_7(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_7(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/use_assoc_const.carbon b/toolchain/check/testdata/impl/use_assoc_const.carbon index db4050089d8e..7be46af86a2f 100644 --- a/toolchain/check/testdata/impl/use_assoc_const.carbon +++ b/toolchain/check/testdata/impl/use_assoc_const.carbon @@ -1557,10 +1557,10 @@ fn F() { // CHECK:STDOUT: %impl.elem0.f6a: %.c47 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.456: = specific_impl_function %impl.elem0.f6a, @I.Op(%I.facet) [symbolic] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.af1: = lookup_impl_witness %impl.elem0.82c3d7.2, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %as_type.2a6e07.2, (%Destroy.lookup_impl_witness.af1) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem0.82c3d7.2, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %as_type.2a6e07.2, (%Destroy.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %.c2f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.dd1: %.c2f = impl_witness_access %Destroy.lookup_impl_witness.af1, element0 [symbolic] +// CHECK:STDOUT: %impl.elem0.dd1: %.c2f = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %ptr.d16: type = ptr_type %as_type.2a6e07.2 [symbolic] // CHECK:STDOUT: %specific_impl_fn.07a: = specific_impl_function %impl.elem0.dd1, @Destroy.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: %require_complete.0ed: = require_complete_type %ptr.d16 [symbolic] @@ -1747,10 +1747,10 @@ fn F() { // CHECK:STDOUT: %.loc13_16: type = fn_type_with_self_type constants.%I.Op.type, %I.facet.loc13_16 [symbolic = %.loc13_16 (constants.%.c47)] // CHECK:STDOUT: %impl.elem0.loc13_16.2: @GenericResult.%.loc13_16 (%.c47) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_16.2 (constants.%impl.elem0.f6a)] // CHECK:STDOUT: %specific_impl_fn.loc13_16.2: = specific_impl_function %impl.elem0.loc13_16.2, @I.Op(%I.facet.loc13_16) [symbolic = %specific_impl_fn.loc13_16.2 (constants.%specific_impl_fn.456)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem0.loc12_35.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.af1)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %impl.elem0.loc12_35.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %as_type.loc12_35.1, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc13_29.8: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc13_29.8 (constants.%.c2f)] -// CHECK:STDOUT: %impl.elem0.loc13_29.2: @GenericResult.%.loc13_29.8 (%.c2f) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] +// CHECK:STDOUT: %.loc13_29.9: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc13_29.9 (constants.%.c2f)] +// CHECK:STDOUT: %impl.elem0.loc13_29.2: @GenericResult.%.loc13_29.9 (%.c2f) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] // CHECK:STDOUT: %specific_impl_fn.loc13_29.2: = specific_impl_function %impl.elem0.loc13_29.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] // CHECK:STDOUT: %ptr: type = ptr_type %as_type.loc12_35.1 [symbolic = %ptr (constants.%ptr.d16)] // CHECK:STDOUT: %require_complete.loc13: = require_complete_type %ptr [symbolic = %require_complete.loc13 (constants.%require_complete.0ed)] @@ -1793,18 +1793,22 @@ fn F() { // CHECK:STDOUT: %.loc13_29.5: ref @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = temporary %.loc13_29.3, %.loc13_29.4 // CHECK:STDOUT: %.loc13_29.6: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = bind_value %.loc13_29.5 // CHECK:STDOUT: %.loc13_30.3: init @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = call %bound_method.loc13_30(%.loc13_15.6, %.loc13_29.6) to %.loc12_39 -// CHECK:STDOUT: %impl.elem0.loc13_29.1: @GenericResult.%.loc13_29.8 (%.c2f) = impl_witness_access constants.%Destroy.lookup_impl_witness.af1, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] +// CHECK:STDOUT: %as_type.loc13_29: type = facet_access_type constants.%impl.elem0.82c3d7.2 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] +// CHECK:STDOUT: %.loc13_29.7: type = converted constants.%impl.elem0.82c3d7.2, %as_type.loc13_29 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] +// CHECK:STDOUT: %impl.elem0.loc13_29.1: @GenericResult.%.loc13_29.9 (%.c2f) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] // CHECK:STDOUT: %bound_method.loc13_29.1: = bound_method %.loc13_29.5, %impl.elem0.loc13_29.1 // CHECK:STDOUT: %specific_impl_fn.loc13_29.1: = specific_impl_function %impl.elem0.loc13_29.1, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] // CHECK:STDOUT: %bound_method.loc13_29.2: = bound_method %.loc13_29.5, %specific_impl_fn.loc13_29.1 // CHECK:STDOUT: %addr.loc13_29: @GenericResult.%ptr (%ptr.d16) = addr_of %.loc13_29.5 -// CHECK:STDOUT: %.loc13_29.7: init %empty_tuple.type = call %bound_method.loc13_29.2(%addr.loc13_29) -// CHECK:STDOUT: %impl.elem0.loc13_15: @GenericResult.%.loc13_29.8 (%.c2f) = impl_witness_access constants.%Destroy.lookup_impl_witness.af1, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] +// CHECK:STDOUT: %.loc13_29.8: init %empty_tuple.type = call %bound_method.loc13_29.2(%addr.loc13_29) +// CHECK:STDOUT: %as_type.loc13_15: type = facet_access_type constants.%impl.elem0.82c3d7.2 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] +// CHECK:STDOUT: %.loc13_15.7: type = converted constants.%impl.elem0.82c3d7.2, %as_type.loc13_15 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] +// CHECK:STDOUT: %impl.elem0.loc13_15: @GenericResult.%.loc13_29.9 (%.c2f) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.dd1)] // CHECK:STDOUT: %bound_method.loc13_15.1: = bound_method %.loc13_15.5, %impl.elem0.loc13_15 // CHECK:STDOUT: %specific_impl_fn.loc13_15: = specific_impl_function %impl.elem0.loc13_15, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.07a)] // CHECK:STDOUT: %bound_method.loc13_15.2: = bound_method %.loc13_15.5, %specific_impl_fn.loc13_15 // CHECK:STDOUT: %addr.loc13_15: @GenericResult.%ptr (%ptr.d16) = addr_of %.loc13_15.5 -// CHECK:STDOUT: %.loc13_15.7: init %empty_tuple.type = call %bound_method.loc13_15.2(%addr.loc13_15) +// CHECK:STDOUT: %.loc13_15.8: init %empty_tuple.type = call %bound_method.loc13_15.2(%addr.loc13_15) // CHECK:STDOUT: return %.loc13_30.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -3690,26 +3694,26 @@ fn F() { // CHECK:STDOUT: %.Self.de3: %Z.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.de3 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.de3, @Z [symbolic_self] -// CHECK:STDOUT: %impl.elem0.a33: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %Z_where.type.ba1: type = facet_type <@Z where %impl.elem0.a33 = %C.f2e> [symbolic] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %Z_where.type.ba1: type = facet_type <@Z where %impl.elem0 = %C.f2e> [symbolic] // CHECK:STDOUT: %require_complete.ce8: = require_complete_type %Z_where.type.ba1 [symbolic] // CHECK:STDOUT: %Z.impl_witness.fb8: = impl_witness file.%Z.impl_witness_table, @T.as.Z.impl(%T) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %C.131: type = class_type @C, @C(%D) [concrete] -// CHECK:STDOUT: %Z_where.type.1b9: type = facet_type <@Z where %impl.elem0.a33 = %C.131> [concrete] +// CHECK:STDOUT: %Z_where.type.1b9: type = facet_type <@Z where %impl.elem0 = %C.131> [concrete] // CHECK:STDOUT: %complete_type.ac9: = complete_type_witness %Z_where.type.1b9 [concrete] // CHECK:STDOUT: %Z.impl_witness.4bd: = impl_witness file.%Z.impl_witness_table, @T.as.Z.impl(%D) [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %D, (%Z.impl_witness.4bd) [concrete] // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.131, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b3c: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.570: %AggregateT.as_type.as.Destroy.impl.Op.type.b3c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b3c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.570: %DestroyT.as_type.as.Destroy.impl.Op.type.b3c = struct_value () [concrete] // CHECK:STDOUT: %ptr.aaa: type = ptr_type %C.131 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.570, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.570, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3748,7 +3752,7 @@ fn F() { // CHECK:STDOUT: %X.ref: %Z.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.659] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_37: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.a33] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %T.ref.loc9_44: type = name_ref T, %T.loc9_14.1 [symbolic = %T.loc9_14.2 (constants.%T)] // CHECK:STDOUT: %C.loc9_45.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc9_45.2 (constants.%C.f2e)] @@ -3784,7 +3788,7 @@ fn F() { // CHECK:STDOUT: generic impl @T.as.Z.impl(%T.loc9_14.1: type) { // CHECK:STDOUT: %T.loc9_14.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_14.2 (constants.%T)] // CHECK:STDOUT: %C.loc9_45.2: type = class_type @C, @C(%T.loc9_14.2) [symbolic = %C.loc9_45.2 (constants.%C.f2e)] -// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z where constants.%impl.elem0.a33 = %C.loc9_45.2> [symbolic = %Z_where.type (constants.%Z_where.type.ba1)] +// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z where constants.%impl.elem0 = %C.loc9_45.2> [symbolic = %Z_where.type (constants.%Z_where.type.ba1)] // CHECK:STDOUT: %require_complete: = require_complete_type %Z_where.type [symbolic = %require_complete (constants.%require_complete.ce8)] // CHECK:STDOUT: %Z.impl_witness: = impl_witness file.%Z.impl_witness_table, @T.as.Z.impl(%T.loc9_14.2) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.fb8)] // CHECK:STDOUT: @@ -3843,11 +3847,11 @@ fn F() { // CHECK:STDOUT: %a: %C.131 = bind_name a, %.loc12_23.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.131, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_21.5: %type_where = converted constants.%C.131, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_21.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.570 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.570, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc12_21.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_21.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.570 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.570, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc12_21.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.aaa = addr_of %.loc12_21.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index 3d0dea73e212..18b96ffe075c 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -96,15 +96,16 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %bound_method.9cd: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e7e: %AggregateT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.e7e, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %facet_value.18f: %type_where = facet_value %array_type, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.18f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e7e: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.18f) [concrete] // CHECK:STDOUT: %ValueBinding.type: type = fn_type @ValueBinding [concrete] // CHECK:STDOUT: %ValueBinding: %ValueBinding.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -275,18 +276,20 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.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, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_8 [concrete = constants.%int_4.940] // CHECK:STDOUT: assign %.loc22_6, %.loc22_8 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %pa.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_3: = bound_method %pa.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc21_3: %type_where = converted constants.%ptr.235, %facet_value.loc21 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %pa.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc21_3: = bound_method %pa.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc21_3: %ptr.5d5 = addr_of %pa.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_3(%addr.loc21_3) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21_3(%addr.loc21_3) +// CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%array_type, %facet_value.loc18 [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18: %ptr.f01 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -380,20 +383,20 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc32_7.2: %i32 = converted %int_0.loc32, %.loc32_7.1 [concrete = constants.%int_0.6a9] // 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: %facet_value.loc32: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc32_5.3: %type_where = converted constants.%array_type, %facet_value.loc32 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %.loc32_5.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_5: = bound_method %.loc32_5.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %facet_value.loc32: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %.loc32_5.3: %type_where = converted constants.%array_type, %facet_value.loc32 [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %.loc32_5.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] +// CHECK:STDOUT: %bound_method.loc32_5: = bound_method %.loc32_5.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc32: %ptr.f01 = addr_of %.loc32_5.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_5(%addr.loc32) -// CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%array_type, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_5(%addr.loc32) +// CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%array_type, %facet_value.loc26 [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] +// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.f01 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index 07da6962b451..af88266a8d24 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -92,15 +92,16 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %bound_method.9cd: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e7e: %AggregateT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.e7e, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.18f: %type_where = facet_value %array_type, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.18f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e7e: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.18f) [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -271,30 +272,34 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.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, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc41_10 [concrete = constants.%int_4.940] // CHECK:STDOUT: assign %.loc41_8.2, %.loc41_10 -// CHECK:STDOUT: %facet_value.loc41: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc41_5.3: %type_where = converted constants.%array_type, %facet_value.loc41 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_5.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc41_5: = bound_method %.loc41_5.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %facet_value.loc41: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %.loc41_5.3: %type_where = converted constants.%array_type, %facet_value.loc41 [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_5.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] +// CHECK:STDOUT: %bound_method.loc41_5: = bound_method %.loc41_5.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.f01 = addr_of %.loc41_5.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_5(%addr.loc41) -// CHECK:STDOUT: %facet_value.loc36: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc36_21.3: %type_where = converted constants.%array_type, %facet_value.loc36 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %.loc36_21.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e7e, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc36_21: = bound_method %.loc36_21.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_5(%addr.loc41) +// CHECK:STDOUT: %facet_value.loc36_21: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %.loc36_21.3: %type_where = converted constants.%array_type, %facet_value.loc36_21 [concrete = constants.%facet_value.18f] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36_21: = bound_method %.loc36_21.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] +// CHECK:STDOUT: %bound_method.loc36_21: = bound_method %.loc36_21.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc36_21: %ptr.f01 = addr_of %.loc36_21.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_21(%addr.loc36_21) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc36: = bound_method %pf.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc36_3: = bound_method %pf.var, %ptr.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36_21: init %empty_tuple.type = call %bound_method.loc36_21(%addr.loc36_21) +// CHECK:STDOUT: %facet_value.loc36_3: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc36_3: %type_where = converted constants.%ptr.235, %facet_value.loc36_3 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36_3: = bound_method %pf.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc36_3: = bound_method %pf.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc36_3: %ptr.5d5 = addr_of %pf.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_3(%addr.loc36_3) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc23: = bound_method %pb.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %pb.var, %ptr.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36_3: init %empty_tuple.type = call %bound_method.loc36_3(%addr.loc36_3) +// CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc23_3: %type_where = converted constants.%ptr.235, %facet_value.loc23 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %pb.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %pb.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23_3: %ptr.5d5 = addr_of %pb.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_name_not_found.carbon b/toolchain/check/testdata/index/fail_name_not_found.carbon index e7b237c475c4..027e4a513113 100644 --- a/toolchain/check/testdata/index/fail_name_not_found.carbon +++ b/toolchain/check/testdata/index/fail_name_not_found.carbon @@ -33,12 +33,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -79,11 +79,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/as_type_of_type.carbon b/toolchain/check/testdata/interface/as_type_of_type.carbon index a7a2be702b9e..8fc269e035f7 100644 --- a/toolchain/check/testdata/interface/as_type_of_type.carbon +++ b/toolchain/check/testdata/interface/as_type_of_type.carbon @@ -44,13 +44,19 @@ fn F(T:! Empty) { // CHECK:STDOUT: %pattern_type.ae3: type = pattern_type %ptr.2b9 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.2b9, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.1c6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d4f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.970: %DestroyT.as_type.as.Destroy.impl.Op.type.d4f = struct_value () [symbolic] // CHECK:STDOUT: %ptr.886: type = ptr_type %ptr.2b9 [symbolic] // CHECK:STDOUT: %require_complete.67e: = require_complete_type %ptr.886 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.85e: = lookup_impl_witness %ptr.2b9, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.2b9, (%Destroy.lookup_impl_witness.85e) [symbolic] -// CHECK:STDOUT: %.2e5: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.ceb: %.2e5 = impl_witness_access %Destroy.lookup_impl_witness.85e, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.aea: = specific_impl_function %impl.elem0.ceb, @Destroy.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.2b9, (%Destroy.impl_witness.1c6) [symbolic] +// CHECK:STDOUT: %.8dd: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.970, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -60,6 +66,8 @@ fn F(T:! Empty) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -118,11 +126,13 @@ fn F(T:! Empty) { // CHECK:STDOUT: %ptr.loc22_11.2: type = ptr_type %T.as_type.loc22_11.2 [symbolic = %ptr.loc22_11.2 (constants.%ptr.2b9)] // CHECK:STDOUT: %require_complete.loc22_11: = require_complete_type %ptr.loc22_11.2 [symbolic = %require_complete.loc22_11 (constants.%require_complete.1f4)] // CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc22_11.2 [symbolic = %pattern_type (constants.%pattern_type.ae3)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc22_11.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.85e)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc22_11.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc22_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_3.2 (constants.%.2e5)] -// CHECK:STDOUT: %impl.elem0.loc22_3.2: @F.%.loc22_3.2 (%.2e5) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.ceb)] -// CHECK:STDOUT: %specific_impl_fn.loc22_3.2: = specific_impl_function %impl.elem0.loc22_3.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.aea)] +// CHECK:STDOUT: %facet_value.loc22_3.2: %type_where = facet_value %ptr.loc22_11.2, () [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.1c6)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc22_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] +// CHECK:STDOUT: %.loc22_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_3.2 (constants.%.8dd)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.d4f)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.d4f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.970)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc22_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %ptr.loc22_3: type = ptr_type %ptr.loc22_11.2 [symbolic = %ptr.loc22_3 (constants.%ptr.886)] // CHECK:STDOUT: %require_complete.loc22_3: = require_complete_type %ptr.loc22_3 [symbolic = %require_complete.loc22_3 (constants.%require_complete.67e)] // CHECK:STDOUT: @@ -140,12 +150,14 @@ fn F(T:! Empty) { // CHECK:STDOUT: %ptr.loc22_11.1: type = ptr_type %.loc22_11.2 [symbolic = %ptr.loc22_11.2 (constants.%ptr.2b9)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref @F.%ptr.loc22_11.2 (%ptr.2b9) = bind_name x, %x.var -// CHECK:STDOUT: %impl.elem0.loc22_3.1: @F.%.loc22_3.2 (%.2e5) = impl_witness_access constants.%Destroy.lookup_impl_witness.85e, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.ceb)] -// CHECK:STDOUT: %bound_method.loc22_3.1: = bound_method %x.var, %impl.elem0.loc22_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc22_3.1: = specific_impl_function %impl.elem0.loc22_3.1, @Destroy.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.aea)] -// CHECK:STDOUT: %bound_method.loc22_3.2: = bound_method %x.var, %specific_impl_fn.loc22_3.1 +// CHECK:STDOUT: %facet_value.loc22_3.1: %type_where = facet_value constants.%ptr.2b9, () [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %.loc22_3.1: %type_where = converted constants.%ptr.2b9, %facet_value.loc22_3.1 [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc22_3.2 (%.8dd) = impl_witness_access constants.%Destroy.impl_witness.1c6, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.970)] +// CHECK:STDOUT: %bound_method.loc22_3.1: = bound_method %x.var, %impl.elem0 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %bound_method.loc22_3.2: = bound_method %x.var, %specific_fn // CHECK:STDOUT: %addr: @F.%ptr.loc22_3 (%ptr.886) = addr_of %x.var -// CHECK:STDOUT: %.loc22_3.1: init %empty_tuple.type = call %bound_method.loc22_3.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/compound_member_access.carbon b/toolchain/check/testdata/interface/compound_member_access.carbon index 46d251587c26..d37eb41d5459 100644 --- a/toolchain/check/testdata/interface/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/compound_member_access.carbon @@ -1211,12 +1211,12 @@ fn Works() { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1352,25 +1352,25 @@ fn Works() { // CHECK:STDOUT: %.loc38_32: %A.type = converted %.loc38_8, [concrete = ] // CHECK:STDOUT: %facet_value.loc38: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc38_6.5: %type_where = converted constants.%C, %facet_value.loc38 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc38_6: = bound_method %.loc38_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc38_6: = bound_method %.loc38_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc38: %ptr.019 = addr_of %.loc38_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38_6(%addr.loc38) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38_6(%addr.loc38) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_6.5: %type_where = converted constants.%C, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc30_6: = bound_method %.loc30_6.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc30_6: = bound_method %.loc30_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.019 = addr_of %.loc30_6.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_6(%addr.loc30) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_6(%addr.loc30) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_5.5: %type_where = converted constants.%C, %facet_value.loc22 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_5: = bound_method %.loc22_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc22_5: = bound_method %.loc22_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.019 = addr_of %.loc22_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5(%addr.loc22) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5(%addr.loc22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/default_fn.carbon b/toolchain/check/testdata/interface/default_fn.carbon index d021a513a95d..bee2a889c36a 100644 --- a/toolchain/check/testdata/interface/default_fn.carbon +++ b/toolchain/check/testdata/interface/default_fn.carbon @@ -51,12 +51,12 @@ class C { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.fa9: type = fn_type_with_self_type %I.F.type, %I.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -163,11 +163,11 @@ class C { // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method.loc21(%.loc21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_7.2: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc20: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc20: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index 0688d3444609..5db091e98838 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -153,24 +153,24 @@ fn CallIndirect() { // CHECK:STDOUT: %Y.as.A.impl.F.specific_fn: = specific_function %Y.as.A.impl.F, @Y.as.A.impl.F(%Z) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.352: %type_where = facet_value %tuple.type.092, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.89a: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value.352) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ec5: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.352) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ed3: %AggregateT.as_type.as.Destroy.impl.Op.type.ec5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.89a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.352) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ec5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.352) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ed3: %DestroyT.as_type.as.Destroy.impl.Op.type.ec5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5df: type = ptr_type %tuple.type.092 [concrete] // CHECK:STDOUT: %complete_type.aab: = complete_type_witness %ptr.5df [concrete] // CHECK:STDOUT: %Destroy.facet.d0e: %Destroy.type = facet_value %tuple.type.092, (%Destroy.impl_witness.89a) [concrete] // CHECK:STDOUT: %.f61: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.d0e [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.71f: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.ed3, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.352) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.71f: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ed3, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.352) [concrete] // CHECK:STDOUT: %facet_value.4e3: %type_where = facet_value %Z, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.18a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.dd5: %AggregateT.as_type.as.Destroy.impl.Op.type.18a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.18a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dd5: %DestroyT.as_type.as.Destroy.impl.Op.type.18a = struct_value () [concrete] // CHECK:STDOUT: %complete_type.d3e: = complete_type_witness %ptr.fb6 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e7d: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.dd5, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] // CHECK:STDOUT: %T.7bf: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.809: type = pattern_type %A.type.0a4 [concrete] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] @@ -184,13 +184,14 @@ fn CallIndirect() { // CHECK:STDOUT: %specific_impl_fn.304: = specific_impl_function %impl.elem0.dd2, @A.F(%X, %T.7bf, %Z) [symbolic] // CHECK:STDOUT: %require_complete.6ed: = require_complete_type %tuple.type.af6 [symbolic] // CHECK:STDOUT: %facet_value.caf: %type_where = facet_value %tuple.type.af6, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.cbf: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.caf) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a49: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.caf) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5ab: %DestroyT.as_type.as.Destroy.impl.Op.type.a49 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.fd2: type = ptr_type %tuple.type.af6 [symbolic] // CHECK:STDOUT: %require_complete.b2a: = require_complete_type %ptr.fd2 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.47b: = lookup_impl_witness %tuple.type.af6, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.aef: %Destroy.type = facet_value %tuple.type.af6, (%Destroy.lookup_impl_witness.47b) [symbolic] -// CHECK:STDOUT: %.650: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.aef [symbolic] -// CHECK:STDOUT: %impl.elem0.142: %.650 = impl_witness_access %Destroy.lookup_impl_witness.47b, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.fc8: = specific_impl_function %impl.elem0.142, @Destroy.Op(%Destroy.facet.aef) [symbolic] +// CHECK:STDOUT: %Destroy.facet.679: %Destroy.type = facet_value %tuple.type.af6, (%Destroy.impl_witness.cbf) [symbolic] +// CHECK:STDOUT: %.b6d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.679 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b61: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5ab, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.caf) [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) [concrete] @@ -215,8 +216,8 @@ fn CallIndirect() { // CHECK:STDOUT: %Core.import_ref.0e4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.31ff4e.1) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.8a8b1a.1)] // CHECK:STDOUT: %Copy.impl_witness_table.53c = impl_witness_table (%Core.import_ref.0e4), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -261,8 +262,6 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc26_16.2: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic = %T.loc26_16.1 (constants.%T.7bf)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {} {} -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.092, () [concrete = constants.%facet_value.352] -// CHECK:STDOUT: %.loc28: %type_where = converted constants.%tuple.type.092, %facet_value [concrete = constants.%facet_value.352] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @A(%T.loc5_13.2: type) { @@ -458,18 +457,18 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc23_22.2: ref %tuple.type.092 = temporary %.loc23_22.1, %Y.as.A.impl.F.call // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%tuple.type.092, () [concrete = constants.%facet_value.352] // CHECK:STDOUT: %.loc23_22.3: %type_where = converted constants.%tuple.type.092, %facet_value.loc23 [concrete = constants.%facet_value.352] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_22.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.ed3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.ed3, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.352) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.71f] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %.loc23_22.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_22.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.ed3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ed3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.352) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %.loc23_22.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc23_22: %ptr.5df = addr_of %.loc23_22.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23_22) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23_22) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc22: %type_where = converted constants.%Z, %facet_value.loc22 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %u.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %u.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %u.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] +// CHECK:STDOUT: %bound_method.loc22: = bound_method %u.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc22: %ptr.fb6 = addr_of %u.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -485,11 +484,12 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%ptr.fb6) [symbolic = %tuple.type (constants.%tuple.type.af6)] // CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.6ed)] // CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.caf)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.47b)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.aef)] -// CHECK:STDOUT: %.loc28_12.6: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.6 (constants.%.650)] -// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.6 (%.650) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.142)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.fc8)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.cbf)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.679)] +// CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.5 (constants.%.b6d)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.a49)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @CallGeneric.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.a49) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.5ab)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b61)] // CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.fd2)] // CHECK:STDOUT: %require_complete.loc28_12.2: = require_complete_type %ptr [symbolic = %require_complete.loc28_12.2 (constants.%require_complete.b2a)] // CHECK:STDOUT: @@ -517,19 +517,19 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc28_12.3: ref @CallGeneric.%tuple.type (%tuple.type.af6) = temporary %.loc28_12.1, %.loc28_12.2 // CHECK:STDOUT: %facet_value.loc28_12.1: %type_where = facet_value constants.%tuple.type.af6, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.caf)] // CHECK:STDOUT: %.loc28_12.4: %type_where = converted constants.%tuple.type.af6, %facet_value.loc28_12.1 [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.caf)] -// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.6 (%.650) = impl_witness_access constants.%Destroy.lookup_impl_witness.47b, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.142)] -// CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.3, %impl.elem0.loc28_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.Op(constants.%Destroy.facet.aef) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.fc8)] -// CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.3, %specific_impl_fn.loc28_12.1 +// CHECK:STDOUT: %impl.elem0.loc28_12: @CallGeneric.%.loc28_12.5 (%.b6d) = impl_witness_access constants.%Destroy.impl_witness.cbf, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.5ab)] +// CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.3, %impl.elem0.loc28_12 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc28_12, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.caf) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b61)] +// CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.3, %specific_fn // CHECK:STDOUT: %addr.loc28_12: @CallGeneric.%ptr (%ptr.fd2) = addr_of %.loc28_12.3 -// CHECK:STDOUT: %.loc28_12.5: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc27: %type_where = converted constants.%Z, %facet_value.loc27 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %u.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc27: = bound_method %u.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %u.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] +// CHECK:STDOUT: %bound_method.loc27: = bound_method %u.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27: %ptr.fb6 = addr_of %u.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -642,11 +642,12 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type => constants.%tuple.type.092 // CHECK:STDOUT: %require_complete.loc28_12.1 => constants.%complete_type.05d // CHECK:STDOUT: %facet_value.loc28_12.2 => constants.%facet_value.352 -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.89a +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.89a // CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.d0e -// CHECK:STDOUT: %.loc28_12.6 => constants.%.f61 -// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.ed3 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.71f +// CHECK:STDOUT: %.loc28_12.5 => constants.%.f61 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.ec5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.ed3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.71f // CHECK:STDOUT: %ptr => constants.%ptr.5df // CHECK:STDOUT: %require_complete.loc28_12.2 => constants.%complete_type.aab // CHECK:STDOUT: } @@ -739,24 +740,24 @@ fn CallIndirect() { // CHECK:STDOUT: %Z.val: %Z = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.71a: %type_where = facet_value %tuple.type.415, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.37a: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value.71a) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d92: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.71a) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f1a: %AggregateT.as_type.as.Destroy.impl.Op.type.d92 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.37a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.71a) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d92: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.71a) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f1a: %DestroyT.as_type.as.Destroy.impl.Op.type.d92 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ad9: type = ptr_type %tuple.type.415 [concrete] // CHECK:STDOUT: %complete_type.e23: = complete_type_witness %ptr.ad9 [concrete] // CHECK:STDOUT: %Destroy.facet.684: %Destroy.type = facet_value %tuple.type.415, (%Destroy.impl_witness.37a) [concrete] // CHECK:STDOUT: %.27f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.684 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.578: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f1a, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.71a) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.578: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f1a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.71a) [concrete] // CHECK:STDOUT: %facet_value.4e3: %type_where = facet_value %Z, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.18a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.dd5: %AggregateT.as_type.as.Destroy.impl.Op.type.18a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.18a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dd5: %DestroyT.as_type.as.Destroy.impl.Op.type.18a = struct_value () [concrete] // CHECK:STDOUT: %ptr.fb6: type = ptr_type %Z [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e7d: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.dd5, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] // CHECK:STDOUT: %T.7bf: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.809: type = pattern_type %A.type.0a4 [concrete] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] @@ -764,20 +765,21 @@ fn CallIndirect() { // CHECK:STDOUT: %T.as_type: type = facet_access_type %T.7bf [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.7bf, @A, @A(%X) [symbolic] // CHECK:STDOUT: %.0c6: type = fn_type_with_self_type %A.F.type.13d, %T.7bf [symbolic] -// CHECK:STDOUT: %impl.elem0.dd2: %.0c6 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %impl.elem0: %.0c6 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %tuple.type.5a1: type = tuple_type (type, %A.type.0a4, type) [concrete] // CHECK:STDOUT: %tuple.type.780: type = tuple_type (%X, %T.as_type, %Z) [symbolic] // CHECK:STDOUT: %pattern_type.f87: type = pattern_type %tuple.type.780 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.304: = specific_impl_function %impl.elem0.dd2, @A.F(%X, %T.7bf, %Z) [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @A.F(%X, %T.7bf, %Z) [symbolic] // CHECK:STDOUT: %require_complete.4ef: = require_complete_type %tuple.type.780 [symbolic] // CHECK:STDOUT: %facet_value.52b: %type_where = facet_value %tuple.type.780, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.aa0: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.52b) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.52b) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.24b: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc = struct_value () [symbolic] // CHECK:STDOUT: %ptr.563: type = ptr_type %tuple.type.780 [symbolic] // CHECK:STDOUT: %require_complete.147: = require_complete_type %ptr.563 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.295: = lookup_impl_witness %tuple.type.780, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.be7: %Destroy.type = facet_value %tuple.type.780, (%Destroy.lookup_impl_witness.295) [symbolic] -// CHECK:STDOUT: %.6b1: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.be7 [symbolic] -// CHECK:STDOUT: %impl.elem0.f91: %.6b1 = impl_witness_access %Destroy.lookup_impl_witness.295, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.bf8: = specific_impl_function %impl.elem0.f91, @Destroy.Op(%Destroy.facet.be7) [symbolic] +// CHECK:STDOUT: %Destroy.facet.324: %Destroy.type = facet_value %tuple.type.780, (%Destroy.impl_witness.aa0) [symbolic] +// CHECK:STDOUT: %.a30: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.324 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2bf: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.24b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.52b) [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.cdd) [concrete] @@ -791,8 +793,8 @@ fn CallIndirect() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -852,8 +854,6 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc27_16.2: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic = %T.loc27_16.1 (constants.%T.7bf)] // CHECK:STDOUT: } // CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {} {} -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.415, () [concrete = constants.%facet_value.71a] -// CHECK:STDOUT: %.loc28: %type_where = converted constants.%tuple.type.415, %facet_value [concrete = constants.%facet_value.71a] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic interface @A(%T.loc5_13.2: type) { @@ -1054,18 +1054,18 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc24_39.2: ref %tuple.type.415 = temporary %.loc24_39.1, %tuple.type.as.A.impl.F.call // CHECK:STDOUT: %facet_value.loc24_39: %type_where = facet_value constants.%tuple.type.415, () [concrete = constants.%facet_value.71a] // CHECK:STDOUT: %.loc24_39.3: %type_where = converted constants.%tuple.type.415, %facet_value.loc24_39 [concrete = constants.%facet_value.71a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc24_39: = bound_method %.loc24_39.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.f1a -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f1a, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.71a) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.578] -// CHECK:STDOUT: %bound_method.loc24_39: = bound_method %.loc24_39.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24_39: = bound_method %.loc24_39.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.f1a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f1a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.71a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.578] +// CHECK:STDOUT: %bound_method.loc24_39: = bound_method %.loc24_39.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24_39: %ptr.ad9 = addr_of %.loc24_39.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc24_39: init %empty_tuple.type = call %bound_method.loc24_39(%addr.loc24_39) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24_39: init %empty_tuple.type = call %bound_method.loc24_39(%addr.loc24_39) // CHECK:STDOUT: %facet_value.loc24_38: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc24_38.7: %type_where = converted constants.%Z, %facet_value.loc24_38 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc24_38: = bound_method %.loc24_38.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc24_38: = bound_method %.loc24_38.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24_38: = bound_method %.loc24_38.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] +// CHECK:STDOUT: %bound_method.loc24_38: = bound_method %.loc24_38.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc24_38: %ptr.fb6 = addr_of %.loc24_38.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc24_38: init %empty_tuple.type = call %bound_method.loc24_38(%addr.loc24_38) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24_38: init %empty_tuple.type = call %bound_method.loc24_38(%addr.loc24_38) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1076,16 +1076,17 @@ fn CallIndirect() { // 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: %.loc28_4.3: type = fn_type_with_self_type constants.%A.F.type.13d, %T.loc27_16.1 [symbolic = %.loc28_4.3 (constants.%.0c6)] -// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %T.loc27_16.1, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] +// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %T.loc27_16.1, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.780)] // CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.4ef)] // CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.52b)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.295)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.be7)] -// CHECK:STDOUT: %.loc28_12.6: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.6 (constants.%.6b1)] -// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.6 (%.6b1) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.f91)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.bf8)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.aa0)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.324)] +// CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.5 (constants.%.a30)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.7cc)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @CallGeneric.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.7cc) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.24b)] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2bf)] // CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.563)] // CHECK:STDOUT: %require_complete.loc28_12.2: = require_complete_type %ptr [symbolic = %require_complete.loc28_12.2 (constants.%require_complete.147)] // CHECK:STDOUT: @@ -1096,10 +1097,10 @@ fn CallIndirect() { // 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)] // CHECK:STDOUT: %.loc28_4.2: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] +// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %.loc28_11.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%T.7bf, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%T.7bf, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.780) = temporary_storage // CHECK:STDOUT: %.loc28_11.2: ref %Z = temporary_storage // CHECK:STDOUT: %.loc28_11.3: init %Z = class_init (), %.loc28_11.2 [concrete = constants.%Z.val] @@ -1110,19 +1111,19 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc28_12.3: ref @CallGeneric.%tuple.type (%tuple.type.780) = temporary %.loc28_12.1, %.loc28_12.2 // CHECK:STDOUT: %facet_value.loc28_12.1: %type_where = facet_value constants.%tuple.type.780, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.52b)] // CHECK:STDOUT: %.loc28_12.4: %type_where = converted constants.%tuple.type.780, %facet_value.loc28_12.1 [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.52b)] -// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.6 (%.6b1) = impl_witness_access constants.%Destroy.lookup_impl_witness.295, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.f91)] -// CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.3, %impl.elem0.loc28_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.Op(constants.%Destroy.facet.be7) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.bf8)] -// CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.3, %specific_impl_fn.loc28_12.1 +// CHECK:STDOUT: %impl.elem0.loc28_12: @CallGeneric.%.loc28_12.5 (%.a30) = impl_witness_access constants.%Destroy.impl_witness.aa0, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.24b)] +// CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.3, %impl.elem0.loc28_12 +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc28_12, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.52b) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2bf)] +// CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.3, %specific_fn // CHECK:STDOUT: %addr.loc28_12: @CallGeneric.%ptr (%ptr.563) = addr_of %.loc28_12.3 -// CHECK:STDOUT: %.loc28_12.5: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28_12: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) // CHECK:STDOUT: %facet_value.loc28_11: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc28_11.7: %type_where = converted constants.%Z, %facet_value.loc28_11 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_11.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.dd5, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc28_11: = bound_method %.loc28_11.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_11.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] +// CHECK:STDOUT: %bound_method.loc28_11: = bound_method %.loc28_11.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc28_11: %ptr.fb6 = addr_of %.loc28_11.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc28_11(%addr.loc28_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28_11: init %empty_tuple.type = call %bound_method.loc28_11(%addr.loc28_11) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1285,11 +1286,12 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type => constants.%tuple.type.415 // CHECK:STDOUT: %require_complete.loc28_12.1 => constants.%complete_type.aa8 // CHECK:STDOUT: %facet_value.loc28_12.2 => constants.%facet_value.71a -// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.impl_witness.37a +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.37a // CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.684 -// CHECK:STDOUT: %.loc28_12.6 => constants.%.27f -// CHECK:STDOUT: %impl.elem0.loc28_12.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.f1a -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2 => constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.578 +// CHECK:STDOUT: %.loc28_12.5 => constants.%.27f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.d92 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.f1a +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.578 // CHECK:STDOUT: %ptr => constants.%ptr.ad9 // CHECK:STDOUT: %require_complete.loc28_12.2 => constants.%complete_type.e23 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/builtins.carbon b/toolchain/check/testdata/interop/cpp/builtins.carbon index aad845ade5aa..63f5b09ab844 100644 --- a/toolchain/check/testdata/interop/cpp/builtins.carbon +++ b/toolchain/check/testdata/interop/cpp/builtins.carbon @@ -554,10 +554,10 @@ fn F() { // CHECK:STDOUT: %ptr.d47: type = ptr_type %unsigned_int [concrete] // CHECK:STDOUT: %unsigned_int.foo.type: type = fn_type @unsigned_int.foo [concrete] // CHECK:STDOUT: %unsigned_int.foo: %unsigned_int.foo.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %unsigned_int, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6ba: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e27: %AggregateT.as_type.as.Destroy.impl.Op.type.6ba = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ba: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e27: %DestroyT.as_type.as.Destroy.impl.Op.type.6ba = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -603,11 +603,11 @@ fn F() { // CHECK:STDOUT: %x: %u32 = bind_name x, %.loc13_33.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%unsigned_int, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3: %type_where = converted constants.%unsigned_int, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %unsigned_int.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e27 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %unsigned_int.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e27 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %unsigned_int.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc12: = bound_method %unsigned_int.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc12: %ptr.d47 = addr_of %unsigned_int.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/access.carbon b/toolchain/check/testdata/interop/cpp/class/access.carbon index aab808ba984b..94d089353773 100644 --- a/toolchain/check/testdata/interop/cpp/class/access.carbon +++ b/toolchain/check/testdata/interop/cpp/class/access.carbon @@ -532,10 +532,10 @@ fn F() { // CHECK:STDOUT: %empty_struct.b85: %.cd1 = struct_value () [concrete] // CHECK:STDOUT: %C.foo.type: type = fn_type @C.foo [concrete] // CHECK:STDOUT: %C.foo: %C.foo.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -570,11 +570,11 @@ fn F() { // CHECK:STDOUT: %C.foo.call: init %empty_tuple.type = call imports.%C.foo.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.d9e = addr_of %.loc8_11.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/constructor.carbon b/toolchain/check/testdata/interop/cpp/class/constructor.carbon index 65e117c8b2a8..7a7faf0b6804 100644 --- a/toolchain/check/testdata/interop/cpp/class/constructor.carbon +++ b/toolchain/check/testdata/interop/cpp/class/constructor.carbon @@ -280,10 +280,10 @@ fn F() { // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -321,11 +321,11 @@ fn F() { // CHECK:STDOUT: %c: %C = bind_name c, %.loc8_26.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_26.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_26.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_26.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_26.2: %ptr.d9e = addr_of %.loc8_26.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_26.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_26.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -361,10 +361,10 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.ec6: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.ed0: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_456.d17: %i32 = int_value 456 [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -420,11 +420,11 @@ fn F() { // CHECK:STDOUT: %c: %C = bind_name c, %.loc8_34.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_34.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_34.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_34.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_34: = bound_method %.loc8_34.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_34: = bound_method %.loc8_34.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_34.2: %ptr.d9e = addr_of %.loc8_34.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_34(%addr.loc8_34.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_34(%addr.loc8_34.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -462,10 +462,10 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.ec6: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.ed0: = bound_method %int_456.010, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_456.d17: %i32 = int_value 456 [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -543,18 +543,18 @@ fn F() { // CHECK:STDOUT: %c2: %C = bind_name c2, %.loc9_35.4 // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_35.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_35: = bound_method %.loc9_35.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_35: = bound_method %.loc9_35.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_35.2: %ptr.d9e = addr_of %.loc9_35.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_35(%addr.loc9_35.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_35(%addr.loc9_35.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_27.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_27.2: %ptr.d9e = addr_of %.loc8_27.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -592,10 +592,10 @@ fn F() { // CHECK:STDOUT: %int_9.f88: %i32 = int_value 9 [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.65f120.2: type = fn_type @C__carbon_thunk.2 [concrete] // CHECK:STDOUT: %C__carbon_thunk.d98342.2: %C__carbon_thunk.type.65f120.2 = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -681,18 +681,18 @@ fn F() { // CHECK:STDOUT: %c2: %C = bind_name c2, %.loc9_28.4 // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_28.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_28.2: %ptr.d9e = addr_of %.loc9_28.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.d9e = addr_of %.loc8_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -738,12 +738,13 @@ fn F() { // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.65f120.3: type = fn_type @C__carbon_thunk.3 [concrete] // CHECK:STDOUT: %C__carbon_thunk.d98342.3: %C__carbon_thunk.type.65f120.3 = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.type: type = fn_type @bool.as.Destroy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op: %bool.as.Destroy.impl.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.b21: %type_where = facet_value %C, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b21) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -814,8 +815,8 @@ fn F() { // CHECK:STDOUT: %.loc9_3.1: ref %C = splice_block %c2.var {} // CHECK:STDOUT: %.loc9_27.1: ref bool = temporary_storage // CHECK:STDOUT: %impl.elem0.loc9: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method.loc9_27: = bound_method %true, %impl.elem0.loc9 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc9_27(%true) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc9_27.1: = bound_method %true, %impl.elem0.loc9 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc9_27.1(%true) [concrete = constants.%true] // CHECK:STDOUT: %.loc9_27.2: ref bool = temporary %.loc9_27.1, %bool.as.Copy.impl.Op.call // CHECK:STDOUT: %addr.loc9_31.1: %ptr.bb2 = addr_of %.loc9_27.2 // CHECK:STDOUT: %addr.loc9_31.2: %ptr.d9e = addr_of %.loc9_3.1 @@ -847,30 +848,34 @@ fn F() { // CHECK:STDOUT: %C.ref.loc10_14: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %c3: ref %C = bind_name c3, %c3.var -// CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] +// CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value.b21] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.d9e = addr_of %c3.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound: = bound_method %.loc9_27.2, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) +// CHECK:STDOUT: %facet_value.loc9_27: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %.loc9_27.3: %type_where = converted bool, %facet_value.loc9_27 [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_27: = bound_method %.loc9_27.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: +// CHECK:STDOUT: %bound_method.loc9_27.2: = bound_method %.loc9_27.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_27: %ptr.bb2 = addr_of %.loc9_27.2 -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound(%addr.loc9_27) -// CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27.2(%addr.loc9_27) +// CHECK:STDOUT: %facet_value.loc9_3: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] +// CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%C, %facet_value.loc9_3 [concrete = constants.%facet_value.b21] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_3: = bound_method %c2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %c2.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %c2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc9_3: %ptr.d9e = addr_of %c2.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) -// CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_3: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] +// CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value.b21] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %c1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -914,10 +919,10 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.414 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.414, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method.80c: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -986,11 +991,11 @@ fn F() { // CHECK:STDOUT: %c2: %C = bind_name c2, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_28.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_28.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_28: = bound_method %.loc8_28.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_28: = bound_method %.loc8_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_28.2: %ptr.d9e = addr_of %.loc8_28.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_28(%addr.loc8_28.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_28(%addr.loc8_28.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1040,10 +1045,10 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.414 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.414, @Core.IntLiteral.as.As.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method.80c: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1150,18 +1155,18 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, [concrete = ] // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_28.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_28.2: %ptr.d9e = addr_of %.loc9_28.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.d9e = addr_of %.loc8_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/method.carbon b/toolchain/check/testdata/interop/cpp/class/method.carbon index b8f53cc637f9..85c8bc45be6d 100644 --- a/toolchain/check/testdata/interop/cpp/class/method.carbon +++ b/toolchain/check/testdata/interop/cpp/class/method.carbon @@ -318,21 +318,22 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %.4ab: type = cpp_overload_set_type @HasQualifiers.F.1 [concrete] // CHECK:STDOUT: %empty_struct: %.4ab = struct_value () [concrete] -// CHECK:STDOUT: %const.2b5: type = const_type %HasQualifiers [concrete] -// CHECK:STDOUT: %ptr.2cb: type = ptr_type %const.2b5 [concrete] +// CHECK:STDOUT: %const: type = const_type %HasQualifiers [concrete] +// CHECK:STDOUT: %ptr.2cb: type = ptr_type %const [concrete] // CHECK:STDOUT: %F__carbon_thunk.type: type = fn_type @F__carbon_thunk [concrete] // CHECK:STDOUT: %F__carbon_thunk: %F__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %ptr.235 [concrete] // CHECK:STDOUT: %HasQualifiers.F.type.d208f0.2: type = fn_type @HasQualifiers.F.2 [concrete] // CHECK:STDOUT: %HasQualifiers.F.efd4e4.2: %HasQualifiers.F.type.d208f0.2 = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -388,18 +389,20 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %ptr.loc9: type = ptr_type %i32.loc9 [concrete = constants.%ptr.235] // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %ptr.235 = bind_name b, %b.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%ptr.as.Destroy.impl.Op.c04 +// CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%ptr.235, %facet_value.loc9 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_3: %ptr.5d5 = addr_of %b.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%i32, %facet_value.loc8 [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_3: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon index e86243865bd9..066c6ec5d9d3 100644 --- a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon @@ -63,16 +63,16 @@ fn G() { // CHECK:STDOUT: %ptr.73d: type = ptr_type %.bb7 [concrete] // CHECK:STDOUT: %F__carbon_thunk.type.eda1ac.2: type = fn_type @F__carbon_thunk.2 [concrete] // CHECK:STDOUT: %F__carbon_thunk.0cd6a8.2: %F__carbon_thunk.type.eda1ac.2 = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.597: %type_where = facet_value %.bb7, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.237: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.597) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c08: %AggregateT.as_type.as.Destroy.impl.Op.type.237 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.237: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.597) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c08: %DestroyT.as_type.as.Destroy.impl.Op.type.237 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b21: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.b21) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b21) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.21d: %type_where = facet_value %.4f0, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.a40: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.21d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.d51: %AggregateT.as_type.as.Destroy.impl.Op.type.a40 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a40: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.21d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d51: %DestroyT.as_type.as.Destroy.impl.Op.type.a40 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -139,25 +139,25 @@ fn G() { // CHECK:STDOUT: %F__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.e1b8ec.2(%addr.loc10_11.2, %addr.loc10_22) // CHECK:STDOUT: %facet_value.loc10_20: %type_where = facet_value constants.%.bb7, () [concrete = constants.%facet_value.597] // CHECK:STDOUT: %.loc10_20.3: %type_where = converted constants.%.bb7, %facet_value.loc10_20 [concrete = constants.%facet_value.597] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_20: = bound_method %.loc10_20.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.c08 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_20: = bound_method %.loc10_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c08 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_20: = bound_method %.loc10_20.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_20: = bound_method %.loc10_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_20: %ptr.73d = addr_of %.loc10_20.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_20: init %empty_tuple.type = call %bound_method.loc10_20(%addr.loc10_20) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_20: init %empty_tuple.type = call %bound_method.loc10_20(%addr.loc10_20) // CHECK:STDOUT: %facet_value.loc10_11: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] // CHECK:STDOUT: %.loc10_11.4: %type_where = converted constants.%C, %facet_value.loc10_11 [concrete = constants.%facet_value.b21] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_11: = bound_method %.loc10_11.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_11: = bound_method %.loc10_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_11: = bound_method %.loc10_11.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_11: = bound_method %.loc10_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_11.3: %ptr.d9e = addr_of %.loc10_11.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_11: init %empty_tuple.type = call %bound_method.loc10_11(%addr.loc10_11.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_11: init %empty_tuple.type = call %bound_method.loc10_11(%addr.loc10_11.3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%.4f0, () [concrete = constants.%facet_value.21d] // CHECK:STDOUT: %.loc8_12.3: %type_where = converted constants.%.4f0, %facet_value.loc8 [concrete = constants.%facet_value.21d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.d51 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.d51 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_12: %ptr.793 = addr_of %.loc8_12.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/enum/copy.carbon b/toolchain/check/testdata/interop/cpp/enum/copy.carbon index ba7f42744327..a9bd26ab0d86 100644 --- a/toolchain/check/testdata/interop/cpp/enum/copy.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/copy.carbon @@ -38,10 +38,10 @@ fn F() { // CHECK:STDOUT: %pattern_type.ebf: type = pattern_type %Enum [concrete] // CHECK:STDOUT: %int_0: %Enum = int_value 0 [concrete] // CHECK:STDOUT: %int_1: %Enum = int_value 1 [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Enum, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ae5: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.5fc: %AggregateT.as_type.as.Destroy.impl.Op.type.ae5 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ae5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5fc: %DestroyT.as_type.as.Destroy.impl.Op.type.ae5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.47b: type = ptr_type %Enum [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -82,11 +82,11 @@ fn F() { // CHECK:STDOUT: assign %a.ref.loc10, %b.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Enum, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%Enum, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.5fc +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fc // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.47b = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 2412826ebe76..498e76df3012 100644 --- a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon +++ b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon @@ -570,8 +570,10 @@ fn F() { // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.type: type = fn_type @bool.as.Destroy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op: %bool.as.Destroy.impl.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -596,14 +598,18 @@ fn F() { // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %.loc8_11.1: ref bool = temporary_storage // CHECK:STDOUT: %impl.elem0: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %true, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %true, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc8_11.1(%true) [concrete = constants.%true] // CHECK:STDOUT: %.loc8_11.2: ref bool = temporary %.loc8_11.1, %bool.as.Copy.impl.Op.call // CHECK:STDOUT: %addr.loc8_15: %ptr.bb2 = addr_of %.loc8_11.2 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_15) -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc8_11.3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.bb2 = addr_of %.loc8_11.2 -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.2(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -625,8 +631,10 @@ fn F() { // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %false, %bool.as.Copy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.type: type = fn_type @bool.as.Destroy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op: %bool.as.Destroy.impl.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -651,14 +659,18 @@ fn F() { // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] // CHECK:STDOUT: %.loc8_11.1: ref bool = temporary_storage // CHECK:STDOUT: %impl.elem0: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %false, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%false) [concrete = constants.%false] +// CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %false, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc8_11.1(%false) [concrete = constants.%false] // CHECK:STDOUT: %.loc8_11.2: ref bool = temporary %.loc8_11.1, %bool.as.Copy.impl.Op.call // CHECK:STDOUT: %addr.loc8_16: %ptr.bb2 = addr_of %.loc8_11.2 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_16) -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc8_11.3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.bb2 = addr_of %.loc8_11.2 -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.2(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -710,10 +722,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-1.416, %Int.as.Copy.impl.Op.342 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.342, @Int.as.Copy.impl.Op(%int_8) [concrete] // CHECK:STDOUT: %bound_method.db2: = bound_method %int_-1.416, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i8, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.489: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.054: %AggregateT.as_type.as.Destroy.impl.Op.type.489 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.489: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.054: %DestroyT.as_type.as.Destroy.impl.Op.type.489 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -764,11 +776,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i8, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.7: %type_where = converted constants.%i8, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%AggregateT.as_type.as.Destroy.impl.Op.054 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%DestroyT.as_type.as.Destroy.impl.Op.054 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.5c1 = addr_of %.loc8_11.6 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -811,10 +823,10 @@ fn F() { // CHECK:STDOUT: %UInt.as.Copy.impl.Op.bound: = bound_method %int_1.e80, %UInt.as.Copy.impl.Op.0cf [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.0cf, @UInt.as.Copy.impl.Op(%int_8) [concrete] // CHECK:STDOUT: %bound_method.501: = bound_method %int_1.e80, %UInt.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %u8, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.7cc: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.9cc: %AggregateT.as_type.as.Destroy.impl.Op.type.7cc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.9cc: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -857,11 +869,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_12) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%u8, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.5: %type_where = converted constants.%u8, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.9cc +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.9cc // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.3e8 = addr_of %.loc8_11.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -893,10 +905,10 @@ fn F() { // CHECK:STDOUT: %char.as.Copy.impl.Op.type: type = fn_type @char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op: %char.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.bound: = bound_method %int_88, %char.as.Copy.impl.Op [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %char, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6ed: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.9d8: %AggregateT.as_type.as.Destroy.impl.Op.type.6ed = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ed: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.9d8: %DestroyT.as_type.as.Destroy.impl.Op.type.6ed = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -935,11 +947,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_14) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%char, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.6: %type_where = converted constants.%char, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.5, constants.%AggregateT.as_type.as.Destroy.impl.Op.9d8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.5, constants.%DestroyT.as_type.as.Destroy.impl.Op.9d8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %.loc8_11.5, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %.loc8_11.5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.fb0 = addr_of %.loc8_11.5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.3(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.3(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1113,10 +1125,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1161,11 +1173,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1208,10 +1220,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_32767.faa, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.556: = bound_method %int_32767.faa, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1254,11 +1266,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_17) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.251 = addr_of %.loc8_11.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1310,10 +1322,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_-32768.7e5, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.b72: = bound_method %int_-32768.7e5, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1364,11 +1376,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_18) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.7: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.251 = addr_of %.loc8_11.6 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1411,10 +1423,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1459,11 +1471,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1506,10 +1518,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1554,11 +1566,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1601,10 +1613,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1649,11 +1661,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1696,10 +1708,10 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.3dc [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1744,11 +1756,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1790,10 +1802,10 @@ fn F() { // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.032, %Float.as.Copy.impl.Op.9e9 [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.9e9, @Float.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.086: = bound_method %float.032, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f16.a6a, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.2d8: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.62c: %AggregateT.as_type.as.Destroy.impl.Op.type.2d8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2d8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.62c: %DestroyT.as_type.as.Destroy.impl.Op.type.2d8 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1838,11 +1850,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f16.a6a, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f16.a6a, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.62c +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.62c // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.823 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1884,10 +1896,10 @@ fn F() { // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.4cb, %Float.as.Copy.impl.Op.4fd [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.4fd, @Float.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %bound_method.21c: = bound_method %float.4cb, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f32.97e, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.482: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8e2: %AggregateT.as_type.as.Destroy.impl.Op.type.482 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.482: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8e2: %DestroyT.as_type.as.Destroy.impl.Op.type.482 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1932,11 +1944,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f32.97e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f32.97e, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.8e2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.8e2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.0bc = addr_of %.loc8_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1978,10 +1990,10 @@ fn F() { // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.0fc, %Float.as.Copy.impl.Op.5b0 [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.5b0, @Float.as.Copy.impl.Op(%int_64) [concrete] // CHECK:STDOUT: %bound_method.c97: = bound_method %float.0fc, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f64.d77, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fb8: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.0bc: %AggregateT.as_type.as.Destroy.impl.Op.type.fb8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0bc: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2026,11 +2038,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f64.d77, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f64.d77, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.0bc +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.0bc // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.bcc = addr_of %.loc8_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2072,10 +2084,10 @@ fn F() { // CHECK:STDOUT: %Float.as.Copy.impl.Op.bound: = bound_method %float.709, %Float.as.Copy.impl.Op.249 [concrete] // CHECK:STDOUT: %Float.as.Copy.impl.Op.specific_fn: = specific_function %Float.as.Copy.impl.Op.249, @Float.as.Copy.impl.Op(%int_128) [concrete] // CHECK:STDOUT: %bound_method.435: = bound_method %float.709, %Float.as.Copy.impl.Op.specific_fn [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f128.b8c, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.8fc: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1c0: %AggregateT.as_type.as.Destroy.impl.Op.type.8fc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8fc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1c0: %DestroyT.as_type.as.Destroy.impl.Op.type.8fc = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2120,11 +2132,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f128.b8c, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f128.b8c, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.1c0 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.1c0 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.402 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/class.carbon b/toolchain/check/testdata/interop/cpp/function/class.carbon index 364526c7d169..a515d59a76ca 100644 --- a/toolchain/check/testdata/interop/cpp/function/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/class.carbon @@ -534,10 +534,10 @@ fn F() { // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -572,11 +572,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.d9e = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -591,10 +591,10 @@ fn F() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -628,11 +628,11 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc24_14.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d9e = addr_of %.loc24_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -709,10 +709,10 @@ fn F() { // CHECK:STDOUT: %ptr.838: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1f8: %AggregateT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1f8: %DestroyT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -763,18 +763,18 @@ fn F() { // CHECK:STDOUT: %x: ref %C = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.838 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.838 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -790,10 +790,10 @@ fn F() { // CHECK:STDOUT: %ptr.c0c: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.532: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.52b: %AggregateT.as_type.as.Destroy.impl.Op.type.532 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.532: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.532 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -839,11 +839,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_31) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.c0c = addr_of %.loc8_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -861,14 +861,14 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.568: %type_where = facet_value %O, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.568) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c17: %AggregateT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.568) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] // CHECK:STDOUT: %facet_value.e34: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fac: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.e34) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.0e1: %AggregateT.as_type.as.Destroy.impl.Op.type.fac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.e34) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0e1: %DestroyT.as_type.as.Destroy.impl.Op.type.fac = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -915,18 +915,18 @@ fn F() { // CHECK:STDOUT: %x: ref %O = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%O, () [concrete = constants.%facet_value.568] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%O, %facet_value.loc9 [concrete = constants.%facet_value.568] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.820 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.e34] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value.e34] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.de2 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -946,10 +946,10 @@ fn F() { // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -990,11 +990,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc9_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc9_12: %ptr.d9e = addr_of %.loc9_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1014,10 +1014,10 @@ fn F() { // CHECK:STDOUT: %empty_struct.87a: %.442 = struct_value () [concrete] // CHECK:STDOUT: %C.bar.type: type = fn_type @C.bar [concrete] // CHECK:STDOUT: %C.bar: %C.bar.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1058,11 +1058,11 @@ fn F() { // CHECK:STDOUT: %C.bar.call: init %empty_tuple.type = call imports.%C.bar.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.d9e = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1148,10 +1148,10 @@ fn F() { // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1178,11 +1178,11 @@ fn F() { // CHECK:STDOUT: %.loc8_11.3: ref %C = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.d9e = addr_of %.loc8_11.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon index ba6fd27b6f5e..16729a8c2a63 100644 --- a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon @@ -104,10 +104,10 @@ fn F() { // CHECK:STDOUT: %empty_struct.45a: %.319 = struct_value () [concrete] // CHECK:STDOUT: %.001: type = cpp_overload_set_type @Destroy.Op [concrete] // CHECK:STDOUT: %empty_struct.89b: %.001 = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b6e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.91f: %AggregateT.as_type.as.Destroy.impl.Op.type.b6e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.91f: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -186,11 +186,11 @@ fn F() { // CHECK:STDOUT: %nullptr.ref.loc49: = name_ref nullptr, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.91f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.91f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %n.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc10: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc10: %ptr.830 = addr_of %n.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/default_arg.carbon b/toolchain/check/testdata/interop/cpp/function/default_arg.carbon index 9dae3bba044d..123025e3d54c 100644 --- a/toolchain/check/testdata/interop/cpp/function/default_arg.carbon +++ b/toolchain/check/testdata/interop/cpp/function/default_arg.carbon @@ -165,10 +165,10 @@ fn Call() { // CHECK:STDOUT: %empty_struct.576: %.c13 = struct_value () [concrete] // CHECK:STDOUT: %D__carbon_thunk.type: type = fn_type @D__carbon_thunk [concrete] // CHECK:STDOUT: %D__carbon_thunk: %D__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.55b: %AggregateT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.55b: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -321,18 +321,18 @@ fn Call() { // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr.loc11_23, %.loc11_19.2, %.loc11_22.2) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_5.5: %type_where = converted constants.%X, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11_5: = bound_method %.loc11_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc11_5: = bound_method %.loc11_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc11_5: %ptr.1f9 = addr_of %.loc11_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11_5(%addr.loc11_5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11_5(%addr.loc11_5) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_5.5: %type_where = converted constants.%X, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_5: = bound_method %.loc9_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9_5: = bound_method %.loc9_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_5: %ptr.1f9 = addr_of %.loc9_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_5(%addr.loc9_5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_5(%addr.loc9_5) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -397,11 +397,11 @@ fn Call() { // CHECK:STDOUT: %D__carbon_thunk.type: type = fn_type @D__carbon_thunk [concrete] // CHECK:STDOUT: %D__carbon_thunk: %D__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.55b: %AggregateT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.55b, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.55b: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.55b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -643,18 +643,18 @@ fn Call() { // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr.loc12_20, %.loc12_19.2) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_5.5: %type_where = converted constants.%X, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.55b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.55b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc12_5: = bound_method %.loc12_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.55b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc12_5: = bound_method %.loc12_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc12_5: %ptr.1f9 = addr_of %.loc12_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_5(%addr.loc12_5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_5(%addr.loc12_5) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_5.5: %type_where = converted constants.%X, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.55b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.55b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc10_5: = bound_method %.loc10_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.55b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc10_5: = bound_method %.loc10_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_5: %ptr.1f9 = addr_of %.loc10_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_5(%addr.loc10_5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_5(%addr.loc10_5) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -682,7 +682,7 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.490: type = cpp_overload_set_type @const.as.Destroy.impl.Op [concrete] +// CHECK:STDOUT: %.490: type = cpp_overload_set_type @ [concrete] // CHECK:STDOUT: %empty_struct.a89: %.490 = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -692,12 +692,12 @@ fn Call() { // CHECK:STDOUT: %empty_struct.61d: %.ed9 = struct_value () [concrete] // CHECK:STDOUT: %.ce5: type = cpp_overload_set_type @ [concrete] // CHECK:STDOUT: %empty_struct.a7d: %.ce5 = struct_value () [concrete] -// CHECK:STDOUT: %.c13: type = cpp_overload_set_type @ [concrete] +// CHECK:STDOUT: %.c13: type = cpp_overload_set_type @X [concrete] // CHECK:STDOUT: %empty_struct.576: %.c13 = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.55b: %AggregateT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.55b: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] // CHECK:STDOUT: %ptr.1f9: type = ptr_type %X [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -707,11 +707,11 @@ fn Call() { // CHECK:STDOUT: .X = %X.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %.7c0: %.490 = cpp_overload_set_value @const.as.Destroy.impl.Op [concrete = constants.%empty_struct.a89] +// CHECK:STDOUT: %.7c0: %.490 = cpp_overload_set_value @ [concrete = constants.%empty_struct.a89] // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %.8ab: %.ed9 = cpp_overload_set_value @ [concrete = constants.%empty_struct.61d] // CHECK:STDOUT: %.7af: %.ce5 = cpp_overload_set_value @ [concrete = constants.%empty_struct.a7d] -// CHECK:STDOUT: %.7b7: %.c13 = cpp_overload_set_value @ [concrete = constants.%empty_struct.576] +// CHECK:STDOUT: %.7b7: %.c13 = cpp_overload_set_value @X [concrete = constants.%empty_struct.576] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Call() { @@ -744,18 +744,18 @@ fn Call() { // CHECK:STDOUT: %bound_method.loc56_16: = bound_method %.loc56_7, %D.ref // CHECK:STDOUT: %facet_value.loc56: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc56_5.5: %type_where = converted constants.%X, %facet_value.loc56 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %.loc56_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %.loc56_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc56_5: = bound_method %.loc56_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc56_5: = bound_method %.loc56_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc56: %ptr.1f9 = addr_of %.loc56_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56_5(%addr.loc56) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56_5(%addr.loc56) // CHECK:STDOUT: %facet_value.loc36: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc36_5.5: %type_where = converted constants.%X, %facet_value.loc36 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %.loc36_5.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %.loc36_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc36_5: = bound_method %.loc36_5.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc36_5: = bound_method %.loc36_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc36: %ptr.1f9 = addr_of %.loc36_5.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_5(%addr.loc36) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_5(%addr.loc36) // CHECK:STDOUT: // CHECK:STDOUT: } // 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 8d3457f7f7e0..3e5f3b39c2c1 100644 --- a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon +++ b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon @@ -112,11 +112,11 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.ce5, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -192,11 +192,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc7_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc7_13: %ptr.251 = addr_of %.loc7_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/inline.carbon b/toolchain/check/testdata/interop/cpp/function/inline.carbon index 6bc67192e8a6..fa18fa3d63ff 100644 --- a/toolchain/check/testdata/interop/cpp/function/inline.carbon +++ b/toolchain/check/testdata/interop/cpp/function/inline.carbon @@ -209,10 +209,10 @@ fn MyF() { // CHECK:STDOUT: %empty_struct.258: %.a8c = struct_value () [concrete] // CHECK:STDOUT: %ThunkOnBoth__carbon_thunk.type: type = fn_type @ThunkOnBoth__carbon_thunk [concrete] // CHECK:STDOUT: %ThunkOnBoth__carbon_thunk: %ThunkOnBoth__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -363,18 +363,18 @@ fn MyF() { // CHECK:STDOUT: %r4: %i16 = bind_name r4, %.loc16_34.4 // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_33.5: %type_where = converted constants.%i16, %facet_value.loc16 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_33.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_33.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc16_33.5: = bound_method %.loc16_33.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc16_33.5: = bound_method %.loc16_33.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc16_33: %ptr.251 = addr_of %.loc16_33.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_33.5(%addr.loc16_33) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_33.5(%addr.loc16_33) // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_32.5: %type_where = converted constants.%i16, %facet_value.loc14 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_32.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_32.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc14_32.5: = bound_method %.loc14_32.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc14_32.5: = bound_method %.loc14_32.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc14_32: %ptr.251 = addr_of %.loc14_32.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_32.5(%addr.loc14_32) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_32.5(%addr.loc14_32) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/operators.carbon b/toolchain/check/testdata/interop/cpp/function/operators.carbon index 446c197d437c..a97d3348fcde 100644 --- a/toolchain/check/testdata/interop/cpp/function/operators.carbon +++ b/toolchain/check/testdata/interop/cpp/function/operators.carbon @@ -967,10 +967,10 @@ fn F() { // CHECK:STDOUT: %operator--__carbon_thunk: %operator--__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator-__carbon_thunk.type: type = fn_type @operator-__carbon_thunk [concrete] // CHECK:STDOUT: %operator-__carbon_thunk: %operator-__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1056,32 +1056,32 @@ fn F() { // CHECK:STDOUT: %minus: %C = bind_name minus, %.loc15_22.4 // CHECK:STDOUT: %facet_value.loc15: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc15_22.5: %type_where = converted constants.%C, %facet_value.loc15 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_22.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_22.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc15_22.3: %ptr.d9e = addr_of %.loc15_22.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_22.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_22.3) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3.4: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_3.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_3.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_3.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_3.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc12_3.2: %ptr.d9e = addr_of %.loc12_3.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_3.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_3.2) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.4: %type_where = converted constants.%C, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_3.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_3.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_3.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_3.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc11_3.2: %ptr.d9e = addr_of %.loc11_3.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_3.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_3.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1169,10 +1169,10 @@ fn F() { // CHECK:STDOUT: %operator>=__carbon_thunk: %operator>=__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator<=__carbon_thunk.type: type = fn_type @operator<=__carbon_thunk [concrete] // CHECK:STDOUT: %operator<=__carbon_thunk: %operator<=__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1805,144 +1805,144 @@ fn F() { // CHECK:STDOUT: %less_than_or_equal: bool = bind_name less_than_or_equal, %.loc43_37.4 // CHECK:STDOUT: %facet_value.loc35: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc35_6.4: %type_where = converted constants.%C, %facet_value.loc35 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc35: = bound_method %.loc35_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc35: = bound_method %.loc35_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35_6.3: %ptr.d9e = addr_of %.loc35_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35(%addr.loc35_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35(%addr.loc35_6.3) // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_6.4: %type_where = converted constants.%C, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc34_6.3: %ptr.d9e = addr_of %.loc34_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34_6.3) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc33_6.4: %type_where = converted constants.%C, %facet_value.loc33 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc33_6.3: %ptr.d9e = addr_of %.loc33_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33_6.3) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_6.4: %type_where = converted constants.%C, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc30_6.3: %ptr.d9e = addr_of %.loc30_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30_6.3) // CHECK:STDOUT: %facet_value.loc29: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc29_6.4: %type_where = converted constants.%C, %facet_value.loc29 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %.loc29_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %.loc29_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc29: = bound_method %.loc29_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %bound_method.loc29: = bound_method %.loc29_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc29_6.3: %ptr.d9e = addr_of %.loc29_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29_6.3) // CHECK:STDOUT: %facet_value.loc28: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc28_6.4: %type_where = converted constants.%C, %facet_value.loc28 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc28: = bound_method %.loc28_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc28: = bound_method %.loc28_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc28: = bound_method %.loc28_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6 +// CHECK:STDOUT: %bound_method.loc28: = bound_method %.loc28_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6 // CHECK:STDOUT: %addr.loc28_6.3: %ptr.d9e = addr_of %.loc28_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28(%addr.loc28_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28(%addr.loc28_6.3) // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_6.4: %type_where = converted constants.%C, %facet_value.loc27 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7 +// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7 // CHECK:STDOUT: %addr.loc27_6.3: %ptr.d9e = addr_of %.loc27_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27_6.3) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_6.4: %type_where = converted constants.%C, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.8 +// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8 // CHECK:STDOUT: %addr.loc26_6.3: %ptr.d9e = addr_of %.loc26_6.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26_6.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26_6.3) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_31.5: %type_where = converted constants.%C, %facet_value.loc23 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc23_31: = bound_method %.loc23_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.9 +// CHECK:STDOUT: %bound_method.loc23_31: = bound_method %.loc23_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9 // CHECK:STDOUT: %addr.loc23_31.3: %ptr.d9e = addr_of %.loc23_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_31(%addr.loc23_31.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_31(%addr.loc23_31.3) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_30.5: %type_where = converted constants.%C, %facet_value.loc22 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_30.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_30.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc22_30: = bound_method %.loc22_30.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.10 +// CHECK:STDOUT: %bound_method.loc22_30: = bound_method %.loc22_30.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.10 // CHECK:STDOUT: %addr.loc22_30.3: %ptr.d9e = addr_of %.loc22_30.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_30(%addr.loc22_30.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_30(%addr.loc22_30.3) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc21_31.5: %type_where = converted constants.%C, %facet_value.loc21 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.11 +// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.11 // CHECK:STDOUT: %addr.loc21_31.4: %ptr.d9e = addr_of %.loc21_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21_31.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21_31.4) // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_30.5: %type_where = converted constants.%C, %facet_value.loc20 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %.loc20_30.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %.loc20_30.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc20: = bound_method %.loc20_30.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.12 +// CHECK:STDOUT: %bound_method.loc20: = bound_method %.loc20_30.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.12 // CHECK:STDOUT: %addr.loc20_30.4: %ptr.d9e = addr_of %.loc20_30.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20_30.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20_30.4) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_31.5: %type_where = converted constants.%C, %facet_value.loc19 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.13 +// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.13 // CHECK:STDOUT: %addr.loc19_31.4: %ptr.d9e = addr_of %.loc19_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19_31.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19_31.4) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_26.5: %type_where = converted constants.%C, %facet_value.loc16 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_26.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_26.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.14 +// CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.14 // CHECK:STDOUT: %addr.loc16_26.4: %ptr.d9e = addr_of %.loc16_26.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16_26.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16_26.4) // CHECK:STDOUT: %facet_value.loc15: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc15_28.5: %type_where = converted constants.%C, %facet_value.loc15 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_28.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_28.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.15 +// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.15 // CHECK:STDOUT: %addr.loc15_28.4: %ptr.d9e = addr_of %.loc15_28.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_28.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_28.4) // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_34.5: %type_where = converted constants.%C, %facet_value.loc14 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_34.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_34.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_34.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.16 +// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_34.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.16 // CHECK:STDOUT: %addr.loc14_34.4: %ptr.d9e = addr_of %.loc14_34.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14_34.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14_34.4) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_31.5: %type_where = converted constants.%C, %facet_value.loc13 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.17 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.17 // CHECK:STDOUT: %addr.loc13_31.4: %ptr.d9e = addr_of %.loc13_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13_31.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13_31.4) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_28.5: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_28.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_28.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.18 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.18 // CHECK:STDOUT: %addr.loc12_28.4: %ptr.d9e = addr_of %.loc12_28.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_28.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_28.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.19 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.19 // CHECK:STDOUT: %addr.loc9_3: %ptr.d9e = addr_of %c2.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.20 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.20 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1959,10 +1959,10 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator+__carbon_thunk.type: type = fn_type @operator+__carbon_thunk [concrete] // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2082,39 +2082,39 @@ fn F() { // CHECK:STDOUT: %c5: %C = bind_name c5, %.loc12_22.4 // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_22.5: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_22.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_22.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc12_22.4: %ptr.d9e = addr_of %.loc12_22.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_22.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_22.4) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_22.5: %type_where = converted constants.%C, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_22.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_22.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11_22.4: %ptr.d9e = addr_of %.loc11_22.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_22.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_22.4) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_22.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_22.4: %ptr.d9e = addr_of %.loc10_22.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_27.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_27.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_27.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_27.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_27.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc9_27.2: %ptr.d9e = addr_of %.loc9_27.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_27.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_27.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_27.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc8_27.2: %ptr.d9e = addr_of %.loc8_27.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2131,10 +2131,10 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator+__carbon_thunk.type: type = fn_type @operator+__carbon_thunk [concrete] // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1f8: %AggregateT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1f8: %DestroyT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2223,25 +2223,25 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_24.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_24.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_24.4: %ptr.838 = addr_of %.loc10_24.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_31.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_31.2: %ptr.838 = addr_of %.loc9_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.838 = addr_of %.loc8_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2267,13 +2267,13 @@ fn F() { // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator-__carbon_thunk.type: type = fn_type @operator-__carbon_thunk [concrete] // CHECK:STDOUT: %operator-__carbon_thunk: %operator-__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d7a: %type_where = facet_value %C2, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cd3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d7a) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.5ee: %AggregateT.as_type.as.Destroy.impl.Op.type.cd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d7a) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5ee: %DestroyT.as_type.as.Destroy.impl.Op.type.cd3 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.e5d: %type_where = facet_value %C1, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.26c: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.e5d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.176: %AggregateT.as_type.as.Destroy.impl.Op.type.26c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.26c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.e5d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.176: %DestroyT.as_type.as.Destroy.impl.Op.type.26c = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2400,32 +2400,32 @@ fn F() { // CHECK:STDOUT: %c4: %C2 = bind_name c4, %.loc11_26.4 // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%C2, () [concrete = constants.%facet_value.d7a] // CHECK:STDOUT: %.loc11_26.5: %type_where = converted constants.%C2, %facet_value.loc11 [concrete = constants.%facet_value.d7a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_26.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.5ee +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.5ee // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_26.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc11_26.4: %ptr.51f = addr_of %.loc11_26.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_26.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_26.4) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C2, () [concrete = constants.%facet_value.d7a] // CHECK:STDOUT: %.loc10_26.5: %type_where = converted constants.%C2, %facet_value.loc10 [concrete = constants.%facet_value.d7a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.5ee +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.5ee // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_26.4: %ptr.51f = addr_of %.loc10_26.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C2, () [concrete = constants.%facet_value.d7a] // CHECK:STDOUT: %.loc9_36.5: %type_where = converted constants.%C2, %facet_value.loc9 [concrete = constants.%facet_value.d7a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_36.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.5ee +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_36.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.5ee // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_36.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_36.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc9_36.2: %ptr.51f = addr_of %.loc9_36.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_36.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_36.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C1, () [concrete = constants.%facet_value.e5d] // CHECK:STDOUT: %.loc8_36.5: %type_where = converted constants.%C1, %facet_value.loc8 [concrete = constants.%facet_value.e5d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_36.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.176 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_36.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.176 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_36.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_36.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc8_36.2: %ptr.087 = addr_of %.loc8_36.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_36.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_36.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2440,10 +2440,10 @@ fn F() { // CHECK:STDOUT: %ptr.838: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete] // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1f8: %AggregateT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1f8: %DestroyT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2517,18 +2517,18 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, [concrete = ] // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_31.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_31.2: %ptr.838 = addr_of %.loc9_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.838 = addr_of %.loc8_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2546,10 +2546,10 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator+__carbon_thunk.type: type = fn_type @operator+__carbon_thunk [concrete] // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fac: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.0e1: %AggregateT.as_type.as.Destroy.impl.Op.type.fac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0e1: %DestroyT.as_type.as.Destroy.impl.Op.type.fac = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2635,25 +2635,25 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_24.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_24.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_24.4: %ptr.de2 = addr_of %.loc10_24.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_31.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_31.2: %ptr.de2 = addr_of %.loc9_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.de2 = addr_of %.loc8_31.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2671,10 +2671,10 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator+__carbon_thunk.type: type = fn_type @operator+__carbon_thunk [concrete] // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fda: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.aaa: %AggregateT.as_type.as.Destroy.impl.Op.type.fda = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fda: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.aaa: %DestroyT.as_type.as.Destroy.impl.Op.type.fda = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2769,25 +2769,25 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_26.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_26.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.aaa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.aaa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_26.4: %ptr.4b2 = addr_of %.loc10_26.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_35.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.aaa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.aaa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_35.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_35.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_35.2: %ptr.4b2 = addr_of %.loc9_35.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_35.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_35.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_35.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_35.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.aaa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_35.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.aaa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_35.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_35.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_35.2: %ptr.4b2 = addr_of %.loc8_35.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_35.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_35.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2806,10 +2806,10 @@ fn F() { // CHECK:STDOUT: %operator-__carbon_thunk: %operator-__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator+__carbon_thunk.type: type = fn_type @operator+__carbon_thunk [concrete] // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2896,25 +2896,25 @@ fn F() { // CHECK:STDOUT: %c3: ref %C = bind_name c3, %c3.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.d9e = addr_of %c3.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_3: %ptr.d9e = addr_of %c2.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2958,10 +2958,10 @@ fn F() { // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: %operator+__carbon_thunk.type: type = fn_type @operator+__carbon_thunk [concrete] // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6b9: %AggregateT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3002,11 +3002,11 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_22.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_22.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_22.4: %ptr.d9e = addr_of %.loc10_22.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/overloads.carbon b/toolchain/check/testdata/interop/cpp/function/overloads.carbon index 60d2a08817aa..152a38fdb844 100644 --- a/toolchain/check/testdata/interop/cpp/function/overloads.carbon +++ b/toolchain/check/testdata/interop/cpp/function/overloads.carbon @@ -373,11 +373,11 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.ce5, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -453,11 +453,11 @@ fn F() { // CHECK:STDOUT: %bar__carbon_thunk.call: init %empty_tuple.type = call imports.%bar__carbon_thunk.decl(%addr.loc7_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc7_13: %ptr.251 = addr_of %.loc7_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -624,11 +624,11 @@ fn F() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.3dc, @Int.as.Copy.impl.Op(%int_16) [concrete] // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.ce5: %AggregateT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.ce5, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -728,11 +728,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.ce5, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/pointer.carbon index 743a6d2c40d8..9a73538acde6 100644 --- a/toolchain/check/testdata/interop/cpp/function/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/pointer.carbon @@ -260,10 +260,10 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -304,11 +304,11 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr.loc9) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -338,12 +338,13 @@ 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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.c2a: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%S) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.431: %ptr.as.Destroy.impl.Op.type.c2a = struct_value () [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.448: %type_where = facet_value %ptr.5c7, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ce2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.448) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.153: %DestroyT.as_type.as.Destroy.impl.Op.type.ce2 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -392,7 +393,7 @@ fn F() { // CHECK:STDOUT: %bound_method.loc9_19.2: = bound_method %addr.loc9_19, %specific_fn // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.5c7 = call %bound_method.loc9_19.2(%addr.loc9_19) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.5c7] { +// CHECK:STDOUT: %.loc9_15: type = splice_block %ptr [concrete = constants.%ptr.5c7] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc9: type = name_ref S, imports.%S.decl [concrete = constants.%S] // CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc9 [concrete = constants.%ptr.5c7] @@ -403,18 +404,20 @@ fn F() { // CHECK:STDOUT: %p.ref: ref %ptr.5c7 = name_ref p, %p // CHECK:STDOUT: %addr.loc10: %ptr.dfe = addr_of %p.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr.loc10) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %p.var, constants.%ptr.as.Destroy.impl.Op.431 +// CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%ptr.5c7, () [concrete = constants.%facet_value.448] +// CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%ptr.5c7, %facet_value.loc9 [concrete = constants.%facet_value.448] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.153 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %p.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_3: %ptr.dfe = addr_of %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] +// CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.7bd] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -422,26 +425,20 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %const.e39: type = const_type %S [concrete] -// CHECK:STDOUT: %pattern_type.9be: type = pattern_type %const.e39 [concrete] +// CHECK:STDOUT: %const: type = const_type %S [concrete] +// CHECK:STDOUT: %pattern_type.9be: type = pattern_type %const [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %.c5d: type = cpp_overload_set_type @F [concrete] // CHECK:STDOUT: %empty_struct: %.c5d = struct_value () [concrete] -// CHECK:STDOUT: %ptr.ff5: type = ptr_type %const.e39 [concrete] +// 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: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.c8b: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %Destroy.facet.7eb: %Destroy.type = facet_value %S, (%Destroy.impl_witness.c8b) [concrete] -// CHECK:STDOUT: %const.as.Destroy.impl.Op.type.21f: type = fn_type @const.as.Destroy.impl.Op, @const.as.Destroy.impl(%Destroy.facet.7eb) [concrete] -// CHECK:STDOUT: %const.as.Destroy.impl.Op.a1c: %const.as.Destroy.impl.Op.type.21f = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %const, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.31d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.818: %DestroyT.as_type.as.Destroy.impl.Op.type.31d = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -457,8 +454,6 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -467,31 +462,29 @@ fn F() { // CHECK:STDOUT: %s.patt: %pattern_type.9be = binding_pattern s [concrete] // CHECK:STDOUT: %s.var_patt: %pattern_type.9be = var_pattern %s.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.var: ref %const.e39 = var %s.var_patt +// CHECK:STDOUT: %s.var: ref %const = var %s.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] -// CHECK:STDOUT: %.loc10_3.1: ref %const.e39 = splice_block %s.var {} -// CHECK:STDOUT: %G.call: init %const.e39 = call %G.ref() to %.loc10_3.1 +// CHECK:STDOUT: %.loc10_3.1: ref %const = splice_block %s.var {} +// CHECK:STDOUT: %G.call: init %const = call %G.ref() to %.loc10_3.1 // CHECK:STDOUT: assign %s.var, %G.call -// CHECK:STDOUT: %.loc10_10: type = splice_block %const [concrete = constants.%const.e39] { +// CHECK:STDOUT: %.loc10_10: type = splice_block %const [concrete = constants.%const] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %const: type = const_type %S.ref [concrete = constants.%const.e39] +// CHECK:STDOUT: %const: type = const_type %S.ref [concrete = constants.%const] // CHECK:STDOUT: } -// CHECK:STDOUT: %s: ref %const.e39 = bind_name s, %s.var +// CHECK:STDOUT: %s: ref %const = bind_name s, %s.var // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %.c5d = name_ref foo, imports.%.a21 [concrete = constants.%empty_struct] -// CHECK:STDOUT: %s.ref: ref %const.e39 = name_ref s, %s +// CHECK:STDOUT: %s.ref: ref %const = name_ref s, %s // CHECK:STDOUT: %addr.loc11: %ptr.ff5 = addr_of %s.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr.loc11) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value constants.%S, (constants.%Destroy.impl_witness.c8b) [concrete = constants.%Destroy.facet.7eb] -// CHECK:STDOUT: %.loc10_3.3: %Destroy.type = converted constants.%S, %Destroy.facet [concrete = constants.%Destroy.facet.7eb] -// CHECK:STDOUT: %const.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%const.as.Destroy.impl.Op.a1c +// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%const, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%const, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.818 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %const.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc10: %ptr.ff5 = addr_of %s.var -// CHECK:STDOUT: %const.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -640,10 +633,10 @@ fn F() { // CHECK:STDOUT: %.c5d: type = cpp_overload_set_type @Destroy.Op [concrete] // CHECK:STDOUT: %empty_struct: %.c5d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -678,11 +671,11 @@ fn F() { // CHECK:STDOUT: %addr.loc13: %ptr.5c7 = addr_of %s.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -700,10 +693,10 @@ fn F() { // CHECK:STDOUT: %empty_struct: %.c5d = struct_value () [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -755,11 +748,11 @@ fn F() { // CHECK:STDOUT: %p: %ptr.5c7 = bind_name p, %.loc9_29.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -774,14 +767,14 @@ fn F() { // CHECK:STDOUT: %.97c: type = cpp_overload_set_type @Destroy.Op [concrete] // CHECK:STDOUT: %empty_struct.504: %.97c = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] -// CHECK:STDOUT: %.fed: type = cpp_overload_set_type @ptr.as.Destroy.impl.Op [concrete] +// CHECK:STDOUT: %.fed: type = cpp_overload_set_type @DestroyT.as_type.as.Destroy.impl.Op [concrete] // CHECK:STDOUT: %empty_struct.6e8: %.fed = struct_value () [concrete] // CHECK:STDOUT: %Indirect.type: type = fn_type @Indirect [concrete] // CHECK:STDOUT: %Indirect: %Indirect.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -793,7 +786,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // CHECK:STDOUT: %.e4a: %.97c = cpp_overload_set_value @Destroy.Op [concrete = constants.%empty_struct.504] -// CHECK:STDOUT: %.9c4: %.fed = cpp_overload_set_value @ptr.as.Destroy.impl.Op [concrete = constants.%empty_struct.6e8] +// CHECK:STDOUT: %.9c4: %.fed = cpp_overload_set_value @DestroyT.as_type.as.Destroy.impl.Op [concrete = constants.%empty_struct.6e8] // CHECK:STDOUT: %Indirect.decl: %Indirect.type = fn_decl @Indirect [concrete = constants.%Indirect] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -834,18 +827,18 @@ fn F() { // CHECK:STDOUT: %Indirect.call: init = call imports.%Indirect.decl(%.loc19_19.2) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_17.5: %type_where = converted constants.%S, %facet_value.loc19 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_17.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_17.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_17.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_17.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc19: %ptr.5c7 = addr_of %.loc19_17.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon b/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon index 124ac97d8ac6..4eb687e4b40b 100644 --- a/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon @@ -64,15 +64,15 @@ fn F() { // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %.289: type = cpp_overload_set_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %empty_struct.269: %.289 = struct_value () [concrete] -// CHECK:STDOUT: %const.e39: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.ff5: type = ptr_type %const.e39 [concrete] +// CHECK:STDOUT: %const: type = const_type %S [concrete] +// CHECK:STDOUT: %ptr.ff5: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstS__carbon_thunk.type: type = fn_type @TakesConstS__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstS__carbon_thunk: %TakesConstS__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -137,11 +137,11 @@ fn F() { // CHECK:STDOUT: %TakesConstS__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesConstS__carbon_thunk.decl(%.loc11_20.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc10: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc10: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/reference.carbon b/toolchain/check/testdata/interop/cpp/function/reference.carbon index f92e802e6718..d8a1930e3d40 100644 --- a/toolchain/check/testdata/interop/cpp/function/reference.carbon +++ b/toolchain/check/testdata/interop/cpp/function/reference.carbon @@ -232,10 +232,10 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %TakesLValue__carbon_thunk.type: type = fn_type @TakesLValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesLValue__carbon_thunk: %TakesLValue__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -276,11 +276,11 @@ fn F() { // CHECK:STDOUT: %TakesLValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesLValue__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -294,15 +294,15 @@ fn F() { // CHECK:STDOUT: %empty_struct: %.547 = struct_value () [concrete] // CHECK:STDOUT: %T: type = class_type @T [concrete] // CHECK:STDOUT: %pattern_type.e6b: type = pattern_type %T [concrete] -// CHECK:STDOUT: %const.e39: type = const_type %S [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %const: type = const_type %S [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %facet_value.19d: %type_where = facet_value %T, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8c8: %AggregateT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8c8: %DestroyT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b04: type = ptr_type %T [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -371,30 +371,30 @@ fn F() { // CHECK:STDOUT: %u.ref: ref %S = name_ref u, %u // CHECK:STDOUT: %Cpp.ref.loc40_30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc40: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %const: type = const_type %S.ref.loc40 [concrete = constants.%const.e39] -// CHECK:STDOUT: %.loc40_21.1: ref %const.e39 = as_compatible %u.ref -// CHECK:STDOUT: %.loc40_21.2: ref %const.e39 = converted %u.ref, %.loc40_21.1 +// CHECK:STDOUT: %const: type = const_type %S.ref.loc40 [concrete = constants.%const] +// CHECK:STDOUT: %.loc40_21.1: ref %const = as_compatible %u.ref +// CHECK:STDOUT: %.loc40_21.2: ref %const = converted %u.ref, %.loc40_21.1 // CHECK:STDOUT: %facet_value.loc31: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc31_3: %type_where = converted constants.%S, %facet_value.loc31 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %u.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %u.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc31: = bound_method %u.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc31: = bound_method %u.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc31: %ptr.5c7 = addr_of %u.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%T, () [concrete = constants.%facet_value.19d] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%T, %facet_value.loc20 [concrete = constants.%facet_value.19d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.8c8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8c8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20: %ptr.b04 = addr_of %t.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -410,10 +410,10 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %TakesRValue__carbon_thunk.type: type = fn_type @TakesRValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesRValue__carbon_thunk: %TakesRValue__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -448,11 +448,11 @@ fn F() { // CHECK:STDOUT: %TakesRValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesRValue__carbon_thunk.decl(%addr.loc8_30) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_20.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_20.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_20.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_20.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_20.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_20: %ptr.5c7 = addr_of %.loc8_20.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_20) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_20) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -469,10 +469,10 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %TakesRValue__carbon_thunk.type: type = fn_type @TakesRValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesRValue__carbon_thunk: %TakesRValue__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -514,11 +514,11 @@ fn F() { // CHECK:STDOUT: %TakesRValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesRValue__carbon_thunk.decl(%addr.loc13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_19.7: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_19.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_19.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc12_19.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc12_19.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc12: %ptr.5c7 = addr_of %.loc12_19.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -534,15 +534,15 @@ fn F() { // CHECK:STDOUT: %T: type = class_type @T [concrete] // CHECK:STDOUT: %pattern_type.e6b: type = pattern_type %T [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %const.e39: type = const_type %S [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %const: type = const_type %S [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %facet_value.19d: %type_where = facet_value %T, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8c8: %AggregateT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8c8: %DestroyT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b04: type = ptr_type %T [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -597,30 +597,30 @@ fn F() { // CHECK:STDOUT: %.loc38_23: ref %S = converted %.loc38_21.1, %.loc38_21.4 // CHECK:STDOUT: %Cpp.ref.loc38_42: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc38_45: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %const: type = const_type %S.ref.loc38_45 [concrete = constants.%const.e39] -// CHECK:STDOUT: %.loc38_33.1: ref %const.e39 = as_compatible %.loc38_23 -// CHECK:STDOUT: %.loc38_33.2: ref %const.e39 = converted %.loc38_23, %.loc38_33.1 +// CHECK:STDOUT: %const: type = const_type %S.ref.loc38_45 [concrete = constants.%const] +// CHECK:STDOUT: %.loc38_33.1: ref %const = as_compatible %.loc38_23 +// CHECK:STDOUT: %.loc38_33.2: ref %const = converted %.loc38_23, %.loc38_33.1 // CHECK:STDOUT: %facet_value.loc38: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc38_21.5: %type_where = converted constants.%S, %facet_value.loc38 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_21.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_21.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc38: = bound_method %.loc38_21.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc38: = bound_method %.loc38_21.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc38: %ptr.5c7 = addr_of %.loc38_21.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38(%addr.loc38) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38(%addr.loc38) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%T, () [concrete = constants.%facet_value.19d] // CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%T, %facet_value.loc19 [concrete = constants.%facet_value.19d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %t.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.8c8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8c8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc19: = bound_method %t.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc19: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc19: %ptr.b04 = addr_of %t.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -634,15 +634,15 @@ fn F() { // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %.4e1: type = cpp_overload_set_type @TakesConstLValue [concrete] // CHECK:STDOUT: %empty_struct: %.4e1 = struct_value () [concrete] -// CHECK:STDOUT: %const.e39: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.ff5: type = ptr_type %const.e39 [concrete] +// CHECK:STDOUT: %const: type = const_type %S [concrete] +// CHECK:STDOUT: %ptr.ff5: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.type: type = fn_type @TakesConstLValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk: %TakesConstLValue__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -681,9 +681,9 @@ fn F() { // CHECK:STDOUT: %s.ref.loc9: ref %S = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc9_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc9: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %const: type = const_type %S.ref.loc9 [concrete = constants.%const.e39] -// CHECK:STDOUT: %.loc9_26.1: ref %const.e39 = as_compatible %s.ref.loc9 -// CHECK:STDOUT: %.loc9_26.2: ref %const.e39 = converted %s.ref.loc9, %.loc9_26.1 +// CHECK:STDOUT: %const: type = const_type %S.ref.loc9 [concrete = constants.%const] +// CHECK:STDOUT: %.loc9_26.1: ref %const = as_compatible %s.ref.loc9 +// CHECK:STDOUT: %.loc9_26.2: ref %const = converted %s.ref.loc9, %.loc9_26.1 // CHECK:STDOUT: %addr.loc9: %ptr.ff5 = addr_of %.loc9_26.2 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -695,11 +695,11 @@ fn F() { // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc11_24.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -713,21 +713,21 @@ fn F() { // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %.4e1: type = cpp_overload_set_type @TakesConstLValue [concrete] // CHECK:STDOUT: %empty_struct: %.4e1 = struct_value () [concrete] -// CHECK:STDOUT: %const.e39: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.ff5: type = ptr_type %const.e39 [concrete] +// CHECK:STDOUT: %const: type = const_type %S [concrete] +// CHECK:STDOUT: %ptr.ff5: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.type: type = fn_type @TakesConstLValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstLValue__carbon_thunk: %TakesConstLValue__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %T: type = class_type @T [concrete] // CHECK:STDOUT: %pattern_type.e6b: type = pattern_type %T [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.19d: %type_where = facet_value %T, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8c8: %AggregateT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8c8: %DestroyT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b04: type = ptr_type %T [concrete] // CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -786,18 +786,18 @@ fn F() { // CHECK:STDOUT: %t.ref: ref %T = name_ref t, %t // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%T, () [concrete = constants.%facet_value.19d] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%T, %facet_value.loc20 [concrete = constants.%facet_value.19d] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.8c8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8c8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20: %ptr.b04 = addr_of %t.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc12_19.7: %type_where = converted constants.%S, %facet_value.loc12 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_19.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_19.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_19.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_19.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc12: %ptr.5c7 = addr_of %.loc12_19.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: // 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 daa8893380b3..2d6c6fae1d89 100644 --- a/toolchain/check/testdata/interop/cpp/function/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/struct.carbon @@ -533,10 +533,10 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -571,11 +571,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.5c7 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -590,10 +590,10 @@ fn F() { // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -627,11 +627,11 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc24_14.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.5c7 = addr_of %.loc24_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -708,10 +708,10 @@ fn F() { // CHECK:STDOUT: %ptr.edf: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.1c1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.dc3: %AggregateT.as_type.as.Destroy.impl.Op.type.1c1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1c1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dc3: %DestroyT.as_type.as.Destroy.impl.Op.type.1c1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -762,18 +762,18 @@ fn F() { // CHECK:STDOUT: %x: ref %S = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%S, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.dc3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.dc3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.edf = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.dc3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.dc3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.edf = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -789,10 +789,10 @@ fn F() { // CHECK:STDOUT: %ptr.887: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c17: %AggregateT.as_type.as.Destroy.impl.Op.type.fb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.fb3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -838,11 +838,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_31) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.887 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -860,14 +860,14 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.568: %type_where = facet_value %O, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.568) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c17: %AggregateT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.568) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] // CHECK:STDOUT: %facet_value.769: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.e87: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.769) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.487: %AggregateT.as_type.as.Destroy.impl.Op.type.e87 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e87: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.769) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.487: %DestroyT.as_type.as.Destroy.impl.Op.type.e87 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -914,18 +914,18 @@ fn F() { // CHECK:STDOUT: %x: ref %O = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%O, () [concrete = constants.%facet_value.568] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%O, %facet_value.loc9 [concrete = constants.%facet_value.568] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.820 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.769] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.769] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.487 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.487 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.149 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -945,10 +945,10 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -989,11 +989,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc9_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc9_12: %ptr.5c7 = addr_of %.loc9_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1013,10 +1013,10 @@ fn F() { // CHECK:STDOUT: %empty_struct.21b: %.bce = struct_value () [concrete] // CHECK:STDOUT: %S.bar.type: type = fn_type @S.bar [concrete] // CHECK:STDOUT: %S.bar: %S.bar.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1057,11 +1057,11 @@ fn F() { // CHECK:STDOUT: %S.bar.call: init %empty_tuple.type = call imports.%S.bar.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.5c7 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1147,10 +1147,10 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cc2: %AggregateT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1177,11 +1177,11 @@ fn F() { // CHECK:STDOUT: %.loc8_11.3: ref %S = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.5c7 = addr_of %.loc8_11.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/union.carbon b/toolchain/check/testdata/interop/cpp/function/union.carbon index 7b38dc0ec050..26128c25c271 100644 --- a/toolchain/check/testdata/interop/cpp/function/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/union.carbon @@ -524,10 +524,10 @@ fn F() { // CHECK:STDOUT: %ptr.86f: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.4aa: %AggregateT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -562,11 +562,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.86f = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -643,10 +643,10 @@ fn F() { // CHECK:STDOUT: %ptr.87e: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f0f: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.2bd: %AggregateT.as_type.as.Destroy.impl.Op.type.f0f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f0f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.2bd: %DestroyT.as_type.as.Destroy.impl.Op.type.f0f = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -697,18 +697,18 @@ fn F() { // CHECK:STDOUT: %x: ref %U = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%U, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.2bd +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.2bd // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.87e = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.2bd +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.2bd // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.87e = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -724,10 +724,10 @@ fn F() { // CHECK:STDOUT: %ptr.8c1: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.da5: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.941: %AggregateT.as_type.as.Destroy.impl.Op.type.da5 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.da5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.941: %DestroyT.as_type.as.Destroy.impl.Op.type.da5 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -773,11 +773,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_31) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.941 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.941 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.8c1 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -795,14 +795,14 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.568: %type_where = facet_value %O, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.568) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c17: %AggregateT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.568) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] // CHECK:STDOUT: %facet_value.f72: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b0e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.f72) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bcd: %AggregateT.as_type.as.Destroy.impl.Op.type.b0e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b0e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.f72) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bcd: %DestroyT.as_type.as.Destroy.impl.Op.type.b0e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -849,18 +849,18 @@ fn F() { // CHECK:STDOUT: %x: ref %O = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%O, () [concrete = constants.%facet_value.568] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%O, %facet_value.loc9 [concrete = constants.%facet_value.568] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.820 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value.f72] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value.loc8 [concrete = constants.%facet_value.f72] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.bcd +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.bcd // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.a6c = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -880,10 +880,10 @@ fn F() { // CHECK:STDOUT: %ptr.86f: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.4aa: %AggregateT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -924,11 +924,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc9_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_12.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc9_12: %ptr.86f = addr_of %.loc9_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -948,10 +948,10 @@ fn F() { // CHECK:STDOUT: %empty_struct.e6c: %.372 = struct_value () [concrete] // CHECK:STDOUT: %U.bar.type: type = fn_type @U.bar [concrete] // CHECK:STDOUT: %U.bar: %U.bar.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.4aa: %AggregateT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -992,11 +992,11 @@ fn F() { // CHECK:STDOUT: %U.bar.call: init %empty_tuple.type = call imports.%U.bar.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.86f = addr_of %.loc8_12.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1082,10 +1082,10 @@ fn F() { // CHECK:STDOUT: %ptr.86f: type = ptr_type %U [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.4aa: %AggregateT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1112,11 +1112,11 @@ fn F() { // CHECK:STDOUT: %.loc8_11.3: ref %U = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.86f = addr_of %.loc8_11.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/namespace.carbon b/toolchain/check/testdata/interop/cpp/namespace.carbon index 768f75fe7758..cb6991718086 100644 --- a/toolchain/check/testdata/interop/cpp/namespace.carbon +++ b/toolchain/check/testdata/interop/cpp/namespace.carbon @@ -372,10 +372,10 @@ fn Use(y: Cpp.Y) -> i32 { // CHECK:STDOUT: %ptr.13d: type = ptr_type %X [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.24f: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.675: %AggregateT.as_type.as.Destroy.impl.Op.type.24f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.24f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.675: %DestroyT.as_type.as.Destroy.impl.Op.type.24f = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -402,11 +402,11 @@ fn Use(y: Cpp.Y) -> i32 { // CHECK:STDOUT: %.loc8_11.3: ref %X = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%X, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.675 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.675 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.13d = addr_of %.loc8_11.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/typedef.carbon b/toolchain/check/testdata/interop/cpp/typedef.carbon index 60bbf33902e7..6dfbe613b912 100644 --- a/toolchain/check/testdata/interop/cpp/typedef.carbon +++ b/toolchain/check/testdata/interop/cpp/typedef.carbon @@ -84,13 +84,14 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.235, (%Copy.impl_witness.a93) [concrete] // CHECK:STDOUT: %.9e2: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -139,25 +140,27 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %bound_method.loc10_21.2: = bound_method %addr.loc10_21, %specific_fn.loc10 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.235 = call %bound_method.loc10_21.2(%addr.loc10_21) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr.235] { +// CHECK:STDOUT: %.loc10_17: type = splice_block %ptr [concrete = constants.%ptr.235] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: // CHECK:STDOUT: %bar.ref: type = name_ref bar, %i32.1 [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %bar.ref [concrete = constants.%ptr.235] // CHECK:STDOUT: } // CHECK:STDOUT: %p: ref %ptr.235 = bind_name p, %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %p.var, constants.%ptr.as.Destroy.impl.Op.c04 +// CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%ptr.235, %facet_value.loc10 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %p.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.5d5 = addr_of %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) +// CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%i32, %facet_value.loc8 [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3.3: = bound_method %n.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_3.3(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.3(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -179,8 +182,10 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.d9e, (%Copy.impl_witness.144) [concrete] // CHECK:STDOUT: %.7e1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.106, @ptr.as.Copy.impl.Op(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.fe9: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.e76: %ptr.as.Destroy.impl.Op.type.fe9 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.d9e, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e61: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.80c: %DestroyT.as_type.as.Destroy.impl.Op.type.e61 = struct_value () [concrete] // CHECK:STDOUT: %ptr.01d: type = ptr_type %ptr.d9e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -210,7 +215,7 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %bound_method.loc9_20.2: = bound_method %addr.loc9_20, %specific_fn.loc9 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc9: init %ptr.d9e = call %bound_method.loc9_20.2(%addr.loc9_20) // CHECK:STDOUT: assign %pd.var, %ptr.as.Copy.impl.Op.call.loc9 -// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.d9e] { +// CHECK:STDOUT: %.loc9_16: type = splice_block %ptr.loc9 [concrete = constants.%ptr.d9e] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %D.ref.loc9: type = name_ref D, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr.loc9: type = ptr_type %D.ref.loc9 [concrete = constants.%ptr.d9e] @@ -229,22 +234,26 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %bound_method.loc10_20.2: = bound_method %addr.loc10_20, %specific_fn.loc10 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc10: init %ptr.d9e = call %bound_method.loc10_20.2(%addr.loc10_20) // CHECK:STDOUT: assign %pc.var, %ptr.as.Copy.impl.Op.call.loc10 -// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.d9e] { +// CHECK:STDOUT: %.loc10_16: type = splice_block %ptr.loc10 [concrete = constants.%ptr.d9e] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr.loc10: type = ptr_type %C.ref.loc10 [concrete = constants.%ptr.d9e] // CHECK:STDOUT: } // CHECK:STDOUT: %pc: ref %ptr.d9e = bind_name pc, %pc.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc10: = bound_method %pc.var, constants.%ptr.as.Destroy.impl.Op.e76 +// CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%ptr.d9e, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%ptr.d9e, %facet_value.loc10 [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %pc.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.80c // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %pc.var, %ptr.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %pc.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.01d = addr_of %pc.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc9: = bound_method %pd.var, constants.%ptr.as.Destroy.impl.Op.e76 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) +// CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%ptr.d9e, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%ptr.d9e, %facet_value.loc9 [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %pd.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.80c // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %pd.var, %ptr.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %pd.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_3: %ptr.01d = addr_of %pd.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index d62648385bb6..e54047f3483a 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -330,25 +330,25 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c7f: %type_where = facet_value %tuple.type.2d5, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b05: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1d6: %AggregateT.as_type.as.Destroy.impl.Op.type.b05 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cca: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.1d6, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.c7f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b05: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1d6: %DestroyT.as_type.as.Destroy.impl.Op.type.b05 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.1d6, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c7f) [concrete] // CHECK:STDOUT: %facet_value.dcc: %type_where = facet_value %tuple.type.bcd, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.50f: %AggregateT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.c15: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] // CHECK:STDOUT: %facet_value.132: %type_where = facet_value %tuple.type.9fb, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.2ee: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.132) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7ed: %AggregateT.as_type.as.Destroy.impl.Op.type.2ee = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.132) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7ed: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee = struct_value () [concrete] // CHECK:STDOUT: %ptr.652: type = ptr_type %tuple.type.9fb [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.af4: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.7ed, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.132) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.af4: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7ed, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.132) [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -558,32 +558,32 @@ impl i32 as Empty { // CHECK:STDOUT: %d1: ref %tuple.type.2d5 = bind_name d1, %d1.var // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%tuple.type.2d5, () [concrete = constants.%facet_value.c7f] // CHECK:STDOUT: %.loc16_5.2: %type_where = converted constants.%tuple.type.2d5, %facet_value.loc16 [concrete = constants.%facet_value.c7f] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %d1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.1d6 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.1d6, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.c7f) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.cca] -// CHECK:STDOUT: %bound_method.loc16: = bound_method %d1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %d1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1d6 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.1d6, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c7f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cca] +// CHECK:STDOUT: %bound_method.loc16: = bound_method %d1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc16: %ptr.7fe = addr_of %d1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16) // CHECK:STDOUT: %facet_value.loc15: %type_where = facet_value constants.%tuple.type.bcd, () [concrete = constants.%facet_value.dcc] // CHECK:STDOUT: %.loc15_5.2: %type_where = converted constants.%tuple.type.bcd, %facet_value.loc15 [concrete = constants.%facet_value.dcc] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %c1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.c15] -// CHECK:STDOUT: %bound_method.loc15: = bound_method %c1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15] +// CHECK:STDOUT: %bound_method.loc15: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc15: %ptr.709 = addr_of %c1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15) // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%tuple.type.9fb, () [concrete = constants.%facet_value.132] // CHECK:STDOUT: %.loc14_5.2: %type_where = converted constants.%tuple.type.9fb, %facet_value.loc14 [concrete = constants.%facet_value.132] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.7ed -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.7ed, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.132) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.af4] -// CHECK:STDOUT: %bound_method.loc14: = bound_method %b1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7ed +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7ed, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.132) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.af4] +// CHECK:STDOUT: %bound_method.loc14: = bound_method %b1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc14: %ptr.652 = addr_of %b1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc13_5.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc13 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %a1.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc13: = bound_method %a1.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %a1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc13: = bound_method %a1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc13: %ptr.843 = addr_of %a1.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/generic.carbon b/toolchain/check/testdata/let/generic.carbon index 099d4e205662..35c9c93b1689 100644 --- a/toolchain/check/testdata/let/generic.carbon +++ b/toolchain/check/testdata/let/generic.carbon @@ -32,17 +32,23 @@ fn F() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f131.1 [symbolic] +// CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %ptr.a13abe.2: type = ptr_type %ptr.79f131.1 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.3af: = lookup_impl_witness %ptr.79f131.1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f131.1, (%Destroy.lookup_impl_witness.3af) [symbolic] -// CHECK:STDOUT: %.fc8: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.108: %.fc8 = impl_witness_access %Destroy.lookup_impl_witness.3af, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a84: = specific_impl_function %impl.elem0.108, @Destroy.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.79f, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] +// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -54,6 +60,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -78,27 +86,29 @@ fn F() { // CHECK:STDOUT: %p.patt: %pattern_type.afe = binding_pattern p [concrete] // CHECK:STDOUT: %p.var_patt: %pattern_type.afe = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.79f131.1 = var %p.var_patt -// CHECK:STDOUT: %.loc17_11: type = splice_block %ptr [symbolic = constants.%ptr.79f131.1] { +// CHECK:STDOUT: %p.var: ref %ptr.79f = var %p.var_patt +// CHECK:STDOUT: %.loc17_11: type = splice_block %ptr [symbolic = constants.%ptr.79f] { // CHECK:STDOUT: %T.ref.loc17: type = name_ref T, %T [symbolic = constants.%T] -// CHECK:STDOUT: %ptr: type = ptr_type %T.ref.loc17 [symbolic = constants.%ptr.79f131.1] +// CHECK:STDOUT: %ptr: type = ptr_type %T.ref.loc17 [symbolic = constants.%ptr.79f] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.79f131.1 = bind_name p, %p.var +// CHECK:STDOUT: %p: ref %ptr.79f = bind_name p, %p.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.7dc = binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.ref: ref %ptr.79f131.1 = name_ref p, %p -// CHECK:STDOUT: %.loc18_15: %ptr.79f131.1 = bind_value %p.ref +// CHECK:STDOUT: %p.ref: ref %ptr.79f = name_ref p, %p +// CHECK:STDOUT: %.loc18_15: %ptr.79f = bind_value %p.ref // CHECK:STDOUT: %.loc18_14.1: ref %T = deref %.loc18_15 // CHECK:STDOUT: %T.ref.loc18: type = name_ref T, %T [symbolic = constants.%T] // CHECK:STDOUT: %.loc18_14.2: %T = bind_value %.loc18_14.1 // CHECK:STDOUT: %a: %T = bind_name a, %.loc18_14.2 -// CHECK:STDOUT: %impl.elem0: %.fc8 = impl_witness_access constants.%Destroy.lookup_impl_witness.3af, element0 [symbolic = constants.%impl.elem0.108] +// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%ptr.79f, () [symbolic = constants.%facet_value] +// CHECK:STDOUT: %.loc17_3: %type_where = converted constants.%ptr.79f, %facet_value [symbolic = constants.%facet_value] +// CHECK:STDOUT: %impl.elem0: %.280 = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.b86] // CHECK:STDOUT: %bound_method.loc17_3.1: = bound_method %p.var, %impl.elem0 -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Destroy.Op(constants.%Destroy.facet) [symbolic = constants.%specific_impl_fn.a84] -// CHECK:STDOUT: %bound_method.loc17_3.2: = bound_method %p.var, %specific_impl_fn -// CHECK:STDOUT: %addr: %ptr.a13abe.2 = addr_of %p.var -// CHECK:STDOUT: %.loc17_3: init %empty_tuple.type = call %bound_method.loc17_3.2(%addr) +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc17_3.2: = bound_method %p.var, %specific_fn +// CHECK:STDOUT: %addr: %ptr.a13 = addr_of %p.var +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_3.2(%addr) // CHECK:STDOUT: return // 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 4d7b60304ab0..28400f3af4c7 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -168,12 +168,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.709: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.84b: %AggregateT.as_type.as.Destroy.impl.Op.type.709 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.709: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.84b: %DestroyT.as_type.as.Destroy.impl.Op.type.709 = struct_value () [concrete] // CHECK:STDOUT: %ptr.07e: type = ptr_type %A [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.84b, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.84b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -245,18 +245,18 @@ fn Run() { // CHECK:STDOUT: assign %a.ref, %F.call.loc13 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%A, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.84b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.84b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.84b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.84b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.07e = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_11.3: %type_where = converted constants.%A, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.loc7_11.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.84b -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.84b, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7: = bound_method %.loc7_11.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.loc7_11.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.84b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.84b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7: = bound_method %.loc7_11.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.07e = addr_of %.loc7_11.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index 4fc1af171ace..d3837c556485 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -76,12 +76,12 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -170,11 +170,11 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc29_12.2(%.loc29) // CHECK:STDOUT: %facet_value.loc26_5.1: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_5.2: %type_where = converted constants.%i32, %facet_value.loc26_5.1 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26_5.1: = bound_method %A.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_5.3: = bound_method %A.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26_5.1: = bound_method %A.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_5.3: = bound_method %A.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26_5.1: %ptr.235 = addr_of %A.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26_5.1: init %empty_tuple.type = call %bound_method.loc26_5.3(%addr.loc26_5.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26_5.1: init %empty_tuple.type = call %bound_method.loc26_5.3(%addr.loc26_5.1) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -187,11 +187,11 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %.loc31: init %i32 = converted %int_0.loc31, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc26_5.2: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_5.3: %type_where = converted constants.%i32, %facet_value.loc26_5.2 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26_5.2: = bound_method %A.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_5.4: = bound_method %A.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26_5.2: = bound_method %A.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_5.4: = bound_method %A.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26_5.2: %ptr.235 = addr_of %A.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26_5.2: init %empty_tuple.type = call %bound_method.loc26_5.4(%addr.loc26_5.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26_5.2: init %empty_tuple.type = call %bound_method.loc26_5.4(%addr.loc26_5.2) // CHECK:STDOUT: return %.loc31 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/and.carbon b/toolchain/check/testdata/operators/builtin/and.carbon index 649f4743118d..d3b088563d55 100644 --- a/toolchain/check/testdata/operators/builtin/and.carbon +++ b/toolchain/check/testdata/operators/builtin/and.carbon @@ -58,15 +58,17 @@ 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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.type: type = fn_type @bool.as.Destroy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op: %bool.as.Destroy.impl.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -192,8 +194,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt // CHECK:STDOUT: %true.loc23_47: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %impl.elem0: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %true.loc23_47, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc23(%true.loc23_47) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc23_47: = bound_method %true.loc23_47, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc23_47(%true.loc23_47) [concrete = constants.%true] // CHECK:STDOUT: assign %a.var, %bool.as.Copy.impl.Op.call // CHECK:STDOUT: br !.loc23_13 // CHECK:STDOUT: @@ -350,30 +352,34 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc26_7: // CHECK:STDOUT: %d: ref %empty_tuple.type = bind_name d, %d.var -// CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc26 [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.843 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) -// CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc25_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc25 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc25: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %.loc25_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc25 [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc25: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.843 = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) -// CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc24_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc24 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) +// CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %.loc24_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc24 [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc24: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) +// CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %.loc23_3: %type_where = converted bool, %facet_value.loc23 [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %a.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound(%addr.loc23) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -420,13 +426,13 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc30_7: // CHECK:STDOUT: %a: ref %empty_tuple.type = bind_name a, %a.var -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc30_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %.loc30_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index bce73449fbca..13db6dc7012d 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -113,23 +113,24 @@ fn Main() { // CHECK:STDOUT: %bound_method.422: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: %facet_value.de6: %type_where = facet_value %struct_type.a.b.501, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.de6) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f75: %AggregateT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.0f3: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f75, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f75: %DestroyT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] // CHECK:STDOUT: %facet_value.5be: %type_where = facet_value %tuple.type.d07, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.5be) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e4f: %AggregateT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.606: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.e4f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5be) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -315,7 +316,7 @@ fn Main() { // CHECK:STDOUT: %bound_method.loc27_17.2: = bound_method %addr.loc27_17, %specific_fn.loc27 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.235 = call %bound_method.loc27_17.2(%addr.loc27_17) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc27: type = splice_block %ptr [concrete = constants.%ptr.235] { +// CHECK:STDOUT: %.loc27_13: type = splice_block %ptr [concrete = constants.%ptr.235] { // CHECK:STDOUT: %int_32.loc27: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc27: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %i32.loc27 [concrete = constants.%ptr.235] @@ -356,32 +357,34 @@ fn Main() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.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, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc30 [concrete = constants.%int_10.265] // CHECK:STDOUT: assign %.loc30_3, %.loc30_29 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %p.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_3: = bound_method %p.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc27_3: %type_where = converted constants.%ptr.235, %facet_value.loc27 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc27_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27_3: %ptr.5d5 = addr_of %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc27_3(%addr.loc27_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_3(%addr.loc27_3) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%struct_type.a.b.501, () [concrete = constants.%facet_value.de6] // CHECK:STDOUT: %.loc23_3.2: %type_where = converted constants.%struct_type.a.b.501, %facet_value.loc23 [concrete = constants.%facet_value.de6] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %c.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.f75 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f75, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.0f3] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %c.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f75 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.3ee = addr_of %c.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value.5be] // CHECK:STDOUT: %.loc19_3.2: %type_where = converted constants.%tuple.type.d07, %facet_value.loc19 [concrete = constants.%facet_value.5be] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e4f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e4f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.606] -// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %b.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606] +// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc19: %ptr.261 = addr_of %b.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value.loc16 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 917359230194..388619817c8e 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 @@ -135,11 +135,11 @@ fn Main() { // CHECK:STDOUT: %bound_method.422: = bound_method %int_10.64f, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -372,18 +372,18 @@ fn Main() { // CHECK:STDOUT: assign %.loc61_4, %.loc61_27 // CHECK:STDOUT: %facet_value.loc56: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc56_3: %type_where = converted constants.%i32, %facet_value.loc56 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc56: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc56: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc56: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56(%addr.loc56) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56(%addr.loc56) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc33_3.2: %type_where = converted constants.%i32, %facet_value.loc33 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %n.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %n.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 d583e4a41832..519093136f09 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -74,12 +74,12 @@ fn Main() { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,11 +169,11 @@ fn Main() { // CHECK:STDOUT: assign %a.ref.loc28_3, %F.call // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3.3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_3.3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon index 514fd5c61550..7cd1cef30d72 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon @@ -36,9 +36,12 @@ 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: %bool.as.Destroy.impl.Op.type: type = fn_type @bool.as.Destroy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op: %bool.as.Destroy.impl.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -80,9 +83,13 @@ fn Main() { // CHECK:STDOUT: %.loc23_10.3: type = converted %Bool.call, %.loc23_10.2 [concrete = bool] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref bool = bind_name x, %x.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc23_3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bb2 = addr_of %x.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 14e1efdd98a5..37557af3997c 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon @@ -54,12 +54,12 @@ fn Main() { // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %float: Core.FloatLiteral = float_literal_value 56e-1 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -112,11 +112,11 @@ fn Main() { // CHECK:STDOUT: assign %a.ref, // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index 20f97133947b..dc2e3b6f5d73 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -58,15 +58,17 @@ 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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.type: type = fn_type @bool.as.Destroy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op: %bool.as.Destroy.impl.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -193,8 +195,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt // CHECK:STDOUT: %true.loc23_46: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %impl.elem0.loc23: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %true.loc23_46, %impl.elem0.loc23 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc23: init bool = call %bound_method.loc23(%true.loc23_46) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc23_46: = bound_method %true.loc23_46, %impl.elem0.loc23 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc23: init bool = call %bound_method.loc23_46(%true.loc23_46) [concrete = constants.%true] // CHECK:STDOUT: assign %a.var, %bool.as.Copy.impl.Op.call.loc23 // CHECK:STDOUT: br !.loc23_13 // CHECK:STDOUT: @@ -236,8 +238,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %b.var: ref bool = var %b.var_patt // CHECK:STDOUT: %true.loc24_47: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %impl.elem0.loc24: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %true.loc24_47, %impl.elem0.loc24 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc24: init bool = call %bound_method.loc24(%true.loc24_47) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc24_47: = bound_method %true.loc24_47, %impl.elem0.loc24 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc24: init bool = call %bound_method.loc24_47(%true.loc24_47) [concrete = constants.%true] // CHECK:STDOUT: assign %b.var, %bool.as.Copy.impl.Op.call.loc24 // CHECK:STDOUT: br !.loc24_13 // CHECK:STDOUT: @@ -279,8 +281,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %c.var: ref bool = var %c.var_patt // CHECK:STDOUT: %true.loc25_47: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %impl.elem0.loc25: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method.loc25: = bound_method %true.loc25_47, %impl.elem0.loc25 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc25: init bool = call %bound_method.loc25(%true.loc25_47) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc25_47: = bound_method %true.loc25_47, %impl.elem0.loc25 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call.loc25: init bool = call %bound_method.loc25_47(%true.loc25_47) [concrete = constants.%true] // CHECK:STDOUT: assign %c.var, %bool.as.Copy.impl.Op.call.loc25 // CHECK:STDOUT: br !.loc25_13 // CHECK:STDOUT: @@ -357,22 +359,34 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc26_7: // CHECK:STDOUT: %d: ref %empty_tuple.type = bind_name d, %d.var -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc26 [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.843 = addr_of %d.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %.loc25_3: %type_where = converted bool, %facet_value.loc25 [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] +// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.bb2 = addr_of %c.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound.loc25(%addr.loc25) -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) +// CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %.loc24_3: %type_where = converted bool, %facet_value.loc24 [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound.loc24(%addr.loc24) -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) +// CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %.loc23_3: %type_where = converted bool, %facet_value.loc23 [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %a.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound.loc23(%addr.loc23) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -385,8 +399,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt // CHECK:STDOUT: %true.loc30_43: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %impl.elem0: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %true.loc30_43, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method(%true.loc30_43) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc30_43: = bound_method %true.loc30_43, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc30_43(%true.loc30_43) [concrete = constants.%true] // CHECK:STDOUT: assign %a.var, %bool.as.Copy.impl.Op.call // CHECK:STDOUT: br !.loc30_13 // CHECK:STDOUT: @@ -421,9 +435,13 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !.loc30_7: // CHECK:STDOUT: %a: ref bool = bind_name a, %a.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %.loc30_3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] +// CHECK:STDOUT: %bound_method.loc30_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bb2 = addr_of %a.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc30_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 608db737fa4e..982274fdadd9 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -48,15 +48,17 @@ fn Constant() { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.type: type = fn_type @bool.as.Destroy.impl.Op [concrete] -// CHECK:STDOUT: %bool.as.Destroy.impl.Op: %bool.as.Destroy.impl.Op.type = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -175,8 +177,8 @@ fn Constant() { // CHECK:STDOUT: %b.var: ref bool = var %b.var_patt // CHECK:STDOUT: %true.loc24: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %impl.elem0: %.05c = impl_witness_access constants.%Copy.impl_witness.a56, element0 [concrete = constants.%bool.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %true.loc24, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] -// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc24(%true.loc24) [concrete = constants.%true] +// CHECK:STDOUT: %bound_method.loc24_43: = bound_method %true.loc24, %impl.elem0 [concrete = constants.%bool.as.Copy.impl.Op.bound] +// CHECK:STDOUT: %bool.as.Copy.impl.Op.call: init bool = call %bound_method.loc24_43(%true.loc24) [concrete = constants.%true] // CHECK:STDOUT: assign %b.var, %bool.as.Copy.impl.Op.call // CHECK:STDOUT: br !.loc24_17 // CHECK:STDOUT: @@ -202,16 +204,20 @@ fn Constant() { // CHECK:STDOUT: // CHECK:STDOUT: !.loc24_7: // CHECK:STDOUT: %b: ref bool = bind_name b, %b.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%bool.as.Destroy.impl.Op +// CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %.loc24_3: %type_where = converted bool, %facet_value.loc24 [concrete = constants.%facet_value.3f5] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var -// CHECK:STDOUT: %bool.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bool.as.Destroy.impl.Op.bound(%addr.loc24) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc23_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) +// CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %.loc23_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc23 [concrete = constants.%facet_value.ff9] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.843 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index 473cd36fe78f..6f078499b830 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -68,12 +68,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b80: %AggregateT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -183,11 +183,11 @@ fn TestRef(b: C) { // CHECK:STDOUT: %a.ref.loc46: ref %C = name_ref a, %a // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc36_3.2: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b80, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %a.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index 436c246f00b8..3ee02e25483b 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -96,12 +96,12 @@ fn Test() { // CHECK:STDOUT: %Source.specific_fn.cc7: = specific_function %Source, @Source(%i32) [concrete] // CHECK:STDOUT: %.c6c: type = fn_type_with_self_type %ImplicitAs.Convert.type.665, %ImplicitAs.facet.d14 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.177: %AggregateT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.177, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.177, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -330,18 +330,18 @@ fn Test() { // CHECK:STDOUT: %Sink_X.call: init %empty_tuple.type = call %Sink_X.ref(%.loc35_20.6) // CHECK:STDOUT: %facet_value.loc35: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc35_20.7: %type_where = converted constants.%X, %facet_value.loc35 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_20.5, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.177, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc35_20.2: = bound_method %.loc35_20.5, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_20.5, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.177, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc35_20.2: = bound_method %.loc35_20.5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35: %ptr.d17 = addr_of %.loc35_20.5 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_20.2(%addr.loc35) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_20.2(%addr.loc35) // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_20.6: %type_where = converted constants.%X, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_20.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.177 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.177, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc34_20.2: = bound_method %.loc34_20.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.177, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc34_20.2: = bound_method %.loc34_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc34: %ptr.d17 = addr_of %.loc34_20.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_20.2(%addr.loc34) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_20.2(%addr.loc34) // CHECK:STDOUT: return // CHECK:STDOUT: } // 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 ec4e78c7d42f..53d3e458465b 100644 --- a/toolchain/check/testdata/package_expr/fail_not_found.carbon +++ b/toolchain/check/testdata/package_expr/fail_not_found.carbon @@ -32,12 +32,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -78,11 +78,11 @@ fn Main() { // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %y.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %y.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index e7fd41b052c3..7440d59f1019 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -195,12 +195,12 @@ fn Main() { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -283,18 +283,18 @@ fn Main() { // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%i32, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %y.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %y.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.235 = addr_of %y.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%i32, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_3.3: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_3.3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.235 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.3(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.3(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/patterns/underscore.carbon b/toolchain/check/testdata/patterns/underscore.carbon index 60550b16e9a5..46d2bf0dc54b 100644 --- a/toolchain/check/testdata/patterns/underscore.carbon +++ b/toolchain/check/testdata/patterns/underscore.carbon @@ -119,12 +119,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bf3: %AggregateT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.bf3, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -194,11 +194,11 @@ fn F() -> {} { // CHECK:STDOUT: %_.loc9: ref %empty_struct_type = bind_name _, %_.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%empty_struct_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %_.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.bf3, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %_.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %_.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %_.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %_.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index 7842f42a4ac5..fe7c80915460 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -58,11 +58,11 @@ fn F() -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -134,11 +134,11 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc17_10.2(%.loc17_10.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index 9f064393f616..b352389e4786 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -88,23 +88,25 @@ 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: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.487: = specific_function %ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(%i32) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: %facet_value.5be: %type_where = facet_value %tuple.type.d07, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.5be) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e4f: %AggregateT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.606: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.e4f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.37e: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%struct_type.a.b.501) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.ff4: %ptr.as.Destroy.impl.Op.type.37e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5be) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] +// CHECK:STDOUT: %facet_value.494: %type_where = facet_value %ptr.3ee, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9a5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.494) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7ac: %DestroyT.as_type.as.Destroy.impl.Op.type.9a5 = struct_value () [concrete] // CHECK:STDOUT: %ptr.40c: type = ptr_type %ptr.3ee [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.8df: = specific_function %ptr.as.Destroy.impl.Op.ff4, @ptr.as.Destroy.impl.Op(%struct_type.a.b.501) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e7: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7ac, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.494) [concrete] // CHECK:STDOUT: %facet_value.de6: %type_where = facet_value %struct_type.a.b.501, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.de6) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f75: %AggregateT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.0f3: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f75, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f75: %DestroyT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -185,7 +187,7 @@ fn F() { // CHECK:STDOUT: %bound_method.loc18_32.2: = bound_method %addr.loc18_32, %specific_fn.loc18 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc18: init %ptr.3ee = call %bound_method.loc18_32.2(%addr.loc18_32) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call.loc18 -// CHECK:STDOUT: %.loc18: type = splice_block %ptr.loc18 [concrete = constants.%ptr.3ee] { +// CHECK:STDOUT: %.loc18_28: type = splice_block %ptr.loc18 [concrete = constants.%ptr.3ee] { // CHECK:STDOUT: %int_32.loc18_15: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc18_15: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %int_32.loc18_24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -285,7 +287,7 @@ fn F() { // CHECK:STDOUT: %bound_method.loc23_18.2: = bound_method %addr.loc23_18, %specific_fn.loc23 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc23: init %ptr.235 = call %bound_method.loc23_18.2(%addr.loc23_18) // CHECK:STDOUT: assign %t0.var, %ptr.as.Copy.impl.Op.call.loc23 -// CHECK:STDOUT: %.loc23: type = splice_block %ptr.loc23 [concrete = constants.%ptr.235] { +// CHECK:STDOUT: %.loc23_14: type = splice_block %ptr.loc23 [concrete = constants.%ptr.235] { // CHECK:STDOUT: %int_32.loc23: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc23: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %ptr.loc23: type = ptr_type %i32.loc23 [concrete = constants.%ptr.235] @@ -306,51 +308,61 @@ fn F() { // CHECK:STDOUT: %bound_method.loc24_18.2: = bound_method %addr.loc24_18, %specific_fn.loc24 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc24: init %ptr.235 = call %bound_method.loc24_18.2(%addr.loc24_18) // CHECK:STDOUT: assign %t1.var, %ptr.as.Copy.impl.Op.call.loc24 -// CHECK:STDOUT: %.loc24: type = splice_block %ptr.loc24 [concrete = constants.%ptr.235] { +// CHECK:STDOUT: %.loc24_14: type = splice_block %ptr.loc24 [concrete = constants.%ptr.235] { // CHECK:STDOUT: %int_32.loc24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc24: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %ptr.loc24: type = ptr_type %i32.loc24 [concrete = constants.%ptr.235] // CHECK:STDOUT: } // CHECK:STDOUT: %t1: ref %ptr.235 = bind_name t1, %t1.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc24: = bound_method %t1.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn.487] -// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %t1.var, %ptr.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc24_3: %type_where = converted constants.%ptr.235, %facet_value.loc24 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %t1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %t1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24_3: %ptr.5d5 = addr_of %t1.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24_3) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc23: = bound_method %t0.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn.487] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %t0.var, %ptr.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24_3) +// CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc23_3: %type_where = converted constants.%ptr.235, %facet_value.loc23 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %t0.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %t0.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23_3: %ptr.5d5 = addr_of %t0.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value.5be] // CHECK:STDOUT: %.loc22_3.2: %type_where = converted constants.%tuple.type.d07, %facet_value.loc22 [concrete = constants.%facet_value.5be] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %t.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e4f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.e4f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.606] -// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %t.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606] +// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.261 = addr_of %t.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc20: = bound_method %r.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn.487] -// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %r.var, %ptr.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22) +// CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%ptr.235, %facet_value.loc20 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %r.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %r.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc20_3: %ptr.5d5 = addr_of %r.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_3(%addr.loc20_3) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc19: = bound_method %q.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn.487] -// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %q.var, %ptr.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_3(%addr.loc20_3) +// CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%ptr.235, %facet_value.loc19 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %q.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %q.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc19_3: %ptr.5d5 = addr_of %q.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19_3) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%ptr.as.Destroy.impl.Op.ff4 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%ptr.as.Destroy.impl.Op.ff4, @ptr.as.Destroy.impl.Op(constants.%struct_type.a.b.501) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn.8df] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %p.var, %ptr.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19_3) +// CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%ptr.3ee, () [concrete = constants.%facet_value.494] +// CHECK:STDOUT: %.loc18_3: %type_where = converted constants.%ptr.3ee, %facet_value.loc18 [concrete = constants.%facet_value.494] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7ac +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7ac, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.494) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e7] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6 // CHECK:STDOUT: %addr.loc18_3: %ptr.40c = addr_of %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18_3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18_3) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%struct_type.a.b.501, () [concrete = constants.%facet_value.de6] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%struct_type.a.b.501, %facet_value.loc16 [concrete = constants.%facet_value.de6] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %s.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.f75 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f75, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.0f3] -// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %s.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f75 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3] +// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7 // CHECK:STDOUT: %addr.loc16: %ptr.3ee = addr_of %s.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index 74d2030b334f..ce28503f007b 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -70,15 +70,16 @@ fn F() -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c49 [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.type.142: type = fn_type @ptr.as.Destroy.impl.Op, @ptr.as.Destroy.impl(%i32) [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.c04: %ptr.as.Destroy.impl.Op.type.142 = struct_value () [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function %ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(%i32) [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -152,7 +153,7 @@ fn F() -> i32 { // CHECK:STDOUT: %bound_method.loc17_17.2: = bound_method %addr.loc17_17, %specific_fn.loc17 // CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.235 = call %bound_method.loc17_17.2(%addr.loc17_17) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc17: type = splice_block %ptr [concrete = constants.%ptr.235] { +// CHECK:STDOUT: %.loc17_13: type = splice_block %ptr [concrete = constants.%ptr.235] { // CHECK:STDOUT: %int_32.loc17: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc17: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %i32.loc17 [concrete = constants.%ptr.235] @@ -167,18 +168,20 @@ fn F() -> i32 { // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc19_10.2: = bound_method %.loc19_10.2, %specific_fn.loc19 // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc19_10.2(%.loc19_10.2) -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.bound: = bound_method %p.var, constants.%ptr.as.Destroy.impl.Op.c04 -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.specific_fn: = specific_function constants.%ptr.as.Destroy.impl.Op.c04, @ptr.as.Destroy.impl.Op(constants.%i32) [concrete = constants.%ptr.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_3: = bound_method %p.var, %ptr.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %.loc17_3: %type_where = converted constants.%ptr.235, %facet_value.loc17 [concrete = constants.%facet_value.380] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] +// CHECK:STDOUT: %bound_method.loc17_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc17_3: %ptr.5d5 = addr_of %p.var -// CHECK:STDOUT: %ptr.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_3(%addr.loc17_3) -// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_3(%addr.loc17_3) +// CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value.loc16 [concrete = constants.%facet_value.d23] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: 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 648a302ced06..f09f96608742 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -67,12 +67,12 @@ fn G() -> C { // 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [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] @@ -173,11 +173,11 @@ fn G() -> C { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_12.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_12.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_12.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_12.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_12.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 b0bf174b2427..d23aa5e59cfa 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,12 +57,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -101,11 +101,11 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v: ref %empty_tuple.type = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_12.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -118,12 +118,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -162,11 +162,11 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v: ref %empty_tuple.type = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_12.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index 4657ac6f5ede..ff35a3bc7e28 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -78,12 +78,12 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %bound_method.c11: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %DifferentScopes.type: type = fn_type @DifferentScopes [concrete] // CHECK:STDOUT: %DifferentScopes: %DifferentScopes.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -184,18 +184,18 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %.loc27: init %i32 = converted %int_0.loc27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_14.2: %type_where = converted constants.%i32, %facet_value.loc25 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %w.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc25_14.3: = bound_method %w.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc25_14.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_14.3(%addr.loc25) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_14.3(%addr.loc25) // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc17_14.2: %type_where = converted constants.%i32, %facet_value.loc17 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) // CHECK:STDOUT: return %.loc27 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -260,18 +260,18 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %.loc44: init %i32 = converted %int_0.loc44, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc44 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc41: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc41_16.2: %type_where = converted constants.%i32, %facet_value.loc41 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %w.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc41_16.3: = bound_method %w.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc41_16.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_16.3(%addr.loc41) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_16.3(%addr.loc41) // CHECK:STDOUT: %facet_value.loc32: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc32_14.2: %type_where = converted constants.%i32, %facet_value.loc32 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_14.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc32_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc32: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_14.3(%addr.loc32) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_14.3(%addr.loc32) // CHECK:STDOUT: return %.loc44 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index fb7146798854..7d94b762628b 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -58,12 +58,12 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %bound_method: = bound_method %float.1f7, %Core.FloatLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %float.0a8: %f64.d77 = float_value 0 [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f64.d77, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fb8: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.0bc: %AggregateT.as_type.as.Destroy.impl.Op.type.fb8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0bc: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bcc: type = ptr_type %f64.d77 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.0bc, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0bc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -123,11 +123,11 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %.loc23_16: %f64.d77 = bind_value %v // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f64.d77, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_12.2: %type_where = converted constants.%f64.d77, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.0bc -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.0bc, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_12.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.0bc +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.0bc, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc23_12.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bcc = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_12.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_12.3(%addr) // CHECK:STDOUT: return %.loc23_16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/import_convert_function.carbon b/toolchain/check/testdata/return/import_convert_function.carbon index 6fe6afcc513a..48fcc6566874 100644 --- a/toolchain/check/testdata/return/import_convert_function.carbon +++ b/toolchain/check/testdata/return/import_convert_function.carbon @@ -756,12 +756,12 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.7ddb8: type = fn_type @C.as.ImplicitAs.impl.Convert.1 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.43b: %C.as.ImplicitAs.impl.Convert.type.7ddb8 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.e56: %type_where = facet_value %C.b00, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.a78: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.e56) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.050: %AggregateT.as_type.as.Destroy.impl.Op.type.a78 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a78: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.e56) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.050: %DestroyT.as_type.as.Destroy.impl.Op.type.a78 = struct_value () [concrete] // CHECK:STDOUT: %ptr.697: type = ptr_type %C.b00 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.e56) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.e56) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.abf: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.c11: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -772,10 +772,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.f4e: type = fn_type @C.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.e68: %C.as.ImplicitAs.impl.Convert.type.f4e = struct_value () [concrete] // CHECK:STDOUT: %facet_value.4dd: %type_where = facet_value %C.674, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.895: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.4dd) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.998: %AggregateT.as_type.as.Destroy.impl.Op.type.895 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.895: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4dd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.998: %DestroyT.as_type.as.Destroy.impl.Op.type.895 = struct_value () [concrete] // CHECK:STDOUT: %ptr.625: type = ptr_type %C.674 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.4dd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4dd) [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b82: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.8bd: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -786,10 +786,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.7cc: type = fn_type @C.as.ImplicitAs.impl.Convert.3 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.cb1: %C.as.ImplicitAs.impl.Convert.type.7cc = struct_value () [concrete] // CHECK:STDOUT: %facet_value.7fe: %type_where = facet_value %C.681, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.a2a: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.7fe) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.aa7: %AggregateT.as_type.as.Destroy.impl.Op.type.a2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7fe) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.aa7: %DestroyT.as_type.as.Destroy.impl.Op.type.a2a = struct_value () [concrete] // CHECK:STDOUT: %ptr.3bd: type = ptr_type %C.681 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.7fe) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.7fe) [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.595: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -800,10 +800,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.cba: type = fn_type @C.as.ImplicitAs.impl.Convert.4 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.67e: %C.as.ImplicitAs.impl.Convert.type.cba = struct_value () [concrete] // CHECK:STDOUT: %facet_value.99b: %type_where = facet_value %C.7ac, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.af2: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.99b) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.423: %AggregateT.as_type.as.Destroy.impl.Op.type.af2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.af2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.99b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.423: %DestroyT.as_type.as.Destroy.impl.Op.type.af2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.2b1: type = ptr_type %C.7ac [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.060: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.423, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.99b) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.99b) [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5bb: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.9cd: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -814,10 +814,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.a2c: type = fn_type @C.as.ImplicitAs.impl.Convert.5 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.58d: %C.as.ImplicitAs.impl.Convert.type.a2c = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b4c: %type_where = facet_value %C.89d, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.d8b: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.b4c) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b4d: %AggregateT.as_type.as.Destroy.impl.Op.type.d8b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d8b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b4c) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b4d: %DestroyT.as_type.as.Destroy.impl.Op.type.d8b = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28b: type = ptr_type %C.89d [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4d6: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b4d, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.b4c) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.b4c) [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.23d: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.724: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -828,10 +828,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.bf6: type = fn_type @C.as.ImplicitAs.impl.Convert.6 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.a45: %C.as.ImplicitAs.impl.Convert.type.bf6 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.430: %type_where = facet_value %C.f0a, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4eb: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.430) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.b39: %AggregateT.as_type.as.Destroy.impl.Op.type.4eb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.430) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b39: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb = struct_value () [concrete] // CHECK:STDOUT: %ptr.24c: type = ptr_type %C.f0a [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.b9e: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.b39, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.430) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.430) [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d66: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.0ef: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -842,10 +842,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.e95: type = fn_type @C.as.ImplicitAs.impl.Convert.7 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.ad0: %C.as.ImplicitAs.impl.Convert.type.e95 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.14a: %type_where = facet_value %C.c60, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.ecc: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.14a) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.062: %AggregateT.as_type.as.Destroy.impl.Op.type.ecc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ecc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.14a) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.062: %DestroyT.as_type.as.Destroy.impl.Op.type.ecc = struct_value () [concrete] // CHECK:STDOUT: %ptr.b5e: type = ptr_type %C.c60 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4a7: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.062, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.14a) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.14a) [concrete] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.113: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.763: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -856,10 +856,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.7ddb0: type = fn_type @C.as.ImplicitAs.impl.Convert.8 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.9be: %C.as.ImplicitAs.impl.Convert.type.7ddb0 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.488: %type_where = facet_value %C.304, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.963: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.488) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.28e: %AggregateT.as_type.as.Destroy.impl.Op.type.963 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.963: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.488) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.28e: %DestroyT.as_type.as.Destroy.impl.Op.type.963 = struct_value () [concrete] // CHECK:STDOUT: %ptr.dc3: type = ptr_type %C.304 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.8dc: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.28e, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.488) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8dc: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.28e, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.488) [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1054,11 +1054,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc7_35.2: init %D = converted %.loc7_26.1, %C.as.ImplicitAs.impl.Convert.call.loc7 // CHECK:STDOUT: %facet_value.loc7_24.1: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.5: %type_where = converted constants.%C.b00, %facet_value.loc7_24.1 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.1: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.1: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.1: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.1: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc7_24.1: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.1: init %empty_tuple.type = call %bound_method.loc7_24.1(%addr.loc7_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.1: init %empty_tuple.type = call %bound_method.loc7_24.1(%addr.loc7_24.1) // CHECK:STDOUT: return %.loc7_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc7: @@ -1090,18 +1090,18 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc8_35.2: init %D = converted %.loc8_26.1, %C.as.ImplicitAs.impl.Convert.call.loc8 // CHECK:STDOUT: %facet_value.loc8_24.1: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.5: %type_where = converted constants.%C.674, %facet_value.loc8_24.1 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.1: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.1: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.1: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.1: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_24.1: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.1: init %empty_tuple.type = call %bound_method.loc8_24.1(%addr.loc8_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.1: init %empty_tuple.type = call %bound_method.loc8_24.1(%addr.loc8_24.1) // CHECK:STDOUT: %facet_value.loc7_24.2: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.6: %type_where = converted constants.%C.b00, %facet_value.loc7_24.2 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.2: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.2: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.2: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.2: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc7_24.2: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.2: init %empty_tuple.type = call %bound_method.loc7_24.2(%addr.loc7_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.2: init %empty_tuple.type = call %bound_method.loc7_24.2(%addr.loc7_24.2) // CHECK:STDOUT: return %.loc8_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc8: @@ -1133,25 +1133,25 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc9_35.2: init %D = converted %.loc9_26.1, %C.as.ImplicitAs.impl.Convert.call.loc9 // CHECK:STDOUT: %facet_value.loc9_24.1: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.5: %type_where = converted constants.%C.681, %facet_value.loc9_24.1 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_24.1: = bound_method %.loc9_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.1: = bound_method %.loc9_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.1: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] +// CHECK:STDOUT: %bound_method.loc9_24.1: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc9_24.1: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_24.1: init %empty_tuple.type = call %bound_method.loc9_24.1(%addr.loc9_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.1: init %empty_tuple.type = call %bound_method.loc9_24.1(%addr.loc9_24.1) // CHECK:STDOUT: %facet_value.loc8_24.2: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.6: %type_where = converted constants.%C.674, %facet_value.loc8_24.2 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.2: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.2: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.2: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.2: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc8_24.2: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.2: init %empty_tuple.type = call %bound_method.loc8_24.2(%addr.loc8_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.2: init %empty_tuple.type = call %bound_method.loc8_24.2(%addr.loc8_24.2) // CHECK:STDOUT: %facet_value.loc7_24.3: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.7: %type_where = converted constants.%C.b00, %facet_value.loc7_24.3 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.3: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.3: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.6 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.3: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.3: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6 // CHECK:STDOUT: %addr.loc7_24.3: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.3: init %empty_tuple.type = call %bound_method.loc7_24.3(%addr.loc7_24.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.3: init %empty_tuple.type = call %bound_method.loc7_24.3(%addr.loc7_24.3) // CHECK:STDOUT: return %.loc9_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc9: @@ -1183,32 +1183,32 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc10_35.2: init %D = converted %.loc10_26.1, %C.as.ImplicitAs.impl.Convert.call.loc10 // CHECK:STDOUT: %facet_value.loc10_24.1: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.5: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.1 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_24.1: = bound_method %.loc10_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.423, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.1: = bound_method %.loc10_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.1: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] +// CHECK:STDOUT: %bound_method.loc10_24.1: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7 // CHECK:STDOUT: %addr.loc10_24.1: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_24.1: init %empty_tuple.type = call %bound_method.loc10_24.1(%addr.loc10_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.1: init %empty_tuple.type = call %bound_method.loc10_24.1(%addr.loc10_24.1) // CHECK:STDOUT: %facet_value.loc9_24.2: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.6: %type_where = converted constants.%C.681, %facet_value.loc9_24.2 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_24.2: = bound_method %.loc9_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.8: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.2: = bound_method %.loc9_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.8 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.2: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] +// CHECK:STDOUT: %bound_method.loc9_24.2: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8 // CHECK:STDOUT: %addr.loc9_24.2: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_24.2: init %empty_tuple.type = call %bound_method.loc9_24.2(%addr.loc9_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.2: init %empty_tuple.type = call %bound_method.loc9_24.2(%addr.loc9_24.2) // CHECK:STDOUT: %facet_value.loc8_24.3: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.7: %type_where = converted constants.%C.674, %facet_value.loc8_24.3 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.3: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.9: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.3: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.9 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.3: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.3: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9 // CHECK:STDOUT: %addr.loc8_24.3: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.3: init %empty_tuple.type = call %bound_method.loc8_24.3(%addr.loc8_24.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.3: init %empty_tuple.type = call %bound_method.loc8_24.3(%addr.loc8_24.3) // CHECK:STDOUT: %facet_value.loc7_24.4: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.8: %type_where = converted constants.%C.b00, %facet_value.loc7_24.4 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.4: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.10: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.4: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.10 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.4: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.10: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.4: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.10 // CHECK:STDOUT: %addr.loc7_24.4: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.4: init %empty_tuple.type = call %bound_method.loc7_24.4(%addr.loc7_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.4: init %empty_tuple.type = call %bound_method.loc7_24.4(%addr.loc7_24.4) // CHECK:STDOUT: return %.loc10_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc10: @@ -1240,39 +1240,39 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc11_35.2: init %D = converted %.loc11_26.1, %C.as.ImplicitAs.impl.Convert.call.loc11 // CHECK:STDOUT: %facet_value.loc11_24.1: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.5: %type_where = converted constants.%C.89d, %facet_value.loc11_24.1 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11_24.1: = bound_method %.loc11_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.11: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.1: = bound_method %.loc11_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.11 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.1: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.11: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] +// CHECK:STDOUT: %bound_method.loc11_24.1: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.11 // CHECK:STDOUT: %addr.loc11_24.1: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11_24.1: init %empty_tuple.type = call %bound_method.loc11_24.1(%addr.loc11_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.1: init %empty_tuple.type = call %bound_method.loc11_24.1(%addr.loc11_24.1) // CHECK:STDOUT: %facet_value.loc10_24.2: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.6: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.2 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_24.2: = bound_method %.loc10_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.12: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.423, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.2: = bound_method %.loc10_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.12 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.2: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.12: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] +// CHECK:STDOUT: %bound_method.loc10_24.2: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.12 // CHECK:STDOUT: %addr.loc10_24.2: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_24.2: init %empty_tuple.type = call %bound_method.loc10_24.2(%addr.loc10_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.2: init %empty_tuple.type = call %bound_method.loc10_24.2(%addr.loc10_24.2) // CHECK:STDOUT: %facet_value.loc9_24.3: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.7: %type_where = converted constants.%C.681, %facet_value.loc9_24.3 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_24.3: = bound_method %.loc9_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.13: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.3: = bound_method %.loc9_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.13 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.3: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.13: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] +// CHECK:STDOUT: %bound_method.loc9_24.3: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.13 // CHECK:STDOUT: %addr.loc9_24.3: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_24.3: init %empty_tuple.type = call %bound_method.loc9_24.3(%addr.loc9_24.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.3: init %empty_tuple.type = call %bound_method.loc9_24.3(%addr.loc9_24.3) // CHECK:STDOUT: %facet_value.loc8_24.4: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.8: %type_where = converted constants.%C.674, %facet_value.loc8_24.4 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.4: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.14: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.4: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.14 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.4: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.14: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.4: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.14 // CHECK:STDOUT: %addr.loc8_24.4: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.4: init %empty_tuple.type = call %bound_method.loc8_24.4(%addr.loc8_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.4: init %empty_tuple.type = call %bound_method.loc8_24.4(%addr.loc8_24.4) // CHECK:STDOUT: %facet_value.loc7_24.5: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.9: %type_where = converted constants.%C.b00, %facet_value.loc7_24.5 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.5: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.15: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.5: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.15 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.5: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.15: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.5: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.15 // CHECK:STDOUT: %addr.loc7_24.5: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.5: init %empty_tuple.type = call %bound_method.loc7_24.5(%addr.loc7_24.5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.5: init %empty_tuple.type = call %bound_method.loc7_24.5(%addr.loc7_24.5) // CHECK:STDOUT: return %.loc11_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc11: @@ -1304,46 +1304,46 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc12_35.2: init %D = converted %.loc12_26.1, %C.as.ImplicitAs.impl.Convert.call.loc12 // CHECK:STDOUT: %facet_value.loc12_24.1: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.5: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.1 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12_24.1: = bound_method %.loc12_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.16: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b39, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.1: = bound_method %.loc12_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.16 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.1: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.16: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] +// CHECK:STDOUT: %bound_method.loc12_24.1: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.16 // CHECK:STDOUT: %addr.loc12_24.1: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12_24.1: init %empty_tuple.type = call %bound_method.loc12_24.1(%addr.loc12_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.1: init %empty_tuple.type = call %bound_method.loc12_24.1(%addr.loc12_24.1) // CHECK:STDOUT: %facet_value.loc11_24.2: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.6: %type_where = converted constants.%C.89d, %facet_value.loc11_24.2 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11_24.2: = bound_method %.loc11_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.17: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.2: = bound_method %.loc11_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.17 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.2: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.17: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] +// CHECK:STDOUT: %bound_method.loc11_24.2: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.17 // CHECK:STDOUT: %addr.loc11_24.2: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11_24.2: init %empty_tuple.type = call %bound_method.loc11_24.2(%addr.loc11_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.2: init %empty_tuple.type = call %bound_method.loc11_24.2(%addr.loc11_24.2) // CHECK:STDOUT: %facet_value.loc10_24.3: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.7: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.3 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_24.3: = bound_method %.loc10_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.18: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.423, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.3: = bound_method %.loc10_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.18 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.3: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.18: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] +// CHECK:STDOUT: %bound_method.loc10_24.3: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.18 // CHECK:STDOUT: %addr.loc10_24.3: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_24.3: init %empty_tuple.type = call %bound_method.loc10_24.3(%addr.loc10_24.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.3: init %empty_tuple.type = call %bound_method.loc10_24.3(%addr.loc10_24.3) // CHECK:STDOUT: %facet_value.loc9_24.4: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.8: %type_where = converted constants.%C.681, %facet_value.loc9_24.4 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_24.4: = bound_method %.loc9_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.19: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.4: = bound_method %.loc9_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.19 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.4: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.19: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] +// CHECK:STDOUT: %bound_method.loc9_24.4: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.19 // CHECK:STDOUT: %addr.loc9_24.4: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_24.4: init %empty_tuple.type = call %bound_method.loc9_24.4(%addr.loc9_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.4: init %empty_tuple.type = call %bound_method.loc9_24.4(%addr.loc9_24.4) // CHECK:STDOUT: %facet_value.loc8_24.5: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.9: %type_where = converted constants.%C.674, %facet_value.loc8_24.5 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.5: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.20: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.5: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.20 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.5: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.20: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.5: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.20 // CHECK:STDOUT: %addr.loc8_24.5: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.5: init %empty_tuple.type = call %bound_method.loc8_24.5(%addr.loc8_24.5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.5: init %empty_tuple.type = call %bound_method.loc8_24.5(%addr.loc8_24.5) // CHECK:STDOUT: %facet_value.loc7_24.6: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.10: %type_where = converted constants.%C.b00, %facet_value.loc7_24.6 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.6: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.21: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.6: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.21 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.6: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.21: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.6: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.21 // CHECK:STDOUT: %addr.loc7_24.6: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.6: init %empty_tuple.type = call %bound_method.loc7_24.6(%addr.loc7_24.6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.6: init %empty_tuple.type = call %bound_method.loc7_24.6(%addr.loc7_24.6) // CHECK:STDOUT: return %.loc12_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc12: @@ -1375,53 +1375,53 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc13_35.2: init %D = converted %.loc13_26.1, %C.as.ImplicitAs.impl.Convert.call.loc13 // CHECK:STDOUT: %facet_value.loc13_24.1: %type_where = facet_value constants.%C.c60, () [concrete = constants.%facet_value.14a] // CHECK:STDOUT: %.loc13_24.5: %type_where = converted constants.%C.c60, %facet_value.loc13_24.1 [concrete = constants.%facet_value.14a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_24.1: = bound_method %.loc13_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.062 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.22: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.062, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4a7] -// CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %.loc13_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.22 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_24.1: = bound_method %.loc13_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.062 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.22: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7] +// CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %.loc13_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.22 // CHECK:STDOUT: %addr.loc13_24.1: %ptr.b5e = addr_of %.loc13_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_24.1: init %empty_tuple.type = call %bound_method.loc13_24.1(%addr.loc13_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_24.1: init %empty_tuple.type = call %bound_method.loc13_24.1(%addr.loc13_24.1) // CHECK:STDOUT: %facet_value.loc12_24.2: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.6: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.2 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12_24.2: = bound_method %.loc12_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.23: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b39, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.2: = bound_method %.loc12_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.23 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.2: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.23: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] +// CHECK:STDOUT: %bound_method.loc12_24.2: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.23 // CHECK:STDOUT: %addr.loc12_24.2: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12_24.2: init %empty_tuple.type = call %bound_method.loc12_24.2(%addr.loc12_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.2: init %empty_tuple.type = call %bound_method.loc12_24.2(%addr.loc12_24.2) // CHECK:STDOUT: %facet_value.loc11_24.3: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.7: %type_where = converted constants.%C.89d, %facet_value.loc11_24.3 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11_24.3: = bound_method %.loc11_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.24: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.3: = bound_method %.loc11_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.24 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.3: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] +// CHECK:STDOUT: %bound_method.loc11_24.3: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24 // CHECK:STDOUT: %addr.loc11_24.3: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11_24.3: init %empty_tuple.type = call %bound_method.loc11_24.3(%addr.loc11_24.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.3: init %empty_tuple.type = call %bound_method.loc11_24.3(%addr.loc11_24.3) // CHECK:STDOUT: %facet_value.loc10_24.4: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.8: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.4 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_24.4: = bound_method %.loc10_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.25: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.423, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.4: = bound_method %.loc10_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.25 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.4: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.25: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] +// CHECK:STDOUT: %bound_method.loc10_24.4: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.25 // CHECK:STDOUT: %addr.loc10_24.4: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_24.4: init %empty_tuple.type = call %bound_method.loc10_24.4(%addr.loc10_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.4: init %empty_tuple.type = call %bound_method.loc10_24.4(%addr.loc10_24.4) // CHECK:STDOUT: %facet_value.loc9_24.5: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.9: %type_where = converted constants.%C.681, %facet_value.loc9_24.5 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_24.5: = bound_method %.loc9_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.26: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.5: = bound_method %.loc9_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.26 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.5: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.26: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] +// CHECK:STDOUT: %bound_method.loc9_24.5: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.26 // CHECK:STDOUT: %addr.loc9_24.5: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_24.5: init %empty_tuple.type = call %bound_method.loc9_24.5(%addr.loc9_24.5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.5: init %empty_tuple.type = call %bound_method.loc9_24.5(%addr.loc9_24.5) // CHECK:STDOUT: %facet_value.loc8_24.6: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.10: %type_where = converted constants.%C.674, %facet_value.loc8_24.6 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.6: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.27: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.6: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.27 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.6: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.27: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.6: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.27 // CHECK:STDOUT: %addr.loc8_24.6: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.6: init %empty_tuple.type = call %bound_method.loc8_24.6(%addr.loc8_24.6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.6: init %empty_tuple.type = call %bound_method.loc8_24.6(%addr.loc8_24.6) // CHECK:STDOUT: %facet_value.loc7_24.7: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.11: %type_where = converted constants.%C.b00, %facet_value.loc7_24.7 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.7: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.28: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.7: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.28 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.7: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.28: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.7: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.28 // CHECK:STDOUT: %addr.loc7_24.7: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.7: init %empty_tuple.type = call %bound_method.loc7_24.7(%addr.loc7_24.7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.7: init %empty_tuple.type = call %bound_method.loc7_24.7(%addr.loc7_24.7) // CHECK:STDOUT: return %.loc13_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc13: @@ -1453,60 +1453,60 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc14_35.2: init %D = converted %.loc14_26.1, %C.as.ImplicitAs.impl.Convert.call.loc14 // CHECK:STDOUT: %facet_value.loc14_24.1: %type_where = facet_value constants.%C.304, () [concrete = constants.%facet_value.488] // CHECK:STDOUT: %.loc14_24.5: %type_where = converted constants.%C.304, %facet_value.loc14_24.1 [concrete = constants.%facet_value.488] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14_24.1: = bound_method %.loc14_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.28e -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.29: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.28e, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.8dc] -// CHECK:STDOUT: %bound_method.loc14_24.1: = bound_method %.loc14_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.29 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14_24.1: = bound_method %.loc14_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.28e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.29: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.28e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8dc] +// CHECK:STDOUT: %bound_method.loc14_24.1: = bound_method %.loc14_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.29 // CHECK:STDOUT: %addr.loc14_24.1: %ptr.dc3 = addr_of %.loc14_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14_24.1: init %empty_tuple.type = call %bound_method.loc14_24.1(%addr.loc14_24.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14_24.1: init %empty_tuple.type = call %bound_method.loc14_24.1(%addr.loc14_24.1) // CHECK:STDOUT: %facet_value.loc13_24.2: %type_where = facet_value constants.%C.c60, () [concrete = constants.%facet_value.14a] // CHECK:STDOUT: %.loc13_24.6: %type_where = converted constants.%C.c60, %facet_value.loc13_24.2 [concrete = constants.%facet_value.14a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_24.2: = bound_method %.loc13_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.062 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.30: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.062, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4a7] -// CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %.loc13_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.30 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_24.2: = bound_method %.loc13_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.062 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.30: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7] +// CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %.loc13_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.30 // CHECK:STDOUT: %addr.loc13_24.2: %ptr.b5e = addr_of %.loc13_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_24.2: init %empty_tuple.type = call %bound_method.loc13_24.2(%addr.loc13_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_24.2: init %empty_tuple.type = call %bound_method.loc13_24.2(%addr.loc13_24.2) // CHECK:STDOUT: %facet_value.loc12_24.3: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.7: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.3 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12_24.3: = bound_method %.loc12_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.31: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b39, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.3: = bound_method %.loc12_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.31 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.3: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.31: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] +// CHECK:STDOUT: %bound_method.loc12_24.3: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.31 // CHECK:STDOUT: %addr.loc12_24.3: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12_24.3: init %empty_tuple.type = call %bound_method.loc12_24.3(%addr.loc12_24.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.3: init %empty_tuple.type = call %bound_method.loc12_24.3(%addr.loc12_24.3) // CHECK:STDOUT: %facet_value.loc11_24.4: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.8: %type_where = converted constants.%C.89d, %facet_value.loc11_24.4 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11_24.4: = bound_method %.loc11_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.32: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.4: = bound_method %.loc11_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.32 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.4: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.32: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] +// CHECK:STDOUT: %bound_method.loc11_24.4: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.32 // CHECK:STDOUT: %addr.loc11_24.4: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11_24.4: init %empty_tuple.type = call %bound_method.loc11_24.4(%addr.loc11_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.4: init %empty_tuple.type = call %bound_method.loc11_24.4(%addr.loc11_24.4) // CHECK:STDOUT: %facet_value.loc10_24.5: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.9: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.5 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_24.5: = bound_method %.loc10_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.33: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.423, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.5: = bound_method %.loc10_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.33 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.5: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.33: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] +// CHECK:STDOUT: %bound_method.loc10_24.5: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.33 // CHECK:STDOUT: %addr.loc10_24.5: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_24.5: init %empty_tuple.type = call %bound_method.loc10_24.5(%addr.loc10_24.5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.5: init %empty_tuple.type = call %bound_method.loc10_24.5(%addr.loc10_24.5) // CHECK:STDOUT: %facet_value.loc9_24.6: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.10: %type_where = converted constants.%C.681, %facet_value.loc9_24.6 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_24.6: = bound_method %.loc9_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.34: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.6: = bound_method %.loc9_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.34 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.6: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.34: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] +// CHECK:STDOUT: %bound_method.loc9_24.6: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.34 // CHECK:STDOUT: %addr.loc9_24.6: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_24.6: init %empty_tuple.type = call %bound_method.loc9_24.6(%addr.loc9_24.6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.6: init %empty_tuple.type = call %bound_method.loc9_24.6(%addr.loc9_24.6) // CHECK:STDOUT: %facet_value.loc8_24.7: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.11: %type_where = converted constants.%C.674, %facet_value.loc8_24.7 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.7: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.35: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.7: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.35 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.7: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.35: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.7: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.35 // CHECK:STDOUT: %addr.loc8_24.7: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.7: init %empty_tuple.type = call %bound_method.loc8_24.7(%addr.loc8_24.7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.7: init %empty_tuple.type = call %bound_method.loc8_24.7(%addr.loc8_24.7) // CHECK:STDOUT: %facet_value.loc7_24.8: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.12: %type_where = converted constants.%C.b00, %facet_value.loc7_24.8 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.8: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.36: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.8: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.36 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.8: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.36: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.8: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.36 // CHECK:STDOUT: %addr.loc7_24.8: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.8: init %empty_tuple.type = call %bound_method.loc7_24.8(%addr.loc7_24.8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.8: init %empty_tuple.type = call %bound_method.loc7_24.8(%addr.loc7_24.8) // CHECK:STDOUT: return %.loc14_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc14: @@ -1516,60 +1516,60 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc6_15 // CHECK:STDOUT: %facet_value.loc14_24.2: %type_where = facet_value constants.%C.304, () [concrete = constants.%facet_value.488] // CHECK:STDOUT: %.loc14_24.6: %type_where = converted constants.%C.304, %facet_value.loc14_24.2 [concrete = constants.%facet_value.488] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc14_24.2: = bound_method %.loc14_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.28e -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.37: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.28e, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.8dc] -// CHECK:STDOUT: %bound_method.loc14_24.2: = bound_method %.loc14_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.37 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14_24.2: = bound_method %.loc14_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.28e +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.37: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.28e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8dc] +// CHECK:STDOUT: %bound_method.loc14_24.2: = bound_method %.loc14_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.37 // CHECK:STDOUT: %addr.loc14_24.2: %ptr.dc3 = addr_of %.loc14_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc14_24.2: init %empty_tuple.type = call %bound_method.loc14_24.2(%addr.loc14_24.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14_24.2: init %empty_tuple.type = call %bound_method.loc14_24.2(%addr.loc14_24.2) // CHECK:STDOUT: %facet_value.loc13_24.3: %type_where = facet_value constants.%C.c60, () [concrete = constants.%facet_value.14a] // CHECK:STDOUT: %.loc13_24.7: %type_where = converted constants.%C.c60, %facet_value.loc13_24.3 [concrete = constants.%facet_value.14a] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc13_24.3: = bound_method %.loc13_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.062 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.38: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.062, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4a7] -// CHECK:STDOUT: %bound_method.loc13_24.3: = bound_method %.loc13_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.38 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_24.3: = bound_method %.loc13_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.062 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.38: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7] +// CHECK:STDOUT: %bound_method.loc13_24.3: = bound_method %.loc13_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.38 // CHECK:STDOUT: %addr.loc13_24.3: %ptr.b5e = addr_of %.loc13_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc13_24.3: init %empty_tuple.type = call %bound_method.loc13_24.3(%addr.loc13_24.3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_24.3: init %empty_tuple.type = call %bound_method.loc13_24.3(%addr.loc13_24.3) // CHECK:STDOUT: %facet_value.loc12_24.4: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.8: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.4 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc12_24.4: = bound_method %.loc12_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.39: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b39, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.4: = bound_method %.loc12_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.39 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.4: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.39: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] +// CHECK:STDOUT: %bound_method.loc12_24.4: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.39 // CHECK:STDOUT: %addr.loc12_24.4: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc12_24.4: init %empty_tuple.type = call %bound_method.loc12_24.4(%addr.loc12_24.4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.4: init %empty_tuple.type = call %bound_method.loc12_24.4(%addr.loc12_24.4) // CHECK:STDOUT: %facet_value.loc11_24.5: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.9: %type_where = converted constants.%C.89d, %facet_value.loc11_24.5 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11_24.5: = bound_method %.loc11_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.40: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.b4d, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.5: = bound_method %.loc11_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.40 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.5: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.40: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] +// CHECK:STDOUT: %bound_method.loc11_24.5: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.40 // CHECK:STDOUT: %addr.loc11_24.5: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11_24.5: init %empty_tuple.type = call %bound_method.loc11_24.5(%addr.loc11_24.5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.5: init %empty_tuple.type = call %bound_method.loc11_24.5(%addr.loc11_24.5) // CHECK:STDOUT: %facet_value.loc10_24.6: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.10: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.6 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10_24.6: = bound_method %.loc10_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.41: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.423, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.6: = bound_method %.loc10_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.41 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.6: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.41: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] +// CHECK:STDOUT: %bound_method.loc10_24.6: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.41 // CHECK:STDOUT: %addr.loc10_24.6: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10_24.6: init %empty_tuple.type = call %bound_method.loc10_24.6(%addr.loc10_24.6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.6: init %empty_tuple.type = call %bound_method.loc10_24.6(%addr.loc10_24.6) // CHECK:STDOUT: %facet_value.loc9_24.7: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.11: %type_where = converted constants.%C.681, %facet_value.loc9_24.7 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_24.7: = bound_method %.loc9_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.42: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.aa7, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.7: = bound_method %.loc9_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.42 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.7: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.42: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] +// CHECK:STDOUT: %bound_method.loc9_24.7: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.42 // CHECK:STDOUT: %addr.loc9_24.7: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_24.7: init %empty_tuple.type = call %bound_method.loc9_24.7(%addr.loc9_24.7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.7: init %empty_tuple.type = call %bound_method.loc9_24.7(%addr.loc9_24.7) // CHECK:STDOUT: %facet_value.loc8_24.8: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.12: %type_where = converted constants.%C.674, %facet_value.loc8_24.8 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_24.8: = bound_method %.loc8_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.43: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.998, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.8: = bound_method %.loc8_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.43 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.8: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.43: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] +// CHECK:STDOUT: %bound_method.loc8_24.8: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.43 // CHECK:STDOUT: %addr.loc8_24.8: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_24.8: init %empty_tuple.type = call %bound_method.loc8_24.8(%addr.loc8_24.8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.8: init %empty_tuple.type = call %bound_method.loc8_24.8(%addr.loc8_24.8) // CHECK:STDOUT: %facet_value.loc7_24.9: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.13: %type_where = converted constants.%C.b00, %facet_value.loc7_24.9 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7_24.9: = bound_method %.loc7_24.4, constants.%AggregateT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.44: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.050, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.9: = bound_method %.loc7_24.4, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.44 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.9: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.44: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] +// CHECK:STDOUT: %bound_method.loc7_24.9: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.44 // CHECK:STDOUT: %addr.loc7_24.9: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7_24.9: init %empty_tuple.type = call %bound_method.loc7_24.9(%addr.loc7_24.9) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.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: diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index b6630e640eed..ed3a20f2c1cd 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -73,12 +73,12 @@ fn G() -> i32 { // CHECK:STDOUT: %bound_method.c25: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -196,11 +196,11 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc26_16: %i32 = bind_value %result // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_12.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %result.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_12.3: = bound_method %result.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %result.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_12.3: = bound_method %result.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %result.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_12.3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_12.3(%addr) // CHECK:STDOUT: return %.loc26_16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 50dab6614966..3386748163ef 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -65,12 +65,12 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %bound_method.c11: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.cad: %AggregateT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [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] @@ -192,18 +192,18 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %.loc22: init %i32 = converted %int_0.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_14.2: %type_where = converted constants.%i32, %facet_value.loc20 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %w.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_14.3: = bound_method %w.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc20_14.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_14.3(%addr.loc20) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_14.3(%addr.loc20) // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc17_14.2: %type_where = converted constants.%i32, %facet_value.loc17 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) // CHECK:STDOUT: return %.loc22 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -234,11 +234,11 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %.loc27_18: %i32 = bind_value %v // CHECK:STDOUT: %facet_value.loc27_14.1: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_14.2: %type_where = converted constants.%i32, %facet_value.loc27_14.1 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc27_14.1: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_14.3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27_14.1: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc27_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27_14.1: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc27_14.1: init %empty_tuple.type = call %bound_method.loc27_14.3(%addr.loc27_14.1) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27_14.1: init %empty_tuple.type = call %bound_method.loc27_14.3(%addr.loc27_14.1) // CHECK:STDOUT: return %.loc27_18 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -263,18 +263,18 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %.loc30_16: %i32 = bind_value %w // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_12.2: %type_where = converted constants.%i32, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %w.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc30_12.3: = bound_method %w.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc30_12.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_12.3(%addr.loc30) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_12.3(%addr.loc30) // CHECK:STDOUT: %facet_value.loc27_14.2: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_14.3: %type_where = converted constants.%i32, %facet_value.loc27_14.2 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc27_14.2: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.cad, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_14.4: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27_14.2: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc27_14.4: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc27_14.2: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc27_14.2: init %empty_tuple.type = call %bound_method.loc27_14.4(%addr.loc27_14.2) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27_14.2: init %empty_tuple.type = call %bound_method.loc27_14.4(%addr.loc27_14.2) // CHECK:STDOUT: return %.loc30_16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index cc8578aff55d..fcd6531360ac 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -49,11 +49,11 @@ fn F() -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.x.y.z, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.8b9: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.321: %AggregateT.as_type.as.Destroy.impl.Op.type.8b9 = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.321, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8b9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.321: %DestroyT.as_type.as.Destroy.impl.Op.type.8b9 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.321, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -133,11 +133,11 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc18_38.2(%.loc18_38) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.x.y.z, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_26.9: %type_where = converted constants.%struct_type.x.y.z, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_26.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.321 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.321, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_26: = bound_method %.loc18_26.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_26.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.321 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.321, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_26: = bound_method %.loc18_26.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6eb = addr_of %.loc18_26.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_26(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_26(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/nested_struct_in_place.carbon b/toolchain/check/testdata/struct/nested_struct_in_place.carbon index dcea320c4b4f..1ddbd02c6ee8 100644 --- a/toolchain/check/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/check/testdata/struct/nested_struct_in_place.carbon @@ -36,12 +36,12 @@ fn G() { // CHECK:STDOUT: %struct_type.a.b.2f9: type = struct_type {.a: %tuple.type.189, .b: %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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.a.b.2f9, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.bce: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.361: %AggregateT.as_type.as.Destroy.impl.Op.type.bce = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bce: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.361: %DestroyT.as_type.as.Destroy.impl.Op.type.bce = struct_value () [concrete] // CHECK:STDOUT: %ptr.c95: type = ptr_type %struct_type.a.b.2f9 [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.361, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.361, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -121,11 +121,11 @@ fn G() { // CHECK:STDOUT: %v: ref %struct_type.a.b.2f9 = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.a.b.2f9, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%struct_type.a.b.2f9, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.361 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.361, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.361 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.361, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c95 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/tuple/element_access.carbon b/toolchain/check/testdata/tuple/element_access.carbon index 3d413d43db0c..7ca9096e9081 100644 --- a/toolchain/check/testdata/tuple/element_access.carbon +++ b/toolchain/check/testdata/tuple/element_access.carbon @@ -406,10 +406,10 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.a1c, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.fb1: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.5c6: %AggregateT.as_type.as.Destroy.impl.Op.type.fb1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5c6: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0b7: type = ptr_type %tuple.type.a1c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -434,11 +434,11 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc7_13.2(%.loc7_13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.a1c, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_12.3: %type_where = converted constants.%tuple.type.a1c, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_12.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.5c6 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.5c6 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7_12: = bound_method %.loc7_12.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc7_12: = bound_method %.loc7_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.0b7 = addr_of %.loc7_12.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_12(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_12(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // 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 e654819b4a92..fbabb31956b2 100644 --- a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon +++ b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon @@ -61,10 +61,10 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.d07, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e4f: %AggregateT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] @@ -113,11 +113,11 @@ fn H() { // CHECK:STDOUT: %F.call.loc9: init %tuple.type.d07 = call %F.ref.loc9() to %.loc5_8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%tuple.type.d07, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.261 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call.loc9 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -137,11 +137,11 @@ fn H() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc15_13.2(%.loc15_13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc15_12.3: %type_where = converted constants.%tuple.type.d07, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc15_12.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc15_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15_12: = bound_method %.loc15_12.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc15_12: = bound_method %.loc15_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.261 = addr_of %.loc15_12.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_12(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_12(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -158,10 +158,10 @@ fn H() { // CHECK:STDOUT: %tuple.type.f9f: type = tuple_type (%tuple.type.ff9, %tuple.type.ff9) [concrete] // CHECK:STDOUT: %tuple.type.99b: type = tuple_type (%tuple.type.189, %tuple.type.189) [concrete] // CHECK:STDOUT: %pattern_type.d88: type = pattern_type %tuple.type.99b [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.207: %type_where = facet_value %tuple.type.99b, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.379: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.207) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a7: %AggregateT.as_type.as.Destroy.impl.Op.type.379 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.379: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.207) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a7: %DestroyT.as_type.as.Destroy.impl.Op.type.379 = 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] // CHECK:STDOUT: %tuple.type.516: type = tuple_type (%i32, %tuple.type.189, %i32) [concrete] @@ -187,8 +187,8 @@ fn H() { // CHECK:STDOUT: %bound_method.8bd: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %facet_value.edd: %type_where = facet_value %tuple.type.516, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.0ad: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.edd) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.12b: %AggregateT.as_type.as.Destroy.impl.Op.type.0ad = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.edd) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.12b: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad = struct_value () [concrete] // CHECK:STDOUT: %ptr.12e: type = ptr_type %tuple.type.516 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -237,11 +237,11 @@ fn H() { // CHECK:STDOUT: %v: ref %tuple.type.99b = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.99b, () [concrete = constants.%facet_value.207] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%tuple.type.99b, %facet_value [concrete = constants.%facet_value.207] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.8a7 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8a7 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8bc = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -296,11 +296,11 @@ fn H() { // CHECK:STDOUT: %v: ref %tuple.type.516 = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.516, () [concrete = constants.%facet_value.edd] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%tuple.type.516, %facet_value [concrete = constants.%facet_value.edd] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.12b +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.12b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.12e = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/tuple/tuple_pattern.carbon b/toolchain/check/testdata/tuple/tuple_pattern.carbon index 34e94aa6c50e..ba51cce49e41 100644 --- a/toolchain/check/testdata/tuple/tuple_pattern.carbon +++ b/toolchain/check/testdata/tuple/tuple_pattern.carbon @@ -109,10 +109,10 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.b6b, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6bf: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.5fa: %AggregateT.as_type.as.Destroy.impl.Op.type.6bf = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5fa: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf = struct_value () [concrete] // CHECK:STDOUT: %ptr.8fc: type = ptr_type %tuple.type.b6b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -195,18 +195,18 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %d: ref %empty_struct_type = bind_name d, %tuple.elem1.loc8_3 // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.var.loc8, constants.%AggregateT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.var.loc8, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.var.loc8, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.var.loc8, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8: %ptr.8fc = addr_of %.var.loc8 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var.loc7, constants.%AggregateT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var.loc7, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var.loc7, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var.loc7, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.8fc = addr_of %.var.loc7 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -220,10 +220,10 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.b6b, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.6bf: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.5fa: %AggregateT.as_type.as.Destroy.impl.Op.type.6bf = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5fa: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf = struct_value () [concrete] // CHECK:STDOUT: %ptr.8fc: type = ptr_type %tuple.type.b6b [concrete] // CHECK:STDOUT: %MakeTuple.type: type = fn_type @MakeTuple [concrete] // CHECK:STDOUT: %MakeTuple: %MakeTuple.type = struct_value () [concrete] @@ -293,18 +293,18 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %y: ref %empty_struct_type = bind_name y, %tuple.elem1.loc7_3 // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc7: %ptr.8fc = addr_of %.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: %facet_value.loc6: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc6 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc6: = bound_method %tuple.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc6: = bound_method %tuple.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc6: = bound_method %tuple.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc6: = bound_method %tuple.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc6: %ptr.8fc = addr_of %tuple.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6(%addr.loc6) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6(%addr.loc6) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -364,11 +364,11 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %y: ref %empty_struct_type = bind_name y, %tuple.elem1.loc14_3 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8fc = addr_of %.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,11 +399,11 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %y: ref %empty_struct_type = bind_name y, %tuple.elem1 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8fc = addr_of %.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/decl.carbon b/toolchain/check/testdata/var/decl.carbon index 747c7b91048f..1d6b9fd93b41 100644 --- a/toolchain/check/testdata/var/decl.carbon +++ b/toolchain/check/testdata/var/decl.carbon @@ -26,12 +26,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -66,11 +66,11 @@ fn Main() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/decl_with_init.carbon b/toolchain/check/testdata/var/decl_with_init.carbon index 7a5ea1cf67ed..1c1596577b2a 100644 --- a/toolchain/check/testdata/var/decl_with_init.carbon +++ b/toolchain/check/testdata/var/decl_with_init.carbon @@ -27,12 +27,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,11 +71,11 @@ fn Main() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_duplicate_decl.carbon b/toolchain/check/testdata/var/fail_duplicate_decl.carbon index d292efc47176..addcf7b71c8c 100644 --- a/toolchain/check/testdata/var/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/var/fail_duplicate_decl.carbon @@ -35,12 +35,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -93,18 +93,18 @@ fn Main() { // CHECK:STDOUT: %x.loc11: ref %empty_tuple.type = bind_name x, %x.var.loc11 // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %x.var.loc11, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc11: = bound_method %x.var.loc11, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %x.var.loc11, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc11: = bound_method %x.var.loc11, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc11: %ptr.843 = addr_of %x.var.loc11 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) // CHECK:STDOUT: %facet_value.loc3: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc3 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc3: = bound_method %x.var.loc3, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc3: = bound_method %x.var.loc3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc3: = bound_method %x.var.loc3, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc3: = bound_method %x.var.loc3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc3: %ptr.843 = addr_of %x.var.loc3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc3: init %empty_tuple.type = call %bound_method.loc3(%addr.loc3) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc3: init %empty_tuple.type = call %bound_method.loc3(%addr.loc3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_init_with_self.carbon b/toolchain/check/testdata/var/fail_init_with_self.carbon index afd9dc8535aa..76b016d6bdac 100644 --- a/toolchain/check/testdata/var/fail_init_with_self.carbon +++ b/toolchain/check/testdata/var/fail_init_with_self.carbon @@ -30,12 +30,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -72,11 +72,11 @@ fn Main() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon index 0894a171e37e..2b32a01e3b7d 100644 --- a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon +++ b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon @@ -32,12 +32,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -84,11 +84,11 @@ var y: () = x; // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/global_lookup_in_scope.carbon b/toolchain/check/testdata/var/global_lookup_in_scope.carbon index d77cdd949c4c..de91dd764399 100644 --- a/toolchain/check/testdata/var/global_lookup_in_scope.carbon +++ b/toolchain/check/testdata/var/global_lookup_in_scope.carbon @@ -32,12 +32,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.v, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c45: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.f49: %AggregateT.as_type.as.Destroy.impl.Op.type.c45 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c45: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f49: %DestroyT.as_type.as.Destroy.impl.Op.type.c45 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ef9: type = ptr_type %struct_type.v [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.f49, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f49, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -93,11 +93,11 @@ fn Main() { // CHECK:STDOUT: %y: ref %struct_type.v = bind_name y, %y.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.v, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_3.2: %type_where = converted constants.%struct_type.v, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.f49 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.f49, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %y.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f49 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f49, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ef9 = addr_of %y.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/lookup.carbon b/toolchain/check/testdata/var/lookup.carbon index f55a30fc5be1..751d80bc1a4e 100644 --- a/toolchain/check/testdata/var/lookup.carbon +++ b/toolchain/check/testdata/var/lookup.carbon @@ -26,12 +26,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,11 +71,11 @@ fn Main() { // CHECK:STDOUT: %x.ref: ref %empty_tuple.type = name_ref x, %x // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/shadowing.carbon b/toolchain/check/testdata/var/shadowing.carbon index 990e99d7c3ba..4581d3625d3e 100644 --- a/toolchain/check/testdata/var/shadowing.carbon +++ b/toolchain/check/testdata/var/shadowing.carbon @@ -39,12 +39,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -130,25 +130,25 @@ fn Main() { // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_5.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var.loc10, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var.loc10, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var.loc10, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var.loc10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.843 = addr_of %x.var.loc10 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %x.var.loc8, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %x.var.loc8, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %x.var.loc8, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %x.var.loc8, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.843 = addr_of %x.var.loc8 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %facet_value.loc5: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc5 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc5: = bound_method %NS.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc5: = bound_method %NS.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc5: = bound_method %NS.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc5: = bound_method %NS.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc5: %ptr.843 = addr_of %NS.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc5: init %empty_tuple.type = call %bound_method.loc5(%addr.loc5) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc5: init %empty_tuple.type = call %bound_method.loc5(%addr.loc5) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/var_pattern.carbon b/toolchain/check/testdata/var/var_pattern.carbon index bbcd5fd90110..699d32a2194e 100644 --- a/toolchain/check/testdata/var/var_pattern.carbon +++ b/toolchain/check/testdata/var/var_pattern.carbon @@ -154,12 +154,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -198,11 +198,11 @@ fn G() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_7.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -217,12 +217,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -272,11 +272,11 @@ fn G() { // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %y.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_15.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %y.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %y.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -293,11 +293,11 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.50f: %AggregateT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -353,11 +353,11 @@ fn G() { // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %tuple.elem1.loc5_3 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_3.2: %type_where = converted constants.%tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.709 = addr_of %.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -374,11 +374,11 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.50f: %AggregateT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -434,11 +434,11 @@ fn G() { // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %tuple.elem1.loc5_7 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_7.2: %type_where = converted constants.%tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.709 = addr_of %.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -453,12 +453,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -530,18 +530,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%.loc8_5, %.loc4_13.3) // CHECK:STDOUT: %facet_value.loc4: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc4_13.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc4 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc4: = bound_method %.loc4_13.3, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc4: = bound_method %.loc4_13.3, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc4: = bound_method %.loc4_13.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc4: = bound_method %.loc4_13.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc4: %ptr.843 = addr_of %.loc4_13.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc4: init %empty_tuple.type = call %bound_method.loc4(%addr.loc4) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc4: init %empty_tuple.type = call %bound_method.loc4(%addr.loc4) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7: = bound_method %v.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.843 = addr_of %v.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -656,18 +656,18 @@ fn G() { // CHECK:STDOUT: %assoc0: %Destroy.assoc_type = assoc_entity element0, imports.%Core.import_ref.725 [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %AggregateT: %type_where = bind_symbolic_name AggregateT, 0 [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%AggregateT) [symbolic] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.8a0: %AggregateT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.8e6: = impl_witness imports.%Destroy.impl_witness_table.2d3, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.8e6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = 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.8e6) [concrete] // CHECK:STDOUT: %.b16: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -684,8 +684,8 @@ fn G() { // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.import_ref.f99: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.import_ref.725: %Destroy.Op.type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%Destroy.Op] -// CHECK:STDOUT: %Core.import_ref.d51: @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op.type (%AggregateT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @AggregateT.as_type.as.Destroy.impl.%AggregateT.as_type.as.Destroy.impl.Op (constants.%AggregateT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table.2d3 = impl_witness_table (%Core.import_ref.d51), @AggregateT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -715,12 +715,12 @@ fn G() { // CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.f99 [concrete = constants.%assoc0] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.4: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %impl.elem0: %.b16 = impl_witness_access constants.%Destroy.impl_witness.8e6, element0 [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.c00] +// CHECK:STDOUT: %impl.elem0: %.b16 = impl_witness_access constants.%Destroy.impl_witness.8e6, element0 [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.c00] // CHECK:STDOUT: %bound_method.1: = bound_method %.3, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.2: = bound_method %.3, %specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %.3 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.2(%addr) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -741,16 +741,16 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.dcc: %type_where = facet_value %tuple.type.bcd, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.50f: %AggregateT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.c15: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -822,18 +822,18 @@ fn G() { // CHECK:STDOUT: %z: ref %empty_tuple.type = bind_name z, %z.var // CHECK:STDOUT: %facet_value.loc9_15: %type_where = facet_value constants.%tuple.type.bcd, () [concrete = constants.%facet_value.dcc] // CHECK:STDOUT: %.loc9_15.3: %type_where = converted constants.%tuple.type.bcd, %facet_value.loc9_15 [concrete = constants.%facet_value.dcc] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_15: = bound_method %.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.50f, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.c15] -// CHECK:STDOUT: %bound_method.loc9_15: = bound_method %.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_15: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15] +// CHECK:STDOUT: %bound_method.loc9_15: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_15: %ptr.709 = addr_of %.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_15: init %empty_tuple.type = call %bound_method.loc9_15(%addr.loc9_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_15: init %empty_tuple.type = call %bound_method.loc9_15(%addr.loc9_15) // CHECK:STDOUT: %facet_value.loc9_27: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc9_27.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc9_27 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc9_27: = bound_method %z.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc9_27: = bound_method %z.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_27: = bound_method %z.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] +// CHECK:STDOUT: %bound_method.loc9_27: = bound_method %z.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_27: %ptr.843 = addr_of %z.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27(%addr.loc9_27) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27(%addr.loc9_27) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -911,12 +911,12 @@ 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: %type_where: type = facet_type > [concrete] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.c00: %AggregateT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -992,25 +992,25 @@ fn G() { // CHECK:STDOUT: %z: %empty_tuple.type = bind_name z, %.loc8_48.3 // CHECK:STDOUT: %facet_value.loc8_48: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_48.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8_48 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_48: = bound_method %.loc8_48.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_48: = bound_method %.loc8_48.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_48: = bound_method %.loc8_48.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_48: = bound_method %.loc8_48.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8_48: %ptr.843 = addr_of %.loc8_48.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_48: init %empty_tuple.type = call %bound_method.loc8_48(%addr.loc8_48) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_48: init %empty_tuple.type = call %bound_method.loc8_48(%addr.loc8_48) // CHECK:STDOUT: %facet_value.loc8_38: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_38.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8_38 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_38: = bound_method %.loc8_38.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_38: = bound_method %.loc8_38.2, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_38: = bound_method %.loc8_38.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_38: = bound_method %.loc8_38.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_38: %ptr.843 = addr_of %.loc8_38.2 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_38: init %empty_tuple.type = call %bound_method.loc8_38(%addr.loc8_38) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_38: init %empty_tuple.type = call %bound_method.loc8_38(%addr.loc8_38) // CHECK:STDOUT: %facet_value.loc8_15: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8_15 [concrete = constants.%facet_value] -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_15: = bound_method %y.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%AggregateT.as_type.as.Destroy.impl.Op.c00, @AggregateT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%AggregateT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15: = bound_method %y.var, %AggregateT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_15: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_15: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_15: %ptr.843 = addr_of %y.var -// CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_15: init %empty_tuple.type = call %bound_method.loc8_15(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_15: init %empty_tuple.type = call %bound_method.loc8_15(%addr.loc8_15) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/handle_call.cpp b/toolchain/lower/handle_call.cpp index dd9ef828d4c4..d1c34e832251 100644 --- a/toolchain/lower/handle_call.cpp +++ b/toolchain/lower/handle_call.cpp @@ -461,7 +461,7 @@ static auto HandleBuiltinCall(FunctionContext& context, SemIR::InstId inst_id, case SemIR::BuiltinFunctionKind::CharConvertChecked: case SemIR::BuiltinFunctionKind::FloatConvertChecked: case SemIR::BuiltinFunctionKind::IntConvertChecked: - case SemIR::BuiltinFunctionKind::TypeCanAggregateDestroy: { + case SemIR::BuiltinFunctionKind::TypeCanDestroy: { // TODO: Check this statically. CARBON_CHECK(builtin_kind.IsCompTimeOnly( context.sem_ir(), arg_ids, @@ -469,7 +469,7 @@ static auto HandleBuiltinCall(FunctionContext& context, SemIR::InstId inst_id, CARBON_FATAL("Missing constant value for call to comptime-only function"); } - case SemIR::BuiltinFunctionKind::TypeAggregateDestroy: + case SemIR::BuiltinFunctionKind::TypeDestroy: // TODO: Destroy aggregate members. return; } diff --git a/toolchain/lower/testdata/builtins/type.carbon b/toolchain/lower/testdata/builtins/type.carbon index 42d9086718e8..d90985895ce6 100644 --- a/toolchain/lower/testdata/builtins/type.carbon +++ b/toolchain/lower/testdata/builtins/type.carbon @@ -10,16 +10,16 @@ // TIP: To dump output, run: // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/lower/testdata/builtins/type.carbon -// --- can_aggregate_destroy.carbon +// --- can_destroy.carbon library "[[@TEST_NAME]]"; -fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; +fn CanDestroy() -> type = "type.can_destroy"; fn F() { - var t: type = CanAggregateDestroy(); + let t: type = CanDestroy(); } -// --- aggregate_destroy.carbon +// --- destroy.carbon library "[[@TEST_NAME]]"; interface DestroyLike { @@ -27,7 +27,7 @@ interface DestroyLike { } impl forall [T:! type] T as DestroyLike { - fn Op[addr self: Self*]() = "type.aggregate_destroy"; + fn Op[addr self: Self*]() = "type.destroy"; } var a: (); @@ -38,38 +38,27 @@ fn F() { b.(DestroyLike.Op)(); } -// CHECK:STDOUT: ; ModuleID = 'can_aggregate_destroy.carbon' -// CHECK:STDOUT: source_filename = "can_aggregate_destroy.carbon" -// CHECK:STDOUT: -// CHECK:STDOUT: %type = type {} +// CHECK:STDOUT: ; ModuleID = 'can_destroy.carbon' +// CHECK:STDOUT: source_filename = "can_destroy.carbon" // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main() !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %t.var = alloca %type, align 8, !dbg !7 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %t.var), !dbg !7 -// CHECK:STDOUT: store %type zeroinitializer, ptr %t.var, align 1, !dbg !7 -// CHECK:STDOUT: ret void, !dbg !8 +// CHECK:STDOUT: ret void, !dbg !7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -// CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #0 -// CHECK:STDOUT: -// CHECK:STDOUT: attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -// CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} // CHECK:STDOUT: !llvm.dbg.cu = !{!2} // CHECK:STDOUT: // CHECK:STDOUT: !0 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !3 = !DIFile(filename: "can_aggregate_destroy.carbon", directory: "") +// CHECK:STDOUT: !3 = !DIFile(filename: "can_destroy.carbon", directory: "") // CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: ; ModuleID = 'aggregate_destroy.carbon' -// CHECK:STDOUT: source_filename = "aggregate_destroy.carbon" +// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 1, scope: !4) +// CHECK:STDOUT: ; ModuleID = 'destroy.carbon' +// CHECK:STDOUT: source_filename = "destroy.carbon" // CHECK:STDOUT: // CHECK:STDOUT: @_Ca.Main = global {} zeroinitializer // CHECK:STDOUT: @_Cb.Main = global {} zeroinitializer @@ -85,7 +74,7 @@ fn F() { // CHECK:STDOUT: !0 = !{i32 7, !"Dwarf Version", i32 5} // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !3 = !DIFile(filename: "aggregate_destroy.carbon", directory: "") +// CHECK:STDOUT: !3 = !DIFile(filename: "destroy.carbon", directory: "") // CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 14, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} diff --git a/toolchain/lower/testdata/function/definition/destroy.carbon b/toolchain/lower/testdata/function/definition/destroy.carbon index 855bfa2ce17e..26bca5ffc55f 100644 --- a/toolchain/lower/testdata/function/definition/destroy.carbon +++ b/toolchain/lower/testdata/function/definition/destroy.carbon @@ -10,30 +10,20 @@ // TIP: To dump output, run: // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/lower/testdata/function/definition/destroy.carbon -// --- has_destroy.carbon - -library "[[@TEST_NAME]]"; - -class HasDestroy { - // TODO: Change for `Destruction`+`Destroy`. - impl as Core.Destroy { - fn Op[self: Self](); - } -} - // --- let_param.carbon library "[[@TEST_NAME]]"; -import library "has_destroy"; -fn F(x: HasDestroy) { +class C {} + +fn F(x: C) { } fn G(); fn CallF() { F({}); - // TODO: The `HasDestroy` instance is destroyed after the call to `G()`, and + // TODO: The `C` instance is destroyed after the call to `G()`, and // should be destroyed before. G(); } @@ -41,16 +31,17 @@ fn CallF() { // --- var_param.carbon library "[[@TEST_NAME]]"; -import library "has_destroy"; -fn F(var x: HasDestroy) { +class C {} + +fn F(var x: C) { } fn G(); fn CallF() { F({}); - // TODO: The `HasDestroy` instance is destroyed after the call to `G()`, and + // TODO: The `C` instance is destroyed after the call to `G()`, and // should be destroyed before. G(); } @@ -58,54 +49,33 @@ fn CallF() { // --- return_slot.carbon library "[[@TEST_NAME]]"; -import library "has_destroy"; -fn F() -> HasDestroy { +class C {} + +fn F() -> C { return {}; } fn G(); -fn Forward() -> HasDestroy { +fn Forward() -> C { return F(); } fn InitVar() { - var local: HasDestroy = F(); + var local: C = F(); G(); } fn InitLet() { - let local: HasDestroy = F(); + let local: C = F(); G(); } -// CHECK:STDOUT: ; ModuleID = 'has_destroy.carbon' -// CHECK:STDOUT: source_filename = "has_destroy.carbon" -// CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.HasDestroy.Main:Destroy.Core"(ptr) -// CHECK:STDOUT: -// CHECK:STDOUT: define void @"_COp:thunk.HasDestroy.Main:Destroy.Core"(ptr %self) !dbg !4 { -// CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @"_COp.HasDestroy.Main:Destroy.Core"(ptr %self), !dbg !7 -// CHECK:STDOUT: ret void, !dbg !7 -// CHECK:STDOUT: } -// CHECK:STDOUT: -// CHECK:STDOUT: !llvm.module.flags = !{!0, !1} -// CHECK:STDOUT: !llvm.dbg.cu = !{!2} -// CHECK:STDOUT: -// CHECK:STDOUT: !0 = !{i32 7, !"Dwarf Version", i32 5} -// CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} -// CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) -// CHECK:STDOUT: !3 = !DIFile(filename: "has_destroy.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.HasDestroy.Main:Destroy.Core", scope: null, file: !3, line: 7, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !5 = !DISubroutineType(types: !6) -// CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 5, scope: !4) // CHECK:STDOUT: ; ModuleID = 'let_param.carbon' // CHECK:STDOUT: source_filename = "let_param.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @HasDestroy.val.loc11_6.3 = internal constant {} zeroinitializer +// CHECK:STDOUT: @C.val.loc12_6.3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main(ptr %x) !dbg !4 { // CHECK:STDOUT: entry: @@ -116,19 +86,14 @@ fn InitLet() { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CCallF.Main() !dbg !8 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc11_6.2.temp = alloca {}, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_6.2.temp), !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.loc11_6.2.temp, ptr align 1 @HasDestroy.val.loc11_6.3, i64 0, i1 false), !dbg !9 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc11_6.2.temp), !dbg !10 +// CHECK:STDOUT: %.loc12_6.2.temp = alloca {}, align 8, !dbg !9 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_6.2.temp), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.loc12_6.2.temp, ptr align 1 @C.val.loc12_6.3, i64 0, i1 false), !dbg !9 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc12_6.2.temp), !dbg !10 // CHECK:STDOUT: call void @_CG.Main(), !dbg !11 -// CHECK:STDOUT: call void @"_COp.HasDestroy.Main:Destroy.Core"(ptr %.loc11_6.2.temp), !dbg !9 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp:thunk.HasDestroy.Main:Destroy.Core"(ptr) -// CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.HasDestroy.Main:Destroy.Core"(ptr) -// CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #0 // CHECK:STDOUT: @@ -145,19 +110,19 @@ fn InitLet() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "let_param.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !3, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !9 = !DILocation(line: 11, column: 5, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 11, column: 3, scope: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 3, scope: !8) -// CHECK:STDOUT: !12 = !DILocation(line: 10, column: 1, scope: !8) +// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 1, scope: !4) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !9 = !DILocation(line: 12, column: 5, scope: !8) +// CHECK:STDOUT: !10 = !DILocation(line: 12, column: 3, scope: !8) +// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 3, scope: !8) +// CHECK:STDOUT: !12 = !DILocation(line: 11, column: 1, scope: !8) // CHECK:STDOUT: ; ModuleID = 'var_param.carbon' // CHECK:STDOUT: source_filename = "var_param.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @HasDestroy.val.loc5_6.2 = internal constant {} zeroinitializer +// CHECK:STDOUT: @C.val.loc6_6.2 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main(ptr %x) !dbg !4 { // CHECK:STDOUT: entry: @@ -168,19 +133,14 @@ fn InitLet() { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CCallF.Main() !dbg !8 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc5_6.1.temp = alloca {}, align 8, !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc5_6.1.temp), !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.loc5_6.1.temp, ptr align 1 @HasDestroy.val.loc5_6.2, i64 0, i1 false), !dbg !9 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc5_6.1.temp), !dbg !10 +// CHECK:STDOUT: %.loc6_6.1.temp = alloca {}, align 8, !dbg !9 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc6_6.1.temp), !dbg !9 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.loc6_6.1.temp, ptr align 1 @C.val.loc6_6.2, i64 0, i1 false), !dbg !9 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc6_6.1.temp), !dbg !10 // CHECK:STDOUT: call void @_CG.Main(), !dbg !11 -// CHECK:STDOUT: call void @"_COp.HasDestroy.Main:Destroy.Core"(ptr %.loc5_6.1.temp), !dbg !9 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp:thunk.HasDestroy.Main:Destroy.Core"(ptr) -// CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.HasDestroy.Main:Destroy.Core"(ptr) -// CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #0 // CHECK:STDOUT: @@ -197,23 +157,23 @@ fn InitLet() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "var_param.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 5, column: 1, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !3, line: 10, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !9 = !DILocation(line: 5, column: 6, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 11, column: 3, scope: !8) -// CHECK:STDOUT: !11 = !DILocation(line: 14, column: 3, scope: !8) -// CHECK:STDOUT: !12 = !DILocation(line: 10, column: 1, scope: !8) +// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 1, scope: !4) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "CallF", linkageName: "_CCallF.Main", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !9 = !DILocation(line: 6, column: 6, scope: !8) +// CHECK:STDOUT: !10 = !DILocation(line: 12, column: 3, scope: !8) +// CHECK:STDOUT: !11 = !DILocation(line: 15, column: 3, scope: !8) +// CHECK:STDOUT: !12 = !DILocation(line: 11, column: 1, scope: !8) // CHECK:STDOUT: ; ModuleID = 'return_slot.carbon' // CHECK:STDOUT: source_filename = "return_slot.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @HasDestroy.val.loc6_12 = internal constant {} zeroinitializer +// CHECK:STDOUT: @C.val.loc7_12 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main(ptr sret({}) %return) !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @HasDestroy.val.loc6_12, i64 0, i1 false), !dbg !7 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %return, ptr align 1 @C.val.loc7_12, i64 0, i1 false), !dbg !7 // CHECK:STDOUT: ret void, !dbg !7 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -231,21 +191,15 @@ fn InitLet() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %local.var), !dbg !12 // CHECK:STDOUT: call void @_CF.Main(ptr %local.var), !dbg !13 // CHECK:STDOUT: call void @_CG.Main(), !dbg !14 -// CHECK:STDOUT: call void @"_COp.HasDestroy.Main:Destroy.Core"(ptr %local.var), !dbg !12 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp:thunk.HasDestroy.Main:Destroy.Core"(ptr) -// CHECK:STDOUT: -// CHECK:STDOUT: declare void @"_COp.HasDestroy.Main:Destroy.Core"(ptr) -// CHECK:STDOUT: // CHECK:STDOUT: define void @_CInitLet.Main() !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc21_29.1.temp = alloca {}, align 8, !dbg !17 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc21_29.1.temp), !dbg !17 -// CHECK:STDOUT: call void @_CF.Main(ptr %.loc21_29.1.temp), !dbg !17 +// CHECK:STDOUT: %.loc22_20.1.temp = alloca {}, align 8, !dbg !17 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_20.1.temp), !dbg !17 +// CHECK:STDOUT: call void @_CF.Main(ptr %.loc22_20.1.temp), !dbg !17 // CHECK:STDOUT: call void @_CG.Main(), !dbg !18 -// CHECK:STDOUT: call void @"_COp.HasDestroy.Main:Destroy.Core"(ptr %.loc21_29.1.temp), !dbg !17 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -268,19 +222,19 @@ fn InitLet() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "return_slot.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main", scope: null, file: !3, line: 6, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Forward", linkageName: "_CForward.Main", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !9 = !DILocation(line: 12, column: 10, scope: !8) -// CHECK:STDOUT: !10 = !DILocation(line: 12, column: 3, scope: !8) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "InitVar", linkageName: "_CInitVar.Main", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !12 = !DILocation(line: 16, column: 3, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 16, column: 27, scope: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 17, column: 3, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 15, column: 1, scope: !11) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "InitLet", linkageName: "_CInitLet.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !17 = !DILocation(line: 21, column: 27, scope: !16) -// CHECK:STDOUT: !18 = !DILocation(line: 22, column: 3, scope: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 20, column: 1, scope: !16) +// CHECK:STDOUT: !7 = !DILocation(line: 7, column: 3, scope: !4) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "Forward", linkageName: "_CForward.Main", scope: null, file: !3, line: 12, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !9 = !DILocation(line: 13, column: 10, scope: !8) +// CHECK:STDOUT: !10 = !DILocation(line: 13, column: 3, scope: !8) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "InitVar", linkageName: "_CInitVar.Main", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !12 = !DILocation(line: 17, column: 3, scope: !11) +// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 18, scope: !11) +// CHECK:STDOUT: !14 = !DILocation(line: 18, column: 3, scope: !11) +// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 1, scope: !11) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "InitLet", linkageName: "_CInitLet.Main", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !17 = !DILocation(line: 22, column: 18, scope: !16) +// CHECK:STDOUT: !18 = !DILocation(line: 23, column: 3, scope: !16) +// CHECK:STDOUT: !19 = !DILocation(line: 21, column: 1, scope: !16) diff --git a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon index 74673e0669fa..606271eaa428 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon @@ -61,14 +61,14 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: define void @main() !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.5595bcb1d6932ffa(), !dbg !13 +// CHECK:STDOUT: call void @_CG.Main.f84edebea9f363f0(), !dbg !13 // CHECK:STDOUT: call void @_CG.Main.b5f20a8e74ede332(), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.5595bcb1d6932ffa() !dbg !16 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.f84edebea9f363f0() !dbg !16 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc37_20.1.temp = alloca i1, align 1, !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc37_20.1.temp), !dbg !17 @@ -118,7 +118,7 @@ fn Run() { // CHECK:STDOUT: !13 = !DILocation(line: 41, column: 3, scope: !12) // CHECK:STDOUT: !14 = !DILocation(line: 42, column: 3, scope: !12) // CHECK:STDOUT: !15 = !DILocation(line: 40, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.5595bcb1d6932ffa", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.f84edebea9f363f0", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !17 = !DILocation(line: 37, column: 16, scope: !16) // CHECK:STDOUT: !18 = !DILocation(line: 36, column: 1, scope: !16) // CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b5f20a8e74ede332", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) diff --git a/toolchain/sem_ir/builtin_function_kind.cpp b/toolchain/sem_ir/builtin_function_kind.cpp index 74ec22e2a1f4..3c4690e7ec79 100644 --- a/toolchain/sem_ir/builtin_function_kind.cpp +++ b/toolchain/sem_ir/builtin_function_kind.cpp @@ -609,18 +609,17 @@ constexpr BuiltinInfo BoolNeq = {"bool.neq", constexpr BuiltinInfo TypeAnd = {"type.and", ValidateSignatureType>}; -// Destroys a primitive type. The argument must be destructible, which can be -// checked with `type.can_aggregate_destroy`. +// The implementation of `Destroy` for a type. The argument must be checked with +// `type.can_destroy` first. // TODO: The argument should be `addr self: Self*`. Consider modifying // `ValidateSignature` to more fully enforce the structure. -constexpr BuiltinInfo TypeAggregateDestroy = { - "type.aggregate_destroy", - ValidateSignature)->NoReturn>}; +constexpr BuiltinInfo TypeDestroy = { + "type.destroy", ValidateSignature)->NoReturn>}; // Returns a facet type that's used to determine whether a type can use -// `type.aggregate_destroy`. -constexpr BuiltinInfo TypeCanAggregateDestroy = { - "type.can_aggregate_destroy", ValidateSignatureType>}; +// `type.destroy`. +constexpr BuiltinInfo TypeCanDestroy = {"type.can_destroy", + ValidateSignatureType>}; } // namespace BuiltinFunctionInfo @@ -734,7 +733,7 @@ auto BuiltinFunctionKind::IsCompTimeOnly(const File& sem_ir, case TypeAnd: return true; - case TypeCanAggregateDestroy: + case TypeCanDestroy: // Type queries must be compile-time. return true; diff --git a/toolchain/sem_ir/builtin_function_kind.def b/toolchain/sem_ir/builtin_function_kind.def index e8080b37b740..022a85f45046 100644 --- a/toolchain/sem_ir/builtin_function_kind.def +++ b/toolchain/sem_ir/builtin_function_kind.def @@ -126,8 +126,8 @@ CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(BoolNeq) // Facet type combination. CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(TypeAnd) -// Primitive type destruction. -CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(TypeAggregateDestroy) -CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(TypeCanAggregateDestroy) +// The blanket impl for `Destroy`. +CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(TypeDestroy) +CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(TypeCanDestroy) #undef CARBON_SEM_IR_BUILTIN_FUNCTION_KIND diff --git a/toolchain/sem_ir/facet_type_info.h b/toolchain/sem_ir/facet_type_info.h index dc7e1be671d7..d6eb77b02da8 100644 --- a/toolchain/sem_ir/facet_type_info.h +++ b/toolchain/sem_ir/facet_type_info.h @@ -14,9 +14,9 @@ namespace Carbon::SemIR { -#define CARBON_BUILTIN_CONSTRAINT_MASK(X) \ - /* Verifies types can use the builtin `type.aggregate_destroy`. */ \ - X(TypeCanAggregateDestroy) +#define CARBON_BUILTIN_CONSTRAINT_MASK(X) \ + /* Verifies types can use the builtin `type.destroy`. */ \ + X(TypeCanDestroy) CARBON_DEFINE_RAW_ENUM_MASK(BuiltinConstraintMask, uint32_t) { CARBON_BUILTIN_CONSTRAINT_MASK(CARBON_RAW_ENUM_MASK_ENUMERATOR) diff --git a/toolchain/sem_ir/formatter.cpp b/toolchain/sem_ir/formatter.cpp index 1575e80eabcf..a1928334b9de 100644 --- a/toolchain/sem_ir/formatter.cpp +++ b/toolchain/sem_ir/formatter.cpp @@ -1322,8 +1322,8 @@ auto Formatter::FormatArg(FacetTypeId id) -> void { FormatArg(rewrite.rhs_id); } if (info.builtin_constraint_mask.HasAnyOf( - BuiltinConstraintMask::TypeCanAggregateDestroy)) { - out_ << and_sep << ".Self impls "; + BuiltinConstraintMask::TypeCanDestroy)) { + out_ << and_sep << ".Self impls "; } if (info.other_requirements) { out_ << and_sep << "TODO"; diff --git a/toolchain/sem_ir/stringify.cpp b/toolchain/sem_ir/stringify.cpp index 699ab784f373..281a448a083c 100644 --- a/toolchain/sem_ir/stringify.cpp +++ b/toolchain/sem_ir/stringify.cpp @@ -331,11 +331,11 @@ class Stringifier { some_where = true; } if (facet_type_info.builtin_constraint_mask.HasAnyOf( - SemIR::BuiltinConstraintMask::TypeCanAggregateDestroy)) { + SemIR::BuiltinConstraintMask::TypeCanDestroy)) { if (some_where) { step_stack_->PushString(" and"); } - step_stack_->PushString(" .Self impls Core.CanAggregateDestroy"); + step_stack_->PushString(" .Self impls Core.CanDestroy"); some_where = true; } for (auto rewrite : llvm::reverse(facet_type_info.rewrite_constraints)) { diff --git a/toolchain/testing/testdata/min_prelude/parts/destroy.carbon b/toolchain/testing/testdata/min_prelude/parts/destroy.carbon index fb2804cf78f6..523eaa0537ce 100644 --- a/toolchain/testing/testdata/min_prelude/parts/destroy.carbon +++ b/toolchain/testing/testdata/min_prelude/parts/destroy.carbon @@ -2,42 +2,26 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/parts/bool.carbon -// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/parts/int_literal.carbon - // --- min_prelude/parts/destroy.carbon package Core library "prelude/parts/destroy"; -import library "prelude/parts/bool"; -import library "prelude/parts/int_literal"; +// TODO: Add `Destructor`, as in: +// interface Destructor { +// private fn Op[ref self: Self](); +// } -// Destroys objects. Note this is distinct from memory deallocation. -// TODO: Switch to `Destructor`+`Destroy` model. +// Destroys objects. This will invoke `Destructor` impls recursively on members; +// it does not deallocate memory. interface Destroy { + // TODO: This should be `final fn Op[ref self: Self]() = "type.destroy"`. fn Op[addr self: Self*](); } -// Add destruction for essential builtin types. This can't be done earlier -// because `Destroy` is using them. -// TODO: This should match trivial destruction. -impl bool as Destroy { - fn Op[addr self: Self*]() = "no_op"; -} -impl type as Destroy { - fn Op[addr self: Self*]() = "no_op"; -} -impl forall [PointeeT:! type] PointeeT* as Destroy { - fn Op[addr self: Self*]() = "no_op"; -} +// Returns a constraint that matches all types that should have a `Destroy` impl. +private fn CanDestroy() -> type = "type.can_destroy"; -// Handles builtin aggregate type destruction. -private fn CanAggregateDestroy() -> type = "type.can_aggregate_destroy"; -impl forall [AggregateT:! CanAggregateDestroy()] AggregateT as Destroy { - fn Op[addr self: Self*]() = "type.aggregate_destroy"; -} - -// `const` instances always use the non-`const` destructor. -impl forall [NonConstT:! Destroy] const NonConstT as Destroy { - fn Op[addr self: Self*]() { (self unsafe as NonConstT*)->(Destroy.Op)(); } +// Destroys an instance of `DestroyT`. This is also used for trivial types. +final impl forall [DestroyT:! CanDestroy()] DestroyT as Destroy { + fn Op[addr self: Self*]() = "type.destroy"; }