From 8a59f2a76b6febcadc2ccdc9c4b2ae5bba3d33f1 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Sat, 30 May 2026 01:13:00 -0700 Subject: [PATCH] Fix mangling collision for C++ class template specializations (#7269) Carbon-side thunks (for example the `Copy`/`Destroy` witness thunks generated for imported C++ types) are mangled by Carbon, and their names incorporate a fingerprint of the involved types. The instruction fingerprinter identifies a class only by its name and parent scope, which is sufficient for Carbon classes but not for imported C++ classes: different specializations of one class template (and other cases such as types in anonymous namespaces) share a Carbon name and parent scope. As a result, the thunks for two distinct specializations could mangle to the same name, producing a single LLVM function with two definitions and failing `verifyModule` during lowering. When fingerprinting a class imported from C++, also include the Clang mangled name of its type. Test: toolchain/lower/testdata/interop/cpp/thunks.carbon gains a split with two specializations of one class template, each requiring a thunk; their thunks now get distinct mangled names instead of colliding. Assisted-by: Claude Code --------- Co-authored-by: Christopher Di Bella --- toolchain/check/cpp/generate_ast.cpp | 4 + .../interop/cpp/basics/import/indirect.carbon | 56 +- .../interop/cpp/class/import/abstract.carbon | 4 +- .../interop/cpp/class/import/access.carbon | 96 +- .../interop/cpp/class/import/base.carbon | 66 +- .../interop/cpp/class/import/class.carbon | 70 +- .../cpp/class/import/constructor.carbon | 108 +- .../interop/cpp/class/import/field.carbon | 28 +- .../interop/cpp/class/import/method.carbon | 60 +- .../interop/cpp/class/import/template.carbon | 62 +- .../interop/cpp/class/import/union.carbon | 44 +- .../interop/cpp/enum/anonymous.carbon | 22 +- .../testdata/interop/cpp/enum/convert.carbon | 28 +- .../testdata/interop/cpp/enum/copy.carbon | 24 +- .../testdata/interop/cpp/enum/using.carbon | 40 +- .../interop/cpp/function/import/class.carbon | 70 +- .../cpp/function/import/default_arg.carbon | 80 +- .../cpp/function/import/extern_c.carbon | 8 +- .../cpp/function/import/overloads.carbon | 162 +- .../cpp/function/import/pointer.carbon | 638 ++-- .../function/import/qualified_param.carbon | 16 +- .../cpp/function/import/reference.carbon | 250 +- .../interop/cpp/function/import/struct.carbon | 64 +- .../interop/cpp/function/import/union.carbon | 64 +- .../testdata/interop/cpp/impls/as.carbon | 170 +- .../testdata/interop/cpp/impls/copy.carbon | 82 +- .../testdata/interop/cpp/impls/destroy.carbon | 52 +- .../interop/cpp/impls/implicit_as.carbon | 212 +- .../testdata/interop/cpp/macros/macros.carbon | 18 +- .../interop/cpp/namespace/import.carbon | 4 +- .../cpp/operators/arithmetic_operators.carbon | 3080 ++++++++--------- .../interop/cpp/operators/deref.carbon | 16 +- .../interop/cpp/operators/eq_with.carbon | 338 +- .../interop/cpp/operators/operators.carbon | 382 +- .../interop/cpp/operators/ordered_with.carbon | 482 +-- .../interop/cpp/operators/spaceship.carbon | 70 +- .../cpp/primitive_types/arithmetic.carbon | 14 +- .../long_and_long_long.llp64.carbon | 40 +- .../long_and_long_long.lp64.carbon | 40 +- .../cpp/primitive_types/void_pointer.carbon | 106 +- .../testdata/interop/cpp/range_for.carbon | 718 ++-- .../cpp/stdlib/initializer_list.carbon | 38 +- .../cpp/template/alias_template.carbon | 32 +- .../cpp/template/argument_count.carbon | 134 +- .../cpp/template/class_template.carbon | 18 +- .../cpp/template/non_type_param.carbon | 44 +- .../template/template_template_param.carbon | 14 +- .../interop/cpp/template/type_param.carbon | 28 +- .../interop/cpp/template/var_template.carbon | 84 +- .../interop/cpp/type_alias/import.carbon | 56 +- .../testdata/interop/cpp/var/global.carbon | 58 +- .../interop/cpp/class/import/dynamic.carbon | 4 +- .../interop/cpp/class/virtual_fn.carbon | 4 +- .../testdata/interop/cpp/constructor.carbon | 40 +- .../testdata/interop/cpp/operators.carbon | 48 +- .../testdata/interop/cpp/parameters.carbon | 12 +- .../lower/testdata/interop/cpp/pointer.carbon | 118 +- .../testdata/interop/cpp/reference.carbon | 24 +- .../interop/cpp/std_initializer_list.carbon | 12 +- .../lower/testdata/interop/cpp/thunks.carbon | 365 +- toolchain/sem_ir/cpp_file.h | 17 + toolchain/sem_ir/file.cpp | 29 + toolchain/sem_ir/file.h | 14 + toolchain/sem_ir/inst_fingerprinter.cpp | 11 + 64 files changed, 4762 insertions(+), 4330 deletions(-) diff --git a/toolchain/check/cpp/generate_ast.cpp b/toolchain/check/cpp/generate_ast.cpp index 13c8ab19e0ca..94026954a69d 100644 --- a/toolchain/check/cpp/generate_ast.cpp +++ b/toolchain/check/cpp/generate_ast.cpp @@ -902,6 +902,10 @@ auto GenerateAst(Context& context, return false; } + // The AST context is now available, so the mangle context (used to compute + // stable identities for imported C++ types) can be created. + context.sem_ir().cpp_file()->CreateMangleContext(); + auto& ast = clang_instance.getASTContext(); llvm::IntrusiveRefCntPtr carbon_source = llvm::makeIntrusiveRefCnt(&context); diff --git a/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon b/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon index 6689408c75a4..c9ea33448869 100644 --- a/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon +++ b/toolchain/check/testdata/interop/cpp/basics/import/indirect.carbon @@ -218,9 +218,9 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %tuple.type.87c: type = tuple_type (%i32, %i32) [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.elem: type = unbound_element_type %X, %i32 [concrete] -// CHECK:STDOUT: %pattern_type.e61: type = pattern_type %X [concrete] +// CHECK:STDOUT: %pattern_type.74a: type = pattern_type %X [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] -// CHECK:STDOUT: %ptr.bfb: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.4ff: type = ptr_type %X [concrete] // CHECK:STDOUT: %X__carbon_thunk.type: type = fn_type @X__carbon_thunk [concrete] // CHECK:STDOUT: %X__carbon_thunk: %X__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -277,8 +277,8 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: fn @Use() -> out %return.param: %tuple.type.87c { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %ax.patt: %pattern_type.e61 = ref_binding_pattern ax [concrete] -// CHECK:STDOUT: %ax.var_patt: %pattern_type.e61 = var_pattern %ax.patt [concrete] +// CHECK:STDOUT: %ax.patt: %pattern_type.74a = ref_binding_pattern ax [concrete] +// CHECK:STDOUT: %ax.var_patt: %pattern_type.74a = var_pattern %ax.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %ax.var: ref %X = var %ax.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] @@ -290,7 +290,7 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc9_16.2(%int_1) [concrete = constants.%int_1.d5e] // CHECK:STDOUT: %.loc9_16.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.d5e] // CHECK:STDOUT: %.loc9_16.2: %i32 = converted %int_1, %.loc9_16.1 [concrete = constants.%int_1.d5e] -// CHECK:STDOUT: %addr: %ptr.bfb = addr_of %.loc9_3.1 +// CHECK:STDOUT: %addr: %ptr.4ff = addr_of %.loc9_3.1 // CHECK:STDOUT: %X__carbon_thunk.call: init %empty_tuple.type = call imports.%X__carbon_thunk.decl(%.loc9_16.2, %addr) // CHECK:STDOUT: %.loc9_3.2: init %X to %.loc9_3.1 = mark_in_place_init %X__carbon_thunk.call // CHECK:STDOUT: %.loc9_3.3: init %X = converted %int_1, %.loc9_3.2 @@ -331,8 +331,8 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Y.13e7b4.1: type = class_type @Y.1 [concrete] -// CHECK:STDOUT: %Y.elem.92b: type = unbound_element_type %Y.13e7b4.1, %i32 [concrete] +// CHECK:STDOUT: %Y.ef9: type = class_type @Y.1 [concrete] +// CHECK:STDOUT: %Y.elem.c50: type = unbound_element_type %Y.ef9, %i32 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.b5d: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.c85: %Int.as.Copy.impl.Op.type.b5d = struct_value () [symbolic] @@ -348,21 +348,21 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: %Z: type = class_type @Z [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %Y.13e7b4.2: type = class_type @Y.2 [concrete] -// CHECK:STDOUT: %Y.elem.8ad: type = unbound_element_type %Y.13e7b4.2, %Z [concrete] +// CHECK:STDOUT: %Y.235: type = class_type @Y.2 [concrete] +// CHECK:STDOUT: %Y.elem.f1e: type = unbound_element_type %Y.235, %Z [concrete] // CHECK:STDOUT: %Z.Z.type: type = fn_type @Z.Z [concrete] // CHECK:STDOUT: %Z.Z: %Z.Z.type = struct_value () [concrete] -// CHECK:STDOUT: %const.dd4: type = const_type %Z [concrete] -// CHECK:STDOUT: %ptr.5fa: type = ptr_type %const.dd4 [concrete] -// CHECK:STDOUT: %ptr.6ce: type = ptr_type %Z [concrete] +// CHECK:STDOUT: %const.ab6: type = const_type %Z [concrete] +// CHECK:STDOUT: %ptr.bf9: type = ptr_type %const.ab6 [concrete] +// CHECK:STDOUT: %ptr.c6c: type = ptr_type %Z [concrete] // CHECK:STDOUT: %Z__carbon_thunk.type: type = fn_type @Z__carbon_thunk [concrete] // CHECK:STDOUT: %Z__carbon_thunk: %Z__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Z.Op.type: type = fn_type @Z.Op [concrete] // CHECK:STDOUT: %Z.Op: %Z.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.862: = custom_witness (%Z.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.429: %Copy.type = facet_value %Z, (%custom_witness.862) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.873: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.429) [concrete] -// CHECK:STDOUT: %.5a8: type = fn_type_with_self_type %Copy.WithSelf.Op.type.873, %Copy.facet.429 [concrete] +// CHECK:STDOUT: %Copy.facet.916: %Copy.type = facet_value %Z, (%custom_witness.862) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.8ae: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.916) [concrete] +// CHECK:STDOUT: %.158: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8ae, %Copy.facet.916 [concrete] // CHECK:STDOUT: %Y.cpp_destructor.type.300273.2: type = fn_type @Y.cpp_destructor.2 [concrete] // CHECK:STDOUT: %Y.cpp_destructor.6dd6f2.2: %Y.cpp_destructor.type.300273.2 = struct_value () [concrete] // CHECK:STDOUT: } @@ -387,10 +387,10 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: fn @Use() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, imports.%Main.G [concrete = constants.%G] -// CHECK:STDOUT: %.loc9_12.1: ref %Y.13e7b4.1 = temporary_storage -// CHECK:STDOUT: %G.call: init %Y.13e7b4.1 to %.loc9_12.1 = call %G.ref() -// CHECK:STDOUT: %.loc9_12.2: ref %Y.13e7b4.1 = temporary %.loc9_12.1, %G.call -// CHECK:STDOUT: %y.ref: %Y.elem.92b = name_ref y, @Y.1.%.1 [concrete = @Y.1.%.1] +// CHECK:STDOUT: %.loc9_12.1: ref %Y.ef9 = temporary_storage +// CHECK:STDOUT: %G.call: init %Y.ef9 to %.loc9_12.1 = call %G.ref() +// CHECK:STDOUT: %.loc9_12.2: ref %Y.ef9 = temporary %.loc9_12.1, %G.call +// CHECK:STDOUT: %y.ref: %Y.elem.c50 = name_ref y, @Y.1.%.1 [concrete = @Y.1.%.1] // CHECK:STDOUT: %.loc9_13.1: ref %i32 = class_element_access %.loc9_12.2, element0 // CHECK:STDOUT: %.loc9_13.2: %i32 = acquire_value %.loc9_13.1 // CHECK:STDOUT: %impl.elem0: %.a5f = impl_witness_access constants.%Copy.impl_witness.32d, element0 [concrete = constants.%Int.as.Copy.impl.Op.c4a] @@ -406,23 +406,23 @@ fn UseZ() -> Cpp.A.Z { // CHECK:STDOUT: fn @UseZ() -> out %return.param: %Z { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %H.ref: %H.type = name_ref H, imports.%Main.H [concrete = constants.%H] -// CHECK:STDOUT: %.loc15_12.1: ref %Y.13e7b4.2 = temporary_storage -// CHECK:STDOUT: %H.call: init %Y.13e7b4.2 to %.loc15_12.1 = call %H.ref() -// CHECK:STDOUT: %.loc15_12.2: ref %Y.13e7b4.2 = temporary %.loc15_12.1, %H.call -// CHECK:STDOUT: %y.ref: %Y.elem.8ad = name_ref y, @Y.2.%.1 [concrete = @Y.2.%.1] +// CHECK:STDOUT: %.loc15_12.1: ref %Y.235 = temporary_storage +// CHECK:STDOUT: %H.call: init %Y.235 to %.loc15_12.1 = call %H.ref() +// CHECK:STDOUT: %.loc15_12.2: ref %Y.235 = temporary %.loc15_12.1, %H.call +// CHECK:STDOUT: %y.ref: %Y.elem.f1e = name_ref y, @Y.2.%.1 [concrete = @Y.2.%.1] // CHECK:STDOUT: %.loc15_13.1: ref %Z = class_element_access %.loc15_12.2, element0 // CHECK:STDOUT: %.loc15_13.2: %Z = acquire_value %.loc15_13.1 // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0: %.5a8 = impl_witness_access constants.%custom_witness.862, element0 [concrete = constants.%Z.Op] +// CHECK:STDOUT: %impl.elem0: %.158 = impl_witness_access constants.%custom_witness.862, element0 [concrete = constants.%Z.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc15_13.2, %impl.elem0 // CHECK:STDOUT: %.loc15_13.3: ref %Z = temporary_storage // CHECK:STDOUT: %Op.ref: %Z.Z.type = name_ref Op, imports.%Z.Z.decl [concrete = constants.%Z.Z] // CHECK:STDOUT: // CHECK:STDOUT: %.loc15_13.4: ref %Z = value_as_ref %.loc15_13.2 -// CHECK:STDOUT: %addr.loc15_13.1: %ptr.6ce = addr_of %.loc15_13.4 -// CHECK:STDOUT: %.loc15_13.5: %ptr.5fa = as_compatible %addr.loc15_13.1 -// CHECK:STDOUT: %.loc15_13.6: %ptr.5fa = converted %addr.loc15_13.1, %.loc15_13.5 -// CHECK:STDOUT: %addr.loc15_13.2: %ptr.6ce = addr_of %.loc13_19.1 +// CHECK:STDOUT: %addr.loc15_13.1: %ptr.c6c = addr_of %.loc15_13.4 +// CHECK:STDOUT: %.loc15_13.5: %ptr.bf9 = as_compatible %addr.loc15_13.1 +// CHECK:STDOUT: %.loc15_13.6: %ptr.bf9 = converted %addr.loc15_13.1, %.loc15_13.5 +// CHECK:STDOUT: %addr.loc15_13.2: %ptr.c6c = addr_of %.loc13_19.1 // CHECK:STDOUT: %Z__carbon_thunk.call: init %empty_tuple.type = call imports.%Z__carbon_thunk.decl(%.loc15_13.6, %addr.loc15_13.2) // CHECK:STDOUT: %.loc15_13.7: init %Z to %.loc13_19.1 = mark_in_place_init %Z__carbon_thunk.call // CHECK:STDOUT: %Y.cpp_destructor.bound: = bound_method %.loc15_12.2, constants.%Y.cpp_destructor.6dd6f2.2 diff --git a/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon b/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon index 3f149bc39a04..4f4fdb311aeb 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/abstract.carbon @@ -105,7 +105,7 @@ fn F() -> Cpp.AbstractFinal { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %AbstractFinal: type = class_type @AbstractFinal [concrete] -// CHECK:STDOUT: %.e25: Core.Form = init_form %AbstractFinal [concrete] +// CHECK:STDOUT: %.216: Core.Form = init_form %AbstractFinal [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %AbstractFinal [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -133,7 +133,7 @@ fn F() -> Cpp.AbstractFinal { // CHECK:STDOUT: } { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %AbstractFinal.ref: type = name_ref AbstractFinal, imports.%AbstractFinal.decl [concrete = constants.%AbstractFinal] -// CHECK:STDOUT: %.loc11_14.2: Core.Form = init_form %AbstractFinal.ref [concrete = constants.%.e25] +// CHECK:STDOUT: %.loc11_14.2: Core.Form = init_form %AbstractFinal.ref [concrete = constants.%.216] // CHECK:STDOUT: %return.param: ref %AbstractFinal = out_param call_param0 // CHECK:STDOUT: %return: ref %AbstractFinal = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/class/import/access.carbon b/toolchain/check/testdata/interop/cpp/class/import/access.carbon index e42f4894322d..04a5aa086bb4 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/access.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/access.carbon @@ -1787,7 +1787,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S.instance_fn.cpp_overload_set.type: type = cpp_overload_set_type @S.instance_fn.cpp_overload_set [concrete] // CHECK:STDOUT: %S.instance_fn.cpp_overload_set.value: %S.instance_fn.cpp_overload_set.type = cpp_overload_set_value @S.instance_fn.cpp_overload_set [concrete] @@ -1815,9 +1815,9 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %S.static_fn.decl: %S.static_fn.type = fn_decl @S.static_fn [concrete = constants.%S.static_fn] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%s.param: %ptr.9e9) { +// CHECK:STDOUT: fn @F(%s.param: %ptr.055) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %s.ref: %ptr.9e9 = name_ref s, %s +// CHECK:STDOUT: %s.ref: %ptr.055 = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = deref %s.ref // CHECK:STDOUT: %instance_fn.ref: %S.instance_fn.cpp_overload_set.type = name_ref instance_fn, imports.%S.instance_fn.cpp_overload_set.value [concrete = constants.%S.instance_fn.cpp_overload_set.value] // CHECK:STDOUT: %bound_method: = bound_method %.loc8, %instance_fn.ref @@ -1920,10 +1920,10 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.e7e: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %C.Overload.cpp_overload_set.type: type = cpp_overload_set_type @C.Overload.cpp_overload_set [concrete] @@ -1973,15 +1973,15 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc8_14: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc8_25: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_37.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc8_37: %ptr.e7e = addr_of %.loc8_37.1 +// CHECK:STDOUT: %addr.loc8_37: %ptr.9f8 = addr_of %.loc8_37.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc8_37) // CHECK:STDOUT: %.loc8_37.2: init %PublicCall to %.loc8_37.1 = mark_in_place_init %PublicCall__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_38.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc8_37.3: ref %PublicCall = temporary %.loc8_37.1, %.loc8_37.2 // CHECK:STDOUT: %.loc8_37.4: %PublicCall = acquire_value %.loc8_37.3 // CHECK:STDOUT: %.loc8_37.5: ref %PublicCall = value_as_ref %.loc8_37.4 -// CHECK:STDOUT: %addr.loc8_38.1: %ptr.e7e = addr_of %.loc8_37.5 -// CHECK:STDOUT: %addr.loc8_38.2: %ptr.dbb = addr_of %.loc8_38.1 +// CHECK:STDOUT: %addr.loc8_38.1: %ptr.9f8 = addr_of %.loc8_37.5 +// CHECK:STDOUT: %addr.loc8_38.2: %ptr.3a8 = addr_of %.loc8_38.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8_38.1, %addr.loc8_38.2) // CHECK:STDOUT: %.loc8_38.2: init %C to %.loc8_38.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc8_38.3: ref %C = temporary %.loc8_38.1, %.loc8_38.2 @@ -1992,13 +1992,13 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc9_21: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc9_32: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_44.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc9_44: %ptr.e7e = addr_of %.loc9_44.1 +// CHECK:STDOUT: %addr.loc9_44: %ptr.9f8 = addr_of %.loc9_44.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc9_44) // CHECK:STDOUT: %.loc9_44.2: init %PublicCall to %.loc9_44.1 = mark_in_place_init %PublicCall__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_44.3: ref %PublicCall = temporary %.loc9_44.1, %.loc9_44.2 // CHECK:STDOUT: %.loc9_44.4: %PublicCall = acquire_value %.loc9_44.3 // CHECK:STDOUT: %.loc9_44.5: ref %PublicCall = value_as_ref %.loc9_44.4 -// CHECK:STDOUT: %addr.loc9_45: %ptr.e7e = addr_of %.loc9_44.5 +// CHECK:STDOUT: %addr.loc9_45: %ptr.9f8 = addr_of %.loc9_44.5 // CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl(%addr.loc9_45) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound.loc9: = bound_method %.loc9_44.3, constants.%PublicCall.cpp_destructor // CHECK:STDOUT: %PublicCall.cpp_destructor.call.loc9: init %empty_tuple.type = call %PublicCall.cpp_destructor.bound.loc9(%.loc9_44.3) @@ -2015,25 +2015,25 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %struct_type.base.936: type = struct_type {.base: %C} [concrete] +// CHECK:STDOUT: %struct_type.base.b6f: type = struct_type {.base: %C} [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.e7e: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] // CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] -// CHECK:STDOUT: %.5a9: type = partial_type %C [concrete] +// CHECK:STDOUT: %.196: type = partial_type %C [concrete] // CHECK:STDOUT: %PublicCall.cpp_destructor.type: type = fn_type @PublicCall.cpp_destructor [concrete] // CHECK:STDOUT: %PublicCall.cpp_destructor: %PublicCall.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %ProtectedCall: type = class_type @ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.type: type = cpp_overload_set_type @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.value: %ProtectedCall.ProtectedCall.cpp_overload_set.type = cpp_overload_set_value @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.ea3: type = ptr_type %ProtectedCall [concrete] +// CHECK:STDOUT: %ptr.6e4: type = ptr_type %ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk.type: type = fn_type @ProtectedCall__carbon_thunk [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk: %ProtectedCall__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.2: type = fn_type @C__carbon_thunk.2 [concrete] @@ -2118,20 +2118,20 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc11_26: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc11_37: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc11_49.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc11_49: %ptr.e7e = addr_of %.loc11_49.1 +// CHECK:STDOUT: %addr.loc11_49: %ptr.9f8 = addr_of %.loc11_49.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc11_49) // CHECK:STDOUT: %.loc11_49.2: init %PublicCall to %.loc11_49.1 = mark_in_place_init %PublicCall__carbon_thunk.call -// CHECK:STDOUT: %.loc11_51.1: ref %.5a9 = class_element_access %return.param, element0 +// CHECK:STDOUT: %.loc11_51.1: ref %.196 = class_element_access %return.param, element0 // CHECK:STDOUT: %.loc11_49.3: ref %PublicCall = temporary %.loc11_49.1, %.loc11_49.2 // CHECK:STDOUT: %.loc11_49.4: %PublicCall = acquire_value %.loc11_49.3 // CHECK:STDOUT: %.loc11_49.5: ref %PublicCall = value_as_ref %.loc11_49.4 -// CHECK:STDOUT: %addr.loc11_50.1: %ptr.e7e = addr_of %.loc11_49.5 -// CHECK:STDOUT: %addr.loc11_50.2: %ptr.dbb = addr_of %.loc11_51.1 +// CHECK:STDOUT: %addr.loc11_50.1: %ptr.9f8 = addr_of %.loc11_49.5 +// CHECK:STDOUT: %addr.loc11_50.2: %ptr.3a8 = addr_of %.loc11_51.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%addr.loc11_50.1, %addr.loc11_50.2) // CHECK:STDOUT: %.loc11_50: init %C to %.loc11_51.1 = mark_in_place_init %C__carbon_thunk.call -// CHECK:STDOUT: %.loc11_51.2: %struct_type.base.936 = struct_literal (%.loc11_50) -// CHECK:STDOUT: %.loc11_51.3: init %.5a9 = as_compatible %.loc11_50 -// CHECK:STDOUT: %.loc11_51.4: init %.5a9 = converted %.loc11_50, %.loc11_51.3 +// CHECK:STDOUT: %.loc11_51.2: %struct_type.base.b6f = struct_literal (%.loc11_50) +// CHECK:STDOUT: %.loc11_51.3: init %.196 = as_compatible %.loc11_50 +// CHECK:STDOUT: %.loc11_51.4: init %.196 = converted %.loc11_50, %.loc11_51.3 // CHECK:STDOUT: %.loc11_51.5: init %C = as_compatible %.loc11_51.4 // CHECK:STDOUT: %.loc11_51.6: init %D to %return.param = class_init (%.loc11_51.5) // CHECK:STDOUT: %.loc11_52: init %D = converted %.loc11_51.2, %.loc11_51.6 @@ -2147,20 +2147,20 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %ProtectedCall.ref.loc17_26: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc17_40: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc17_55.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc17_55: %ptr.ea3 = addr_of %.loc17_55.1 +// CHECK:STDOUT: %addr.loc17_55: %ptr.6e4 = addr_of %.loc17_55.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc17_55) // CHECK:STDOUT: %.loc17_55.2: init %ProtectedCall to %.loc17_55.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call -// CHECK:STDOUT: %.loc17_57.1: ref %.5a9 = class_element_access %return.param, element0 +// CHECK:STDOUT: %.loc17_57.1: ref %.196 = class_element_access %return.param, element0 // CHECK:STDOUT: %.loc17_55.3: ref %ProtectedCall = temporary %.loc17_55.1, %.loc17_55.2 // CHECK:STDOUT: %.loc17_55.4: %ProtectedCall = acquire_value %.loc17_55.3 // CHECK:STDOUT: %.loc17_55.5: ref %ProtectedCall = value_as_ref %.loc17_55.4 -// CHECK:STDOUT: %addr.loc17_56.1: %ptr.ea3 = addr_of %.loc17_55.5 -// CHECK:STDOUT: %addr.loc17_56.2: %ptr.dbb = addr_of %.loc17_57.1 +// CHECK:STDOUT: %addr.loc17_56.1: %ptr.6e4 = addr_of %.loc17_55.5 +// CHECK:STDOUT: %addr.loc17_56.2: %ptr.3a8 = addr_of %.loc17_57.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%addr.loc17_56.1, %addr.loc17_56.2) // CHECK:STDOUT: %.loc17_56: init %C to %.loc17_57.1 = mark_in_place_init %C__carbon_thunk.call -// CHECK:STDOUT: %.loc17_57.2: %struct_type.base.936 = struct_literal (%.loc17_56) -// CHECK:STDOUT: %.loc17_57.3: init %.5a9 = as_compatible %.loc17_56 -// CHECK:STDOUT: %.loc17_57.4: init %.5a9 = converted %.loc17_56, %.loc17_57.3 +// CHECK:STDOUT: %.loc17_57.2: %struct_type.base.b6f = struct_literal (%.loc17_56) +// CHECK:STDOUT: %.loc17_57.3: init %.196 = as_compatible %.loc17_56 +// CHECK:STDOUT: %.loc17_57.4: init %.196 = converted %.loc17_56, %.loc17_57.3 // CHECK:STDOUT: %.loc17_57.5: init %C = as_compatible %.loc17_57.4 // CHECK:STDOUT: %.loc17_57.6: init %D to %return.param = class_init (%.loc17_57.5) // CHECK:STDOUT: %.loc17_58: init %D = converted %.loc17_57.2, %.loc17_57.6 @@ -2176,13 +2176,13 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc23_17: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc23_28: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc23_40.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc23_40: %ptr.e7e = addr_of %.loc23_40.1 +// CHECK:STDOUT: %addr.loc23_40: %ptr.9f8 = addr_of %.loc23_40.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc23_40) // CHECK:STDOUT: %.loc23_40.2: init %PublicCall to %.loc23_40.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc23_40.3: ref %PublicCall = temporary %.loc23_40.1, %.loc23_40.2 // CHECK:STDOUT: %.loc23_40.4: %PublicCall = acquire_value %.loc23_40.3 // CHECK:STDOUT: %.loc23_40.5: ref %PublicCall = value_as_ref %.loc23_40.4 -// CHECK:STDOUT: %addr.loc23_41: %ptr.e7e = addr_of %.loc23_40.5 +// CHECK:STDOUT: %addr.loc23_41: %ptr.9f8 = addr_of %.loc23_40.5 // CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.1(%addr.loc23_41) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound: = bound_method %.loc23_40.3, constants.%PublicCall.cpp_destructor // CHECK:STDOUT: %PublicCall.cpp_destructor.call: init %empty_tuple.type = call %PublicCall.cpp_destructor.bound(%.loc23_40.3) @@ -2196,13 +2196,13 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %ProtectedCall.ref.loc29_17: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc29_31: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc29_46.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc29_46: %ptr.ea3 = addr_of %.loc29_46.1 +// CHECK:STDOUT: %addr.loc29_46: %ptr.6e4 = addr_of %.loc29_46.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc29_46) // CHECK:STDOUT: %.loc29_46.2: init %ProtectedCall to %.loc29_46.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call // CHECK:STDOUT: %.loc29_46.3: ref %ProtectedCall = temporary %.loc29_46.1, %.loc29_46.2 // CHECK:STDOUT: %.loc29_46.4: %ProtectedCall = acquire_value %.loc29_46.3 // CHECK:STDOUT: %.loc29_46.5: ref %ProtectedCall = value_as_ref %.loc29_46.4 -// CHECK:STDOUT: %addr.loc29_47: %ptr.ea3 = addr_of %.loc29_46.5 +// CHECK:STDOUT: %addr.loc29_47: %ptr.6e4 = addr_of %.loc29_46.5 // CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.2(%addr.loc29_47) // CHECK:STDOUT: %ProtectedCall.cpp_destructor.bound: = bound_method %.loc29_46.3, constants.%ProtectedCall.cpp_destructor // CHECK:STDOUT: %ProtectedCall.cpp_destructor.call: init %empty_tuple.type = call %ProtectedCall.cpp_destructor.bound(%.loc29_46.3) @@ -2219,7 +2219,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.e7e: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Overload__carbon_thunk.type: type = fn_type @Overload__carbon_thunk [concrete] @@ -2259,13 +2259,13 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc8_26: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc8_37: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_49.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc8_49: %ptr.e7e = addr_of %.loc8_49.1 +// CHECK:STDOUT: %addr.loc8_49: %ptr.9f8 = addr_of %.loc8_49.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc8_49) // CHECK:STDOUT: %.loc8_49.2: init %PublicCall to %.loc8_49.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc8_49.3: ref %PublicCall = temporary %.loc8_49.1, %.loc8_49.2 // CHECK:STDOUT: %.loc8_49.4: %PublicCall = acquire_value %.loc8_49.3 // CHECK:STDOUT: %.loc8_49.5: ref %PublicCall = value_as_ref %.loc8_49.4 -// CHECK:STDOUT: %addr.loc8_50: %ptr.e7e = addr_of %.loc8_49.5 +// CHECK:STDOUT: %addr.loc8_50: %ptr.9f8 = addr_of %.loc8_49.5 // CHECK:STDOUT: %Overload__carbon_thunk.call: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl(%addr.loc8_50) // CHECK:STDOUT: %PublicCall.cpp_destructor.bound: = bound_method %.loc8_49.3, constants.%PublicCall.cpp_destructor // CHECK:STDOUT: %PublicCall.cpp_destructor.call: init %empty_tuple.type = call %PublicCall.cpp_destructor.bound(%.loc8_49.3) @@ -2283,7 +2283,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.e7e: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.1: type = fn_type @Overload__carbon_thunk.1 [concrete] @@ -2291,7 +2291,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %ProtectedCall: type = class_type @ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.type: type = cpp_overload_set_type @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.value: %ProtectedCall.ProtectedCall.cpp_overload_set.type = cpp_overload_set_value @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.ea3: type = ptr_type %ProtectedCall [concrete] +// CHECK:STDOUT: %ptr.6e4: type = ptr_type %ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk.type: type = fn_type @ProtectedCall__carbon_thunk [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk: %ProtectedCall__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.2: type = fn_type @Overload__carbon_thunk.2 [concrete] @@ -2356,26 +2356,26 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc11_17: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc11_28: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc11_40.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc11_40: %ptr.e7e = addr_of %.loc11_40.1 +// CHECK:STDOUT: %addr.loc11_40: %ptr.9f8 = addr_of %.loc11_40.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc11_40) // CHECK:STDOUT: %.loc11_40.2: init %PublicCall to %.loc11_40.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc11_40.3: ref %PublicCall = temporary %.loc11_40.1, %.loc11_40.2 // CHECK:STDOUT: %.loc11_40.4: %PublicCall = acquire_value %.loc11_40.3 // CHECK:STDOUT: %.loc11_40.5: ref %PublicCall = value_as_ref %.loc11_40.4 -// CHECK:STDOUT: %addr.loc11_41: %ptr.e7e = addr_of %.loc11_40.5 +// CHECK:STDOUT: %addr.loc11_41: %ptr.9f8 = addr_of %.loc11_40.5 // CHECK:STDOUT: %Overload__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.1(%addr.loc11_41) // CHECK:STDOUT: %Overload.ref.loc12: %Public.Overload.cpp_overload_set.type = name_ref Overload, imports.%Public.Overload.cpp_overload_set.value [concrete = constants.%Public.Overload.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ProtectedCall.ref.loc12_17: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc12_31: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc12_46.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc12_46: %ptr.ea3 = addr_of %.loc12_46.1 +// CHECK:STDOUT: %addr.loc12_46: %ptr.6e4 = addr_of %.loc12_46.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc12_46) // CHECK:STDOUT: %.loc12_46.2: init %ProtectedCall to %.loc12_46.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call // CHECK:STDOUT: %.loc12_46.3: ref %ProtectedCall = temporary %.loc12_46.1, %.loc12_46.2 // CHECK:STDOUT: %.loc12_46.4: %ProtectedCall = acquire_value %.loc12_46.3 // CHECK:STDOUT: %.loc12_46.5: ref %ProtectedCall = value_as_ref %.loc12_46.4 -// CHECK:STDOUT: %addr.loc12_47: %ptr.ea3 = addr_of %.loc12_46.5 +// CHECK:STDOUT: %addr.loc12_47: %ptr.6e4 = addr_of %.loc12_46.5 // CHECK:STDOUT: %Overload__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.2(%addr.loc12_47) // CHECK:STDOUT: %ProtectedCall.cpp_destructor.bound: = bound_method %.loc12_46.3, constants.%ProtectedCall.cpp_destructor // CHECK:STDOUT: %ProtectedCall.cpp_destructor.call: init %empty_tuple.type = call %ProtectedCall.cpp_destructor.bound(%.loc12_46.3) @@ -2395,7 +2395,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall: type = class_type @PublicCall [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.type: type = cpp_overload_set_type @PublicCall.PublicCall.cpp_overload_set [concrete] // CHECK:STDOUT: %PublicCall.PublicCall.cpp_overload_set.value: %PublicCall.PublicCall.cpp_overload_set.type = cpp_overload_set_value @PublicCall.PublicCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.e7e: type = ptr_type %PublicCall [concrete] +// CHECK:STDOUT: %ptr.9f8: type = ptr_type %PublicCall [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk.type: type = fn_type @PublicCall__carbon_thunk [concrete] // CHECK:STDOUT: %PublicCall__carbon_thunk: %PublicCall__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.1: type = fn_type @Overload__carbon_thunk.1 [concrete] @@ -2403,7 +2403,7 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %ProtectedCall: type = class_type @ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.type: type = cpp_overload_set_type @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] // CHECK:STDOUT: %ProtectedCall.ProtectedCall.cpp_overload_set.value: %ProtectedCall.ProtectedCall.cpp_overload_set.type = cpp_overload_set_value @ProtectedCall.ProtectedCall.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.ea3: type = ptr_type %ProtectedCall [concrete] +// CHECK:STDOUT: %ptr.6e4: type = ptr_type %ProtectedCall [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk.type: type = fn_type @ProtectedCall__carbon_thunk [concrete] // CHECK:STDOUT: %ProtectedCall__carbon_thunk: %ProtectedCall__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Overload__carbon_thunk.type.8651cd.2: type = fn_type @Overload__carbon_thunk.2 [concrete] @@ -2468,26 +2468,26 @@ fn Call(var instance: Cpp.PublicPrivate) { // CHECK:STDOUT: %PublicCall.ref.loc11_17: type = name_ref PublicCall, imports.%PublicCall.decl [concrete = constants.%PublicCall] // CHECK:STDOUT: %PublicCall.ref.loc11_28: %PublicCall.PublicCall.cpp_overload_set.type = name_ref PublicCall, imports.%PublicCall.PublicCall.cpp_overload_set.value [concrete = constants.%PublicCall.PublicCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc11_40.1: ref %PublicCall = temporary_storage -// CHECK:STDOUT: %addr.loc11_40: %ptr.e7e = addr_of %.loc11_40.1 +// CHECK:STDOUT: %addr.loc11_40: %ptr.9f8 = addr_of %.loc11_40.1 // CHECK:STDOUT: %PublicCall__carbon_thunk.call: init %empty_tuple.type = call imports.%PublicCall__carbon_thunk.decl(%addr.loc11_40) // CHECK:STDOUT: %.loc11_40.2: init %PublicCall to %.loc11_40.1 = mark_in_place_init %PublicCall__carbon_thunk.call // CHECK:STDOUT: %.loc11_40.3: ref %PublicCall = temporary %.loc11_40.1, %.loc11_40.2 // CHECK:STDOUT: %.loc11_40.4: %PublicCall = acquire_value %.loc11_40.3 // CHECK:STDOUT: %.loc11_40.5: ref %PublicCall = value_as_ref %.loc11_40.4 -// CHECK:STDOUT: %addr.loc11_41: %ptr.e7e = addr_of %.loc11_40.5 +// CHECK:STDOUT: %addr.loc11_41: %ptr.9f8 = addr_of %.loc11_40.5 // CHECK:STDOUT: %Overload__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.1(%addr.loc11_41) // CHECK:STDOUT: %Overload.ref.loc12: %Protected.Overload.cpp_overload_set.type = name_ref Overload, imports.%Protected.Overload.cpp_overload_set.value [concrete = constants.%Protected.Overload.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %ProtectedCall.ref.loc12_17: type = name_ref ProtectedCall, imports.%ProtectedCall.decl [concrete = constants.%ProtectedCall] // CHECK:STDOUT: %ProtectedCall.ref.loc12_31: %ProtectedCall.ProtectedCall.cpp_overload_set.type = name_ref ProtectedCall, imports.%ProtectedCall.ProtectedCall.cpp_overload_set.value [concrete = constants.%ProtectedCall.ProtectedCall.cpp_overload_set.value] // CHECK:STDOUT: %.loc12_46.1: ref %ProtectedCall = temporary_storage -// CHECK:STDOUT: %addr.loc12_46: %ptr.ea3 = addr_of %.loc12_46.1 +// CHECK:STDOUT: %addr.loc12_46: %ptr.6e4 = addr_of %.loc12_46.1 // CHECK:STDOUT: %ProtectedCall__carbon_thunk.call: init %empty_tuple.type = call imports.%ProtectedCall__carbon_thunk.decl(%addr.loc12_46) // CHECK:STDOUT: %.loc12_46.2: init %ProtectedCall to %.loc12_46.1 = mark_in_place_init %ProtectedCall__carbon_thunk.call // CHECK:STDOUT: %.loc12_46.3: ref %ProtectedCall = temporary %.loc12_46.1, %.loc12_46.2 // CHECK:STDOUT: %.loc12_46.4: %ProtectedCall = acquire_value %.loc12_46.3 // CHECK:STDOUT: %.loc12_46.5: ref %ProtectedCall = value_as_ref %.loc12_46.4 -// CHECK:STDOUT: %addr.loc12_47: %ptr.ea3 = addr_of %.loc12_46.5 +// CHECK:STDOUT: %addr.loc12_47: %ptr.6e4 = addr_of %.loc12_46.5 // CHECK:STDOUT: %Overload__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%Overload__carbon_thunk.decl.2c3a3d.2(%addr.loc12_47) // CHECK:STDOUT: %ProtectedCall.cpp_destructor.bound: = bound_method %.loc12_46.3, constants.%ProtectedCall.cpp_destructor // CHECK:STDOUT: %ProtectedCall.cpp_destructor.call: init %empty_tuple.type = call %ProtectedCall.cpp_destructor.bound(%.loc12_46.3) diff --git a/toolchain/check/testdata/interop/cpp/class/import/base.carbon b/toolchain/check/testdata/interop/cpp/class/import/base.carbon index 2798c7bd806e..4d9ee7762a77 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/base.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/base.carbon @@ -470,12 +470,12 @@ class V { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] -// CHECK:STDOUT: %ptr.d66: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.dfa: type = pattern_type %ptr.d66 [concrete] +// CHECK:STDOUT: %ptr.2aa: type = ptr_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.ba6: type = pattern_type %ptr.2aa [concrete] // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %ptr.bd6: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %.2ee: Core.Form = init_form %ptr.bd6 [concrete] -// CHECK:STDOUT: %pattern_type.1bb: type = pattern_type %ptr.bd6 [concrete] +// CHECK:STDOUT: %ptr.eb6: type = ptr_type %Base [concrete] +// CHECK:STDOUT: %.3e5: Core.Form = init_form %ptr.eb6 [concrete] +// CHECK:STDOUT: %pattern_type.47b: type = pattern_type %ptr.eb6 [concrete] // CHECK:STDOUT: %ConvertPtr.type: type = fn_type @ConvertPtr [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %ConvertPtr: %ConvertPtr.type = struct_value () [concrete] @@ -483,16 +483,16 @@ class V { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b03: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.aed: %ptr.as.Copy.impl.Op.type.b03 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.068: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.867: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.e2b: %ptr.as.Copy.impl.Op.type.867 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.bd6, (%Copy.impl_witness.068) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f5f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.312: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f5f, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.e2b, @ptr.as.Copy.impl.Op(%Base) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.826: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.097: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.235: %ptr.as.Copy.impl.Op.type.097 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.eb6, (%Copy.impl_witness.826) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.402: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.97e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.402, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.235, @ptr.as.Copy.impl.Op(%Base) [concrete] // CHECK:STDOUT: %AcceptVal.type: type = fn_type @AcceptVal [concrete] // CHECK:STDOUT: %AcceptVal: %AcceptVal.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.126: type = pattern_type %Derived [concrete] +// CHECK:STDOUT: %pattern_type.ad3: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %ConvertVal.type: type = fn_type @ConvertVal [concrete] // CHECK:STDOUT: %ConvertVal: %ConvertVal.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -511,28 +511,28 @@ class V { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %ConvertPtr.decl: %ConvertPtr.type = fn_decl @ConvertPtr [concrete = constants.%ConvertPtr] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.dfa = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.dfa = at_binding_pattern d, %d.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.1bb = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.1bb = return_slot_pattern %return.param_patt, %ptr.loc7_43 [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.ba6 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.ba6 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.47b = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.47b = return_slot_pattern %return.param_patt, %ptr.loc7_43 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Cpp.ref.loc7_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Base.ref: type = name_ref Base, imports.%Base.decl [concrete = constants.%Base] -// CHECK:STDOUT: %ptr.loc7_43: type = ptr_type %Base.ref [concrete = constants.%ptr.bd6] -// CHECK:STDOUT: %.loc7_43: Core.Form = init_form %ptr.loc7_43 [concrete = constants.%.2ee] -// CHECK:STDOUT: %d.param: %ptr.d66 = value_param call_param0 -// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29 [concrete = constants.%ptr.d66] { +// CHECK:STDOUT: %ptr.loc7_43: type = ptr_type %Base.ref [concrete = constants.%ptr.eb6] +// CHECK:STDOUT: %.loc7_43: Core.Form = init_form %ptr.loc7_43 [concrete = constants.%.3e5] +// CHECK:STDOUT: %d.param: %ptr.2aa = value_param call_param0 +// CHECK:STDOUT: %.loc7_29: type = splice_block %ptr.loc7_29 [concrete = constants.%ptr.2aa] { // CHECK:STDOUT: %Cpp.ref.loc7_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Derived.ref: type = name_ref Derived, imports.%Derived.decl [concrete = constants.%Derived] -// CHECK:STDOUT: %ptr.loc7_29: type = ptr_type %Derived.ref [concrete = constants.%ptr.d66] +// CHECK:STDOUT: %ptr.loc7_29: type = ptr_type %Derived.ref [concrete = constants.%ptr.2aa] // CHECK:STDOUT: } -// CHECK:STDOUT: %d: %ptr.d66 = value_binding d, %d.param -// CHECK:STDOUT: %return.param: ref %ptr.bd6 = out_param call_param1 -// CHECK:STDOUT: %return: ref %ptr.bd6 = return_slot %return.param +// CHECK:STDOUT: %d: %ptr.2aa = value_binding d, %d.param +// CHECK:STDOUT: %return.param: ref %ptr.eb6 = out_param call_param1 +// CHECK:STDOUT: %return: ref %ptr.eb6 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %ConvertVal.decl: %ConvertVal.type = fn_decl @ConvertVal [concrete = constants.%ConvertVal] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.126 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.126 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.ad3 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.ad3 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %d.param: %Derived = value_param call_param0 // CHECK:STDOUT: %.loc15: type = splice_block %Derived.ref [concrete = constants.%Derived] { @@ -543,18 +543,18 @@ class V { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConvertPtr(%d.param: %ptr.d66) -> out %return.param: %ptr.bd6 { +// CHECK:STDOUT: fn @ConvertPtr(%d.param: %ptr.2aa) -> out %return.param: %ptr.eb6 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %d.ref: %ptr.d66 = name_ref d, %d +// CHECK:STDOUT: %d.ref: %ptr.2aa = name_ref d, %d // CHECK:STDOUT: %.loc8_11.1: ref %Derived = deref %d.ref // CHECK:STDOUT: %.loc8_11.2: ref %Base = class_element_access %.loc8_11.1, element0 -// CHECK:STDOUT: %addr: %ptr.bd6 = addr_of %.loc8_11.2 -// CHECK:STDOUT: %.loc8_11.3: %ptr.bd6 = converted %d.ref, %addr -// CHECK:STDOUT: %impl.elem0: %.312 = impl_witness_access constants.%Copy.impl_witness.068, element0 [concrete = constants.%ptr.as.Copy.impl.Op.e2b] +// CHECK:STDOUT: %addr: %ptr.eb6 = addr_of %.loc8_11.2 +// CHECK:STDOUT: %.loc8_11.3: %ptr.eb6 = converted %d.ref, %addr +// CHECK:STDOUT: %impl.elem0: %.97e = impl_witness_access constants.%Copy.impl_witness.826, element0 [concrete = constants.%ptr.as.Copy.impl.Op.235] // CHECK:STDOUT: %bound_method.loc8_11.1: = bound_method %.loc8_11.3, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Base) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.3, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.bd6 = call %bound_method.loc8_11.2(%.loc8_11.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.eb6 = call %bound_method.loc8_11.2(%.loc8_11.3) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/import/class.carbon b/toolchain/check/testdata/interop/cpp/class/import/class.carbon index 1bb6fd8a9e8f..8c12851df7bb 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/class.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/class.carbon @@ -391,8 +391,8 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.00b: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.00b [concrete] +// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -403,7 +403,7 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %Bar.decl: type = class_decl @Bar [concrete = constants.%Bar] {} {} // CHECK:STDOUT: %foo.patt: %pattern_type = ref_binding_pattern foo [concrete] // CHECK:STDOUT: %foo.var_patt: %pattern_type = var_pattern %foo.patt [concrete] -// CHECK:STDOUT: %foo.var: ref %ptr.00b = var %foo.var_patt [concrete] +// CHECK:STDOUT: %foo.var: ref %ptr.4d6 = var %foo.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MyF() { @@ -413,14 +413,14 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_33: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %foo.ref: ref %ptr.00b = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] -// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.00b] { +// CHECK:STDOUT: %foo.ref: ref %ptr.4d6 = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] +// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.4d6] { // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_22: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.00b] +// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.4d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37: %ptr.00b = acquire_value %foo.ref -// CHECK:STDOUT: %bar: %ptr.00b = value_binding bar, %.loc8_37 +// CHECK:STDOUT: %.loc8_37: %ptr.4d6 = acquire_value %foo.ref +// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %.loc8_37 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -428,11 +428,11 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.00b: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.00b [concrete] +// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] -// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.00b [concrete] +// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.4d6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -448,32 +448,32 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %bar.param: %ptr.00b = value_param call_param0 -// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.00b] { +// CHECK:STDOUT: %bar.param: %ptr.4d6 = value_param call_param0 +// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.4d6] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc7: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.00b] +// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.4d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar: %ptr.00b = value_binding bar, %bar.param +// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %bar.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.00b) { +// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.4d6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %foo_bar.patt: %pattern_type = value_binding_pattern foo_bar [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar.ref: %ptr.00b = name_ref bar, %bar +// CHECK:STDOUT: %bar.ref: %ptr.4d6 = name_ref bar, %bar // CHECK:STDOUT: %.loc8_37.1: ref %Bar = deref %bar.ref // CHECK:STDOUT: %foo.ref: %Bar.elem = name_ref foo, @Bar.%.1 [concrete = @Bar.%.1] -// CHECK:STDOUT: %.loc8_37.2: ref %ptr.00b = class_element_access %.loc8_37.1, element0 -// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.00b] { +// CHECK:STDOUT: %.loc8_37.2: ref %ptr.4d6 = class_element_access %.loc8_37.1, element0 +// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.4d6] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.00b] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.4d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37.3: %ptr.00b = acquire_value %.loc8_37.2 -// CHECK:STDOUT: %foo_bar: %ptr.00b = value_binding foo_bar, %.loc8_37.3 +// CHECK:STDOUT: %.loc8_37.3: %ptr.4d6 = acquire_value %.loc8_37.2 +// CHECK:STDOUT: %foo_bar: %ptr.4d6 = value_binding foo_bar, %.loc8_37.3 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -481,8 +481,8 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.00b: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type.14a: type = pattern_type %ptr.00b [concrete] +// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type.d87: type = pattern_type %ptr.4d6 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] @@ -508,16 +508,16 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %MyF.decl: %MyF.type = fn_decl @MyF [concrete = constants.%MyF] { -// CHECK:STDOUT: %bar.param_patt: %pattern_type.14a = value_param_pattern [concrete] -// CHECK:STDOUT: %bar.patt: %pattern_type.14a = at_binding_pattern bar, %bar.param_patt [concrete] +// CHECK:STDOUT: %bar.param_patt: %pattern_type.d87 = value_param_pattern [concrete] +// CHECK:STDOUT: %bar.patt: %pattern_type.d87 = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %bar.param: %ptr.00b = value_param call_param0 -// CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr.00b] { +// CHECK:STDOUT: %bar.param: %ptr.4d6 = value_param call_param0 +// CHECK:STDOUT: %.loc7: type = splice_block %ptr [concrete = constants.%ptr.4d6] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref [concrete = constants.%ptr.00b] +// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref [concrete = constants.%ptr.4d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar: %ptr.00b = value_binding bar, %bar.param +// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %bar.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -527,9 +527,9 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: imports.%Bar.f.decl // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.00b) { +// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.4d6) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %bar.ref: %ptr.00b = name_ref bar, %bar +// CHECK:STDOUT: %bar.ref: %ptr.4d6 = name_ref bar, %bar // CHECK:STDOUT: %.loc8: ref %Bar = deref %bar.ref // CHECK:STDOUT: %f.ref: %Bar.f.cpp_overload_set.type = name_ref f, imports.%Bar.f.cpp_overload_set.value [concrete = constants.%Bar.f.cpp_overload_set.value] // CHECK:STDOUT: %bound_method: = bound_method %.loc8, %f.ref @@ -544,8 +544,8 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Bar [concrete] -// CHECK:STDOUT: %struct_type.base.864: type = struct_type {.base: %Bar} [concrete] -// CHECK:STDOUT: %complete_type.3a6: = complete_type_witness %struct_type.base.864 [concrete] +// CHECK:STDOUT: %struct_type.base.9f8: type = struct_type {.base: %Bar} [concrete] +// CHECK:STDOUT: %complete_type.0b2: = complete_type_witness %struct_type.base.9f8 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] // CHECK:STDOUT: %Bar.foo.cpp_overload_set.type: type = cpp_overload_set_type @Bar.foo.cpp_overload_set [concrete] @@ -573,7 +573,7 @@ fn GenericUse(p2: Generic(Cpp.Class1)) { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] // CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Bar.ref, element0 [concrete] -// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.864 [concrete = constants.%complete_type.3a6] +// CHECK:STDOUT: %complete_type: = complete_type_witness constants.%struct_type.base.9f8 [concrete = constants.%complete_type.0b2] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: diff --git a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon index c958541fb631..75f4f7be2800 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon @@ -317,10 +317,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -344,13 +344,13 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.a00 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.479 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_28: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_30: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_33.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc8_33.1 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8_33.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_33.2: init %C to %.loc8_33.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc8_20: type = splice_block %C.ref.loc8_20 [concrete = constants.%C] { @@ -370,7 +370,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -379,9 +379,9 @@ fn F() { // CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete] // CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%C.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.45f: %Default.type = facet_value %C, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e9a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.45f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.9d6: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.e9a) [concrete] +// CHECK:STDOUT: %Default.facet.fc6: %Default.type = facet_value %C, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.44d: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.fc6) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.ea5: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.44d) [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] // CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -399,12 +399,12 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.a00 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.a00 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.479 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.479 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.e9a) [concrete = constants.%DefaultOrUnformed.facet.9d6] -// CHECK:STDOUT: %.loc8_22.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet.9d6] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.44d) [concrete = constants.%DefaultOrUnformed.facet.ea5] +// CHECK:STDOUT: %.loc8_22.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet.ea5] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc8_22.1 [concrete = constants.%C] // CHECK:STDOUT: %.loc8_22.2: type = converted %.loc8_22.1, %as_type [concrete = constants.%C] // CHECK:STDOUT: @@ -426,14 +426,14 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] // CHECK:STDOUT: %int_456.010: Core.IntLiteral = int_value 456 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -476,7 +476,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.a00 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.479 = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_28: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -498,7 +498,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_38: init %i32 = call %bound_method.loc8_38.2(%int_456) [concrete = constants.%int_456.b78] // CHECK:STDOUT: %.loc8_38.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_38 [concrete = constants.%int_456.b78] // CHECK:STDOUT: %.loc8_38.2: %i32 = converted %int_456, %.loc8_38.1 [concrete = constants.%int_456.b78] -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc8_41.1 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8_41.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%.loc8_33.2, %.loc8_38.2, %addr) // CHECK:STDOUT: %.loc8_41.2: init %C to %.loc8_41.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc8_20: type = splice_block %C.ref.loc8_20 [concrete = constants.%C] { @@ -518,10 +518,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] // CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] @@ -575,13 +575,13 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_34.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_34.1 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_34.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%addr.loc8) // CHECK:STDOUT: %.loc8_34.2: init %C to %.loc8_34.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { @@ -592,7 +592,7 @@ fn F() { // CHECK:STDOUT: %.loc8_34.4: %C = acquire_value %.loc8_34.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_34.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -614,7 +614,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_39: init %i32 = call %bound_method.loc9_39.2(%int_456) [concrete = constants.%int_456.b78] // CHECK:STDOUT: %.loc9_39.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_39 [concrete = constants.%int_456.b78] // CHECK:STDOUT: %.loc9_39.2: %i32 = converted %int_456, %.loc9_39.1 [concrete = constants.%int_456.b78] -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %.loc9_42.1 +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_42.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc9_34.2, %.loc9_39.2, %addr.loc9) // CHECK:STDOUT: %.loc9_42.2: init %C to %.loc9_42.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9_21 [concrete = constants.%C] { @@ -636,14 +636,14 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] // CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -693,7 +693,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -715,7 +715,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37: init %i32 = call %bound_method.loc8_37.2(%int_9) [concrete = constants.%int_9.e6d] // CHECK:STDOUT: %.loc8_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37 [concrete = constants.%int_9.e6d] // CHECK:STDOUT: %.loc8_37.2: %i32 = converted %int_9, %.loc8_37.1 [concrete = constants.%int_9.e6d] -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_38.1 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_38.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%.loc8_34.2, %.loc8_37.2, %addr.loc8) // CHECK:STDOUT: %.loc8_38.2: init %C to %.loc8_38.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { @@ -726,7 +726,7 @@ fn F() { // CHECK:STDOUT: %.loc8_38.4: %C = acquire_value %.loc8_38.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -740,7 +740,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_8.loc9) [concrete = constants.%int_8.980] // CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_8.980] // CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_8.loc9, %.loc9_34.1 [concrete = constants.%int_8.980] -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %.loc9_35.1 +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc9_34.2, %addr.loc9) // CHECK:STDOUT: %.loc9_35.2: init %C to %.loc9_35.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9_21 [concrete = constants.%C] { @@ -762,13 +762,13 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_123.fff: Core.IntLiteral = int_value 123 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] // CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -836,8 +836,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.a00 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -852,7 +852,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_27.2(%int_123) [concrete = constants.%int_123.5a3] // CHECK:STDOUT: %.loc8_27.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_123.5a3] // CHECK:STDOUT: %.loc8_27.2: %i32 = converted %int_123, %.loc8_27.1 [concrete = constants.%int_123.5a3] -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_3 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%.loc8_27.2, %addr.loc8) // CHECK:STDOUT: %.loc8_30: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: assign %c1.var, %.loc8_30 @@ -862,8 +862,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.a00 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -877,7 +877,7 @@ fn F() { // CHECK:STDOUT: %.loc9_34.1: ref bool = temporary_storage // CHECK:STDOUT: %.loc9_34.2: ref bool = temporary %.loc9_34.1, %bool.as.Copy.impl.Op.call [concrete = constants.%.e3b] // CHECK:STDOUT: %addr.loc9_38.1: %ptr.bb2 = addr_of %.loc9_34.2 [concrete = constants.%addr] -// CHECK:STDOUT: %addr.loc9_38.2: %ptr.dbb = addr_of %.loc9_3 +// CHECK:STDOUT: %addr.loc9_38.2: %ptr.3a8 = addr_of %.loc9_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%addr.loc9_38.1, %addr.loc9_38.2) // CHECK:STDOUT: %.loc9_38: init %C to %.loc9_3 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: assign %c2.var, %.loc9_38 @@ -887,17 +887,17 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c2: ref %C = ref_binding c2, %c2.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.a00 = ref_binding_pattern c3 [concrete] -// CHECK:STDOUT: %c3.var_patt: %pattern_type.a00 = var_pattern %c3.patt [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.479 = ref_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.var_patt: %pattern_type.479 = var_pattern %c3.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c3.var: ref %C = var %c3.var_patt // CHECK:STDOUT: %Cpp.ref.loc10_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc10_31: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %c1.ref: ref %C = name_ref c1, %c1 -// CHECK:STDOUT: %addr.loc10_34: %ptr.dbb = addr_of %c1.ref +// CHECK:STDOUT: %addr.loc10_34: %ptr.3a8 = addr_of %c1.ref // CHECK:STDOUT: %.loc10_3: ref %C = splice_block %c3.var {} -// CHECK:STDOUT: %addr.loc10_37: %ptr.dbb = addr_of %.loc10_3 +// CHECK:STDOUT: %addr.loc10_37: %ptr.3a8 = addr_of %.loc10_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.3(%addr.loc10_34, %addr.loc10_37) // CHECK:STDOUT: %.loc10_37: init %C to %.loc10_3 = mark_in_place_init %C__carbon_thunk.call.loc10 // CHECK:STDOUT: assign %c3.var, %.loc10_37 @@ -922,13 +922,13 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -982,7 +982,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -996,7 +996,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %i32 = call %bound_method.loc8_34.2(%int_8.loc8) [concrete = constants.%int_8.980] // CHECK:STDOUT: %.loc8_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_8.980] // CHECK:STDOUT: %.loc8_34.2: %i32 = converted %int_8.loc8, %.loc8_34.1 [concrete = constants.%int_8.980] -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_35.1 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%.loc8_34.2, %addr.loc8) // CHECK:STDOUT: %.loc8_35.2: init %C to %.loc8_35.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { @@ -1007,7 +1007,7 @@ fn F() { // CHECK:STDOUT: %.loc8_35.4: %C = acquire_value %.loc8_35.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_8.loc9: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -1023,7 +1023,7 @@ fn F() { // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc9_28.3: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %.loc9_28.3 +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_28.3 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%.loc9_28.2, %addr.loc9) // CHECK:STDOUT: %.loc9_28.4: init %C to %.loc9_28.3 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_28.5: init %C = converted %.loc9_28.2, %.loc9_28.4 @@ -1042,14 +1042,14 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %int_8.b85: Core.IntLiteral = int_value 8 [concrete] // CHECK:STDOUT: %int_9.988: Core.IntLiteral = int_value 9 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] // CHECK:STDOUT: %C__carbon_thunk.type.0be6f8.1: type = fn_type @C__carbon_thunk.1 [concrete] // CHECK:STDOUT: %C__carbon_thunk.7c7210.1: %C__carbon_thunk.type.0be6f8.1 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -1113,7 +1113,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -1135,7 +1135,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37: init %i32 = call %bound_method.loc8_37.2(%int_9) [concrete = constants.%int_9.e6d] // CHECK:STDOUT: %.loc8_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_37 [concrete = constants.%int_9.e6d] // CHECK:STDOUT: %.loc8_37.2: %i32 = converted %int_9, %.loc8_37.1 [concrete = constants.%int_9.e6d] -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_38.1 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_38.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.1(%.loc8_34.2, %.loc8_37.2, %addr.loc8) // CHECK:STDOUT: %.loc8_38.2: init %C to %.loc8_38.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_21: type = splice_block %C.ref.loc8_21 [concrete = constants.%C] { @@ -1146,7 +1146,7 @@ fn F() { // CHECK:STDOUT: %.loc8_38.4: %C = acquire_value %.loc8_38.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_29: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -1160,7 +1160,7 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_34.2(%int_8.loc9) [concrete = constants.%int_8.980] // CHECK:STDOUT: %.loc9_34.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_8.980] // CHECK:STDOUT: %.loc9_34.2: %i32 = converted %int_8.loc9, %.loc9_34.1 [concrete = constants.%int_8.980] -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %.loc9_35.1 +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc9_34.2, %addr.loc9) // CHECK:STDOUT: %.loc9_35.2: init %C to %.loc9_35.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_21: type = splice_block %C.ref.loc9_21 [concrete = constants.%C] { @@ -1171,7 +1171,7 @@ fn F() { // CHECK:STDOUT: %.loc9_35.4: %C = acquire_value %.loc9_35.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.a00 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.479 = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_8.loc10: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -1187,7 +1187,7 @@ fn F() { // CHECK:STDOUT: %C.ref.loc10: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc10_28.3: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc10: %ptr.dbb = addr_of %.loc10_28.3 +// CHECK:STDOUT: %addr.loc10: %ptr.3a8 = addr_of %.loc10_28.3 // CHECK:STDOUT: %C__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%C__carbon_thunk.decl.5bf927.2(%.loc10_28.2, %addr.loc10) // CHECK:STDOUT: %.loc10_28.4: init %C to %.loc10_28.3 = mark_in_place_init %C__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_28.5: init %C = converted %.loc10_28.2, %.loc10_28.4 diff --git a/toolchain/check/testdata/interop/cpp/class/import/field.carbon b/toolchain/check/testdata/interop/cpp/class/import/field.carbon index add82adbf5b6..f833a6119cc0 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/field.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/field.carbon @@ -205,9 +205,9 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %tuple.type.84d: type = tuple_type (%i32, %i32, %i32, %i32, %i32) [concrete] -// CHECK:STDOUT: %Struct.elem.34b: type = unbound_element_type %Struct, %i32 [concrete] +// CHECK:STDOUT: %Struct.elem.fdc: type = unbound_element_type %Struct, %i32 [concrete] // CHECK:STDOUT: %ptr.143: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Struct.elem.c9f: type = unbound_element_type %Struct, %ptr.143 [concrete] +// CHECK:STDOUT: %Struct.elem.b4d: type = unbound_element_type %Struct, %ptr.143 [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %T.390: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Optional.Get.type.dbe: type = fn_type @Optional.Get, @Optional(%T.390) [symbolic] @@ -224,9 +224,9 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %OptionalStorage.impl_witness.477: = impl_witness imports.%OptionalStorage.impl_witness_table.b80, @ptr.as.OptionalStorage.impl(%i32) [concrete] // CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.143, (%OptionalStorage.impl_witness.477) [concrete] // CHECK:STDOUT: %Optional.efe: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Struct.elem.373: type = unbound_element_type %Struct, %Optional.efe [concrete] +// CHECK:STDOUT: %Struct.elem.686: type = unbound_element_type %Struct, %Optional.efe [concrete] // CHECK:STDOUT: %const.d48: type = const_type %ptr.143 [concrete] -// CHECK:STDOUT: %Struct.elem.169: type = unbound_element_type %Struct, %const.d48 [concrete] +// CHECK:STDOUT: %Struct.elem.ca7: type = unbound_element_type %Struct, %const.d48 [concrete] // CHECK:STDOUT: %Optional.Get.type.114: type = fn_type @Optional.Get, @Optional(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %Optional.Get.fdc: %Optional.Get.type.114 = struct_value () [concrete] // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.fdc, @Optional.Get(%OptionalStorage.facet) [concrete] @@ -257,20 +257,20 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: fn @F(%s.param: %Struct) -> out %return.param: %tuple.type.84d { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %s.ref.loc8_11: %Struct = name_ref s, %s -// CHECK:STDOUT: %a.ref: %Struct.elem.34b = name_ref a, @Struct.%.1 [concrete = @Struct.%.1] +// CHECK:STDOUT: %a.ref: %Struct.elem.fdc = name_ref a, @Struct.%.1 [concrete = @Struct.%.1] // CHECK:STDOUT: %.loc8_12.1: ref %i32 = class_element_access %s.ref.loc8_11, element0 // CHECK:STDOUT: %.loc8_12.2: %i32 = acquire_value %.loc8_12.1 // CHECK:STDOUT: %s.ref.loc8_16: %Struct = name_ref s, %s -// CHECK:STDOUT: %b.ref: %Struct.elem.34b = name_ref b, @Struct.%.2 [concrete = @Struct.%.2] +// CHECK:STDOUT: %b.ref: %Struct.elem.fdc = name_ref b, @Struct.%.2 [concrete = @Struct.%.2] // CHECK:STDOUT: %.loc8_17.1: ref %i32 = class_element_access %s.ref.loc8_16, element1 // CHECK:STDOUT: %.loc8_17.2: %i32 = acquire_value %.loc8_17.1 // CHECK:STDOUT: %s.ref.loc8_22: %Struct = name_ref s, %s -// CHECK:STDOUT: %p.ref: %Struct.elem.c9f = name_ref p, @Struct.%.3 [concrete = @Struct.%.3] +// CHECK:STDOUT: %p.ref: %Struct.elem.b4d = name_ref p, @Struct.%.3 [concrete = @Struct.%.3] // CHECK:STDOUT: %.loc8_23.1: ref %ptr.143 = class_element_access %s.ref.loc8_22, element2 // CHECK:STDOUT: %.loc8_23.2: %ptr.143 = acquire_value %.loc8_23.1 // CHECK:STDOUT: %.loc8_21.1: ref %i32 = deref %.loc8_23.2 // CHECK:STDOUT: %s.ref.loc8_28: %Struct = name_ref s, %s -// CHECK:STDOUT: %q.ref: %Struct.elem.373 = name_ref q, @Struct.%.5 [concrete = @Struct.%.5] +// CHECK:STDOUT: %q.ref: %Struct.elem.686 = name_ref q, @Struct.%.5 [concrete = @Struct.%.5] // CHECK:STDOUT: %.loc8_29.1: ref %Optional.efe = class_element_access %s.ref.loc8_28, element3 // CHECK:STDOUT: %.loc8_29.2: %Optional.efe = acquire_value %.loc8_29.1 // CHECK:STDOUT: %.loc8_31: %Optional.Get.type.114 = specific_constant imports.%Core.import_ref.2ae, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Get.fdc] @@ -283,7 +283,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %.loc8_36.2: %ptr.143 = converted %Optional.Get.call, %.loc8_36.1 // CHECK:STDOUT: %.loc8_27.1: ref %i32 = deref %.loc8_36.2 // CHECK:STDOUT: %s.ref.loc8_40: %Struct = name_ref s, %s -// CHECK:STDOUT: %r.ref: %Struct.elem.169 = name_ref r, @Struct.%.6 [concrete = @Struct.%.6] +// CHECK:STDOUT: %r.ref: %Struct.elem.ca7 = name_ref r, @Struct.%.6 [concrete = @Struct.%.6] // CHECK:STDOUT: %.loc8_41.1: ref %const.d48 = class_element_access %s.ref.loc8_40, element4 // CHECK:STDOUT: %.loc8_41.2: %const.d48 = acquire_value %.loc8_41.1 // CHECK:STDOUT: %.loc8_39.1: ref %i32 = deref %.loc8_41.2 @@ -338,9 +338,9 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Union.elem.674: type = unbound_element_type %Union, %i32 [concrete] +// CHECK:STDOUT: %Union.elem.e97: type = unbound_element_type %Union, %i32 [concrete] // CHECK:STDOUT: %ptr.143: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Union.elem.594: type = unbound_element_type %Union, %ptr.143 [concrete] +// CHECK:STDOUT: %Union.elem.6fd: type = unbound_element_type %Union, %ptr.143 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.b5d: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.c85: %Int.as.Copy.impl.Op.type.b5d = struct_value () [symbolic] @@ -361,7 +361,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: fn @F(%u.param: %Union) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %Union = name_ref u, %u -// CHECK:STDOUT: %a.ref: %Union.elem.674 = name_ref a, @Union.%.1 [concrete = @Union.%.1] +// CHECK:STDOUT: %a.ref: %Union.elem.e97 = name_ref a, @Union.%.1 [concrete = @Union.%.1] // CHECK:STDOUT: %.loc8_11.1: ref %i32 = class_element_access %u.ref, element0 // CHECK:STDOUT: %.loc8_11.2: %i32 = acquire_value %.loc8_11.1 // CHECK:STDOUT: %impl.elem0: %.98b = impl_witness_access constants.%Copy.impl_witness.ab4, element0 [concrete = constants.%Int.as.Copy.impl.Op.c4a] @@ -375,7 +375,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: fn @G(%u.param: %Union) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %Union = name_ref u, %u -// CHECK:STDOUT: %b.ref: %Union.elem.674 = name_ref b, @Union.%.2 [concrete = @Union.%.2] +// CHECK:STDOUT: %b.ref: %Union.elem.e97 = name_ref b, @Union.%.2 [concrete = @Union.%.2] // CHECK:STDOUT: %.loc14_11.1: ref %i32 = class_element_access %u.ref, element1 // CHECK:STDOUT: %.loc14_11.2: %i32 = acquire_value %.loc14_11.1 // CHECK:STDOUT: %impl.elem0: %.98b = impl_witness_access constants.%Copy.impl_witness.ab4, element0 [concrete = constants.%Int.as.Copy.impl.Op.c4a] @@ -389,7 +389,7 @@ fn Test(m: Cpp.UnsupportedMembers*) { // CHECK:STDOUT: fn @H(%u.param: %Union) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %u.ref: %Union = name_ref u, %u -// CHECK:STDOUT: %p.ref: %Union.elem.594 = name_ref p, @Union.%.3 [concrete = @Union.%.3] +// CHECK:STDOUT: %p.ref: %Union.elem.6fd = name_ref p, @Union.%.3 [concrete = @Union.%.3] // CHECK:STDOUT: %.loc20_12.1: ref %ptr.143 = class_element_access %u.ref, element2 // CHECK:STDOUT: %.loc20_12.2: %ptr.143 = acquire_value %.loc20_12.1 // CHECK:STDOUT: %.loc20_10.1: ref %i32 = deref %.loc20_12.2 diff --git a/toolchain/check/testdata/interop/cpp/class/import/method.carbon b/toolchain/check/testdata/interop/cpp/class/import/method.carbon index 25100b93fb46..15ebc99265db 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/method.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/method.carbon @@ -273,7 +273,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.749: type = ptr_type %HasQualifiers [concrete] +// CHECK:STDOUT: %ptr.3f7: type = ptr_type %HasQualifiers [concrete] // CHECK:STDOUT: %HasQualifiers.const_this.cpp_overload_set.type: type = cpp_overload_set_type @HasQualifiers.const_this.cpp_overload_set [concrete] // CHECK:STDOUT: %HasQualifiers.const_this.cpp_overload_set.value: %HasQualifiers.const_this.cpp_overload_set.type = cpp_overload_set_value @HasQualifiers.const_this.cpp_overload_set [concrete] // CHECK:STDOUT: %const_this__carbon_thunk.type: type = fn_type @const_this__carbon_thunk [concrete] @@ -303,16 +303,16 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %HasQualifiers.HasQualifiers.type: type = fn_type @HasQualifiers.HasQualifiers [concrete] // CHECK:STDOUT: %HasQualifiers.HasQualifiers: %HasQualifiers.HasQualifiers.type = struct_value () [concrete] -// CHECK:STDOUT: %const.5f9: type = const_type %HasQualifiers [concrete] -// CHECK:STDOUT: %ptr.07f: type = ptr_type %const.5f9 [concrete] +// CHECK:STDOUT: %const.0c0: type = const_type %HasQualifiers [concrete] +// CHECK:STDOUT: %ptr.aa5: type = ptr_type %const.0c0 [concrete] // CHECK:STDOUT: %HasQualifiers__carbon_thunk.type: type = fn_type @HasQualifiers__carbon_thunk [concrete] // CHECK:STDOUT: %HasQualifiers__carbon_thunk: %HasQualifiers__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %HasQualifiers.Op.type.43d658.1: type = fn_type @HasQualifiers.Op.1 [concrete] // CHECK:STDOUT: %HasQualifiers.Op.cc70d5.1: %HasQualifiers.Op.type.43d658.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.b8d: = custom_witness (%HasQualifiers.Op.cc70d5.1), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.041: %Copy.type = facet_value %HasQualifiers, (%custom_witness.b8d) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.1e0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.041) [concrete] -// CHECK:STDOUT: %.12f8: type = fn_type_with_self_type %Copy.WithSelf.Op.type.1e0, %Copy.facet.041 [concrete] +// CHECK:STDOUT: %Copy.facet.5ba: %Copy.type = facet_value %HasQualifiers, (%custom_witness.b8d) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.9ed: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.5ba) [concrete] +// CHECK:STDOUT: %.c31: type = fn_type_with_self_type %Copy.WithSelf.Op.type.9ed, %Copy.facet.5ba [concrete] // CHECK:STDOUT: %HasQualifiers.cpp_destructor.type: type = fn_type @HasQualifiers.cpp_destructor [concrete] // CHECK:STDOUT: %HasQualifiers.cpp_destructor: %HasQualifiers.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %HasQualifiers.Op.type.43d658.2: type = fn_type @HasQualifiers.Op.2 [concrete] @@ -378,7 +378,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%v.param: %HasQualifiers, %p.param: %ptr.749) { +// CHECK:STDOUT: fn @F(%v.param: %HasQualifiers, %p.param: %ptr.3f7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %v.ref.loc10: %HasQualifiers = name_ref v, %v // CHECK:STDOUT: %const_this.ref.loc10: %HasQualifiers.const_this.cpp_overload_set.type = name_ref const_this, imports.%HasQualifiers.const_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_this.cpp_overload_set.value] @@ -392,23 +392,23 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %const_ref_ref_this.ref.loc12: %HasQualifiers.const_ref_ref_this.cpp_overload_set.type = name_ref const_ref_ref_this, imports.%HasQualifiers.const_ref_ref_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_ref_ref_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc12: = bound_method %v.ref.loc12, %const_ref_ref_this.ref.loc12 // CHECK:STDOUT: %const_ref_ref_this__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%const_ref_ref_this__carbon_thunk.decl(%v.ref.loc12) -// CHECK:STDOUT: %p.ref.loc14: %ptr.749 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc14: %ptr.3f7 = name_ref p, %p // CHECK:STDOUT: %.loc14: ref %HasQualifiers = deref %p.ref.loc14 // CHECK:STDOUT: %plain.ref.loc14: %HasQualifiers.plain.cpp_overload_set.type = name_ref plain, imports.%HasQualifiers.plain.cpp_overload_set.value [concrete = constants.%HasQualifiers.plain.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14, %plain.ref.loc14 // CHECK:STDOUT: %HasQualifiers.plain.call.loc14: init %empty_tuple.type = call imports.%HasQualifiers.plain.decl.3a93fc.1(%.loc14) -// CHECK:STDOUT: %p.ref.loc15: %ptr.749 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc15: %ptr.3f7 = name_ref p, %p // CHECK:STDOUT: %.loc15: ref %HasQualifiers = deref %p.ref.loc15 // CHECK:STDOUT: %ref_this.ref: %HasQualifiers.ref_this.cpp_overload_set.type = name_ref ref_this, imports.%HasQualifiers.ref_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.ref_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15, %ref_this.ref // CHECK:STDOUT: %HasQualifiers.ref_this.call: init %empty_tuple.type = call imports.%HasQualifiers.ref_this.decl(%.loc15) -// CHECK:STDOUT: %p.ref.loc16: %ptr.749 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc16: %ptr.3f7 = name_ref p, %p // CHECK:STDOUT: %.loc16_4.1: ref %HasQualifiers = deref %p.ref.loc16 // CHECK:STDOUT: %const_this.ref.loc16: %HasQualifiers.const_this.cpp_overload_set.type = name_ref const_this, imports.%HasQualifiers.const_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_4.1, %const_this.ref.loc16 // CHECK:STDOUT: %.loc16_4.2: %HasQualifiers = acquire_value %.loc16_4.1 // CHECK:STDOUT: %const_this__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%const_this__carbon_thunk.decl(%.loc16_4.2) -// CHECK:STDOUT: %p.ref.loc17: %ptr.749 = name_ref p, %p +// CHECK:STDOUT: %p.ref.loc17: %ptr.3f7 = name_ref p, %p // CHECK:STDOUT: %.loc17_4.1: ref %HasQualifiers = deref %p.ref.loc17 // CHECK:STDOUT: %const_ref_this.ref.loc17: %HasQualifiers.const_ref_this.cpp_overload_set.type = name_ref const_ref_this, imports.%HasQualifiers.const_ref_this.cpp_overload_set.value [concrete = constants.%HasQualifiers.const_ref_this.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc17: = bound_method %.loc17_4.1, %const_ref_this.ref.loc17 @@ -446,16 +446,16 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %bound_method.loc22_9: = bound_method %.loc22_8.2, %ref_ref_this.ref // CHECK:STDOUT: %.loc22_8.3: %HasQualifiers = acquire_value %.loc22_8.2 // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0.loc22: %.12f8 = impl_witness_access constants.%custom_witness.b8d, element0 [concrete = constants.%HasQualifiers.Op.cc70d5.1] +// CHECK:STDOUT: %impl.elem0.loc22: %.c31 = impl_witness_access constants.%custom_witness.b8d, element0 [concrete = constants.%HasQualifiers.Op.cc70d5.1] // CHECK:STDOUT: %bound_method.loc22_8: = bound_method %.loc22_8.3, %impl.elem0.loc22 // CHECK:STDOUT: %.loc22_8.4: ref %HasQualifiers = temporary_storage // CHECK:STDOUT: %Op.ref.loc22_8.1: %HasQualifiers.HasQualifiers.type = name_ref Op, imports.%HasQualifiers.HasQualifiers.decl [concrete = constants.%HasQualifiers.HasQualifiers] // CHECK:STDOUT: // CHECK:STDOUT: %.loc22_8.5: ref %HasQualifiers = value_as_ref %.loc22_8.3 -// CHECK:STDOUT: %addr.loc22_8.1: %ptr.749 = addr_of %.loc22_8.5 -// CHECK:STDOUT: %.loc22_8.6: %ptr.07f = as_compatible %addr.loc22_8.1 -// CHECK:STDOUT: %.loc22_8.7: %ptr.07f = converted %addr.loc22_8.1, %.loc22_8.6 -// CHECK:STDOUT: %addr.loc22_8.2: %ptr.749 = addr_of %self.var +// CHECK:STDOUT: %addr.loc22_8.1: %ptr.3f7 = addr_of %.loc22_8.5 +// CHECK:STDOUT: %.loc22_8.6: %ptr.aa5 = as_compatible %addr.loc22_8.1 +// CHECK:STDOUT: %.loc22_8.7: %ptr.aa5 = converted %addr.loc22_8.1, %.loc22_8.6 +// CHECK:STDOUT: %addr.loc22_8.2: %ptr.3f7 = addr_of %self.var // CHECK:STDOUT: %HasQualifiers__carbon_thunk.call: init %empty_tuple.type = call imports.%HasQualifiers__carbon_thunk.decl(%.loc22_8.7, %addr.loc22_8.2) // CHECK:STDOUT: %.loc22_8.8: init %HasQualifiers to %self.var = mark_in_place_init %HasQualifiers__carbon_thunk.call // CHECK:STDOUT: @@ -497,7 +497,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NoRefQualifier: type = class_type @NoRefQualifier [concrete] -// CHECK:STDOUT: %ptr.3e3: type = ptr_type %NoRefQualifier [concrete] +// CHECK:STDOUT: %ptr.909: type = ptr_type %NoRefQualifier [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -516,7 +516,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.3: type = fn_type @Destroy.Op.loc8_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.3: %Destroy.Op.type.af7ec0.3 = struct_value () [concrete] // CHECK:STDOUT: %WithRefQualifier: type = class_type @WithRefQualifier [concrete] -// CHECK:STDOUT: %ptr.934: type = ptr_type %WithRefQualifier [concrete] +// CHECK:STDOUT: %ptr.c4e: type = ptr_type %WithRefQualifier [concrete] // CHECK:STDOUT: %WithRefQualifier.F.cpp_overload_set.type: type = cpp_overload_set_type @WithRefQualifier.F.cpp_overload_set [concrete] // CHECK:STDOUT: %WithRefQualifier.F.cpp_overload_set.value: %WithRefQualifier.F.cpp_overload_set.type = cpp_overload_set_value @WithRefQualifier.F.cpp_overload_set [concrete] // CHECK:STDOUT: %F__carbon_thunk.type.715f07.2: type = fn_type @F__carbon_thunk.2 [concrete] @@ -550,7 +550,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallFNoRefQualifier(%v.param: %NoRefQualifier, %p.param: %ptr.3e3) { +// CHECK:STDOUT: fn @CallFNoRefQualifier(%v.param: %NoRefQualifier, %p.param: %ptr.909) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.c6b = ref_binding_pattern a [concrete] @@ -569,7 +569,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %b.var_patt: %pattern_type.663 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %ptr.143 = var %b.var_patt -// CHECK:STDOUT: %p.ref: %ptr.3e3 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.909 = name_ref p, %p // CHECK:STDOUT: %.loc9_25: ref %NoRefQualifier = deref %p.ref // CHECK:STDOUT: %F.ref.loc9: %NoRefQualifier.F.cpp_overload_set.type = name_ref F, imports.%NoRefQualifier.F.cpp_overload_set.value [concrete = constants.%NoRefQualifier.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_25, %F.ref.loc9 @@ -596,7 +596,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @CallFWithRefQualifier(%v.param: %WithRefQualifier, %p.param: %ptr.934) { +// CHECK:STDOUT: fn @CallFWithRefQualifier(%v.param: %WithRefQualifier, %p.param: %ptr.c4e) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type.c6b = ref_binding_pattern a [concrete] @@ -615,7 +615,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %b.var_patt: %pattern_type.663 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %ptr.143 = var %b.var_patt -// CHECK:STDOUT: %p.ref: %ptr.934 = name_ref p, %p +// CHECK:STDOUT: %p.ref: %ptr.c4e = name_ref p, %p // CHECK:STDOUT: %.loc16_25: ref %WithRefQualifier = deref %p.ref // CHECK:STDOUT: %F.ref.loc16: %WithRefQualifier.F.cpp_overload_set.type = name_ref F, imports.%WithRefQualifier.F.cpp_overload_set.value [concrete = constants.%WithRefQualifier.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_25, %F.ref.loc16 @@ -643,7 +643,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Another: type = class_type @Another [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.F.cpp_overload_set [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.value: %ExplicitObjectParam.F.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3d0: type = ptr_type %ExplicitObjectParam [concrete] +// CHECK:STDOUT: %ptr.3e0: type = ptr_type %ExplicitObjectParam [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: %ExplicitObjectParam.G.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.G.cpp_overload_set [concrete] @@ -652,7 +652,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %G__carbon_thunk: %G__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitObjectParam.H.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.H.cpp_overload_set [concrete] // CHECK:STDOUT: %ExplicitObjectParam.H.cpp_overload_set.value: %ExplicitObjectParam.H.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.H.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.99e: type = ptr_type %Another [concrete] +// CHECK:STDOUT: %ptr.368: type = ptr_type %Another [concrete] // CHECK:STDOUT: %H__carbon_thunk.type: type = fn_type @H__carbon_thunk [concrete] // CHECK:STDOUT: %H__carbon_thunk: %H__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -691,7 +691,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %F.ref: %ExplicitObjectParam.F.cpp_overload_set.type = name_ref F, imports.%ExplicitObjectParam.F.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc8: = bound_method %e.ref, %F.ref // CHECK:STDOUT: %.loc8: ref %ExplicitObjectParam = value_as_ref %e.ref -// CHECK:STDOUT: %addr.loc8: %ptr.3d0 = addr_of %.loc8 +// CHECK:STDOUT: %addr.loc8: %ptr.3e0 = addr_of %.loc8 // CHECK:STDOUT: %F__carbon_thunk.call: init %empty_tuple.type = call imports.%F__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -705,7 +705,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %H.ref: %ExplicitObjectParam.H.cpp_overload_set.type = name_ref H, imports.%ExplicitObjectParam.H.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.H.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref, %H.ref // CHECK:STDOUT: %.loc10: ref %Another = value_as_ref %a.ref -// CHECK:STDOUT: %addr.loc10: %ptr.99e = addr_of %.loc10 +// CHECK:STDOUT: %addr.loc10: %ptr.368 = addr_of %.loc10 // CHECK:STDOUT: %H__carbon_thunk.call: init %empty_tuple.type = call imports.%H__carbon_thunk.decl(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -720,12 +720,12 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %Another: type = class_type @Another [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.type: type = cpp_overload_set_type @ExplicitObjectParam.F.cpp_overload_set [concrete] // CHECK:STDOUT: %ExplicitObjectParam.F.cpp_overload_set.value: %ExplicitObjectParam.F.cpp_overload_set.type = cpp_overload_set_value @ExplicitObjectParam.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.3d0: type = ptr_type %ExplicitObjectParam [concrete] +// CHECK:STDOUT: %ptr.3e0: type = ptr_type %ExplicitObjectParam [concrete] // CHECK:STDOUT: %F__carbon_thunk.type.715f07.1: type = fn_type @F__carbon_thunk.1 [concrete] // CHECK:STDOUT: %F__carbon_thunk.a50b67.1: %F__carbon_thunk.type.715f07.1 = struct_value () [concrete] // CHECK:STDOUT: %F__carbon_thunk.type.715f07.2: type = fn_type @F__carbon_thunk.2 [concrete] // CHECK:STDOUT: %F__carbon_thunk.a50b67.2: %F__carbon_thunk.type.715f07.2 = struct_value () [concrete] -// CHECK:STDOUT: %ptr.99e: type = ptr_type %Another [concrete] +// CHECK:STDOUT: %ptr.368: type = ptr_type %Another [concrete] // CHECK:STDOUT: %F__carbon_thunk.type.715f07.3: type = fn_type @F__carbon_thunk.3 [concrete] // CHECK:STDOUT: %F__carbon_thunk.a50b67.3: %F__carbon_thunk.type.715f07.3 = struct_value () [concrete] // CHECK:STDOUT: } @@ -762,7 +762,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %F.ref.loc8: %ExplicitObjectParam.F.cpp_overload_set.type = name_ref F, imports.%ExplicitObjectParam.F.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc8: = bound_method %e.ref, %F.ref.loc8 // CHECK:STDOUT: %.loc8: ref %ExplicitObjectParam = value_as_ref %e.ref -// CHECK:STDOUT: %addr.loc8: %ptr.3d0 = addr_of %.loc8 +// CHECK:STDOUT: %addr.loc8: %ptr.3e0 = addr_of %.loc8 // CHECK:STDOUT: %F__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.aca65c.1(%addr.loc8) // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -776,7 +776,7 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %F.ref.loc10: %ExplicitObjectParam.F.cpp_overload_set.type = name_ref F, imports.%ExplicitObjectParam.F.cpp_overload_set.value [concrete = constants.%ExplicitObjectParam.F.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc10: = bound_method %a.ref, %F.ref.loc10 // CHECK:STDOUT: %.loc10: ref %Another = value_as_ref %a.ref -// CHECK:STDOUT: %addr.loc10: %ptr.99e = addr_of %.loc10 +// CHECK:STDOUT: %addr.loc10: %ptr.368 = addr_of %.loc10 // CHECK:STDOUT: %F__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.aca65c.3(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/class/import/template.carbon b/toolchain/check/testdata/interop/cpp/class/import/template.carbon index 69456a6f03e8..ddc4338db4c6 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/template.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/template.carbon @@ -101,13 +101,13 @@ fn F() { // CHECK:STDOUT: --- use_class_template.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %A.2a27cf.1: type = class_type @A.1 [concrete] +// CHECK:STDOUT: %A.971: type = class_type @A.1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Base: type = class_type @Base [concrete] -// CHECK:STDOUT: %A.elem.96c: type = unbound_element_type %A.2a27cf.1, %i32 [concrete] +// CHECK:STDOUT: %A.elem.574: type = unbound_element_type %A.971, %i32 [concrete] // CHECK:STDOUT: %A.f.cpp_overload_set.type: type = cpp_overload_set_type @A.f.cpp_overload_set [concrete] // CHECK:STDOUT: %A.f.cpp_overload_set.value: %A.f.cpp_overload_set.type = cpp_overload_set_value @A.f.cpp_overload_set [concrete] // CHECK:STDOUT: %f__carbon_thunk.type: type = fn_type @f__carbon_thunk [concrete] @@ -125,16 +125,16 @@ fn F() { // CHECK:STDOUT: %Copy.WithSelf.Op.type.afe: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.66a) [concrete] // CHECK:STDOUT: %.a5f: type = fn_type_with_self_type %Copy.WithSelf.Op.type.afe, %Copy.facet.66a [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.c4a, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %A.2a27cf.2: type = class_type @A.2 [concrete] -// CHECK:STDOUT: %ptr.bce: type = ptr_type %A.2a27cf.2 [concrete] -// CHECK:STDOUT: %ptr.bd6: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %Copy.impl_witness.068: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.867: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.e2b: %ptr.as.Copy.impl.Op.type.867 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.f15: %Copy.type = facet_value %ptr.bd6, (%Copy.impl_witness.068) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.f5f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.f15) [concrete] -// CHECK:STDOUT: %.312: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f5f, %Copy.facet.f15 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.e2b, @ptr.as.Copy.impl.Op(%Base) [concrete] +// CHECK:STDOUT: %A.a10: type = class_type @A.2 [concrete] +// CHECK:STDOUT: %ptr.636: type = ptr_type %A.a10 [concrete] +// CHECK:STDOUT: %ptr.eb6: type = ptr_type %Base [concrete] +// CHECK:STDOUT: %Copy.impl_witness.826: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.097: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.235: %ptr.as.Copy.impl.Op.type.097 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.1e8: %Copy.type = facet_value %ptr.eb6, (%Copy.impl_witness.826) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.402: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.1e8) [concrete] +// CHECK:STDOUT: %.97e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.402, %Copy.facet.1e8 [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.235, @ptr.as.Copy.impl.Op(%Base) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -150,14 +150,14 @@ fn F() { // CHECK:STDOUT: %Copy.impl_witness_table.760 = impl_witness_table (%Core.import_ref.13c), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%x.param: %A.2a27cf.1) -> out %return.param: %i32 { +// CHECK:STDOUT: fn @F(%x.param: %A.971) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref.loc9: %A.2a27cf.1 = name_ref x, %x +// CHECK:STDOUT: %x.ref.loc9: %A.971 = name_ref x, %x // CHECK:STDOUT: %f.ref: %A.f.cpp_overload_set.type = name_ref f, imports.%A.f.cpp_overload_set.value [concrete = constants.%A.f.cpp_overload_set.value] // CHECK:STDOUT: %bound_method.loc9: = bound_method %x.ref.loc9, %f.ref // CHECK:STDOUT: %f__carbon_thunk.call: init %empty_tuple.type = call imports.%f__carbon_thunk.decl(%x.ref.loc9) -// CHECK:STDOUT: %x.ref.loc10: %A.2a27cf.1 = name_ref x, %x -// CHECK:STDOUT: %n.ref: %A.elem.96c = name_ref n, @A.1.%.2 [concrete = @A.1.%.2] +// CHECK:STDOUT: %x.ref.loc10: %A.971 = name_ref x, %x +// CHECK:STDOUT: %n.ref: %A.elem.574 = name_ref n, @A.1.%.2 [concrete = @A.1.%.2] // CHECK:STDOUT: %.loc10_11.1: ref %i32 = class_element_access %x.ref.loc10, element1 // CHECK:STDOUT: %.loc10_11.2: %i32 = acquire_value %.loc10_11.1 // CHECK:STDOUT: %impl.elem0: %.a5f = impl_witness_access constants.%Copy.impl_witness.32d, element0 [concrete = constants.%Int.as.Copy.impl.Op.c4a] @@ -168,25 +168,25 @@ fn F() { // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%p.param: %ptr.bce) -> out %return.param: %ptr.bd6 { +// CHECK:STDOUT: fn @G(%p.param: %ptr.636) -> out %return.param: %ptr.eb6 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.bce = name_ref p, %p -// CHECK:STDOUT: %.loc17_11.1: ref %A.2a27cf.2 = deref %p.ref +// CHECK:STDOUT: %p.ref: %ptr.636 = name_ref p, %p +// CHECK:STDOUT: %.loc17_11.1: ref %A.a10 = deref %p.ref // CHECK:STDOUT: %.loc17_11.2: ref %Base = class_element_access %.loc17_11.1, element0 -// CHECK:STDOUT: %addr: %ptr.bd6 = addr_of %.loc17_11.2 -// CHECK:STDOUT: %.loc17_11.3: %ptr.bd6 = converted %p.ref, %addr -// CHECK:STDOUT: %impl.elem0: %.312 = impl_witness_access constants.%Copy.impl_witness.068, element0 [concrete = constants.%ptr.as.Copy.impl.Op.e2b] +// CHECK:STDOUT: %addr: %ptr.eb6 = addr_of %.loc17_11.2 +// CHECK:STDOUT: %.loc17_11.3: %ptr.eb6 = converted %p.ref, %addr +// CHECK:STDOUT: %impl.elem0: %.97e = impl_witness_access constants.%Copy.impl_witness.826, element0 [concrete = constants.%ptr.as.Copy.impl.Op.235] // CHECK:STDOUT: %bound_method.loc17_11.1: = bound_method %.loc17_11.3, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Base) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_11.2: = bound_method %.loc17_11.3, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.bd6 = call %bound_method.loc17_11.2(%.loc17_11.3) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.eb6 = call %bound_method.loc17_11.2(%.loc17_11.3) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_use_instantiation_error.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %X.4d5205.1: type = class_type @X.1 [concrete] +// CHECK:STDOUT: %X.548: type = class_type @X.1 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.c6b: type = pattern_type %i32 [concrete] @@ -205,19 +205,19 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e6b, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.155: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %X.4d5205.2: type = class_type @X.2 [concrete] +// CHECK:STDOUT: %X.1cb: type = class_type @X.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .XY = %X.decl.195a4c.1 -// CHECK:STDOUT: .Xint = %X.decl.195a4c.2 +// CHECK:STDOUT: .XY = %X.decl.138 +// CHECK:STDOUT: .Xint = %X.decl.0ee // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %X.decl.195a4c.1: type = class_decl @X.1 [concrete = constants.%X.4d5205.1] {} {} +// CHECK:STDOUT: %X.decl.138: type = class_decl @X.1 [concrete = constants.%X.548] {} {} // CHECK:STDOUT: %Core.import_ref.dd3: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.766) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.ec3)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.1a5 = impl_witness_table (%Core.import_ref.dd3), @Core.IntLiteral.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %X.decl.195a4c.2: type = class_decl @X.2 [concrete = constants.%X.4d5205.2] {} {} +// CHECK:STDOUT: %X.decl.0ee: type = class_decl @X.2 [concrete = constants.%X.1cb] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -228,7 +228,7 @@ fn F() { // CHECK:STDOUT: %x.var: ref %i32 = var %x.var_patt [concrete] // CHECK:STDOUT: %.loc7: type = splice_block %type.ref.loc7 [concrete = constants.%i32] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %XY.ref: type = name_ref XY, imports.%X.decl.195a4c.1 [concrete = constants.%X.4d5205.1] +// CHECK:STDOUT: %XY.ref: type = name_ref XY, imports.%X.decl.138 [concrete = constants.%X.548] // CHECK:STDOUT: // CHECK:STDOUT: %type.ref.loc7: type = name_ref r#type, %i32.4 [concrete = constants.%i32] // CHECK:STDOUT: } @@ -240,7 +240,7 @@ fn F() { // CHECK:STDOUT: %y.var: ref %i32 = var %y.var_patt [concrete] // CHECK:STDOUT: %.loc21: type = splice_block %type.ref.loc21 [concrete = constants.%i32] { // CHECK:STDOUT: %Cpp.ref.loc21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Xint.ref: type = name_ref Xint, imports.%X.decl.195a4c.2 [concrete = constants.%X.4d5205.2] +// CHECK:STDOUT: %Xint.ref: type = name_ref Xint, imports.%X.decl.0ee [concrete = constants.%X.1cb] // CHECK:STDOUT: // CHECK:STDOUT: %type.ref.loc21: type = name_ref r#type, %i32.2 [concrete = constants.%i32] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/class/import/union.carbon b/toolchain/check/testdata/interop/cpp/class/import/union.carbon index f38a03662d56..edc88c303efb 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/union.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/union.carbon @@ -312,8 +312,8 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.00b: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.00b [concrete] +// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -324,7 +324,7 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: %Bar.decl: type = class_decl @Bar [concrete = constants.%Bar] {} {} // CHECK:STDOUT: %foo.patt: %pattern_type = ref_binding_pattern foo [concrete] // CHECK:STDOUT: %foo.var_patt: %pattern_type = var_pattern %foo.patt [concrete] -// CHECK:STDOUT: %foo.var: ref %ptr.00b = var %foo.var_patt [concrete] +// CHECK:STDOUT: %foo.var: ref %ptr.4d6 = var %foo.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @MyF() { @@ -334,14 +334,14 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_33: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %foo.ref: ref %ptr.00b = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] -// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.00b] { +// CHECK:STDOUT: %foo.ref: ref %ptr.4d6 = name_ref foo, imports.%foo.var [concrete = imports.%foo.var] +// CHECK:STDOUT: %.loc8_26: type = splice_block %ptr [concrete = constants.%ptr.4d6] { // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8_22: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.00b] +// CHECK:STDOUT: %ptr: type = ptr_type %Bar.ref.loc8_22 [concrete = constants.%ptr.4d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37: %ptr.00b = acquire_value %foo.ref -// CHECK:STDOUT: %bar: %ptr.00b = value_binding bar, %.loc8_37 +// CHECK:STDOUT: %.loc8_37: %ptr.4d6 = acquire_value %foo.ref +// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %.loc8_37 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -349,11 +349,11 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Bar: type = class_type @Bar [concrete] -// CHECK:STDOUT: %ptr.00b: type = ptr_type %Bar [concrete] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.00b [concrete] +// CHECK:STDOUT: %ptr.4d6: type = ptr_type %Bar [concrete] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.4d6 [concrete] // CHECK:STDOUT: %MyF.type: type = fn_type @MyF [concrete] // CHECK:STDOUT: %MyF: %MyF.type = struct_value () [concrete] -// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.00b [concrete] +// CHECK:STDOUT: %Bar.elem: type = unbound_element_type %Bar, %ptr.4d6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -369,32 +369,32 @@ fn MyF(bar: Cpp.Bar(Cpp.X)*); // CHECK:STDOUT: %bar.param_patt: %pattern_type = value_param_pattern [concrete] // CHECK:STDOUT: %bar.patt: %pattern_type = at_binding_pattern bar, %bar.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %bar.param: %ptr.00b = value_param call_param0 -// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.00b] { +// CHECK:STDOUT: %bar.param: %ptr.4d6 = value_param call_param0 +// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.4d6] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc7: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.00b] +// CHECK:STDOUT: %ptr.loc7: type = ptr_type %Bar.ref.loc7 [concrete = constants.%ptr.4d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar: %ptr.00b = value_binding bar, %bar.param +// CHECK:STDOUT: %bar: %ptr.4d6 = value_binding bar, %bar.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.00b) { +// CHECK:STDOUT: fn @MyF(%bar.param: %ptr.4d6) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %foo_bar.patt: %pattern_type = value_binding_pattern foo_bar [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %bar.ref: %ptr.00b = name_ref bar, %bar +// CHECK:STDOUT: %bar.ref: %ptr.4d6 = name_ref bar, %bar // CHECK:STDOUT: %.loc8_37.1: ref %Bar = deref %bar.ref // CHECK:STDOUT: %foo.ref: %Bar.elem = name_ref foo, @Bar.%.1 [concrete = @Bar.%.1] -// CHECK:STDOUT: %.loc8_37.2: ref %ptr.00b = class_element_access %.loc8_37.1, element0 -// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.00b] { +// CHECK:STDOUT: %.loc8_37.2: ref %ptr.4d6 = class_element_access %.loc8_37.1, element0 +// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.4d6] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Bar.ref.loc8: type = name_ref Bar, imports.%Bar.decl [concrete = constants.%Bar] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.00b] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %Bar.ref.loc8 [concrete = constants.%ptr.4d6] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37.3: %ptr.00b = acquire_value %.loc8_37.2 -// CHECK:STDOUT: %foo_bar: %ptr.00b = value_binding foo_bar, %.loc8_37.3 +// CHECK:STDOUT: %.loc8_37.3: %ptr.4d6 = acquire_value %.loc8_37.2 +// CHECK:STDOUT: %foo_bar: %ptr.4d6 = value_binding foo_bar, %.loc8_37.3 // CHECK:STDOUT: return // 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 de7c3005cd56..4c70ce10550d 100644 --- a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon @@ -45,20 +45,20 @@ fn G() { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.cpp_overload_set.type: type = cpp_overload_set_type @F.cpp_overload_set [concrete] // CHECK:STDOUT: %F.cpp_overload_set.value: %F.cpp_overload_set.type = cpp_overload_set_value @F.cpp_overload_set [concrete] -// CHECK:STDOUT: %.dcc: type = class_type @.1 [concrete] -// CHECK:STDOUT: %int_1.0f6: %.dcc = int_value 1 [concrete] +// CHECK:STDOUT: %.730: type = class_type @.1 [concrete] +// CHECK:STDOUT: %int_1.94f: %.730 = int_value 1 [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %C.F.cpp_overload_set.type: type = cpp_overload_set_type @C.F.cpp_overload_set [concrete] // CHECK:STDOUT: %C.F.cpp_overload_set.value: %C.F.cpp_overload_set.type = cpp_overload_set_value @C.F.cpp_overload_set [concrete] -// CHECK:STDOUT: %.fd8: type = class_type @.2 [concrete] -// CHECK:STDOUT: %int_1.ea9: %.fd8 = int_value 1 [concrete] +// CHECK:STDOUT: %.149: type = class_type @.2 [concrete] +// CHECK:STDOUT: %int_1.9c2: %.149 = int_value 1 [concrete] // CHECK:STDOUT: %C.F.type: type = fn_type @C.F [concrete] // CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -68,12 +68,12 @@ fn G() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .F = %F.cpp_overload_set.value -// CHECK:STDOUT: .b = %int_1.0f6 +// CHECK:STDOUT: .b = %int_1.94f // CHECK:STDOUT: .C = %C.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %F.cpp_overload_set.value: %F.cpp_overload_set.type = cpp_overload_set_value @F.cpp_overload_set [concrete = constants.%F.cpp_overload_set.value] -// CHECK:STDOUT: %int_1.0f6: %.dcc = int_value 1 [concrete = constants.%int_1.0f6] +// CHECK:STDOUT: %int_1.94f: %.730 = int_value 1 [concrete = constants.%int_1.94f] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -87,7 +87,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %C.F.cpp_overload_set.value: %C.F.cpp_overload_set.type = cpp_overload_set_value @C.F.cpp_overload_set [concrete = constants.%C.F.cpp_overload_set.value] -// CHECK:STDOUT: %int_1.ea9: %.fd8 = int_value 1 [concrete = constants.%int_1.ea9] +// CHECK:STDOUT: %int_1.9c2: %.149 = int_value 1 [concrete = constants.%int_1.9c2] // CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -104,13 +104,13 @@ fn G() { // CHECK:STDOUT: %Cpp.ref.loc8_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %F.ref.loc8: %F.cpp_overload_set.type = name_ref F, imports.%F.cpp_overload_set.value [concrete = constants.%F.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc8_9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %b.ref: %.dcc = name_ref b, imports.%int_1.0f6 [concrete = constants.%int_1.0f6] +// CHECK:STDOUT: %b.ref: %.730 = name_ref b, imports.%int_1.94f [concrete = constants.%int_1.94f] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call imports.%F.decl(%b.ref) // CHECK:STDOUT: %Cpp.ref.loc10_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10_6: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc10_8: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc10_11.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc10_11.1 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc10_11.1 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc10_11.2: init %C to %.loc10_11.1 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: %.loc10_11.3: ref %C = temporary %.loc10_11.1, %.loc10_11.2 @@ -118,7 +118,7 @@ fn G() { // CHECK:STDOUT: %bound_method: = bound_method %.loc10_11.3, %F.ref.loc10 // CHECK:STDOUT: %Cpp.ref.loc10_15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc10_18: type = name_ref C, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %e.ref: %.fd8 = name_ref e, imports.%int_1.ea9 [concrete = constants.%int_1.ea9] +// CHECK:STDOUT: %e.ref: %.149 = name_ref e, imports.%int_1.9c2 [concrete = constants.%int_1.9c2] // CHECK:STDOUT: %.loc10_11.4: %C = acquire_value %.loc10_11.3 // CHECK:STDOUT: %C.F.call: init %empty_tuple.type = call imports.%C.F.decl(%.loc10_11.4, %e.ref) // CHECK:STDOUT: %C.cpp_destructor.bound: = bound_method %.loc10_11.3, constants.%C.cpp_destructor diff --git a/toolchain/check/testdata/interop/cpp/enum/convert.carbon b/toolchain/check/testdata/interop/cpp/enum/convert.carbon index 19f94379d144..a626a90d814d 100644 --- a/toolchain/check/testdata/interop/cpp/enum/convert.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/convert.carbon @@ -94,9 +94,9 @@ fn F() { // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %pattern_type.0cb: type = pattern_type %i16 [concrete] // CHECK:STDOUT: %Enum: type = class_type @Enum [concrete] -// CHECK:STDOUT: %int_0.779: %Enum = int_value 0 [concrete] +// CHECK:STDOUT: %int_0.167: %Enum = int_value 0 [concrete] // CHECK:STDOUT: %int_0.713: %i16 = int_value 0 [concrete] -// CHECK:STDOUT: %pattern_type.9f7: type = pattern_type %Enum [concrete] +// CHECK:STDOUT: %pattern_type.361: type = pattern_type %Enum [concrete] // CHECK:STDOUT: %int_42.20e: Core.IntLiteral = int_value 42 [concrete] // CHECK:STDOUT: %As.type.457: type = facet_type <@As, @As(%i16)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] @@ -112,10 +112,10 @@ fn F() { // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.As.impl.Convert.036, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_42.50d: %i16 = int_value 42 [concrete] -// CHECK:STDOUT: %int_42.7b3: %Enum = int_value 42 [concrete] +// CHECK:STDOUT: %int_42.3d1: %Enum = int_value 42 [concrete] // CHECK:STDOUT: %Other: type = class_type @Other [concrete] -// CHECK:STDOUT: %pattern_type.da8: type = pattern_type %Other [concrete] -// CHECK:STDOUT: %int_0.9f3: %Other = int_value 0 [concrete] +// CHECK:STDOUT: %pattern_type.7cb: type = pattern_type %Other [concrete] +// CHECK:STDOUT: %int_0.10c: %Other = int_value 0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -126,7 +126,7 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Enum.decl: type = class_decl @Enum [concrete = constants.%Enum] {} {} -// CHECK:STDOUT: %int_0: %Enum = int_value 0 [concrete = constants.%int_0.779] +// CHECK:STDOUT: %int_0: %Enum = int_value 0 [concrete = constants.%int_0.167] // CHECK:STDOUT: %Core.import_ref.6c4: @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert.type (%Core.IntLiteral.as.As.impl.Convert.type.fc5) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.As.impl.%Core.IntLiteral.as.As.impl.Convert (constants.%Core.IntLiteral.as.As.impl.Convert.3a8)] // CHECK:STDOUT: %As.impl_witness_table.2e6 = impl_witness_table (%Core.import_ref.6c4), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %Other.decl: type = class_decl @Other [concrete = constants.%Other] {} {} @@ -143,14 +143,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc8: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] -// CHECK:STDOUT: %a.ref.loc8: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0.779] +// CHECK:STDOUT: %a.ref.loc8: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0.167] // CHECK:STDOUT: %i16.loc8_37: type = type_literal constants.%i16 [concrete = constants.%i16] // CHECK:STDOUT: %.loc8_34.1: %i16 = as_compatible %a.ref.loc8 [concrete = constants.%int_0.713] // CHECK:STDOUT: %.loc8_34.2: %i16 = converted %a.ref.loc8, %.loc8_34.1 [concrete = constants.%int_0.713] // CHECK:STDOUT: %i16.loc8_17: type = type_literal constants.%i16 [concrete = constants.%i16] // CHECK:STDOUT: %a: %i16 = value_binding a, %.loc8_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.9f7 = value_binding_pattern b [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.361 = value_binding_pattern b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %i16.loc9: type = type_literal constants.%i16 [concrete = constants.%i16] @@ -163,22 +163,22 @@ fn F() { // CHECK:STDOUT: %.loc9_32.2: %i16 = converted %int_42, %.loc9_32.1 [concrete = constants.%int_42.50d] // CHECK:STDOUT: %Cpp.ref.loc9_43: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc9_46: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] -// CHECK:STDOUT: %.loc9_40.1: %Enum = as_compatible %.loc9_32.2 [concrete = constants.%int_42.7b3] -// CHECK:STDOUT: %.loc9_40.2: %Enum = converted %.loc9_32.2, %.loc9_40.1 [concrete = constants.%int_42.7b3] +// CHECK:STDOUT: %.loc9_40.1: %Enum = as_compatible %.loc9_32.2 [concrete = constants.%int_42.3d1] +// CHECK:STDOUT: %.loc9_40.2: %Enum = converted %.loc9_32.2, %.loc9_40.1 [concrete = constants.%int_42.3d1] // CHECK:STDOUT: %.loc9_20: type = splice_block %Enum.ref.loc9_20 [concrete = constants.%Enum] { // CHECK:STDOUT: %Cpp.ref.loc9_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc9_20: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] // CHECK:STDOUT: } // CHECK:STDOUT: %b: %Enum = value_binding b, %.loc9_40.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.da8 = value_binding_pattern c [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.7cb = value_binding_pattern c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %a.ref.loc10: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0.779] +// CHECK:STDOUT: %a.ref.loc10: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0.167] // CHECK:STDOUT: %Cpp.ref.loc10_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Other.ref.loc10_41: type = name_ref Other, imports.%Other.decl [concrete = constants.%Other] -// CHECK:STDOUT: %.loc10_35.1: %Other = as_compatible %a.ref.loc10 [concrete = constants.%int_0.9f3] -// CHECK:STDOUT: %.loc10_35.2: %Other = converted %a.ref.loc10, %.loc10_35.1 [concrete = constants.%int_0.9f3] +// CHECK:STDOUT: %.loc10_35.1: %Other = as_compatible %a.ref.loc10 [concrete = constants.%int_0.10c] +// CHECK:STDOUT: %.loc10_35.2: %Other = converted %a.ref.loc10, %.loc10_35.1 [concrete = constants.%int_0.10c] // CHECK:STDOUT: %.loc10_20: type = splice_block %Other.ref.loc10_20 [concrete = constants.%Other] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Other.ref.loc10_20: type = name_ref Other, imports.%Other.decl [concrete = constants.%Other] diff --git a/toolchain/check/testdata/interop/cpp/enum/copy.carbon b/toolchain/check/testdata/interop/cpp/enum/copy.carbon index 4bef7e0f616e..0f80ccf5547d 100644 --- a/toolchain/check/testdata/interop/cpp/enum/copy.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/copy.carbon @@ -35,18 +35,18 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Enum: type = class_type @Enum [concrete] -// CHECK:STDOUT: %pattern_type.9f7: type = pattern_type %Enum [concrete] +// CHECK:STDOUT: %pattern_type.361: type = pattern_type %Enum [concrete] // CHECK:STDOUT: %int_0: %Enum = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Enum.Op.type: type = fn_type @Enum.Op [concrete] // CHECK:STDOUT: %Enum.Op: %Enum.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.b8d: = custom_witness (%Enum.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.ae7: %Copy.type = facet_value %Enum, (%custom_witness.b8d) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.100: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.ae7) [concrete] -// CHECK:STDOUT: %.e06: type = fn_type_with_self_type %Copy.WithSelf.Op.type.100, %Copy.facet.ae7 [concrete] -// CHECK:STDOUT: %Enum.Op.bound.7be: = bound_method %int_0, %Enum.Op [concrete] +// CHECK:STDOUT: %Copy.facet.4ef: %Copy.type = facet_value %Enum, (%custom_witness.b8d) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.bb4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.4ef) [concrete] +// CHECK:STDOUT: %.a09: type = fn_type_with_self_type %Copy.WithSelf.Op.type.bb4, %Copy.facet.4ef [concrete] +// CHECK:STDOUT: %Enum.Op.bound.c3d: = bound_method %int_0, %Enum.Op [concrete] // CHECK:STDOUT: %int_1: %Enum = int_value 1 [concrete] -// CHECK:STDOUT: %Enum.Op.bound.c35: = bound_method %int_1, %Enum.Op [concrete] +// CHECK:STDOUT: %Enum.Op.bound.6f8: = bound_method %int_1, %Enum.Op [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -68,15 +68,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.9f7 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.9f7 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.361 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.361 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Enum = var %a.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc8_24: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] // CHECK:STDOUT: %a.ref.loc8: %Enum = name_ref a, imports.%int_0 [concrete = constants.%int_0] -// CHECK:STDOUT: %impl.elem0.loc8: %.e06 = impl_witness_access constants.%custom_witness.b8d, element0 [concrete = constants.%Enum.Op] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %a.ref.loc8, %impl.elem0.loc8 [concrete = constants.%Enum.Op.bound.7be] +// CHECK:STDOUT: %impl.elem0.loc8: %.a09 = impl_witness_access constants.%custom_witness.b8d, element0 [concrete = constants.%Enum.Op] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %a.ref.loc8, %impl.elem0.loc8 [concrete = constants.%Enum.Op.bound.c3d] // CHECK:STDOUT: %Enum.Op.call.loc8: init %Enum = call %bound_method.loc8(%a.ref.loc8) [concrete = constants.%int_0] // CHECK:STDOUT: assign %a.var, %Enum.Op.call.loc8 // CHECK:STDOUT: %.loc8: type = splice_block %Enum.ref.loc8_13 [concrete = constants.%Enum] { @@ -88,8 +88,8 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Enum.ref.loc10: type = name_ref Enum, imports.%Enum.decl [concrete = constants.%Enum] // CHECK:STDOUT: %b.ref: %Enum = name_ref b, imports.%int_1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem0.loc10: %.e06 = impl_witness_access constants.%custom_witness.b8d, element0 [concrete = constants.%Enum.Op] -// CHECK:STDOUT: %bound_method.loc10: = bound_method %b.ref, %impl.elem0.loc10 [concrete = constants.%Enum.Op.bound.c35] +// CHECK:STDOUT: %impl.elem0.loc10: %.a09 = impl_witness_access constants.%custom_witness.b8d, element0 [concrete = constants.%Enum.Op] +// CHECK:STDOUT: %bound_method.loc10: = bound_method %b.ref, %impl.elem0.loc10 [concrete = constants.%Enum.Op.bound.6f8] // CHECK:STDOUT: %Enum.Op.call.loc10: init %Enum = call %bound_method.loc10(%b.ref) [concrete = constants.%int_1] // CHECK:STDOUT: assign %a.ref.loc10, %Enum.Op.call.loc10 // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %a.var, constants.%Destroy.Op diff --git a/toolchain/check/testdata/interop/cpp/enum/using.carbon b/toolchain/check/testdata/interop/cpp/enum/using.carbon index ddfbcdcaca5b..d47c594bb65f 100644 --- a/toolchain/check/testdata/interop/cpp/enum/using.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/using.carbon @@ -55,31 +55,31 @@ fn F() { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Color: type = class_type @Color [concrete] -// CHECK:STDOUT: %pattern_type.625: type = pattern_type %Color [concrete] -// CHECK:STDOUT: %int_0.5a5: %Color = int_value 0 [concrete] -// CHECK:STDOUT: %int_1.a87: %Color = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.3ad: type = pattern_type %Color [concrete] +// CHECK:STDOUT: %int_0.dc7: %Color = int_value 0 [concrete] +// CHECK:STDOUT: %int_1.c71: %Color = int_value 1 [concrete] // CHECK:STDOUT: %Zoo: type = class_type @Zoo [concrete] // CHECK:STDOUT: %Animal: type = class_type @Animal [concrete] -// CHECK:STDOUT: %pattern_type.531: type = pattern_type %Animal [concrete] -// CHECK:STDOUT: %int_0.30a: %Animal = int_value 0 [concrete] -// CHECK:STDOUT: %int_1.292: %Animal = int_value 1 [concrete] +// CHECK:STDOUT: %pattern_type.e29: type = pattern_type %Animal [concrete] +// CHECK:STDOUT: %int_0.f35: %Animal = int_value 0 [concrete] +// CHECK:STDOUT: %int_1.a89: %Animal = int_value 1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .Color = %Color.decl -// CHECK:STDOUT: .Blue = %int_1.a87 +// CHECK:STDOUT: .Blue = %int_1.c71 // CHECK:STDOUT: .Zoo = %Zoo.decl -// CHECK:STDOUT: .Dog = %int_1.292 +// CHECK:STDOUT: .Dog = %int_1.a89 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Color.decl: type = class_decl @Color [concrete = constants.%Color] {} {} -// CHECK:STDOUT: %int_0.5a5: %Color = int_value 0 [concrete = constants.%int_0.5a5] -// CHECK:STDOUT: %int_1.a87: %Color = int_value 1 [concrete = constants.%int_1.a87] +// CHECK:STDOUT: %int_0.dc7: %Color = int_value 0 [concrete = constants.%int_0.dc7] +// CHECK:STDOUT: %int_1.c71: %Color = int_value 1 [concrete = constants.%int_1.c71] // CHECK:STDOUT: %Zoo.decl: type = class_decl @Zoo [concrete = constants.%Zoo] {} {} // CHECK:STDOUT: %Animal.decl: type = class_decl @Animal [concrete = constants.%Animal] {} {} -// CHECK:STDOUT: %int_0.30a: %Animal = int_value 0 [concrete = constants.%int_0.30a] -// CHECK:STDOUT: %int_1.292: %Animal = int_value 1 [concrete = constants.%int_1.292] +// CHECK:STDOUT: %int_0.f35: %Animal = int_value 0 [concrete = constants.%int_0.f35] +// CHECK:STDOUT: %int_1.a89: %Animal = int_value 1 [concrete = constants.%int_1.a89] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -89,33 +89,33 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %col.patt: %pattern_type.625 = value_binding_pattern col [concrete] +// CHECK:STDOUT: %col.patt: %pattern_type.3ad = value_binding_pattern col [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc18_32: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Color.ref.loc18_35: type = name_ref Color, imports.%Color.decl [concrete = constants.%Color] -// CHECK:STDOUT: %Red.ref: %Color = name_ref Red, imports.%int_0.5a5 [concrete = constants.%int_0.5a5] +// CHECK:STDOUT: %Red.ref: %Color = name_ref Red, imports.%int_0.dc7 [concrete = constants.%int_0.dc7] // CHECK:STDOUT: %.loc18: type = splice_block %Color.ref.loc18_23 [concrete = constants.%Color] { // CHECK:STDOUT: %Cpp.ref.loc18_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Color.ref.loc18_23: type = name_ref Color, imports.%Color.decl [concrete = constants.%Color] // CHECK:STDOUT: } // CHECK:STDOUT: %col: %Color = value_binding col, %Red.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %colb.patt: %pattern_type.625 = value_binding_pattern colb [concrete] +// CHECK:STDOUT: %colb.patt: %pattern_type.3ad = value_binding_pattern colb [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Blue.ref: %Color = name_ref Blue, imports.%int_1.a87 [concrete = constants.%int_1.a87] +// CHECK:STDOUT: %Blue.ref: %Color = name_ref Blue, imports.%int_1.c71 [concrete = constants.%int_1.c71] // CHECK:STDOUT: %.loc19: type = splice_block %Color.ref.loc19 [concrete = constants.%Color] { // CHECK:STDOUT: %Cpp.ref.loc19_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Color.ref.loc19: type = name_ref Color, imports.%Color.decl [concrete = constants.%Color] // CHECK:STDOUT: } // CHECK:STDOUT: %colb: %Color = value_binding colb, %Blue.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pet.patt: %pattern_type.531 = value_binding_pattern pet [concrete] +// CHECK:STDOUT: %pet.patt: %pattern_type.e29 = value_binding_pattern pet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc20_37: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Zoo.ref.loc20_40: type = name_ref Zoo, imports.%Zoo.decl [concrete = constants.%Zoo] // CHECK:STDOUT: %Animal.ref.loc20_44: type = name_ref Animal, imports.%Animal.decl [concrete = constants.%Animal] -// CHECK:STDOUT: %Cat.ref: %Animal = name_ref Cat, imports.%int_0.30a [concrete = constants.%int_0.30a] +// CHECK:STDOUT: %Cat.ref: %Animal = name_ref Cat, imports.%int_0.f35 [concrete = constants.%int_0.f35] // CHECK:STDOUT: %.loc20: type = splice_block %Animal.ref.loc20_27 [concrete = constants.%Animal] { // CHECK:STDOUT: %Cpp.ref.loc20_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Zoo.ref.loc20_23: type = name_ref Zoo, imports.%Zoo.decl [concrete = constants.%Zoo] @@ -123,10 +123,10 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %pet: %Animal = value_binding pet, %Cat.ref // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pet2.patt: %pattern_type.531 = value_binding_pattern pet2 [concrete] +// CHECK:STDOUT: %pet2.patt: %pattern_type.e29 = value_binding_pattern pet2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc21_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dog.ref: %Animal = name_ref Dog, imports.%int_1.292 [concrete = constants.%int_1.292] +// CHECK:STDOUT: %Dog.ref: %Animal = name_ref Dog, imports.%int_1.a89 [concrete = constants.%int_1.a89] // CHECK:STDOUT: %.loc21: type = splice_block %Animal.ref.loc21 [concrete = constants.%Animal] { // CHECK:STDOUT: %Cpp.ref.loc21_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Zoo.ref.loc21: type = name_ref Zoo, imports.%Zoo.decl [concrete = constants.%Zoo] diff --git a/toolchain/check/testdata/interop/cpp/function/import/class.carbon b/toolchain/check/testdata/interop/cpp/function/import/class.carbon index c0f180c6d0e2..70bfa8ccad37 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/class.carbon @@ -603,7 +603,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: } @@ -629,7 +629,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -678,7 +678,7 @@ fn F() { // CHECK:STDOUT: %make.cpp_overload_set.type: type = cpp_overload_set_type @make.cpp_overload_set [concrete] // CHECK:STDOUT: %make.cpp_overload_set.value: %make.cpp_overload_set.type = cpp_overload_set_value @make.cpp_overload_set [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] // CHECK:STDOUT: %make__carbon_thunk.type: type = fn_type @make__carbon_thunk [concrete] // CHECK:STDOUT: %make__carbon_thunk: %make__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %foo__carbon_thunk.type: type = fn_type @foo__carbon_thunk [concrete] @@ -712,11 +712,11 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc8_11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %make.ref: %make.cpp_overload_set.type = name_ref make, imports.%make.cpp_overload_set.value [concrete = constants.%make.cpp_overload_set.value] // CHECK:STDOUT: -// CHECK:STDOUT: %addr.loc8_20: %ptr.dbb = addr_of %_.var +// CHECK:STDOUT: %addr.loc8_20: %ptr.3a8 = addr_of %_.var // CHECK:STDOUT: %make__carbon_thunk.call: init %empty_tuple.type = call imports.%make__carbon_thunk.decl(%addr.loc8_20) // CHECK:STDOUT: %.loc8: init %C to %_.var = mark_in_place_init %make__carbon_thunk.call // CHECK:STDOUT: -// CHECK:STDOUT: %addr.loc8_21: %ptr.dbb = addr_of %_.var +// CHECK:STDOUT: %addr.loc8_21: %ptr.3a8 = addr_of %_.var // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -728,7 +728,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: } @@ -754,7 +754,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -766,7 +766,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: } @@ -792,7 +792,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -801,11 +801,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.8ab: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.908: type = pattern_type %C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.d15: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.58d: 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: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] @@ -816,9 +816,9 @@ fn F() { // CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete] // CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.3d0: = custom_witness (%C.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.8ae: %Default.type = facet_value %C, (%custom_witness.3d0) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a4e: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.8ae) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.a4e) [concrete] +// CHECK:STDOUT: %Default.facet.a4a: %Default.type = facet_value %C, (%custom_witness.3d0) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.736: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.a4a) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.736) [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] // CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -850,14 +850,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.d15 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.58d = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.8ab = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.8ab = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.908 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.908 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %C = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.a4e) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.736) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%C] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%C] @@ -883,7 +883,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.4c9: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.b51: 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: } @@ -918,7 +918,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.4c9 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.b51 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -931,10 +931,10 @@ fn F() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.714: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.010: 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: %pattern_type.194: type = pattern_type %O [concrete] +// CHECK:STDOUT: %pattern_type.554: type = pattern_type %O [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -943,9 +943,9 @@ fn F() { // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%O.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.15f: %Default.type = facet_value %O, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.424: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.15f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.424) [concrete] +// CHECK:STDOUT: %Default.facet.478: %Default.type = facet_value %O, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.1cc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.478) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.1cc) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -973,14 +973,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.714 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.010 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.194 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.194 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.554 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.554 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.424) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.1cc) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] @@ -1009,7 +1009,7 @@ fn F() { // CHECK:STDOUT: %C.bar: %C.bar.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: } @@ -1041,7 +1041,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc9: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc9 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc9 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1053,7 +1053,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %C.bar.cpp_overload_set.type: type = cpp_overload_set_type @C.bar.cpp_overload_set [concrete] @@ -1085,7 +1085,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc8: ref %C = value_as_ref %c.ref -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, imports.%C.decl [concrete = constants.%C] @@ -1173,7 +1173,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -1198,7 +1198,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %C to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %C = temporary %.loc8_11.1, %.loc8_11.2 diff --git a/toolchain/check/testdata/interop/cpp/function/import/default_arg.carbon b/toolchain/check/testdata/interop/cpp/function/import/default_arg.carbon index 60c8dc5c78d1..8da46aef2f81 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/default_arg.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/default_arg.carbon @@ -181,10 +181,10 @@ fn Call() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] -// CHECK:STDOUT: %.0ed: ref %X = temporary invalid, %X.val [concrete] +// CHECK:STDOUT: %.4e8: ref %X = temporary invalid, %X.val [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.type: type = cpp_overload_set_type @X.B.cpp_overload_set [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.599: = bound_method %.0ed, %X.B.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %bound_method.7cd: = bound_method %.4e8, %X.B.cpp_overload_set.value [concrete] // CHECK:STDOUT: %X.B.type: type = fn_type @X.B [concrete] // CHECK:STDOUT: %X.B: %X.B.type = struct_value () [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.type: type = cpp_overload_set_type @X.C.cpp_overload_set [concrete] @@ -193,8 +193,8 @@ fn Call() { // CHECK:STDOUT: %X.C: %X.C.type = struct_value () [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.type: type = cpp_overload_set_type @X.D.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.db4: = bound_method %.0ed, %X.D.cpp_overload_set.value [concrete] -// CHECK:STDOUT: %ptr.62d: type = ptr_type %X [concrete] +// CHECK:STDOUT: %bound_method.954: = bound_method %.4e8, %X.D.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %ptr.d14: type = ptr_type %X [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: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] @@ -333,9 +333,9 @@ fn Call() { // CHECK:STDOUT: %.loc10_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc10_5.3: init %X to %.loc10_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc10_7.1: init %X = converted %.loc10_5.1, %.loc10_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc10_7.2: ref %X = temporary %.loc10_5.2, %.loc10_7.1 [concrete = constants.%.0ed] +// CHECK:STDOUT: %.loc10_7.2: ref %X = temporary %.loc10_5.2, %.loc10_7.1 [concrete = constants.%.4e8] // CHECK:STDOUT: %B.ref: %X.B.cpp_overload_set.type = name_ref B, imports.%X.B.cpp_overload_set.value [concrete = constants.%X.B.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc10_16: = bound_method %.loc10_7.2, %B.ref [concrete = constants.%bound_method.599] +// CHECK:STDOUT: %bound_method.loc10_16: = bound_method %.loc10_7.2, %B.ref [concrete = constants.%bound_method.7cd] // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc10: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc10_7.3: %X = acquire_value %.loc10_7.2 [concrete = constants.%X.val] @@ -380,9 +380,9 @@ fn Call() { // CHECK:STDOUT: %.loc12_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc12_5.3: init %X to %.loc12_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc12_7.1: init %X = converted %.loc12_5.1, %.loc12_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc12_7.2: ref %X = temporary %.loc12_5.2, %.loc12_7.1 [concrete = constants.%.0ed] +// CHECK:STDOUT: %.loc12_7.2: ref %X = temporary %.loc12_5.2, %.loc12_7.1 [concrete = constants.%.4e8] // CHECK:STDOUT: %D.ref: %X.D.cpp_overload_set.type = name_ref D, imports.%X.D.cpp_overload_set.value [concrete = constants.%X.D.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc12_16: = bound_method %.loc12_7.2, %D.ref [concrete = constants.%bound_method.db4] +// CHECK:STDOUT: %bound_method.loc12_16: = bound_method %.loc12_7.2, %D.ref [concrete = constants.%bound_method.954] // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc12_7.3: %X = acquire_value %.loc12_7.2 [concrete = constants.%X.val] @@ -401,7 +401,7 @@ fn Call() { // CHECK:STDOUT: %.loc12_22.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_22 [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc12_22.2: %i32 = converted %int_2.loc12, %.loc12_22.1 [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc12_7.4: ref %X = value_as_ref %.loc12_7.3 -// CHECK:STDOUT: %addr: %ptr.62d = addr_of %.loc12_7.4 +// CHECK:STDOUT: %addr: %ptr.d14 = addr_of %.loc12_7.4 // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr, %.loc12_19.2, %.loc12_22.2) // CHECK:STDOUT: // CHECK:STDOUT: %Op.ref.loc12: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] @@ -460,11 +460,11 @@ fn Call() { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] -// CHECK:STDOUT: %.0ed: ref %X = temporary invalid, %X.val [concrete] +// CHECK:STDOUT: %.4e8: ref %X = temporary invalid, %X.val [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.type: type = cpp_overload_set_type @X.B.cpp_overload_set [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.599: = bound_method %.0ed, %X.B.cpp_overload_set.value [concrete] -// CHECK:STDOUT: %pattern_type.b56: type = pattern_type %X [concrete] +// CHECK:STDOUT: %bound_method.7cd: = bound_method %.4e8, %X.B.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %pattern_type.bd3: type = pattern_type %X [concrete] // CHECK:STDOUT: %B__carbon_thunk.type: type = fn_type @B__carbon_thunk [concrete] // CHECK:STDOUT: %B__carbon_thunk: %B__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.type: type = cpp_overload_set_type @X.C.cpp_overload_set [concrete] @@ -473,9 +473,9 @@ fn Call() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.type: type = cpp_overload_set_type @X.D.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.db4: = bound_method %.0ed, %X.D.cpp_overload_set.value [concrete] -// CHECK:STDOUT: %ptr.62d: type = ptr_type %X [concrete] -// CHECK:STDOUT: %pattern_type.9c5: type = pattern_type %ptr.62d [concrete] +// CHECK:STDOUT: %bound_method.954: = bound_method %.4e8, %X.D.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %ptr.d14: type = ptr_type %X [concrete] +// CHECK:STDOUT: %pattern_type.74f: type = pattern_type %ptr.d14 [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: %Destroy.type: type = facet_type <@Destroy> [concrete] @@ -485,7 +485,7 @@ fn Call() { // CHECK:STDOUT: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] // CHECK:STDOUT: %X.cpp_destructor: %X.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.cc4: = custom_witness (), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.19f: %Destroy.type = facet_value %X, (%custom_witness.cc4) [concrete] +// CHECK:STDOUT: %Destroy.facet.226: %Destroy.type = facet_value %X, (%custom_witness.cc4) [concrete] // CHECK:STDOUT: %X.Op.type: type = fn_type @X.Op [concrete] // CHECK:STDOUT: %X.Op: %X.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -592,8 +592,8 @@ fn Call() { // CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {} // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete = constants.%X.B.cpp_overload_set.value] // CHECK:STDOUT: %B__carbon_thunk.decl: %B__carbon_thunk.type = fn_decl @B__carbon_thunk [concrete = constants.%B__carbon_thunk] { -// CHECK:STDOUT: %this.param_patt: %pattern_type.b56 = value_param_pattern [concrete] -// CHECK:STDOUT: %this.patt: %pattern_type.b56 = at_binding_pattern this, %this.param_patt [concrete] +// CHECK:STDOUT: %this.param_patt: %pattern_type.bd3 = value_param_pattern [concrete] +// CHECK:STDOUT: %this.patt: %pattern_type.bd3 = at_binding_pattern this, %this.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: %pattern_type.c6b = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type.c6b = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { @@ -622,13 +622,13 @@ fn Call() { // CHECK:STDOUT: } // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete = constants.%X.D.cpp_overload_set.value] // CHECK:STDOUT: %D__carbon_thunk.decl: %D__carbon_thunk.type = fn_decl @D__carbon_thunk [concrete = constants.%D__carbon_thunk] { -// CHECK:STDOUT: %_.param_patt: %pattern_type.9c5 = value_param_pattern [concrete] -// CHECK:STDOUT: %_.patt: %pattern_type.9c5 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.74f = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.74f = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: %a.param_patt: %pattern_type.c6b = value_param_pattern [concrete] // CHECK:STDOUT: %a.patt: %pattern_type.c6b = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.param: %ptr.62d = value_param call_param0 -// CHECK:STDOUT: %_: %ptr.62d = value_binding _, %_.param +// CHECK:STDOUT: %_.param: %ptr.d14 = value_param call_param0 +// CHECK:STDOUT: %_: %ptr.d14 = value_binding _, %_.param // CHECK:STDOUT: %a.param: %i32 = value_param call_param1 // CHECK:STDOUT: %.1: type = splice_block %i32.2 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -640,8 +640,8 @@ fn Call() { // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Destroy.WithSelf.Op.decl: %Destroy.WithSelf.Op.type.12b = fn_decl @Destroy.WithSelf.Op [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.73c)] {} {} // CHECK:STDOUT: %X.cpp_destructor.decl: %X.cpp_destructor.type = fn_decl @X.cpp_destructor [concrete = constants.%X.cpp_destructor] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.b56 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.b56 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.bd3 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.bd3 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param @@ -753,9 +753,9 @@ fn Call() { // CHECK:STDOUT: %.loc11_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc11_5.3: init %X to %.loc11_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc11_7.1: init %X = converted %.loc11_5.1, %.loc11_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc11_7.2: ref %X = temporary %.loc11_5.2, %.loc11_7.1 [concrete = constants.%.0ed] +// CHECK:STDOUT: %.loc11_7.2: ref %X = temporary %.loc11_5.2, %.loc11_7.1 [concrete = constants.%.4e8] // CHECK:STDOUT: %B.ref: %X.B.cpp_overload_set.type = name_ref B, imports.%X.B.cpp_overload_set.value [concrete = constants.%X.B.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc11_16: = bound_method %.loc11_7.2, %B.ref [concrete = constants.%bound_method.599] +// CHECK:STDOUT: %bound_method.loc11_16: = bound_method %.loc11_7.2, %B.ref [concrete = constants.%bound_method.7cd] // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_7.3: %X = acquire_value %.loc11_7.2 [concrete = constants.%X.val] // CHECK:STDOUT: %impl.elem0.loc11: %.205 = impl_witness_access constants.%ImplicitAs.impl_witness.fb6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e6b] @@ -784,9 +784,9 @@ fn Call() { // CHECK:STDOUT: %.loc13_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc13_5.3: init %X to %.loc13_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc13_7.1: init %X = converted %.loc13_5.1, %.loc13_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc13_7.2: ref %X = temporary %.loc13_5.2, %.loc13_7.1 [concrete = constants.%.0ed] +// CHECK:STDOUT: %.loc13_7.2: ref %X = temporary %.loc13_5.2, %.loc13_7.1 [concrete = constants.%.4e8] // CHECK:STDOUT: %D.ref: %X.D.cpp_overload_set.type = name_ref D, imports.%X.D.cpp_overload_set.value [concrete = constants.%X.D.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc13_16: = bound_method %.loc13_7.2, %D.ref [concrete = constants.%bound_method.db4] +// CHECK:STDOUT: %bound_method.loc13_16: = bound_method %.loc13_7.2, %D.ref [concrete = constants.%bound_method.954] // CHECK:STDOUT: %int_1.loc13: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc13_7.3: %X = acquire_value %.loc13_7.2 [concrete = constants.%X.val] // CHECK:STDOUT: %impl.elem0.loc13: %.205 = impl_witness_access constants.%ImplicitAs.impl_witness.fb6, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e6b] @@ -797,11 +797,11 @@ fn Call() { // CHECK:STDOUT: %.loc13_19.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc13 [concrete = constants.%int_1.d5e] // CHECK:STDOUT: %.loc13_19.2: %i32 = converted %int_1.loc13, %.loc13_19.1 [concrete = constants.%int_1.d5e] // CHECK:STDOUT: %.loc13_7.4: ref %X = value_as_ref %.loc13_7.3 -// CHECK:STDOUT: %addr: %ptr.62d = addr_of %.loc13_7.4 +// CHECK:STDOUT: %addr: %ptr.d14 = addr_of %.loc13_7.4 // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr, %.loc13_19.2) // CHECK:STDOUT: %X.Op.decl: %X.Op.type = fn_decl @X.Op [concrete = constants.%X.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.b56 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.b56 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.bd3 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.bd3 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %X = ref_param call_param0 // CHECK:STDOUT: %self: ref %X = ref_binding self, %self.param @@ -833,11 +833,11 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: fn @X.D(%self.param: %X, %a.param: %i32); // CHECK:STDOUT: -// CHECK:STDOUT: fn @D__carbon_thunk(%_.param: %ptr.62d, %a.param: %i32); +// CHECK:STDOUT: fn @D__carbon_thunk(%_.param: %ptr.d14, %a.param: %i32); // CHECK:STDOUT: // CHECK:STDOUT: fn @X.cpp_destructor(%self.param: ref %X) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @X.Op(%self.param: ref %X) [thunk imports.%X.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.19f)] { +// CHECK:STDOUT: fn @X.Op(%self.param: ref %X) [thunk imports.%X.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.226)] { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Op.ref: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] // CHECK:STDOUT: %X.cpp_destructor.bound: = bound_method %self.param, %Op.ref @@ -857,15 +857,15 @@ fn Call() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] -// CHECK:STDOUT: %.0ed: ref %X = temporary invalid, %X.val [concrete] +// CHECK:STDOUT: %.4e8: ref %X = temporary invalid, %X.val [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.type: type = cpp_overload_set_type @X.B.cpp_overload_set [concrete] // CHECK:STDOUT: %X.B.cpp_overload_set.value: %X.B.cpp_overload_set.type = cpp_overload_set_value @X.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.599: = bound_method %.0ed, %X.B.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %bound_method.7cd: = bound_method %.4e8, %X.B.cpp_overload_set.value [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.type: type = cpp_overload_set_type @X.C.cpp_overload_set [concrete] // CHECK:STDOUT: %X.C.cpp_overload_set.value: %X.C.cpp_overload_set.type = cpp_overload_set_value @X.C.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.type: type = cpp_overload_set_type @X.D.cpp_overload_set [concrete] // CHECK:STDOUT: %X.D.cpp_overload_set.value: %X.D.cpp_overload_set.type = cpp_overload_set_value @X.D.cpp_overload_set [concrete] -// CHECK:STDOUT: %bound_method.db4: = bound_method %.0ed, %X.D.cpp_overload_set.value [concrete] +// CHECK:STDOUT: %bound_method.954: = bound_method %.4e8, %X.D.cpp_overload_set.value [concrete] // CHECK:STDOUT: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] // CHECK:STDOUT: %X.cpp_destructor: %X.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -908,9 +908,9 @@ fn Call() { // CHECK:STDOUT: %.loc56_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc56_5.3: init %X to %.loc56_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc56_7.1: init %X = converted %.loc56_5.1, %.loc56_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc56_7.2: ref %X = temporary %.loc56_5.2, %.loc56_7.1 [concrete = constants.%.0ed] +// CHECK:STDOUT: %.loc56_7.2: ref %X = temporary %.loc56_5.2, %.loc56_7.1 [concrete = constants.%.4e8] // CHECK:STDOUT: %B.ref: %X.B.cpp_overload_set.type = name_ref B, imports.%X.B.cpp_overload_set.value [concrete = constants.%X.B.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc56: = bound_method %.loc56_7.2, %B.ref [concrete = constants.%bound_method.599] +// CHECK:STDOUT: %bound_method.loc56: = bound_method %.loc56_7.2, %B.ref [concrete = constants.%bound_method.7cd] // CHECK:STDOUT: %Cpp.ref.loc66: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %X.ref.loc66: type = name_ref X, imports.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %C.ref: %X.C.cpp_overload_set.type = name_ref C, imports.%X.C.cpp_overload_set.value [concrete = constants.%X.C.cpp_overload_set.value] @@ -920,9 +920,9 @@ fn Call() { // CHECK:STDOUT: %.loc76_5.2: ref %X = temporary_storage // CHECK:STDOUT: %.loc76_5.3: init %X to %.loc76_5.2 = class_init () [concrete = constants.%X.val] // CHECK:STDOUT: %.loc76_7.1: init %X = converted %.loc76_5.1, %.loc76_5.3 [concrete = constants.%X.val] -// CHECK:STDOUT: %.loc76_7.2: ref %X = temporary %.loc76_5.2, %.loc76_7.1 [concrete = constants.%.0ed] +// CHECK:STDOUT: %.loc76_7.2: ref %X = temporary %.loc76_5.2, %.loc76_7.1 [concrete = constants.%.4e8] // CHECK:STDOUT: %D.ref: %X.D.cpp_overload_set.type = name_ref D, imports.%X.D.cpp_overload_set.value [concrete = constants.%X.D.cpp_overload_set.value] -// CHECK:STDOUT: %bound_method.loc76: = bound_method %.loc76_7.2, %D.ref [concrete = constants.%bound_method.db4] +// CHECK:STDOUT: %bound_method.loc76: = bound_method %.loc76_7.2, %D.ref [concrete = constants.%bound_method.954] // CHECK:STDOUT: // CHECK:STDOUT: %Op.ref.loc76: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] // CHECK:STDOUT: %Op.ref.loc56: %X.cpp_destructor.type = name_ref Op, imports.%X.cpp_destructor.decl [concrete = constants.%X.cpp_destructor] diff --git a/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon b/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon index 7483a32c352e..0a9c6f6f7d66 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/extern_c.carbon @@ -210,7 +210,7 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: constants { // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.62d: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.d14: type = ptr_type %X [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -229,10 +229,10 @@ fn MyF(a: Cpp.X, b: Cpp.X) -> Cpp.X { // CHECK:STDOUT: %b.ref: %X = name_ref b, %b // CHECK:STDOUT: // CHECK:STDOUT: %.loc11_10: ref %X = value_as_ref %a.ref -// CHECK:STDOUT: %addr.loc11_12.1: %ptr.62d = addr_of %.loc11_10 +// CHECK:STDOUT: %addr.loc11_12.1: %ptr.d14 = addr_of %.loc11_10 // CHECK:STDOUT: %.loc11_14: ref %X = value_as_ref %b.ref -// CHECK:STDOUT: %addr.loc11_12.2: %ptr.62d = addr_of %.loc11_14 -// CHECK:STDOUT: %addr.loc11_12.3: %ptr.62d = addr_of %.loc9_34.1 +// CHECK:STDOUT: %addr.loc11_12.2: %ptr.d14 = addr_of %.loc11_14 +// CHECK:STDOUT: %addr.loc11_12.3: %ptr.d14 = addr_of %.loc9_34.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc11_12.1, %addr.loc11_12.2, %addr.loc11_12.3) // CHECK:STDOUT: %.loc11_12: init %X to %.loc9_34.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: return %.loc11_12 to %return.param diff --git a/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon b/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon index e463c81fccdf..d70674dc927d 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon @@ -2401,13 +2401,13 @@ fn F() { // CHECK:STDOUT: %PassNoFields.cpp_overload_set.type: type = cpp_overload_set_type @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %NoFields: type = class_type @NoFields [concrete] -// CHECK:STDOUT: %ptr.110: type = ptr_type %NoFields [concrete] -// CHECK:STDOUT: %pattern_type.c78: type = pattern_type %ptr.110 [concrete] +// CHECK:STDOUT: %ptr.e71: type = ptr_type %NoFields [concrete] +// CHECK:STDOUT: %pattern_type.730: type = pattern_type %ptr.e71 [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk.type: type = fn_type @PassNoFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk: %PassNoFields__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %NoFields.val: %NoFields = struct_value () [concrete] -// CHECK:STDOUT: %.adc: ref %NoFields = temporary invalid, %NoFields.val [concrete] +// CHECK:STDOUT: %.759: ref %NoFields = temporary invalid, %NoFields.val [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] @@ -2425,11 +2425,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %PassNoFields__carbon_thunk.decl: %PassNoFields__carbon_thunk.type = fn_decl @PassNoFields__carbon_thunk [concrete = constants.%PassNoFields__carbon_thunk] { -// CHECK:STDOUT: %s.param_patt: %pattern_type.c78 = value_param_pattern [concrete] -// CHECK:STDOUT: %s.patt: %pattern_type.c78 = at_binding_pattern s, %s.param_patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.730 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.730 = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %s.param: %ptr.110 = value_param call_param0 -// CHECK:STDOUT: %s: %ptr.110 = value_binding s, %s.param +// CHECK:STDOUT: %s.param: %ptr.e71 = value_param call_param0 +// CHECK:STDOUT: %s: %ptr.e71 = value_binding s, %s.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } @@ -2495,10 +2495,10 @@ fn F() { // CHECK:STDOUT: %.loc9_21.2: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc9_21.3: init %NoFields to %.loc9_21.2 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc9_21.4: init %NoFields = converted %.loc9_21.1, %.loc9_21.3 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc9_21.5: ref %NoFields = temporary %.loc9_21.2, %.loc9_21.4 [concrete = constants.%.adc] +// CHECK:STDOUT: %.loc9_21.5: ref %NoFields = temporary %.loc9_21.2, %.loc9_21.4 [concrete = constants.%.759] // CHECK:STDOUT: %.loc9_21.6: %NoFields = acquire_value %.loc9_21.5 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc9_21.7: ref %NoFields = value_as_ref %.loc9_21.6 -// CHECK:STDOUT: %addr.loc9: %ptr.110 = addr_of %.loc9_21.7 +// CHECK:STDOUT: %addr.loc9: %ptr.e71 = addr_of %.loc9_21.7 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc11: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] @@ -2506,10 +2506,10 @@ fn F() { // CHECK:STDOUT: %.loc11_20.1: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc11_20.2: init %NoFields to %.loc11_20.1 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc11_20.3: init %NoFields = converted %value.ref, %.loc11_20.2 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc11_20.4: ref %NoFields = temporary %.loc11_20.1, %.loc11_20.3 [concrete = constants.%.adc] +// CHECK:STDOUT: %.loc11_20.4: ref %NoFields = temporary %.loc11_20.1, %.loc11_20.3 [concrete = constants.%.759] // CHECK:STDOUT: %.loc11_20.5: %NoFields = acquire_value %.loc11_20.4 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc11_20.6: ref %NoFields = value_as_ref %.loc11_20.5 -// CHECK:STDOUT: %addr.loc11: %ptr.110 = addr_of %.loc11_20.6 +// CHECK:STDOUT: %addr.loc11: %ptr.e71 = addr_of %.loc11_20.6 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc11) // CHECK:STDOUT: %Cpp.ref.loc13: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc13: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] @@ -2517,10 +2517,10 @@ fn F() { // CHECK:STDOUT: %.loc13_20.1: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc13_20.2: init %NoFields to %.loc13_20.1 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc13_20.3: init %NoFields = converted %reference.ref, %.loc13_20.2 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc13_20.4: ref %NoFields = temporary %.loc13_20.1, %.loc13_20.3 [concrete = constants.%.adc] +// CHECK:STDOUT: %.loc13_20.4: ref %NoFields = temporary %.loc13_20.1, %.loc13_20.3 [concrete = constants.%.759] // CHECK:STDOUT: %.loc13_20.5: %NoFields = acquire_value %.loc13_20.4 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc13_20.6: ref %NoFields = value_as_ref %.loc13_20.5 -// CHECK:STDOUT: %addr.loc13: %ptr.110 = addr_of %.loc13_20.6 +// CHECK:STDOUT: %addr.loc13: %ptr.e71 = addr_of %.loc13_20.6 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc13: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc13) // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc15: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] @@ -2531,10 +2531,10 @@ fn F() { // CHECK:STDOUT: %.loc15_30.3: ref %NoFields = temporary_storage // CHECK:STDOUT: %.loc15_30.4: init %NoFields to %.loc15_30.3 = class_init () [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc15_30.5: init %NoFields = converted %MakeEmpty.call, %.loc15_30.4 [concrete = constants.%NoFields.val] -// CHECK:STDOUT: %.loc15_30.6: ref %NoFields = temporary %.loc15_30.3, %.loc15_30.5 [concrete = constants.%.adc] +// CHECK:STDOUT: %.loc15_30.6: ref %NoFields = temporary %.loc15_30.3, %.loc15_30.5 [concrete = constants.%.759] // CHECK:STDOUT: %.loc15_30.7: %NoFields = acquire_value %.loc15_30.6 [concrete = constants.%NoFields.val] // CHECK:STDOUT: %.loc15_30.8: ref %NoFields = value_as_ref %.loc15_30.7 -// CHECK:STDOUT: %addr.loc15: %ptr.110 = addr_of %.loc15_30.8 +// CHECK:STDOUT: %addr.loc15: %ptr.e71 = addr_of %.loc15_30.8 // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc15: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc15) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc15_30.2, constants.%Destroy.Op // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc15_30.2) @@ -2543,7 +2543,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @PassNoFields(%s.param: %NoFields); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.110); +// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.e71); // CHECK:STDOUT: // CHECK:STDOUT: fn @NoFields.cpp_destructor(%self.param: ref %NoFields) = "no_op"; // CHECK:STDOUT: @@ -2571,12 +2571,12 @@ fn F() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %struct_type.a.b.c.90d: type = struct_type {.a: Core.IntLiteral, .b: Core.IntLiteral, .c: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.ec0: %struct_type.a.b.c.90d = struct_value (%int_1, %int_2, %int_3) [concrete] -// CHECK:STDOUT: %ThreeFields.541: type = class_type @ThreeFields.1 [concrete] -// CHECK:STDOUT: %ptr.494: type = ptr_type %ThreeFields.541 [concrete] -// CHECK:STDOUT: %pattern_type.d31: type = pattern_type %ptr.494 [concrete] +// CHECK:STDOUT: %ThreeFields.559: type = class_type @ThreeFields.1 [concrete] +// CHECK:STDOUT: %ptr.f54: type = ptr_type %ThreeFields.559 [concrete] +// CHECK:STDOUT: %pattern_type.905: type = pattern_type %ptr.f54 [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.type: type = fn_type @PassThreeFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk: %PassThreeFields__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.541, %i32 [concrete] +// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.559, %i32 [concrete] // CHECK:STDOUT: %.16c: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete] // CHECK:STDOUT: %complete_type.143: = complete_type_witness %.16c [concrete] // CHECK:STDOUT: %ImplicitAs.type.649: type = generic_interface_type @ImplicitAs [concrete] @@ -2599,11 +2599,11 @@ fn F() { // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.decl: %PassThreeFields__carbon_thunk.type = fn_decl @PassThreeFields__carbon_thunk [concrete = constants.%PassThreeFields__carbon_thunk] { -// CHECK:STDOUT: %t.param_patt: %pattern_type.d31 = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.d31 = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.905 = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.905 = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %t.param: %ptr.494 = value_param call_param0 -// CHECK:STDOUT: %t: %ptr.494 = value_binding t, %t.param +// CHECK:STDOUT: %t.param: %ptr.f54 = value_param call_param0 +// CHECK:STDOUT: %t: %ptr.f54 = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.649 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } @@ -2687,28 +2687,28 @@ fn F() { // CHECK:STDOUT: %int_2.loc20: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %int_3.loc20: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc20_46.1: %struct_type.a.b.c.90d = struct_literal (%int_1.loc20, %int_2.loc20, %int_3.loc20) [concrete = constants.%struct.ec0] -// CHECK:STDOUT: %.loc20_46.2: %ThreeFields.541 = converted %.loc20_46.1, [concrete = ] -// CHECK:STDOUT: %addr.loc20: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc20_46.2: %ThreeFields.559 = converted %.loc20_46.1, [concrete = ] +// CHECK:STDOUT: %addr.loc20: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc20: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc20) // CHECK:STDOUT: %Cpp.ref.loc33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc33: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %value.ref: %struct_type.a.b.c.e24 = name_ref value, %value -// CHECK:STDOUT: %.loc33: %ThreeFields.541 = converted %value.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc33: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc33: %ThreeFields.559 = converted %value.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc33: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc33: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc33) // CHECK:STDOUT: %Cpp.ref.loc46: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc46: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %reference.ref: ref %struct_type.a.b.c.e24 = name_ref reference, %reference -// CHECK:STDOUT: %.loc46: %ThreeFields.541 = converted %reference.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc46: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc46: %ThreeFields.559 = converted %reference.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc46: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc46: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc46) // CHECK:STDOUT: %Cpp.ref.loc59: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc59: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %MakeThreeFields.ref: %MakeThreeFields.type = name_ref MakeThreeFields, file.%MakeThreeFields.decl [concrete = constants.%MakeThreeFields] // CHECK:STDOUT: %.loc59_39.1: ref %struct_type.a.b.c.e24 = temporary_storage // CHECK:STDOUT: %MakeThreeFields.call: init %struct_type.a.b.c.e24 to %.loc59_39.1 = call %MakeThreeFields.ref() -// CHECK:STDOUT: %.loc59_39.2: %ThreeFields.541 = converted %MakeThreeFields.call, [concrete = ] -// CHECK:STDOUT: %addr.loc59: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc59_39.2: %ThreeFields.559 = converted %MakeThreeFields.call, [concrete = ] +// CHECK:STDOUT: %addr.loc59: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc59: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc59) // CHECK:STDOUT: %Cpp.ref.loc72: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc72: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] @@ -2716,15 +2716,15 @@ fn F() { // CHECK:STDOUT: %int_2.loc72: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %int_3.loc72: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc72_46.1: %struct_type.b.c.a = struct_literal (%int_1.loc72, %int_2.loc72, %int_3.loc72) [concrete = constants.%struct.d34] -// CHECK:STDOUT: %.loc72_46.2: %ThreeFields.541 = converted %.loc72_46.1, [concrete = ] -// CHECK:STDOUT: %addr.loc72: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc72_46.2: %ThreeFields.559 = converted %.loc72_46.1, [concrete = ] +// CHECK:STDOUT: %addr.loc72: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc72: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc72) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.541); +// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.559); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.494); +// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.f54); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_struct_init_field_mismatch.carbon // CHECK:STDOUT: @@ -2846,8 +2846,8 @@ fn F() { // CHECK:STDOUT: %PassNoFields.cpp_overload_set.type: type = cpp_overload_set_type @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete] // CHECK:STDOUT: %NoFields: type = class_type @NoFields [concrete] -// CHECK:STDOUT: %ptr.110: type = ptr_type %NoFields [concrete] -// CHECK:STDOUT: %pattern_type.c78: type = pattern_type %ptr.110 [concrete] +// CHECK:STDOUT: %ptr.e71: type = ptr_type %NoFields [concrete] +// CHECK:STDOUT: %pattern_type.730: type = pattern_type %ptr.e71 [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk.type: type = fn_type @PassNoFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassNoFields__carbon_thunk: %PassNoFields__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -2874,12 +2874,12 @@ fn F() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %tuple.type.37f: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.2d5: %tuple.type.37f = tuple_value (%int_1, %int_2, %int_3) [concrete] -// CHECK:STDOUT: %ThreeFields.541: type = class_type @ThreeFields.1 [concrete] -// CHECK:STDOUT: %ptr.494: type = ptr_type %ThreeFields.541 [concrete] -// CHECK:STDOUT: %pattern_type.d31: type = pattern_type %ptr.494 [concrete] +// CHECK:STDOUT: %ThreeFields.559: type = class_type @ThreeFields.1 [concrete] +// CHECK:STDOUT: %ptr.f54: type = ptr_type %ThreeFields.559 [concrete] +// CHECK:STDOUT: %pattern_type.905: type = pattern_type %ptr.f54 [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.type: type = fn_type @PassThreeFields__carbon_thunk [concrete] // CHECK:STDOUT: %PassThreeFields__carbon_thunk: %PassThreeFields__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.541, %i32 [concrete] +// CHECK:STDOUT: %ThreeFields.elem: type = unbound_element_type %ThreeFields.559, %i32 [concrete] // CHECK:STDOUT: %.16c: type = custom_layout_type {size=12, align=4, .a@0: %i32, .b@4: %i32, .c@8: %i32} [concrete] // CHECK:STDOUT: %complete_type.143: = complete_type_witness %.16c [concrete] // CHECK:STDOUT: } @@ -2898,21 +2898,21 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %PassNoFields.cpp_overload_set.value: %PassNoFields.cpp_overload_set.type = cpp_overload_set_value @PassNoFields.cpp_overload_set [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %PassNoFields__carbon_thunk.decl: %PassNoFields__carbon_thunk.type = fn_decl @PassNoFields__carbon_thunk [concrete = constants.%PassNoFields__carbon_thunk] { -// CHECK:STDOUT: %s.param_patt: %pattern_type.c78 = value_param_pattern [concrete] -// CHECK:STDOUT: %s.patt: %pattern_type.c78 = at_binding_pattern s, %s.param_patt [concrete] +// CHECK:STDOUT: %s.param_patt: %pattern_type.730 = value_param_pattern [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.730 = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %s.param: %ptr.110 = value_param call_param0 -// CHECK:STDOUT: %s: %ptr.110 = value_binding s, %s.param +// CHECK:STDOUT: %s.param: %ptr.e71 = value_param call_param0 +// CHECK:STDOUT: %s: %ptr.e71 = value_binding s, %s.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.649 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %PassThreeFields.cpp_overload_set.value: %PassThreeFields.cpp_overload_set.type = cpp_overload_set_value @PassThreeFields.cpp_overload_set [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.decl: %PassThreeFields__carbon_thunk.type = fn_decl @PassThreeFields__carbon_thunk [concrete = constants.%PassThreeFields__carbon_thunk] { -// CHECK:STDOUT: %t.param_patt: %pattern_type.d31 = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: %pattern_type.d31 = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: %pattern_type.905 = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.905 = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %t.param: %ptr.494 = value_param call_param0 -// CHECK:STDOUT: %t: %ptr.494 = value_binding t, %t.param +// CHECK:STDOUT: %t.param: %ptr.f54 = value_param call_param0 +// CHECK:STDOUT: %t: %ptr.f54 = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3036,33 +3036,33 @@ fn F() { // CHECK:STDOUT: %PassNoFields.ref.loc23: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %.loc23_21.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc23_21.2: %NoFields = converted %.loc23_21.1, [concrete = ] -// CHECK:STDOUT: %addr.loc23: %ptr.110 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc23: %ptr.e71 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc23: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc23) // CHECK:STDOUT: %Cpp.ref.loc36: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc36: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %value.ref: %empty_tuple.type = name_ref value, %value // CHECK:STDOUT: %.loc36: %NoFields = converted %value.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc36: %ptr.110 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc36: %ptr.e71 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc36: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc36) // CHECK:STDOUT: %Cpp.ref.loc49: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc49: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %reference.ref: ref %empty_tuple.type = name_ref reference, %reference // CHECK:STDOUT: %.loc49: %NoFields = converted %reference.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc49: %ptr.110 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc49: %ptr.e71 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc49: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc49) // CHECK:STDOUT: %Cpp.ref.loc62: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassNoFields.ref.loc62: %PassNoFields.cpp_overload_set.type = name_ref PassNoFields, imports.%PassNoFields.cpp_overload_set.value [concrete = constants.%PassNoFields.cpp_overload_set.value] // CHECK:STDOUT: %MakeEmpty.ref: %MakeEmpty.type = name_ref MakeEmpty, file.%MakeEmpty.decl [concrete = constants.%MakeEmpty] // CHECK:STDOUT: %MakeEmpty.call: init %empty_tuple.type = call %MakeEmpty.ref() // CHECK:STDOUT: %.loc62: %NoFields = converted %MakeEmpty.call, [concrete = ] -// CHECK:STDOUT: %addr.loc62: %ptr.110 = addr_of [concrete = ] +// CHECK:STDOUT: %addr.loc62: %ptr.e71 = addr_of [concrete = ] // CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc62: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc62) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @PassNoFields(%s.param: %NoFields); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.110); +// CHECK:STDOUT: fn @PassNoFields__carbon_thunk(%s.param: %ptr.e71); // CHECK:STDOUT: // CHECK:STDOUT: fn @MakeThreeFields() -> out %return.param: %tuple.type.a64; // CHECK:STDOUT: @@ -3074,35 +3074,35 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc79_31.1: %tuple.type.37f = tuple_literal (%int_1, %int_2, %int_3) [concrete = constants.%tuple.2d5] -// CHECK:STDOUT: %.loc79_31.2: %ThreeFields.541 = converted %.loc79_31.1, [concrete = ] -// CHECK:STDOUT: %addr.loc79: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc79_31.2: %ThreeFields.559 = converted %.loc79_31.1, [concrete = ] +// CHECK:STDOUT: %addr.loc79: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc79: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc79) // CHECK:STDOUT: %Cpp.ref.loc92: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc92: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %value.ref: %tuple.type.a64 = name_ref value, %value -// CHECK:STDOUT: %.loc92: %ThreeFields.541 = converted %value.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc92: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc92: %ThreeFields.559 = converted %value.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc92: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc92: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc92) // CHECK:STDOUT: %Cpp.ref.loc105: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc105: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %reference.ref: ref %tuple.type.a64 = name_ref reference, %reference -// CHECK:STDOUT: %.loc105: %ThreeFields.541 = converted %reference.ref, [concrete = ] -// CHECK:STDOUT: %addr.loc105: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc105: %ThreeFields.559 = converted %reference.ref, [concrete = ] +// CHECK:STDOUT: %addr.loc105: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc105: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc105) // CHECK:STDOUT: %Cpp.ref.loc118: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassThreeFields.ref.loc118: %PassThreeFields.cpp_overload_set.type = name_ref PassThreeFields, imports.%PassThreeFields.cpp_overload_set.value [concrete = constants.%PassThreeFields.cpp_overload_set.value] // CHECK:STDOUT: %MakeThreeFields.ref: %MakeThreeFields.type = name_ref MakeThreeFields, file.%MakeThreeFields.decl [concrete = constants.%MakeThreeFields] // CHECK:STDOUT: %.loc118_39.1: ref %tuple.type.a64 = temporary_storage // CHECK:STDOUT: %MakeThreeFields.call: init %tuple.type.a64 to %.loc118_39.1 = call %MakeThreeFields.ref() -// CHECK:STDOUT: %.loc118_39.2: %ThreeFields.541 = converted %MakeThreeFields.call, [concrete = ] -// CHECK:STDOUT: %addr.loc118: %ptr.494 = addr_of [concrete = ] +// CHECK:STDOUT: %.loc118_39.2: %ThreeFields.559 = converted %MakeThreeFields.call, [concrete = ] +// CHECK:STDOUT: %addr.loc118: %ptr.f54 = addr_of [concrete = ] // CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc118: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc118) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.541); +// CHECK:STDOUT: fn @PassThreeFields(%t.param: %ThreeFields.559); // CHECK:STDOUT: -// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.494); +// CHECK:STDOUT: fn @PassThreeFields__carbon_thunk(%t.param: %ptr.f54); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_int_from_struct.carbon // CHECK:STDOUT: @@ -3333,19 +3333,19 @@ fn F() { // CHECK:STDOUT: %struct_type.a.n.988: type = struct_type {.a: %struct_type.x.y, .n: Core.IntLiteral} [concrete] // CHECK:STDOUT: %struct.516: %struct_type.a.n.988 = struct_value (%struct.004, %int_3) [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %ptr.13d: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.dd8: type = pattern_type %ptr.13d [concrete] +// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.857: type = pattern_type %ptr.fab [concrete] // CHECK:STDOUT: %TakeB__carbon_thunk.type: type = fn_type @TakeB__carbon_thunk [concrete] // CHECK:STDOUT: %TakeB__carbon_thunk: %TakeB__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %B.elem.802: type = unbound_element_type %B, %A [concrete] +// CHECK:STDOUT: %B.elem.8d0: type = unbound_element_type %B, %A [concrete] // 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] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %B.elem.12f: type = unbound_element_type %B, %i32 [concrete] -// CHECK:STDOUT: %.949: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete] -// CHECK:STDOUT: %complete_type.02b: = complete_type_witness %.949 [concrete] +// CHECK:STDOUT: %B.elem.9b6: type = unbound_element_type %B, %i32 [concrete] +// CHECK:STDOUT: %.309: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete] +// CHECK:STDOUT: %complete_type.f92: = complete_type_witness %.309 [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %i32 [concrete] // CHECK:STDOUT: %.4d7: type = custom_layout_type {size=8, align=4, .x@0: %i32, .y@4: %i32} [concrete] // CHECK:STDOUT: %complete_type.76b: = complete_type_witness %.4d7 [concrete] @@ -3366,11 +3366,11 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %TakeB.cpp_overload_set.value: %TakeB.cpp_overload_set.type = cpp_overload_set_value @TakeB.cpp_overload_set [concrete = constants.%TakeB.cpp_overload_set.value] // CHECK:STDOUT: %TakeB__carbon_thunk.decl: %TakeB__carbon_thunk.type = fn_decl @TakeB__carbon_thunk [concrete = constants.%TakeB__carbon_thunk] { -// CHECK:STDOUT: %_.param_patt: %pattern_type.dd8 = value_param_pattern [concrete] -// CHECK:STDOUT: %_.patt: %pattern_type.dd8 = at_binding_pattern _, %_.param_patt [concrete] +// CHECK:STDOUT: %_.param_patt: %pattern_type.857 = value_param_pattern [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.857 = at_binding_pattern _, %_.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %_.param: %ptr.13d = value_param call_param0 -// CHECK:STDOUT: %_: %ptr.13d = value_binding _, %_.param +// CHECK:STDOUT: %_.param: %ptr.fab = value_param call_param0 +// CHECK:STDOUT: %_: %ptr.fab = value_binding _, %_.param // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.649 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] @@ -3390,13 +3390,13 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { -// CHECK:STDOUT: %.1: %B.elem.802 = field_decl a, element0 [concrete] +// CHECK:STDOUT: %.1: %B.elem.8d0 = field_decl a, element0 [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.1: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %i32.2: type = type_literal %i32.1 [concrete = constants.%i32] -// CHECK:STDOUT: %.2: %B.elem.12f = field_decl n, element1 [concrete] -// CHECK:STDOUT: %.3: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete = constants.%.949] -// CHECK:STDOUT: %complete_type: = complete_type_witness %.3 [concrete = constants.%complete_type.02b] +// CHECK:STDOUT: %.2: %B.elem.9b6 = field_decl n, element1 [concrete] +// CHECK:STDOUT: %.3: type = custom_layout_type {size=12, align=4, .a@0: %A, .n@8: %i32} [concrete = constants.%.309] +// CHECK:STDOUT: %complete_type: = complete_type_witness %.3 [concrete = constants.%complete_type.f92] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -3430,14 +3430,14 @@ fn F() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc18_43.1: %struct_type.a.n.988 = struct_literal (%.loc18_34, %int_3) [concrete = constants.%struct.516] // CHECK:STDOUT: %.loc18_43.2: %B = converted %.loc18_43.1, [concrete = ] -// CHECK:STDOUT: %addr: %ptr.13d = addr_of [concrete = ] +// CHECK:STDOUT: %addr: %ptr.fab = addr_of [concrete = ] // CHECK:STDOUT: %TakeB__carbon_thunk.call: init %empty_tuple.type = call imports.%TakeB__carbon_thunk.decl(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @TakeB(%_.param: %B); // CHECK:STDOUT: -// CHECK:STDOUT: fn @TakeB__carbon_thunk(%_.param: %ptr.13d); +// CHECK:STDOUT: fn @TakeB__carbon_thunk(%_.param: %ptr.fab); // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_upsizing_rejected.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon index 499a8bccd39b..a00f092a3c6d 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon @@ -433,12 +433,12 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -463,8 +463,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -479,7 +479,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %s.ref +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) @@ -492,7 +492,7 @@ fn F() { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %S [concrete] // CHECK:STDOUT: %const: type = const_type %ptr [concrete] -// CHECK:STDOUT: %pattern_type.c1f: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.252: 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] @@ -522,8 +522,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.c1f = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.c1f = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.252 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.252 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %p.var: ref %const = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -561,25 +561,25 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.761: type = pattern_type %ptr.9e9 [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b03: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.aed: %ptr.as.Copy.impl.Op.type.b03 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.ace: = impl_witness imports.%Copy.impl_witness_table.bfb, @ptr.as.Copy.impl(%S) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b0f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%S) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.724: %ptr.as.Copy.impl.Op.type.b0f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.9e9, (%Copy.impl_witness.ace) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.24b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.c38: type = fn_type_with_self_type %Copy.WithSelf.Op.type.24b, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.724, @ptr.as.Copy.impl.Op(%S) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.00d: = impl_witness imports.%Copy.impl_witness_table.bfb, @ptr.as.Copy.impl(%S) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.541: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%S) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.a63: %ptr.as.Copy.impl.Op.type.541 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.055, (%Copy.impl_witness.00d) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.5c0: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.6fe: type = fn_type_with_self_type %Copy.WithSelf.Op.type.5c0, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.a63, @ptr.as.Copy.impl.Op(%S) [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.130: type = ptr_type %ptr.9e9 [concrete] +// CHECK:STDOUT: %ptr.ce4: type = ptr_type %ptr.055 [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] @@ -608,8 +608,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -622,28 +622,28 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %s: ref %S = ref_binding s, %s.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.761 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.761 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f1e = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.f1e = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.9e9 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %ptr.055 = var %p.var_patt // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr.loc9: %ptr.9e9 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.c38 = impl_witness_access constants.%Copy.impl_witness.ace, element0 [concrete = constants.%ptr.as.Copy.impl.Op.724] +// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %s.ref +// CHECK:STDOUT: %impl.elem0: %.6fe = impl_witness_access constants.%Copy.impl_witness.00d, element0 [concrete = constants.%ptr.as.Copy.impl.Op.a63] // CHECK:STDOUT: %bound_method.loc9_19.1: = bound_method %addr.loc9, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%S) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_19.2: = bound_method %addr.loc9, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.9e9 = call %bound_method.loc9_19.2(%addr.loc9) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.055 = call %bound_method.loc9_19.2(%addr.loc9) // CHECK:STDOUT: assign %p.var, %ptr.as.Copy.impl.Op.call -// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.9e9] { +// CHECK:STDOUT: %.loc9: type = splice_block %ptr [concrete = constants.%ptr.055] { // 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.9e9] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc9 [concrete = constants.%ptr.055] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.9e9 = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %ptr.055 = ref_binding p, %p.var // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %p.ref: ref %ptr.9e9 = name_ref p, %p -// CHECK:STDOUT: %addr.loc10: %ptr.130 = addr_of %p.ref +// CHECK:STDOUT: %p.ref: ref %ptr.055 = name_ref p, %p +// CHECK:STDOUT: %addr.loc10: %ptr.ce4 = addr_of %p.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr.loc10) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %p.var, constants.%Destroy.Op // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%p.var) @@ -652,20 +652,20 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.9e9) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.055) = "no_op"; // CHECK:STDOUT: // CHECK:STDOUT: --- import_non_nullable_pointer_to_const_param_using_const.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %pattern_type.16e: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.f43: 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: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.8ef: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.26e: 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.Op.type: type = fn_type @Destroy.Op [concrete] @@ -690,8 +690,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.16e = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.16e = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.f43 = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.f43 = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // 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] @@ -707,7 +707,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %const = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.8ef = addr_of %s.ref +// CHECK:STDOUT: %addr: %ptr.26e = addr_of %s.ref // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %s.var, constants.%Destroy.Op // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%s.var) @@ -723,15 +723,15 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [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: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.8ef: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -756,8 +756,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -772,9 +772,9 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %s.ref -// CHECK:STDOUT: %.loc9_11.1: %ptr.8ef = as_compatible %addr -// CHECK:STDOUT: %.loc9_11.2: %ptr.8ef = converted %addr, %.loc9_11.1 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref +// CHECK:STDOUT: %.loc9_11.1: %ptr.26e = as_compatible %addr +// CHECK:STDOUT: %.loc9_11.2: %ptr.26e = converted %addr, %.loc9_11.1 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc9_11.2) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) @@ -787,7 +787,7 @@ fn F() { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %S [concrete] // CHECK:STDOUT: %const: type = const_type %ptr [concrete] -// CHECK:STDOUT: %pattern_type.c1f: type = pattern_type %const [concrete] +// CHECK:STDOUT: %pattern_type.252: 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] @@ -817,8 +817,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.c1f = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.c1f = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.252 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.252 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %p.var: ref %const = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -855,7 +855,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.761: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr [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] @@ -885,8 +885,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.761 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.761 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f1e = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.f1e = var_pattern %p.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %p.var: ref %ptr = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] @@ -914,9 +914,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] -// CHECK:STDOUT: %const.1f8: type = const_type %ptr.9e9 [concrete] -// CHECK:STDOUT: %pattern_type.c1f: type = pattern_type %const.1f8 [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %const.acb: type = const_type %ptr.055 [concrete] +// CHECK:STDOUT: %pattern_type.252: type = pattern_type %const.acb [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] @@ -935,14 +935,14 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.1: type = fn_type @Destroy.Op.1 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.1: %Destroy.Op.type.af7ec0.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.1: = custom_witness (%Destroy.Op.1dc86d.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %ptr.9e9, (%custom_witness.340963.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.cc9: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.489) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.5b4: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.71f: %OptionalStorage.type = facet_value %ptr.9e9, (%OptionalStorage.impl_witness.5b4) [concrete] -// CHECK:STDOUT: %Optional.9fa: type = class_type @Optional, @Optional(%OptionalStorage.facet.71f) [concrete] +// CHECK:STDOUT: %Destroy.facet.a72: %Destroy.type = facet_value %ptr.055, (%custom_witness.340963.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.1dc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.a72) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.a92: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.4d2: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.a92) [concrete] +// CHECK:STDOUT: %Optional.bda: type = class_type @Optional, @Optional(%OptionalStorage.facet.4d2) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.e84: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.9fa)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.dbc: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.bda)> [concrete] // CHECK:STDOUT: %ImplicitAs.type.0b443a.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.67d)> [symbolic] // CHECK:STDOUT: %U.2dd: %ImplicitAs.type.0b443a.2 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.74b: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%T.67d, %U.2dd) [symbolic] @@ -951,20 +951,20 @@ fn F() { // CHECK:STDOUT: %U.00a: %OptionalAs.type.c8f = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%T.390, %U.00a) [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.7c5: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.608: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.71f)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.230: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.4d2)> [concrete] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.135: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.390) [symbolic] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.8c2: %T.as_type.as.OptionalAs.impl.Convert.type.135 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.7c4: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.71f) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.608 = facet_value %ptr.9e9, (%OptionalAs.impl_witness.7c4) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.810: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a0a: %ImplicitAs.type.e84 = facet_value %ptr.9e9, (%ImplicitAs.impl_witness.810) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.d62: = impl_witness imports.%ImplicitAs.impl_witness_table.e4b, @const.as.ImplicitAs.impl(%Optional.9fa, %ImplicitAs.facet.a0a) [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.a2c: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%Optional.9fa, %ImplicitAs.facet.a0a) [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.819: %const.as.ImplicitAs.impl.Convert.type.a2c = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.56b: %ImplicitAs.type.e84 = facet_value %const.1f8, (%ImplicitAs.impl_witness.d62) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.d43: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.9fa, %ImplicitAs.facet.56b) [concrete] -// CHECK:STDOUT: %.a78: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.d43, %ImplicitAs.facet.56b [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %const.as.ImplicitAs.impl.Convert.819, @const.as.ImplicitAs.impl.Convert(%Optional.9fa, %ImplicitAs.facet.a0a) [concrete] +// CHECK:STDOUT: %OptionalAs.impl_witness.773: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.4d2) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.230 = facet_value %ptr.055, (%OptionalAs.impl_witness.773) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.c98: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2c5: %ImplicitAs.type.dbc = facet_value %ptr.055, (%ImplicitAs.impl_witness.c98) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.d02: = impl_witness imports.%ImplicitAs.impl_witness_table.e4b, @const.as.ImplicitAs.impl(%Optional.bda, %ImplicitAs.facet.2c5) [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.28c: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%Optional.bda, %ImplicitAs.facet.2c5) [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.084: %const.as.ImplicitAs.impl.Convert.type.28c = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.24c: %ImplicitAs.type.dbc = facet_value %const.acb, (%ImplicitAs.impl_witness.d02) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8fe: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.bda, %ImplicitAs.facet.24c) [concrete] +// CHECK:STDOUT: %.0f9: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8fe, %ImplicitAs.facet.24c [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %const.as.ImplicitAs.impl.Convert.084, @const.as.ImplicitAs.impl.Convert(%Optional.bda, %ImplicitAs.facet.2c5) [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.3: type = fn_type @Destroy.Op.loc11_11.2 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.3: %Destroy.Op.type.af7ec0.3 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.4: type = fn_type @Destroy.Op.loc10 [concrete] @@ -990,10 +990,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.9fa] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.71f) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.bda] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.4d2) [concrete = constants.%Optional.bda] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1008,33 +1008,33 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.c1f = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.c1f = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.252 = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.252 = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %const.1f8 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %const.acb = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] -// CHECK:STDOUT: %G.call: init %const.1f8 = call %G.ref() +// CHECK:STDOUT: %G.call: init %const.acb = call %G.ref() // CHECK:STDOUT: assign %p.var, %G.call -// CHECK:STDOUT: %.loc10: type = splice_block %const [concrete = constants.%const.1f8] { +// CHECK:STDOUT: %.loc10: type = splice_block %const [concrete = constants.%const.acb] { // 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: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.9e9] -// CHECK:STDOUT: %const: type = const_type %ptr [concrete = constants.%const.1f8] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.055] +// CHECK:STDOUT: %const: type = const_type %ptr [concrete = constants.%const.acb] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %const.1f8 = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %const.acb = ref_binding p, %p.var // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %p.ref: ref %const.1f8 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.a78 = impl_witness_access constants.%ImplicitAs.impl_witness.d62, element0 [concrete = constants.%const.as.ImplicitAs.impl.Convert.819] +// CHECK:STDOUT: %p.ref: ref %const.acb = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.0f9 = impl_witness_access constants.%ImplicitAs.impl_witness.d02, element0 [concrete = constants.%const.as.ImplicitAs.impl.Convert.084] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.ImplicitAs.impl.Convert(constants.%Optional.9fa, constants.%ImplicitAs.facet.a0a) [concrete = constants.%const.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.ImplicitAs.impl.Convert(constants.%Optional.bda, constants.%ImplicitAs.facet.2c5) [concrete = constants.%const.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %.loc11_11.1: %const.1f8 = acquire_value %p.ref -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.call: init %Optional.9fa = call %bound_method.loc11_11.2(%.loc11_11.1) -// CHECK:STDOUT: %.loc11_11.2: init %Optional.9fa = converted %p.ref, %const.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_11.3: ref %Optional.9fa = temporary_storage -// CHECK:STDOUT: %.loc11_11.4: ref %Optional.9fa = temporary %.loc11_11.3, %.loc11_11.2 -// CHECK:STDOUT: %.loc11_11.5: %Optional.9fa = acquire_value %.loc11_11.4 +// CHECK:STDOUT: %.loc11_11.1: %const.acb = acquire_value %p.ref +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.call: init %Optional.bda = call %bound_method.loc11_11.2(%.loc11_11.1) +// CHECK:STDOUT: %.loc11_11.2: init %Optional.bda = converted %p.ref, %const.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_11.3: ref %Optional.bda = temporary_storage +// CHECK:STDOUT: %.loc11_11.4: ref %Optional.bda = temporary %.loc11_11.3, %.loc11_11.2 +// CHECK:STDOUT: %.loc11_11.5: %Optional.bda = acquire_value %.loc11_11.4 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc11_11.5) // CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_11.4, constants.%Destroy.Op.1dc86d.3 // CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_11.4) @@ -1043,17 +1043,17 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.1dc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.9fa) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.bda) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %const.1f8) { +// CHECK:STDOUT: fn @Destroy.Op.loc10(%self.param: ref %const.acb) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1062,8 +1062,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.761: type = pattern_type %ptr.9e9 [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [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] @@ -1082,30 +1082,30 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.1: type = fn_type @Destroy.Op.1 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.1: %Destroy.Op.type.af7ec0.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.1: = custom_witness (%Destroy.Op.1dc86d.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %ptr.9e9, (%custom_witness.340963.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.cc9: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.489) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.5b4: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.71f: %OptionalStorage.type = facet_value %ptr.9e9, (%OptionalStorage.impl_witness.5b4) [concrete] -// CHECK:STDOUT: %Optional.9fa: type = class_type @Optional, @Optional(%OptionalStorage.facet.71f) [concrete] +// CHECK:STDOUT: %Destroy.facet.a72: %Destroy.type = facet_value %ptr.055, (%custom_witness.340963.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.1dc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.a72) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.a92: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.4d2: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.a92) [concrete] +// CHECK:STDOUT: %Optional.bda: type = class_type @Optional, @Optional(%OptionalStorage.facet.4d2) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.e84: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.9fa)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.dbc: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.bda)> [concrete] // CHECK:STDOUT: %OptionalAs.type.c8f: type = facet_type <@OptionalAs, @OptionalAs(%T.390)> [symbolic] // CHECK:STDOUT: %U.00a: %OptionalAs.type.c8f = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%T.390, %U.00a) [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.7c5: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.608: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.71f)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.230: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.4d2)> [concrete] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.135: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.390) [symbolic] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.8c2: %T.as_type.as.OptionalAs.impl.Convert.type.135 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.7c4: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.71f) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.608 = facet_value %ptr.9e9, (%OptionalAs.impl_witness.7c4) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.810: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.b75: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.506: %U.as_type.as.ImplicitAs.impl.Convert.type.b75 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a0a: %ImplicitAs.type.e84 = facet_value %ptr.9e9, (%ImplicitAs.impl_witness.810) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.71d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.9fa, %ImplicitAs.facet.a0a) [concrete] -// CHECK:STDOUT: %.820: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.71d, %ImplicitAs.facet.a0a [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.506, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %OptionalAs.impl_witness.773: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.4d2) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.230 = facet_value %ptr.055, (%OptionalAs.impl_witness.773) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.c98: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.c7f: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.f4b: %U.as_type.as.ImplicitAs.impl.Convert.type.c7f = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2c5: %ImplicitAs.type.dbc = facet_value %ptr.055, (%ImplicitAs.impl_witness.c98) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.887: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.bda, %ImplicitAs.facet.2c5) [concrete] +// CHECK:STDOUT: %.9cb: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.887, %ImplicitAs.facet.2c5 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.f4b, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.3: type = fn_type @Destroy.Op.loc11_11.2 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.3: %Destroy.Op.type.af7ec0.3 = struct_value () [concrete] // CHECK:STDOUT: } @@ -1129,10 +1129,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.9fa] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.71f) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %.loc11_12.1: type = splice_block %Optional [concrete = constants.%Optional.bda] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %.loc11_12.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.4d2) [concrete = constants.%Optional.bda] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1145,32 +1145,32 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.761 = ref_binding_pattern p [concrete] -// CHECK:STDOUT: %p.var_patt: %pattern_type.761 = var_pattern %p.patt [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f1e = ref_binding_pattern p [concrete] +// CHECK:STDOUT: %p.var_patt: %pattern_type.f1e = var_pattern %p.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %p.var: ref %ptr.9e9 = var %p.var_patt +// CHECK:STDOUT: %p.var: ref %ptr.055 = var %p.var_patt // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] -// CHECK:STDOUT: %G.call: init %ptr.9e9 = call %G.ref() +// CHECK:STDOUT: %G.call: init %ptr.055 = call %G.ref() // CHECK:STDOUT: assign %p.var, %G.call -// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr.9e9] { +// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = constants.%ptr.055] { // 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: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.9e9] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.055] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: ref %ptr.9e9 = ref_binding p, %p.var +// CHECK:STDOUT: %p: ref %ptr.055 = ref_binding p, %p.var // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %p.ref: ref %ptr.9e9 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.820 = impl_witness_access constants.%ImplicitAs.impl_witness.810, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.506] +// CHECK:STDOUT: %p.ref: ref %ptr.055 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.9cb = impl_witness_access constants.%ImplicitAs.impl_witness.c98, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.f4b] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.71f, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.4d2, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %.loc11_11.1: %ptr.9e9 = acquire_value %p.ref -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.9fa = call %bound_method.loc11_11.2(%.loc11_11.1) -// CHECK:STDOUT: %.loc11_11.2: init %Optional.9fa = converted %p.ref, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_11.3: ref %Optional.9fa = temporary_storage -// CHECK:STDOUT: %.loc11_11.4: ref %Optional.9fa = temporary %.loc11_11.3, %.loc11_11.2 -// CHECK:STDOUT: %.loc11_11.5: %Optional.9fa = acquire_value %.loc11_11.4 +// CHECK:STDOUT: %.loc11_11.1: %ptr.055 = acquire_value %p.ref +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.bda = call %bound_method.loc11_11.2(%.loc11_11.1) +// CHECK:STDOUT: %.loc11_11.2: init %Optional.bda = converted %p.ref, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_11.3: ref %Optional.bda = temporary_storage +// CHECK:STDOUT: %.loc11_11.4: ref %Optional.bda = temporary %.loc11_11.3, %.loc11_11.2 +// CHECK:STDOUT: %.loc11_11.5: %Optional.bda = acquire_value %.loc11_11.4 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc11_11.5) // CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_11.4, constants.%Destroy.Op.1dc86d.3 // CHECK:STDOUT: %Destroy.Op.call.loc11: init %empty_tuple.type = call %Destroy.Op.bound.loc11(%.loc11_11.4) @@ -1179,12 +1179,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.1(%self.param: ref %MaybeUnformed.1dc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.9fa) { +// CHECK:STDOUT: fn @Destroy.Op.loc11_11.2(%self.param: ref %Optional.bda) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1237,8 +1237,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] -// CHECK:STDOUT: %ptr.130: type = ptr_type %ptr.9e9 [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.ce4: type = ptr_type %ptr.055 [concrete] // CHECK:STDOUT: %IngestDoublePointer.type: type = fn_type @IngestDoublePointer [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %IngestDoublePointer: %IngestDoublePointer.type = struct_value () [concrete] @@ -1268,13 +1268,13 @@ fn F() { // CHECK:STDOUT: %IngestDoublePointer.ref: %IngestDoublePointer.type = name_ref IngestDoublePointer, file.%IngestDoublePointer.decl [concrete = constants.%IngestDoublePointer] // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc10: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %foo.call.loc10: init %ptr.130 = call imports.%foo.decl() -// CHECK:STDOUT: %.loc10_31.1: %ptr.130 = value_of_initializer %foo.call.loc10 -// CHECK:STDOUT: %.loc10_31.2: %ptr.130 = converted %foo.call.loc10, %.loc10_31.1 +// CHECK:STDOUT: %foo.call.loc10: init %ptr.ce4 = call imports.%foo.decl() +// CHECK:STDOUT: %.loc10_31.1: %ptr.ce4 = value_of_initializer %foo.call.loc10 +// CHECK:STDOUT: %.loc10_31.2: %ptr.ce4 = converted %foo.call.loc10, %.loc10_31.1 // CHECK:STDOUT: %IngestDoublePointer.call: init %empty_tuple.type = call %IngestDoublePointer.ref(%.loc10_31.2) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref.loc11: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %foo.call.loc11: init %ptr.130 = call imports.%foo.decl() +// CHECK:STDOUT: %foo.call.loc11: init %ptr.ce4 = call imports.%foo.decl() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1329,12 +1329,12 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %T.390: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] @@ -1348,30 +1348,30 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.1: type = fn_type @Destroy.Op.1 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.1: %Destroy.Op.type.af7ec0.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.1: = custom_witness (%Destroy.Op.1dc86d.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %ptr.9e9, (%custom_witness.340963.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.cc9: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.489) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.5b4: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.71f: %OptionalStorage.type = facet_value %ptr.9e9, (%OptionalStorage.impl_witness.5b4) [concrete] -// CHECK:STDOUT: %Optional.9fa: type = class_type @Optional, @Optional(%OptionalStorage.facet.71f) [concrete] +// CHECK:STDOUT: %Destroy.facet.a72: %Destroy.type = facet_value %ptr.055, (%custom_witness.340963.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.1dc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.a72) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.a92: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.4d2: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.a92) [concrete] +// CHECK:STDOUT: %Optional.bda: type = class_type @Optional, @Optional(%OptionalStorage.facet.4d2) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.e84: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.9fa)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.dbc: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.bda)> [concrete] // CHECK:STDOUT: %OptionalAs.type.c8f: type = facet_type <@OptionalAs, @OptionalAs(%T.390)> [symbolic] // CHECK:STDOUT: %U.00a: %OptionalAs.type.c8f = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%T.390, %U.00a) [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.7c5: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.608: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.71f)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.230: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.4d2)> [concrete] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.135: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.390) [symbolic] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.8c2: %T.as_type.as.OptionalAs.impl.Convert.type.135 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.7c4: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.71f) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.608 = facet_value %ptr.9e9, (%OptionalAs.impl_witness.7c4) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.810: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.b75: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.506: %U.as_type.as.ImplicitAs.impl.Convert.type.b75 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a0a: %ImplicitAs.type.e84 = facet_value %ptr.9e9, (%ImplicitAs.impl_witness.810) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.71d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.9fa, %ImplicitAs.facet.a0a) [concrete] -// CHECK:STDOUT: %.820: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.71d, %ImplicitAs.facet.a0a [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.506, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %OptionalAs.impl_witness.773: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.4d2) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.230 = facet_value %ptr.055, (%OptionalAs.impl_witness.773) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.c98: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.c7f: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.f4b: %U.as_type.as.ImplicitAs.impl.Convert.type.c7f = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2c5: %ImplicitAs.type.dbc = facet_value %ptr.055, (%ImplicitAs.impl_witness.c98) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.887: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.bda, %ImplicitAs.facet.2c5) [concrete] +// CHECK:STDOUT: %.9cb: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.887, %ImplicitAs.facet.2c5 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.f4b, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.3: type = fn_type @Destroy.Op.loc9_11.2 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.3: %Destroy.Op.type.af7ec0.3 = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -1397,10 +1397,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc9_13.1: type = splice_block %Optional [concrete = constants.%Optional.9fa] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %.loc9_13.2: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.71f) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %.loc9_13.1: type = splice_block %Optional [concrete = constants.%Optional.bda] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %.loc9_13.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.4d2) [concrete = constants.%Optional.bda] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1413,8 +1413,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1429,16 +1429,16 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.820 = impl_witness_access constants.%ImplicitAs.impl_witness.810, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.506] +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref +// CHECK:STDOUT: %impl.elem0: %.9cb = impl_witness_access constants.%ImplicitAs.impl_witness.c98, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.f4b] // CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %addr, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.71f, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.4d2, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_11.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.9fa = call %bound_method.loc9_11.2(%addr) -// CHECK:STDOUT: %.loc9_11.1: init %Optional.9fa = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc9_11.2: ref %Optional.9fa = temporary_storage -// CHECK:STDOUT: %.loc9_11.3: ref %Optional.9fa = temporary %.loc9_11.2, %.loc9_11.1 -// CHECK:STDOUT: %.loc9_11.4: %Optional.9fa = acquire_value %.loc9_11.3 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.bda = call %bound_method.loc9_11.2(%addr) +// CHECK:STDOUT: %.loc9_11.1: init %Optional.bda = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc9_11.2: ref %Optional.bda = temporary_storage +// CHECK:STDOUT: %.loc9_11.3: ref %Optional.bda = temporary %.loc9_11.2, %.loc9_11.1 +// CHECK:STDOUT: %.loc9_11.4: %Optional.bda = acquire_value %.loc9_11.3 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc9_11.4) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_11.3, constants.%Destroy.Op.1dc86d.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc9_11.3) @@ -1447,12 +1447,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_11.1(%self.param: ref %MaybeUnformed.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_11.1(%self.param: ref %MaybeUnformed.1dc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_11.2(%self.param: ref %Optional.9fa) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_11.2(%self.param: ref %Optional.bda) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1470,7 +1470,7 @@ fn F() { // CHECK:STDOUT: %Optional.None.type.961: type = fn_type @Optional.None, @Optional(%T.390) [symbolic] // CHECK:STDOUT: %Optional.None.c55: %Optional.None.type.961 = struct_value () [symbolic] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] @@ -1482,14 +1482,14 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.1: type = fn_type @Destroy.Op.1 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.1: %Destroy.Op.type.af7ec0.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.1: = custom_witness (%Destroy.Op.1dc86d.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %ptr.9e9, (%custom_witness.340963.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.cc9: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.489) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.657: = impl_witness imports.%OptionalStorage.impl_witness_table.e4f, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.9e9, (%OptionalStorage.impl_witness.657) [concrete] -// CHECK:STDOUT: %Optional.bf0: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.type.175: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.540: %Optional.None.type.175 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.540, @Optional.None(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Destroy.facet.a72: %Destroy.type = facet_value %ptr.055, (%custom_witness.340963.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.1dc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.a72) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.e90: = impl_witness imports.%OptionalStorage.impl_witness_table.e4f, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.e90) [concrete] +// CHECK:STDOUT: %Optional.3e2: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.type.9a3: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.516: %Optional.None.type.9a3 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.516, @Optional.None(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.3: type = fn_type @Destroy.Op.loc8_38.2 [concrete] @@ -1523,10 +1523,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc8_39.1: type = splice_block %Optional [concrete = constants.%Optional.bf0] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.657) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc8_39.2: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.bf0] +// CHECK:STDOUT: %.loc8_39.1: type = splice_block %Optional [concrete = constants.%Optional.3e2] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.e90) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc8_39.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.3e2] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1541,29 +1541,29 @@ fn F() { // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.9e9] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.657) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref [concrete = constants.%ptr.055] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.e90) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc8_31: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.bf0] -// CHECK:STDOUT: %.loc8_32: %Optional.None.type.175 = specific_constant imports.%Core.import_ref.bd6, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.540] -// CHECK:STDOUT: %None.ref: %Optional.None.type.175 = name_ref None, %.loc8_32 [concrete = constants.%Optional.None.540] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.3e2] +// CHECK:STDOUT: %.loc8_32: %Optional.None.type.9a3 = specific_constant imports.%Core.import_ref.bd6, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.516] +// CHECK:STDOUT: %None.ref: %Optional.None.type.9a3 = name_ref None, %.loc8_32 [concrete = constants.%Optional.None.516] // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %None.ref, @Optional.None(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.specific_fn] -// CHECK:STDOUT: %Optional.None.call: init %Optional.bf0 = call %Optional.None.specific_fn() -// CHECK:STDOUT: %.loc8_38.1: ref %Optional.bf0 = temporary_storage -// CHECK:STDOUT: %.loc8_38.2: ref %Optional.bf0 = temporary %.loc8_38.1, %Optional.None.call -// CHECK:STDOUT: %.loc8_38.3: %Optional.bf0 = acquire_value %.loc8_38.2 +// CHECK:STDOUT: %Optional.None.call: init %Optional.3e2 = call %Optional.None.specific_fn() +// CHECK:STDOUT: %.loc8_38.1: ref %Optional.3e2 = temporary_storage +// CHECK:STDOUT: %.loc8_38.2: ref %Optional.3e2 = temporary %.loc8_38.1, %Optional.None.call +// CHECK:STDOUT: %.loc8_38.3: %Optional.3e2 = acquire_value %.loc8_38.2 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_38.3) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_38.2, constants.%Destroy.Op.1dc86d.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_38.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_38.1(%self.param: ref %MaybeUnformed.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_38.1(%self.param: ref %MaybeUnformed.1dc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_38.2(%self.param: ref %Optional.bf0) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_38.2(%self.param: ref %Optional.3e2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1574,7 +1574,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] @@ -1585,7 +1585,7 @@ fn F() { // CHECK:STDOUT: %T.390: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Optional.Some.type.b38: type = fn_type @Optional.Some, @Optional(%T.390) [symbolic] // CHECK:STDOUT: %Optional.Some.49b: %Optional.Some.type.b38 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] @@ -1597,14 +1597,14 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.1: type = fn_type @Destroy.Op.1 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.1: %Destroy.Op.type.af7ec0.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.1: = custom_witness (%Destroy.Op.1dc86d.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %ptr.9e9, (%custom_witness.340963.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.cc9: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.489) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.5b4: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.9e9, (%OptionalStorage.impl_witness.5b4) [concrete] -// CHECK:STDOUT: %Optional.9fa: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.Some.type.367: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.Some.6f2: %Optional.Some.type.367 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.6f2, @Optional.Some(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Destroy.facet.a72: %Destroy.type = facet_value %ptr.055, (%custom_witness.340963.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.1dc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.a72) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.a92: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.a92) [concrete] +// CHECK:STDOUT: %Optional.bda: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.Some.type.405: type = fn_type @Optional.Some, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.Some.2e8: %Optional.Some.type.405 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Optional.Some.2e8, @Optional.Some(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.3: type = fn_type @Destroy.Op.loc9_40.2 [concrete] @@ -1640,10 +1640,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc9_41.1: type = splice_block %Optional [concrete = constants.%Optional.9fa] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc9_41.2: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %.loc9_41.1: type = splice_block %Optional [concrete = constants.%Optional.bda] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc9_41.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.bda] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1653,8 +1653,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1672,21 +1672,21 @@ fn F() { // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc9_25: = 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.9e9] -// CHECK:STDOUT: %OptionalStorage.facet.loc9_31: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc9 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %OptionalStorage.facet.loc9_31: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc9_31: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet.loc9_31 [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.9fa] -// CHECK:STDOUT: %.loc9_32: %Optional.Some.type.367 = specific_constant imports.%Core.import_ref.8ae4, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Some.6f2] -// CHECK:STDOUT: %Some.ref: %Optional.Some.type.367 = name_ref Some, %.loc9_32 [concrete = constants.%Optional.Some.6f2] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.bda] +// CHECK:STDOUT: %.loc9_32: %Optional.Some.type.405 = specific_constant imports.%Core.import_ref.8ae4, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Some.2e8] +// CHECK:STDOUT: %Some.ref: %Optional.Some.type.405 = name_ref Some, %.loc9_32 [concrete = constants.%Optional.Some.2e8] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %s.ref -// CHECK:STDOUT: %OptionalStorage.facet.loc9_40: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc9_40.1: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet.loc9_40 [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref +// CHECK:STDOUT: %OptionalStorage.facet.loc9_40: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc9_40.1: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet.loc9_40 [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %Optional.Some.specific_fn: = specific_function %Some.ref, @Optional.Some(constants.%OptionalStorage.facet) [concrete = constants.%Optional.Some.specific_fn] -// CHECK:STDOUT: %Optional.Some.call: init %Optional.9fa = call %Optional.Some.specific_fn(%addr) -// CHECK:STDOUT: %.loc9_40.2: ref %Optional.9fa = temporary_storage -// CHECK:STDOUT: %.loc9_40.3: ref %Optional.9fa = temporary %.loc9_40.2, %Optional.Some.call -// CHECK:STDOUT: %.loc9_40.4: %Optional.9fa = acquire_value %.loc9_40.3 +// CHECK:STDOUT: %Optional.Some.call: init %Optional.bda = call %Optional.Some.specific_fn(%addr) +// CHECK:STDOUT: %.loc9_40.2: ref %Optional.bda = temporary_storage +// CHECK:STDOUT: %.loc9_40.3: ref %Optional.bda = temporary %.loc9_40.2, %Optional.Some.call +// CHECK:STDOUT: %.loc9_40.4: %Optional.bda = acquire_value %.loc9_40.3 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc9_40.4) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc9_40.3, constants.%Destroy.Op.1dc86d.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc9_40.3) @@ -1695,12 +1695,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_40.1(%self.param: ref %MaybeUnformed.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_40.1(%self.param: ref %MaybeUnformed.1dc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc9_40.2(%self.param: ref %Optional.9fa) { +// CHECK:STDOUT: fn @Destroy.Op.loc9_40.2(%self.param: ref %Optional.bda) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1714,7 +1714,7 @@ fn F() { // CHECK:STDOUT: %get.cpp_overload_set.type: type = cpp_overload_set_type @get.cpp_overload_set [concrete] // CHECK:STDOUT: %get.cpp_overload_set.value: %get.cpp_overload_set.type = cpp_overload_set_value @get.cpp_overload_set [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] @@ -1725,11 +1725,11 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.1: type = fn_type @Destroy.Op.1 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.1: %Destroy.Op.type.af7ec0.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.1: = custom_witness (%Destroy.Op.1dc86d.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %ptr.9e9, (%custom_witness.340963.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.cc9: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.489) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.968: = impl_witness imports.%OptionalStorage.impl_witness_table.54e, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.9e9, (%OptionalStorage.impl_witness.968) [concrete] -// CHECK:STDOUT: %Optional.3df: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Destroy.facet.a72: %Destroy.type = facet_value %ptr.055, (%custom_witness.340963.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.1dc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.a72) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.b59: = impl_witness imports.%OptionalStorage.impl_witness_table.54e, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.b59) [concrete] +// CHECK:STDOUT: %Optional.598: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: %get.type: type = fn_type @get [concrete] // CHECK:STDOUT: %get: %get.type = struct_value () [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] @@ -1756,19 +1756,19 @@ fn F() { // CHECK:STDOUT: %get.decl: %get.type = fn_decl @get [concrete = constants.%get] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.968) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc8: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.3df] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.b59) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc8: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.598] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc8_20.1: type = splice_block %Optional [concrete = constants.%Optional.3df] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.968) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc8_20.2: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.3df] +// CHECK:STDOUT: %.loc8_20.1: type = splice_block %Optional [concrete = constants.%Optional.598] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.b59) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc8_20.2: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.598] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1780,22 +1780,22 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %Cpp.ref.loc8_11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %get.ref: %get.cpp_overload_set.type = name_ref get, imports.%get.cpp_overload_set.value [concrete = constants.%get.cpp_overload_set.value] -// CHECK:STDOUT: %get.call: init %Optional.3df = call imports.%get.decl() -// CHECK:STDOUT: %.loc8_19.1: ref %Optional.3df = temporary_storage -// CHECK:STDOUT: %.loc8_19.2: ref %Optional.3df = temporary %.loc8_19.1, %get.call -// CHECK:STDOUT: %.loc8_19.3: %Optional.3df = acquire_value %.loc8_19.2 +// CHECK:STDOUT: %get.call: init %Optional.598 = call imports.%get.decl() +// CHECK:STDOUT: %.loc8_19.1: ref %Optional.598 = temporary_storage +// CHECK:STDOUT: %.loc8_19.2: ref %Optional.598 = temporary %.loc8_19.1, %get.call +// CHECK:STDOUT: %.loc8_19.3: %Optional.598 = acquire_value %.loc8_19.2 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc8_19.3) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %.loc8_19.2, constants.%Destroy.Op.1dc86d.3 // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call %Destroy.Op.bound(%.loc8_19.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_19.1(%self.param: ref %MaybeUnformed.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_19.1(%self.param: ref %MaybeUnformed.1dc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc8_19.2(%self.param: ref %Optional.3df) { +// CHECK:STDOUT: fn @Destroy.Op.loc8_19.2(%self.param: ref %Optional.598) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1806,11 +1806,11 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.761: type = pattern_type %ptr.9e9 [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] @@ -1837,8 +1837,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1851,21 +1851,21 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %s: ref %S = ref_binding s, %s.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.761 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f1e = value_binding_pattern p [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13_26: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %s.ref -// CHECK:STDOUT: %foo.call: init %ptr.9e9 = call imports.%foo.decl(%addr) -// CHECK:STDOUT: %.loc13_22: type = splice_block %ptr [concrete = constants.%ptr.9e9] { +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %s.ref +// CHECK:STDOUT: %foo.call: init %ptr.055 = call imports.%foo.decl(%addr) +// CHECK:STDOUT: %.loc13_22: type = splice_block %ptr [concrete = constants.%ptr.055] { // CHECK:STDOUT: %Cpp.ref.loc13_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc13: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13 [concrete = constants.%ptr.9e9] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13 [concrete = constants.%ptr.055] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc13_36.1: %ptr.9e9 = value_of_initializer %foo.call -// CHECK:STDOUT: %.loc13_36.2: %ptr.9e9 = converted %foo.call, %.loc13_36.1 -// CHECK:STDOUT: %p: %ptr.9e9 = value_binding p, %.loc13_36.2 +// CHECK:STDOUT: %.loc13_36.1: %ptr.055 = value_of_initializer %foo.call +// CHECK:STDOUT: %.loc13_36.2: %ptr.055 = converted %foo.call, %.loc13_36.1 +// CHECK:STDOUT: %p: %ptr.055 = value_binding p, %.loc13_36.2 // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) // CHECK:STDOUT: @@ -1877,12 +1877,12 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %Direct.cpp_overload_set.type: type = cpp_overload_set_type @Direct.cpp_overload_set [concrete] // CHECK:STDOUT: %Direct.cpp_overload_set.value: %Direct.cpp_overload_set.type = cpp_overload_set_value @Direct.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %Optional.type: type = generic_class_type @Optional [concrete] // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] @@ -1898,38 +1898,38 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type.af7ec0.1: type = fn_type @Destroy.Op.1 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.1: %Destroy.Op.type.af7ec0.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.1: = custom_witness (%Destroy.Op.1dc86d.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.489: %Destroy.type = facet_value %ptr.9e9, (%custom_witness.340963.1) [concrete] -// CHECK:STDOUT: %MaybeUnformed.cc9: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.489) [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.5b4: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.71f: %OptionalStorage.type = facet_value %ptr.9e9, (%OptionalStorage.impl_witness.5b4) [concrete] -// CHECK:STDOUT: %Optional.9fa: type = class_type @Optional, @Optional(%OptionalStorage.facet.71f) [concrete] -// CHECK:STDOUT: %pattern_type.2d0: type = pattern_type %Optional.9fa [concrete] +// CHECK:STDOUT: %Destroy.facet.a72: %Destroy.type = facet_value %ptr.055, (%custom_witness.340963.1) [concrete] +// CHECK:STDOUT: %MaybeUnformed.1dc: type = class_type @MaybeUnformed, @MaybeUnformed(%Destroy.facet.a72) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.a92: = impl_witness imports.%OptionalStorage.impl_witness_table.8c8, @ptr.as.OptionalStorage.impl(%S) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.4d2: %OptionalStorage.type = facet_value %ptr.055, (%OptionalStorage.impl_witness.a92) [concrete] +// CHECK:STDOUT: %Optional.bda: type = class_type @Optional, @Optional(%OptionalStorage.facet.4d2) [concrete] +// CHECK:STDOUT: %pattern_type.4b1: type = pattern_type %Optional.bda [concrete] // CHECK:STDOUT: %Direct.type: type = fn_type @Direct [concrete] // CHECK:STDOUT: %Direct: %Direct.type = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.649: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.649 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.e84: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.9fa)> [concrete] +// CHECK:STDOUT: %ImplicitAs.type.dbc: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.bda)> [concrete] // CHECK:STDOUT: %OptionalAs.type.c8f: type = facet_type <@OptionalAs, @OptionalAs(%T.390)> [symbolic] // CHECK:STDOUT: %U.00a: %OptionalAs.type.c8f = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%T.390, %U.00a) [symbolic] // CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.7c5: %U.as_type.as.ImplicitAs.impl.Convert.type.ba3 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.608: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.71f)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.230: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.4d2)> [concrete] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.135: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.390) [symbolic] // CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.8c2: %T.as_type.as.OptionalAs.impl.Convert.type.135 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.7c4: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.71f) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.608 = facet_value %ptr.9e9, (%OptionalAs.impl_witness.7c4) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.810: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.b75: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.506: %U.as_type.as.ImplicitAs.impl.Convert.type.b75 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a0a: %ImplicitAs.type.e84 = facet_value %ptr.9e9, (%ImplicitAs.impl_witness.810) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.71d: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.9fa, %ImplicitAs.facet.a0a) [concrete] -// CHECK:STDOUT: %.820: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.71d, %ImplicitAs.facet.a0a [concrete] -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.506, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.71f, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %OptionalAs.impl_witness.773: = impl_witness imports.%OptionalAs.impl_witness_table.d46, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.4d2) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.230 = facet_value %ptr.055, (%OptionalAs.impl_witness.773) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.c98: = impl_witness imports.%ImplicitAs.impl_witness_table.d00, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.c7f: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.20a(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.f4b: %U.as_type.as.ImplicitAs.impl.Convert.type.c7f = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2c5: %ImplicitAs.type.dbc = facet_value %ptr.055, (%ImplicitAs.impl_witness.c98) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.887: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.bda, %ImplicitAs.facet.2c5) [concrete] +// CHECK:STDOUT: %.9cb: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.887, %ImplicitAs.facet.2c5 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.f4b, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.4d2, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.type: type = cpp_overload_set_type @Indirect.cpp_overload_set [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.value: %Indirect.cpp_overload_set.type = cpp_overload_set_value @Indirect.cpp_overload_set [concrete] // CHECK:STDOUT: %Indirect__carbon_thunk.type: type = fn_type @Indirect__carbon_thunk [concrete] // CHECK:STDOUT: %Indirect__carbon_thunk: %Indirect__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %.585: ref %S = temporary invalid, %S.val [concrete] +// CHECK:STDOUT: %.f11: ref %S = temporary invalid, %S.val [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.3: type = fn_type @Destroy.Op.loc13_65.2 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.3: %Destroy.Op.type.af7ec0.3 = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -1963,14 +1963,14 @@ fn F() { // CHECK:STDOUT: %Direct.decl: %Direct.type = fn_decl @Direct [concrete = constants.%Direct] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.1: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %.loc11_16.1: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet.loc11_16.1 [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %Optional.loc11_16.1: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.71f) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.1: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %.loc11_16.1: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet.loc11_16.1 [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %Optional.loc11_16.1: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.4d2) [concrete = constants.%Optional.bda] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc11_16.2: type = splice_block %Optional.loc11_16.2 [concrete = constants.%Optional.9fa] { -// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.2: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %.loc11_16.3: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet.loc11_16.2 [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %Optional.loc11_16.2: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.71f) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %.loc11_16.2: type = splice_block %Optional.loc11_16.2 [concrete = constants.%Optional.bda] { +// CHECK:STDOUT: %OptionalStorage.facet.loc11_16.2: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %.loc11_16.3: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet.loc11_16.2 [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %Optional.loc11_16.2: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.4d2) [concrete = constants.%Optional.bda] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1983,9 +1983,9 @@ fn F() { // CHECK:STDOUT: %Indirect__carbon_thunk.decl: %Indirect__carbon_thunk.type = fn_decl @Indirect__carbon_thunk [concrete = constants.%Indirect__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.9e9, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %.loc13: %OptionalStorage.type = converted constants.%ptr.9e9, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.71f) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.055, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %.loc13: %OptionalStorage.type = converted constants.%ptr.055, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.4d2) [concrete = constants.%Optional.bda] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] @@ -1994,8 +1994,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc10_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -2010,19 +2010,19 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Direct.ref: %Direct.cpp_overload_set.type = name_ref Direct, imports.%Direct.cpp_overload_set.value [concrete = constants.%Direct.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s -// CHECK:STDOUT: %addr.loc11: %ptr.9e9 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.820 = impl_witness_access constants.%ImplicitAs.impl_witness.810, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.506] +// CHECK:STDOUT: %addr.loc11: %ptr.055 = addr_of %s.ref +// CHECK:STDOUT: %impl.elem0: %.9cb = impl_witness_access constants.%ImplicitAs.impl_witness.c98, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.f4b] // CHECK:STDOUT: %bound_method.loc11_14.1: = bound_method %addr.loc11, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.71f, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.4d2, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_14.2: = bound_method %addr.loc11, %specific_fn -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.9fa = call %bound_method.loc11_14.2(%addr.loc11) -// CHECK:STDOUT: %.loc11_14.1: init %Optional.9fa = converted %addr.loc11, %U.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc11_14.2: ref %Optional.9fa = temporary_storage -// CHECK:STDOUT: %.loc11_14.3: ref %Optional.9fa = temporary %.loc11_14.2, %.loc11_14.1 -// CHECK:STDOUT: %.loc11_14.4: %Optional.9fa = acquire_value %.loc11_14.3 -// CHECK:STDOUT: %Direct.call: init %Optional.9fa = call imports.%Direct.decl(%.loc11_14.4) +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.bda = call %bound_method.loc11_14.2(%addr.loc11) +// CHECK:STDOUT: %.loc11_14.1: init %Optional.bda = converted %addr.loc11, %U.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc11_14.2: ref %Optional.bda = temporary_storage +// CHECK:STDOUT: %.loc11_14.3: ref %Optional.bda = temporary %.loc11_14.2, %.loc11_14.1 +// CHECK:STDOUT: %.loc11_14.4: %Optional.bda = acquire_value %.loc11_14.3 +// CHECK:STDOUT: %Direct.call: init %Optional.bda = call imports.%Direct.decl(%.loc11_14.4) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.2d0 = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.4b1 = value_binding_pattern a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc13_41: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Indirect.ref: %Indirect.cpp_overload_set.type = name_ref Indirect, imports.%Indirect.cpp_overload_set.value [concrete = constants.%Indirect.cpp_overload_set.value] @@ -2032,25 +2032,25 @@ fn F() { // CHECK:STDOUT: %.loc13_55.2: ref %S = temporary_storage // CHECK:STDOUT: %.loc13_55.3: init %S to %.loc13_55.2 = class_init () [concrete = constants.%S.val] // CHECK:STDOUT: %.loc13_57.1: init %S = converted %.loc13_55.1, %.loc13_55.3 [concrete = constants.%S.val] -// CHECK:STDOUT: %.loc13_57.2: ref %S = temporary %.loc13_55.2, %.loc13_57.1 [concrete = constants.%.585] +// CHECK:STDOUT: %.loc13_57.2: ref %S = temporary %.loc13_55.2, %.loc13_57.1 [concrete = constants.%.f11] // CHECK:STDOUT: %.loc13_57.3: %S = acquire_value %.loc13_57.2 [concrete = constants.%S.val] // CHECK:STDOUT: %.loc13_57.4: ref %S = value_as_ref %.loc13_57.3 -// CHECK:STDOUT: %addr.loc13: %ptr.9e9 = addr_of %.loc13_57.4 -// CHECK:STDOUT: %Indirect__carbon_thunk.call: init %Optional.9fa = call imports.%Indirect__carbon_thunk.decl(%addr.loc13) -// CHECK:STDOUT: %.loc13_37.1: type = splice_block %Optional [concrete = constants.%Optional.9fa] { +// CHECK:STDOUT: %addr.loc13: %ptr.055 = addr_of %.loc13_57.4 +// CHECK:STDOUT: %Indirect__carbon_thunk.call: init %Optional.bda = call imports.%Indirect__carbon_thunk.decl(%addr.loc13) +// CHECK:STDOUT: %.loc13_37.1: type = splice_block %Optional [concrete = constants.%Optional.bda] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc13_31: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc13_34: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13_34 [concrete = constants.%ptr.9e9] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.5b4) [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %.loc13_37.2: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.71f] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.71f) [concrete = constants.%Optional.9fa] +// CHECK:STDOUT: %ptr: type = ptr_type %S.ref.loc13_34 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.a92) [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %.loc13_37.2: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.4d2] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.4d2) [concrete = constants.%Optional.bda] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc13_65.1: ref %Optional.9fa = temporary_storage -// CHECK:STDOUT: %.loc13_65.2: ref %Optional.9fa = temporary %.loc13_65.1, %Indirect__carbon_thunk.call -// CHECK:STDOUT: %.loc13_65.3: %Optional.9fa = acquire_value %.loc13_65.2 -// CHECK:STDOUT: %a: %Optional.9fa = value_binding a, %.loc13_65.3 +// CHECK:STDOUT: %.loc13_65.1: ref %Optional.bda = temporary_storage +// CHECK:STDOUT: %.loc13_65.2: ref %Optional.bda = temporary %.loc13_65.1, %Indirect__carbon_thunk.call +// CHECK:STDOUT: %.loc13_65.3: %Optional.bda = acquire_value %.loc13_65.2 +// CHECK:STDOUT: %a: %Optional.bda = value_binding a, %.loc13_65.3 // CHECK:STDOUT: %Destroy.Op.bound.loc13: = bound_method %.loc13_65.2, constants.%Destroy.Op.1dc86d.3 // CHECK:STDOUT: %Destroy.Op.call.loc13: init %empty_tuple.type = call %Destroy.Op.bound.loc13(%.loc13_65.2) // CHECK:STDOUT: %Destroy.Op.bound.loc11: = bound_method %.loc11_14.3, constants.%Destroy.Op.1dc86d.3 @@ -2060,12 +2060,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_65.1(%self.param: ref %MaybeUnformed.cc9) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_65.1(%self.param: ref %MaybeUnformed.1dc) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc13_65.2(%self.param: ref %Optional.9fa) { +// CHECK:STDOUT: fn @Destroy.Op.loc13_65.2(%self.param: ref %Optional.bda) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon b/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon index f0d7639b6ae8..68ad4dde5c34 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/qualified_param.carbon @@ -60,16 +60,16 @@ fn F() { // CHECK:STDOUT: %int_42.bc5: %i32 = int_value 42 [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %TakesConstS.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstS.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstS.cpp_overload_set.value: %TakesConstS.cpp_overload_set.type = cpp_overload_set_value @TakesConstS.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.8ef: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.26e: 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.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -112,8 +112,8 @@ fn F() { // CHECK:STDOUT: %.loc8_21.2: %i32 = converted %int_42, %.loc8_21.1 [concrete = constants.%int_42.bc5] // CHECK:STDOUT: %TakesConstInt.call: init %empty_tuple.type = call imports.%TakesConstInt.decl(%.loc8_21.2) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc10_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -130,9 +130,9 @@ fn F() { // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: %.loc11_19.1: %S = acquire_value %s.ref // CHECK:STDOUT: %.loc11_19.2: ref %S = value_as_ref %.loc11_19.1 -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %.loc11_19.2 -// CHECK:STDOUT: %.loc11_20.1: %ptr.8ef = as_compatible %addr -// CHECK:STDOUT: %.loc11_20.2: %ptr.8ef = converted %addr, %.loc11_20.1 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc11_19.2 +// CHECK:STDOUT: %.loc11_20.1: %ptr.26e = as_compatible %addr +// CHECK:STDOUT: %.loc11_20.2: %ptr.26e = converted %addr, %.loc11_20.1 // CHECK:STDOUT: %TakesConstS__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesConstS__carbon_thunk.decl(%.loc11_20.2) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) diff --git a/toolchain/check/testdata/interop/cpp/function/import/reference.carbon b/toolchain/check/testdata/interop/cpp/function/import/reference.carbon index 3e8588f65529..1a5e4adf4a22 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/reference.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/reference.carbon @@ -488,7 +488,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesLValue.cpp_overload_set [concrete] @@ -517,8 +517,8 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -545,7 +545,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -554,20 +554,20 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.1: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.d49: %Default.type = facet_value %S, (%custom_witness.2132a4.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a62: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d49) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.0f7: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.a62) [concrete] +// CHECK:STDOUT: %Default.facet.f36: %Default.type = facet_value %S, (%custom_witness.2132a4.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fc0: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f36) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.1d7: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.fc0) [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.value: %TakesLValue.cpp_overload_set.type = cpp_overload_set_value @TakesLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %T.051: type = class_type @T [concrete] -// CHECK:STDOUT: %pattern_type.1a9: type = pattern_type %T.051 [concrete] +// CHECK:STDOUT: %T.3b5: type = class_type @T [concrete] +// CHECK:STDOUT: %pattern_type.471: type = pattern_type %T.3b5 [concrete] // CHECK:STDOUT: %T.Op.type: type = fn_type @T.Op [concrete] // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.2: = custom_witness (%T.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5bf: %Default.type = facet_value %T.051, (%custom_witness.2132a4.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6b5: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5bf) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.ace: %DefaultOrUnformed.type = facet_value %T.051, (%DefaultOrUnformed.impl_witness.6b5) [concrete] +// CHECK:STDOUT: %Default.facet.80c: %Default.type = facet_value %T.3b5, (%custom_witness.2132a4.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.756: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.80c) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.5e6: %DefaultOrUnformed.type = facet_value %T.3b5, (%DefaultOrUnformed.impl_witness.756) [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %T.cpp_destructor.type: type = fn_type @T.cpp_destructor [concrete] @@ -585,18 +585,18 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %Core.import_ref.dfa: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.47c) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.25a)] // CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.b72 = impl_witness_table (%Core.import_ref.dfa), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.value: %TakesLValue.cpp_overload_set.type = cpp_overload_set_value @TakesLValue.cpp_overload_set [concrete = constants.%TakesLValue.cpp_overload_set.value] -// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.051] {} {} +// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.3b5] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: %pattern_type.c0c = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: %pattern_type.c0c = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: %pattern_type.b2d = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: %pattern_type.b2d = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %S = var %v.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a62) [concrete = constants.%DefaultOrUnformed.facet.0f7] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.0f7] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.fc0) [concrete = constants.%DefaultOrUnformed.facet.1d7] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.1d7] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: @@ -609,7 +609,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref %S = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = value_binding_pattern s [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = value_binding_pattern s [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.ref: ref %S = name_ref v, %v // CHECK:STDOUT: %.loc9_13: type = splice_block %S.ref.loc9 [concrete = constants.%S] { @@ -630,33 +630,33 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc28_21.1: %const = as_compatible %s.ref.loc28 // CHECK:STDOUT: %.loc28_21.2: %const = converted %s.ref.loc28, %.loc28_21.1 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t.patt: %pattern_type.1a9 = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.var_patt: %pattern_type.1a9 = var_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.471 = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.var_patt: %pattern_type.471 = var_pattern %t.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.var: ref %T.051 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%T.051, (constants.%DefaultOrUnformed.impl_witness.6b5) [concrete = constants.%DefaultOrUnformed.facet.ace] -// CHECK:STDOUT: %.loc30_15.1: %DefaultOrUnformed.type = converted constants.%T.051, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.ace] -// CHECK:STDOUT: %as_type.loc30: type = facet_access_type %.loc30_15.1 [concrete = constants.%T.051] -// CHECK:STDOUT: %.loc30_15.2: type = converted %.loc30_15.1, %as_type.loc30 [concrete = constants.%T.051] +// CHECK:STDOUT: %t.var: ref %T.3b5 = var %t.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%T.3b5, (constants.%DefaultOrUnformed.impl_witness.756) [concrete = constants.%DefaultOrUnformed.facet.5e6] +// CHECK:STDOUT: %.loc30_15.1: %DefaultOrUnformed.type = converted constants.%T.3b5, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.5e6] +// CHECK:STDOUT: %as_type.loc30: type = facet_access_type %.loc30_15.1 [concrete = constants.%T.3b5] +// CHECK:STDOUT: %.loc30_15.2: type = converted %.loc30_15.1, %as_type.loc30 [concrete = constants.%T.3b5] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc30_3: ref %T.051 = splice_block %t.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30: init %T.051 to %.loc30_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc30_3: ref %T.3b5 = splice_block %t.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30: init %T.3b5 to %.loc30_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30 -// CHECK:STDOUT: %.loc30_13: type = splice_block %T.ref [concrete = constants.%T.051] { +// CHECK:STDOUT: %.loc30_13: type = splice_block %T.ref [concrete = constants.%T.3b5] { // CHECK:STDOUT: %Cpp.ref.loc30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.051] +// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.3b5] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref %T.051 = ref_binding t, %t.var +// CHECK:STDOUT: %t: ref %T.3b5 = ref_binding t, %t.var // CHECK:STDOUT: %Cpp.ref.loc39: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesLValue.ref.loc39: %TakesLValue.cpp_overload_set.type = name_ref TakesLValue, imports.%TakesLValue.cpp_overload_set.value [concrete = constants.%TakesLValue.cpp_overload_set.value] -// CHECK:STDOUT: %t.ref: ref %T.051 = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref %T.3b5 = name_ref t, %t // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %u.patt: %pattern_type.c0c = ref_binding_pattern u [concrete] -// CHECK:STDOUT: %u.var_patt: %pattern_type.c0c = var_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.patt: %pattern_type.b2d = ref_binding_pattern u [concrete] +// CHECK:STDOUT: %u.var_patt: %pattern_type.b2d = var_pattern %u.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u.var: ref %S = var %u.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc41: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a62) [concrete = constants.%DefaultOrUnformed.facet.0f7] -// CHECK:STDOUT: %.loc41_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc41 [concrete = constants.%DefaultOrUnformed.facet.0f7] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc41: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.fc0) [concrete = constants.%DefaultOrUnformed.facet.1d7] +// CHECK:STDOUT: %.loc41_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc41 [concrete = constants.%DefaultOrUnformed.facet.1d7] // CHECK:STDOUT: %as_type.loc41: type = facet_access_type %.loc41_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc41_15.2: type = converted %.loc41_15.1, %as_type.loc41 [concrete = constants.%S] // CHECK:STDOUT: @@ -695,7 +695,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: 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: } @@ -726,7 +726,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc8_20.2: init %S to %_.var = class_init () [concrete = constants.%S.val] // CHECK:STDOUT: %.loc8_22: init %S = converted %.loc8_20.1, %.loc8_20.2 [concrete = constants.%S.val] // CHECK:STDOUT: -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %_.var +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %_.var // CHECK:STDOUT: %TakesRValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesRValue__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -737,7 +737,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -746,23 +746,23 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.1: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.d49: %Default.type = facet_value %S, (%custom_witness.2132a4.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a62: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d49) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.0f7: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.a62) [concrete] +// CHECK:STDOUT: %Default.facet.f36: %Default.type = facet_value %S, (%custom_witness.2132a4.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fc0: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f36) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.1d7: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.fc0) [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.value: %TakesRValue.cpp_overload_set.type = cpp_overload_set_value @TakesRValue.cpp_overload_set [concrete] -// CHECK:STDOUT: %T.051: type = class_type @T [concrete] -// CHECK:STDOUT: %pattern_type.1a9: type = pattern_type %T.051 [concrete] +// CHECK:STDOUT: %T.3b5: type = class_type @T [concrete] +// CHECK:STDOUT: %pattern_type.471: type = pattern_type %T.3b5 [concrete] // CHECK:STDOUT: %T.Op.type: type = fn_type @T.Op [concrete] // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.2: = custom_witness (%T.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5bf: %Default.type = facet_value %T.051, (%custom_witness.2132a4.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6b5: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5bf) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.ace: %DefaultOrUnformed.type = facet_value %T.051, (%DefaultOrUnformed.impl_witness.6b5) [concrete] +// CHECK:STDOUT: %Default.facet.80c: %Default.type = facet_value %T.3b5, (%custom_witness.2132a4.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.756: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.80c) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.5e6: %DefaultOrUnformed.type = facet_value %T.3b5, (%DefaultOrUnformed.impl_witness.756) [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %empty_struct.d45: %const = struct_value () [concrete] +// CHECK:STDOUT: %empty_struct.418: %const = struct_value () [concrete] // CHECK:STDOUT: %T.cpp_destructor.type: type = fn_type @T.cpp_destructor [concrete] // CHECK:STDOUT: %T.cpp_destructor: %T.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -780,18 +780,18 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %Core.import_ref.dfa: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.47c) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.25a)] // CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.b72 = impl_witness_table (%Core.import_ref.dfa), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.value: %TakesRValue.cpp_overload_set.type = cpp_overload_set_value @TakesRValue.cpp_overload_set [concrete = constants.%TakesRValue.cpp_overload_set.value] -// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.051] {} {} +// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.3b5] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a62) [concrete = constants.%DefaultOrUnformed.facet.0f7] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.0f7] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.fc0) [concrete = constants.%DefaultOrUnformed.facet.1d7] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.1d7] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: @@ -807,26 +807,26 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakesRValue.ref.loc17: %TakesRValue.cpp_overload_set.type = name_ref TakesRValue, imports.%TakesRValue.cpp_overload_set.value [concrete = constants.%TakesRValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t.patt: %pattern_type.1a9 = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.var_patt: %pattern_type.1a9 = var_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.471 = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.var_patt: %pattern_type.471 = var_pattern %t.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.var: ref %T.051 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.051, (constants.%DefaultOrUnformed.impl_witness.6b5) [concrete = constants.%DefaultOrUnformed.facet.ace] -// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.051, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.ace] -// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.051] -// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.051] +// CHECK:STDOUT: %t.var: ref %T.3b5 = var %t.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.3b5, (constants.%DefaultOrUnformed.impl_witness.756) [concrete = constants.%DefaultOrUnformed.facet.5e6] +// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.3b5, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.5e6] +// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.3b5] +// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.3b5] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc19_3: ref %T.051 = splice_block %t.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.051 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc19_3: ref %T.3b5 = splice_block %t.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.3b5 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19 -// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.051] { +// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.3b5] { // CHECK:STDOUT: %Cpp.ref.loc19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.051] +// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.3b5] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref %T.051 = ref_binding t, %t.var +// CHECK:STDOUT: %t: ref %T.3b5 = ref_binding t, %t.var // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesRValue.ref.loc28: %TakesRValue.cpp_overload_set.type = name_ref TakesRValue, imports.%TakesRValue.cpp_overload_set.value [concrete = constants.%TakesRValue.cpp_overload_set.value] -// CHECK:STDOUT: %t.ref: ref %T.051 = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref %T.3b5 = name_ref t, %t // CHECK:STDOUT: %Cpp.ref.loc38_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesRValue.ref.loc38: %TakesRValue.cpp_overload_set.type = name_ref TakesRValue, imports.%TakesRValue.cpp_overload_set.value [concrete = constants.%TakesRValue.cpp_overload_set.value] // CHECK:STDOUT: %.loc38_21.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] @@ -838,8 +838,8 @@ fn PassConstRef(ref x: const X) { // 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] -// CHECK:STDOUT: %.loc38_33.1: init %const = as_compatible %.loc38_23 [concrete = constants.%empty_struct.d45] -// CHECK:STDOUT: %.loc38_33.2: init %const = converted %.loc38_23, %.loc38_33.1 [concrete = constants.%empty_struct.d45] +// CHECK:STDOUT: %.loc38_33.1: init %const = as_compatible %.loc38_23 [concrete = constants.%empty_struct.418] +// CHECK:STDOUT: %.loc38_33.2: init %const = converted %.loc38_23, %.loc38_33.1 [concrete = constants.%empty_struct.418] // CHECK:STDOUT: %T.cpp_destructor.bound: = bound_method %t.var, constants.%T.cpp_destructor // CHECK:STDOUT: %T.cpp_destructor.call: init %empty_tuple.type = call %T.cpp_destructor.bound(%t.var) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor @@ -853,16 +853,16 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.value: %TakesConstLValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.8ef: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.26e: 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.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -885,8 +885,8 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -910,18 +910,18 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc9_26.4: ref %S = converted %.loc9_26.2, %.loc9_26.3 // CHECK:STDOUT: %.loc9_26.5: %S = acquire_value %.loc9_26.4 // CHECK:STDOUT: %.loc9_26.6: ref %S = value_as_ref %.loc9_26.5 -// CHECK:STDOUT: %addr.loc9: %ptr.9e9 = addr_of %.loc9_26.6 -// CHECK:STDOUT: %.loc9_40.1: %ptr.8ef = as_compatible %addr.loc9 -// CHECK:STDOUT: %.loc9_40.2: %ptr.8ef = converted %addr.loc9, %.loc9_40.1 +// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %.loc9_26.6 +// CHECK:STDOUT: %.loc9_40.1: %ptr.26e = as_compatible %addr.loc9 +// CHECK:STDOUT: %.loc9_40.2: %ptr.26e = converted %addr.loc9, %.loc9_40.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc9_40.2) // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstLValue.ref.loc11: %TakesConstLValue.cpp_overload_set.type = name_ref TakesConstLValue, imports.%TakesConstLValue.cpp_overload_set.value [concrete = constants.%TakesConstLValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref.loc11: ref %S = name_ref s, %s // CHECK:STDOUT: %.loc11_24.1: %S = acquire_value %s.ref.loc11 // CHECK:STDOUT: %.loc11_24.2: ref %S = value_as_ref %.loc11_24.1 -// CHECK:STDOUT: %addr.loc11: %ptr.9e9 = addr_of %.loc11_24.2 -// CHECK:STDOUT: %.loc11_25.1: %ptr.8ef = as_compatible %addr.loc11 -// CHECK:STDOUT: %.loc11_25.2: %ptr.8ef = converted %addr.loc11, %.loc11_25.1 +// CHECK:STDOUT: %addr.loc11: %ptr.055 = addr_of %.loc11_24.2 +// CHECK:STDOUT: %.loc11_25.1: %ptr.26e = as_compatible %addr.loc11 +// CHECK:STDOUT: %.loc11_25.2: %ptr.26e = converted %addr.loc11, %.loc11_25.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc11_25.2) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor // CHECK:STDOUT: %S.cpp_destructor.call: init %empty_tuple.type = call %S.cpp_destructor.bound(%s.var) @@ -934,17 +934,17 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] -// CHECK:STDOUT: %.585: ref %S = temporary invalid, %S.val [concrete] +// CHECK:STDOUT: %.f11: ref %S = temporary invalid, %S.val [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstLValue.cpp_overload_set.value: %TakesConstLValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] -// CHECK:STDOUT: %ptr.8ef: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.26e: 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.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -965,7 +965,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = value_binding_pattern s [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = value_binding_pattern s [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8_19.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc8_13: type = splice_block %S.ref.loc8 [concrete = constants.%S] { @@ -975,16 +975,16 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc8_19.2: ref %S = temporary_storage // CHECK:STDOUT: %.loc8_19.3: init %S to %.loc8_19.2 = class_init () [concrete = constants.%S.val] // CHECK:STDOUT: %.loc8_19.4: init %S = converted %.loc8_19.1, %.loc8_19.3 [concrete = constants.%S.val] -// CHECK:STDOUT: %.loc8_19.5: ref %S = temporary %.loc8_19.2, %.loc8_19.4 [concrete = constants.%.585] +// CHECK:STDOUT: %.loc8_19.5: ref %S = temporary %.loc8_19.2, %.loc8_19.4 [concrete = constants.%.f11] // CHECK:STDOUT: %.loc8_19.6: %S = acquire_value %.loc8_19.5 [concrete = constants.%S.val] // CHECK:STDOUT: %s: %S = value_binding s, %.loc8_19.6 // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstLValue.ref.loc9: %TakesConstLValue.cpp_overload_set.type = name_ref TakesConstLValue, imports.%TakesConstLValue.cpp_overload_set.value [concrete = constants.%TakesConstLValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref.loc9: %S = name_ref s, %s // CHECK:STDOUT: %.loc9_24: ref %S = value_as_ref %s.ref.loc9 -// CHECK:STDOUT: %addr.loc9: %ptr.9e9 = addr_of %.loc9_24 -// CHECK:STDOUT: %.loc9_25.1: %ptr.8ef = as_compatible %addr.loc9 -// CHECK:STDOUT: %.loc9_25.2: %ptr.8ef = converted %addr.loc9, %.loc9_25.1 +// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %.loc9_24 +// CHECK:STDOUT: %.loc9_25.1: %ptr.26e = as_compatible %addr.loc9 +// CHECK:STDOUT: %.loc9_25.2: %ptr.26e = converted %addr.loc9, %.loc9_25.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc9_25.2) // CHECK:STDOUT: %Cpp.ref.loc11_3: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstLValue.ref.loc11: %TakesConstLValue.cpp_overload_set.type = name_ref TakesConstLValue, imports.%TakesConstLValue.cpp_overload_set.value [concrete = constants.%TakesConstLValue.cpp_overload_set.value] @@ -997,9 +997,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc11_26.3: %S = as_compatible %.loc11_26.2 // CHECK:STDOUT: %.loc11_26.4: %S = converted %.loc11_26.2, %.loc11_26.3 // CHECK:STDOUT: %.loc11_26.5: ref %S = value_as_ref %.loc11_26.4 -// CHECK:STDOUT: %addr.loc11: %ptr.9e9 = addr_of %.loc11_26.5 -// CHECK:STDOUT: %.loc11_40.1: %ptr.8ef = as_compatible %addr.loc11 -// CHECK:STDOUT: %.loc11_40.2: %ptr.8ef = converted %addr.loc11, %.loc11_40.1 +// CHECK:STDOUT: %addr.loc11: %ptr.055 = addr_of %.loc11_26.5 +// CHECK:STDOUT: %.loc11_40.1: %ptr.26e = as_compatible %addr.loc11 +// CHECK:STDOUT: %.loc11_40.2: %ptr.26e = converted %addr.loc11, %.loc11_40.1 // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc11_40.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1012,10 +1012,10 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.value: %TakesConstRValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstRValue.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.8ef: type = ptr_type %const [concrete] +// CHECK:STDOUT: %ptr.26e: type = ptr_type %const [concrete] // CHECK:STDOUT: %TakesConstRValue__carbon_thunk.type: type = fn_type @TakesConstRValue__carbon_thunk [concrete] // CHECK:STDOUT: %TakesConstRValue__carbon_thunk: %TakesConstRValue__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1039,9 +1039,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakesConstRValue.ref.loc8: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] // CHECK:STDOUT: %v.ref: %S = name_ref v, %v // CHECK:STDOUT: %.loc8_24: ref %S = value_as_ref %v.ref -// CHECK:STDOUT: %addr.loc8: %ptr.9e9 = addr_of %.loc8_24 -// CHECK:STDOUT: %.loc8_25.1: %ptr.8ef = as_compatible %addr.loc8 -// CHECK:STDOUT: %.loc8_25.2: %ptr.8ef = converted %addr.loc8, %.loc8_25.1 +// CHECK:STDOUT: %addr.loc8: %ptr.055 = addr_of %.loc8_24 +// CHECK:STDOUT: %.loc8_25.1: %ptr.26e = as_compatible %addr.loc8 +// CHECK:STDOUT: %.loc8_25.2: %ptr.26e = converted %addr.loc8, %.loc8_25.1 // CHECK:STDOUT: %TakesConstRValue__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%TakesConstRValue__carbon_thunk.decl(%.loc8_25.2) // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstRValue.ref.loc9: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] @@ -1049,9 +1049,9 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %.loc9_24.1: %S = as_compatible %cv.ref // CHECK:STDOUT: %.loc9_24.2: %S = converted %cv.ref, %.loc9_24.1 // CHECK:STDOUT: %.loc9_24.3: ref %S = value_as_ref %.loc9_24.2 -// CHECK:STDOUT: %addr.loc9: %ptr.9e9 = addr_of %.loc9_24.3 -// CHECK:STDOUT: %.loc9_26.1: %ptr.8ef = as_compatible %addr.loc9 -// CHECK:STDOUT: %.loc9_26.2: %ptr.8ef = converted %addr.loc9, %.loc9_26.1 +// CHECK:STDOUT: %addr.loc9: %ptr.055 = addr_of %.loc9_24.3 +// CHECK:STDOUT: %.loc9_26.1: %ptr.26e = as_compatible %addr.loc9 +// CHECK:STDOUT: %.loc9_26.2: %ptr.26e = converted %addr.loc9, %.loc9_26.1 // CHECK:STDOUT: %TakesConstRValue__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%TakesConstRValue__carbon_thunk.decl(%.loc9_26.2) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -1061,7 +1061,7 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.c0c: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.b2d: type = pattern_type %S [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -1070,19 +1070,19 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.1: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.d49: %Default.type = facet_value %S, (%custom_witness.2132a4.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a62: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d49) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.0f7: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.a62) [concrete] +// CHECK:STDOUT: %Default.facet.f36: %Default.type = facet_value %S, (%custom_witness.2132a4.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fc0: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f36) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.1d7: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.fc0) [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesConstRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.value: %TakesConstRValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstRValue.cpp_overload_set [concrete] -// CHECK:STDOUT: %T.051: type = class_type @T [concrete] -// CHECK:STDOUT: %pattern_type.1a9: type = pattern_type %T.051 [concrete] +// CHECK:STDOUT: %T.3b5: type = class_type @T [concrete] +// CHECK:STDOUT: %pattern_type.471: type = pattern_type %T.3b5 [concrete] // CHECK:STDOUT: %T.Op.type: type = fn_type @T.Op [concrete] // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.2: = custom_witness (%T.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5bf: %Default.type = facet_value %T.051, (%custom_witness.2132a4.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.6b5: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5bf) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.ace: %DefaultOrUnformed.type = facet_value %T.051, (%DefaultOrUnformed.impl_witness.6b5) [concrete] +// CHECK:STDOUT: %Default.facet.80c: %Default.type = facet_value %T.3b5, (%custom_witness.2132a4.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.756: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.80c) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.5e6: %DefaultOrUnformed.type = facet_value %T.3b5, (%DefaultOrUnformed.impl_witness.756) [concrete] // CHECK:STDOUT: %T.cpp_destructor.type: type = fn_type @T.cpp_destructor [concrete] // CHECK:STDOUT: %T.cpp_destructor: %T.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -1100,18 +1100,18 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %Core.import_ref.dfa: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.47c) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.25a)] // CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.b72 = impl_witness_table (%Core.import_ref.dfa), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesConstRValue.cpp_overload_set.value: %TakesConstRValue.cpp_overload_set.type = cpp_overload_set_value @TakesConstRValue.cpp_overload_set [concrete = constants.%TakesConstRValue.cpp_overload_set.value] -// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.051] {} {} +// CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.3b5] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %s.patt: %pattern_type.c0c = ref_binding_pattern s [concrete] -// CHECK:STDOUT: %s.var_patt: %pattern_type.c0c = var_pattern %s.patt [concrete] +// CHECK:STDOUT: %s.patt: %pattern_type.b2d = ref_binding_pattern s [concrete] +// CHECK:STDOUT: %s.var_patt: %pattern_type.b2d = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a62) [concrete = constants.%DefaultOrUnformed.facet.0f7] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.0f7] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.fc0) [concrete = constants.%DefaultOrUnformed.facet.1d7] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.1d7] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: @@ -1127,26 +1127,26 @@ fn PassConstRef(ref x: const X) { // CHECK:STDOUT: %TakesConstRValue.ref.loc17: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %t.patt: %pattern_type.1a9 = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.var_patt: %pattern_type.1a9 = var_pattern %t.patt [concrete] +// CHECK:STDOUT: %t.patt: %pattern_type.471 = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.var_patt: %pattern_type.471 = var_pattern %t.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.var: ref %T.051 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.051, (constants.%DefaultOrUnformed.impl_witness.6b5) [concrete = constants.%DefaultOrUnformed.facet.ace] -// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.051, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.ace] -// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.051] -// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.051] +// CHECK:STDOUT: %t.var: ref %T.3b5 = var %t.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.3b5, (constants.%DefaultOrUnformed.impl_witness.756) [concrete = constants.%DefaultOrUnformed.facet.5e6] +// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.3b5, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.5e6] +// CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.3b5] +// CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.3b5] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc19_3: ref %T.051 = splice_block %t.var {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.051 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc19_3: ref %T.3b5 = splice_block %t.var {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.3b5 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19 -// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.051] { +// CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.3b5] { // CHECK:STDOUT: %Cpp.ref.loc19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.051] +// CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.3b5] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref %T.051 = ref_binding t, %t.var +// CHECK:STDOUT: %t: ref %T.3b5 = ref_binding t, %t.var // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %TakesConstRValue.ref.loc28: %TakesConstRValue.cpp_overload_set.type = name_ref TakesConstRValue, imports.%TakesConstRValue.cpp_overload_set.value [concrete = constants.%TakesConstRValue.cpp_overload_set.value] -// CHECK:STDOUT: %t.ref: ref %T.051 = name_ref t, %t +// CHECK:STDOUT: %t.ref: ref %T.3b5 = name_ref t, %t // CHECK:STDOUT: %T.cpp_destructor.bound: = bound_method %t.var, constants.%T.cpp_destructor // CHECK:STDOUT: %T.cpp_destructor.call: init %empty_tuple.type = call %T.cpp_destructor.bound(%t.var) // CHECK:STDOUT: %S.cpp_destructor.bound: = bound_method %s.var, constants.%S.cpp_destructor diff --git a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon index 69cba6988db7..181983858b5b 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon @@ -498,7 +498,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: 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: } @@ -524,7 +524,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -571,7 +571,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: 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: } @@ -597,7 +597,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -609,7 +609,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: 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: } @@ -635,7 +635,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -644,11 +644,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %pattern_type.d11: type = pattern_type %S [concrete] +// CHECK:STDOUT: %pattern_type.158: type = pattern_type %S [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.87a: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.da2: 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: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] @@ -659,9 +659,9 @@ fn F() { // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.3d0: = custom_witness (%S.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.ced: %Default.type = facet_value %S, (%custom_witness.3d0) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.982: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.ced) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.982) [concrete] +// CHECK:STDOUT: %Default.facet.6c2: %Default.type = facet_value %S, (%custom_witness.3d0) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.0fd: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.6c2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.0fd) [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -693,14 +693,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.87a = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.da2 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.d11 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.d11 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.158 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.158 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %S = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.982) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.0fd) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%S] @@ -726,7 +726,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.b4e: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.da6: 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: } @@ -761,7 +761,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.b4e = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.da6 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -774,10 +774,10 @@ fn F() { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.a32: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.8f4: 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: %pattern_type.194: type = pattern_type %O [concrete] +// CHECK:STDOUT: %pattern_type.554: type = pattern_type %O [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -786,9 +786,9 @@ fn F() { // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%O.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.15f: %Default.type = facet_value %O, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.424: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.15f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.424) [concrete] +// CHECK:STDOUT: %Default.facet.478: %Default.type = facet_value %O, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.1cc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.478) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.1cc) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -816,14 +816,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.a32 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.8f4 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.194 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.194 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.554 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.554 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.424) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.1cc) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] @@ -852,7 +852,7 @@ fn F() { // CHECK:STDOUT: %S.bar: %S.bar.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: 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: } @@ -884,7 +884,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc9: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %.loc9 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc9 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -896,7 +896,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: 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: %S.bar.cpp_overload_set.type: type = cpp_overload_set_type @S.bar.cpp_overload_set [concrete] @@ -928,7 +928,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: %S = name_ref s, %s // CHECK:STDOUT: %.loc8: ref %S = value_as_ref %s.ref -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // 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] @@ -1016,7 +1016,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: 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: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -1041,7 +1041,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %S = temporary_storage -// CHECK:STDOUT: %addr: %ptr.9e9 = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.055 = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %S to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %S = temporary %.loc8_11.1, %.loc8_11.2 diff --git a/toolchain/check/testdata/interop/cpp/function/import/union.carbon b/toolchain/check/testdata/interop/cpp/function/import/union.carbon index 4a3de47a10ec..6a8e1aa9571b 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/union.carbon @@ -458,7 +458,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.72b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.b3b: 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: } @@ -484,7 +484,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.72b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -496,7 +496,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.72b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.b3b: 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: } @@ -522,7 +522,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.72b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -534,7 +534,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.72b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.b3b: 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: } @@ -560,7 +560,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.72b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -569,11 +569,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %U: type = class_type @U [concrete] -// CHECK:STDOUT: %pattern_type.162: type = pattern_type %U [concrete] +// CHECK:STDOUT: %pattern_type.769: type = pattern_type %U [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.c47: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.987: 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: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] @@ -584,9 +584,9 @@ fn F() { // CHECK:STDOUT: %U.Op.type: type = fn_type @U.Op [concrete] // CHECK:STDOUT: %U.Op: %U.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.3d0: = custom_witness (%U.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.c27: %Default.type = facet_value %U, (%custom_witness.3d0) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f55: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.c27) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %U, (%DefaultOrUnformed.impl_witness.f55) [concrete] +// CHECK:STDOUT: %Default.facet.f66: %Default.type = facet_value %U, (%custom_witness.3d0) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.9ec: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f66) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %U, (%DefaultOrUnformed.impl_witness.9ec) [concrete] // CHECK:STDOUT: %U.cpp_destructor.type: type = fn_type @U.cpp_destructor [concrete] // CHECK:STDOUT: %U.cpp_destructor: %U.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -618,14 +618,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.c47 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.987 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.162 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.162 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.769 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.769 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %U = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%U, (constants.%DefaultOrUnformed.impl_witness.f55) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%U, (constants.%DefaultOrUnformed.impl_witness.9ec) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%U, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%U] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%U] @@ -651,7 +651,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.9be: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.ff3: 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: } @@ -686,7 +686,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.9be = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.ff3 = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -699,10 +699,10 @@ fn F() { // CHECK:STDOUT: %U: type = class_type @U [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.676: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.5aa: 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: %pattern_type.194: type = pattern_type %O [concrete] +// CHECK:STDOUT: %pattern_type.554: type = pattern_type %O [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -711,9 +711,9 @@ fn F() { // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%O.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.15f: %Default.type = facet_value %O, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.424: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.15f) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.424) [concrete] +// CHECK:STDOUT: %Default.facet.478: %Default.type = facet_value %O, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.1cc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.478) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.1cc) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -741,14 +741,14 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.676 = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.5aa = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.194 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.194 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.554 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.554 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.424) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.1cc) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] @@ -777,7 +777,7 @@ fn F() { // CHECK:STDOUT: %U.bar: %U.bar.type = struct_value () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.72b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.b3b: 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: } @@ -809,7 +809,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc9: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.72b = addr_of %.loc9 +// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc9 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } @@ -821,7 +821,7 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.72b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.b3b: 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: %U.bar.cpp_overload_set.type: type = cpp_overload_set_type @U.bar.cpp_overload_set [concrete] @@ -853,7 +853,7 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %u.ref: %U = name_ref u, %u // CHECK:STDOUT: %.loc8: ref %U = value_as_ref %u.ref -// CHECK:STDOUT: %addr: %ptr.72b = addr_of %.loc8 +// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %U.ref.loc9: type = name_ref U, imports.%U.decl [concrete = constants.%U] @@ -941,7 +941,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %U: type = class_type @U [concrete] -// CHECK:STDOUT: %ptr.72b: type = ptr_type %U [concrete] +// CHECK:STDOUT: %ptr.b3b: 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: %U.cpp_destructor.type: type = fn_type @U.cpp_destructor [concrete] @@ -966,7 +966,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %U = temporary_storage -// CHECK:STDOUT: %addr: %ptr.72b = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.b3b = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %U to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %U = temporary %.loc8_11.1, %.loc8_11.2 diff --git a/toolchain/check/testdata/interop/cpp/impls/as.carbon b/toolchain/check/testdata/interop/cpp/impls/as.carbon index f1ca82779faa..76db8e23245b 100644 --- a/toolchain/check/testdata/interop/cpp/impls/as.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/as.carbon @@ -137,7 +137,7 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] // CHECK:STDOUT: %Source.cpp_operator.type: type = fn_type @Source.cpp_operator [concrete] // CHECK:STDOUT: %Source.cpp_operator: %Source.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.7c0: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type.2ffc11.1: type = fn_type @Dest__carbon_thunk.1 [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.61ac37.1: %Dest__carbon_thunk.type.2ffc11.1 = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] @@ -146,8 +146,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest.Op: %Dest.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Source2: type = class_type @Source2 [concrete] // CHECK:STDOUT: %Dest2: type = class_type @Dest2 [concrete] -// CHECK:STDOUT: %ptr.96f: type = ptr_type %Source2 [concrete] -// CHECK:STDOUT: %ptr.129: type = ptr_type %Dest2 [concrete] +// CHECK:STDOUT: %ptr.692: type = ptr_type %Source2 [concrete] +// CHECK:STDOUT: %ptr.a5d: type = ptr_type %Dest2 [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk.type: type = fn_type @Dest2__carbon_thunk [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk: %Dest2__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest2.cpp_destructor.type: type = fn_type @Dest2.cpp_destructor [concrete] @@ -155,8 +155,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest2.Op.type: type = fn_type @Dest2.Op [concrete] // CHECK:STDOUT: %Dest2.Op: %Dest2.Op.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitConstructor: type = class_type @ExplicitConstructor [concrete] -// CHECK:STDOUT: %ptr.f95: type = ptr_type %Source [concrete] -// CHECK:STDOUT: %ptr.5c4: type = ptr_type %ExplicitConstructor [concrete] +// CHECK:STDOUT: %ptr.71b: type = ptr_type %Source [concrete] +// CHECK:STDOUT: %ptr.207: type = ptr_type %ExplicitConstructor [concrete] // CHECK:STDOUT: %ExplicitConstructor__carbon_thunk.type: type = fn_type @ExplicitConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %ExplicitConstructor__carbon_thunk: %ExplicitConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitConstructor.cpp_destructor.type: type = fn_type @ExplicitConstructor.cpp_destructor [concrete] @@ -240,7 +240,7 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %Source.cpp_operator.bound: = bound_method %s.ref, imports.%Source.cpp_operator.decl // CHECK:STDOUT: %.loc8_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.7c0 = addr_of %.loc8_5.1 +// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc8_5.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.1(%s.ref, %addr) // CHECK:STDOUT: %.loc8_5.2: init %Dest to %.loc8_5.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc8_5.3: init %Dest = converted %s.ref, %.loc8_5.2 @@ -260,8 +260,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest2.ref: type = name_ref Dest2, imports.%Dest2.decl [concrete = constants.%Dest2] // CHECK:STDOUT: %.loc14_5.1: ref %Dest2 = temporary_storage // CHECK:STDOUT: %.loc14_3: ref %Source2 = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc14_5.1: %ptr.96f = addr_of %.loc14_3 -// CHECK:STDOUT: %addr.loc14_5.2: %ptr.129 = addr_of %.loc14_5.1 +// CHECK:STDOUT: %addr.loc14_5.1: %ptr.692 = addr_of %.loc14_3 +// CHECK:STDOUT: %addr.loc14_5.2: %ptr.a5d = addr_of %.loc14_5.1 // CHECK:STDOUT: %Dest2__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest2__carbon_thunk.decl(%addr.loc14_5.1, %addr.loc14_5.2) // CHECK:STDOUT: %.loc14_5.2: init %Dest2 to %.loc14_5.1 = mark_in_place_init %Dest2__carbon_thunk.call // CHECK:STDOUT: %.loc14_5.3: init %Dest2 = converted %s.ref, %.loc14_5.2 @@ -281,8 +281,8 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %ExplicitConstructor.ref: type = name_ref ExplicitConstructor, imports.%ExplicitConstructor.decl [concrete = constants.%ExplicitConstructor] // CHECK:STDOUT: %.loc20_5.1: ref %ExplicitConstructor = temporary_storage // CHECK:STDOUT: %.loc20_3: ref %Source = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc20_5.1: %ptr.f95 = addr_of %.loc20_3 -// CHECK:STDOUT: %addr.loc20_5.2: %ptr.5c4 = addr_of %.loc20_5.1 +// CHECK:STDOUT: %addr.loc20_5.1: %ptr.71b = addr_of %.loc20_3 +// CHECK:STDOUT: %addr.loc20_5.2: %ptr.207 = addr_of %.loc20_5.1 // CHECK:STDOUT: %ExplicitConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%ExplicitConstructor__carbon_thunk.decl(%addr.loc20_5.1, %addr.loc20_5.2) // CHECK:STDOUT: %.loc20_5.2: init %ExplicitConstructor to %.loc20_5.1 = mark_in_place_init %ExplicitConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc20_5.3: init %ExplicitConstructor = converted %s.ref, %.loc20_5.2 @@ -302,7 +302,7 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %ExplicitConversion.cpp_operator.bound: = bound_method %s.ref, imports.%ExplicitConversion.cpp_operator.decl // CHECK:STDOUT: %.loc26_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.7c0 = addr_of %.loc26_5.1 +// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc26_5.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.2(%s.ref, %addr) // CHECK:STDOUT: %.loc26_5.2: init %Dest to %.loc26_5.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc26_5.3: init %Dest = converted %s.ref, %.loc26_5.2 @@ -319,18 +319,18 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.6a9921.1: type = class_type @ConditionallyExplicit.1 [concrete] -// CHECK:STDOUT: %pattern_type.dc5fb9.1: type = pattern_type %ConditionallyExplicit.6a9921.1 [concrete] -// CHECK:STDOUT: %ptr.f95: type = ptr_type %Source [concrete] -// CHECK:STDOUT: %ptr.d63e0a.1: type = ptr_type %ConditionallyExplicit.6a9921.1 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.d2a: type = class_type @ConditionallyExplicit.1 [concrete] +// CHECK:STDOUT: %pattern_type.e92: type = pattern_type %ConditionallyExplicit.d2a [concrete] +// CHECK:STDOUT: %ptr.71b: type = ptr_type %Source [concrete] +// CHECK:STDOUT: %ptr.c11: type = ptr_type %ConditionallyExplicit.d2a [concrete] // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.type.c43f84.1: type = fn_type @ConditionallyExplicit__carbon_thunk.1 [concrete] // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.379b04.1: %ConditionallyExplicit__carbon_thunk.type.c43f84.1 = struct_value () [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1: type = fn_type @ConditionallyExplicit.cpp_destructor.1 [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.1ad69a.1: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1 = struct_value () [concrete] // CHECK:STDOUT: %ConditionallyExplicit.Op.type.43d658.1: type = fn_type @ConditionallyExplicit.Op.1 [concrete] // CHECK:STDOUT: %ConditionallyExplicit.Op.cc70d5.1: %ConditionallyExplicit.Op.type.43d658.1 = struct_value () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.6a9921.2: type = class_type @ConditionallyExplicit.2 [concrete] -// CHECK:STDOUT: %ptr.d63e0a.2: type = ptr_type %ConditionallyExplicit.6a9921.2 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.717: type = class_type @ConditionallyExplicit.2 [concrete] +// CHECK:STDOUT: %ptr.6d5: type = ptr_type %ConditionallyExplicit.717 [concrete] // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.type.c43f84.2: type = fn_type @ConditionallyExplicit__carbon_thunk.2 [concrete] // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.379b04.2: %ConditionallyExplicit__carbon_thunk.type.c43f84.2 = struct_value () [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.2: type = fn_type @ConditionallyExplicit.cpp_destructor.2 [concrete] @@ -338,10 +338,10 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: %ConditionallyExplicit.Op.type.43d658.2: type = fn_type @ConditionallyExplicit.Op.2 [concrete] // CHECK:STDOUT: %ConditionallyExplicit.Op.cc70d5.2: %ConditionallyExplicit.Op.type.43d658.2 = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.a9f: type = pattern_type %Dest [concrete] +// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.type: type = fn_type @ConditionallyExplicit.cpp_operator [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator: %ConditionallyExplicit.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.7c0: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type: type = fn_type @Dest__carbon_thunk [concrete] // CHECK:STDOUT: %Dest__carbon_thunk: %Dest__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] @@ -353,13 +353,13 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .Source = %Source.decl -// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.7f9e91.1 -// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.7f9e91.2 +// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.6be +// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.80b // CHECK:STDOUT: .Dest = %Dest.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} -// CHECK:STDOUT: %ConditionallyExplicit.decl.7f9e91.1: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.6a9921.1] {} {} +// CHECK:STDOUT: %ConditionallyExplicit.decl.6be: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.d2a] {} {} // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.decl.3d8900.1: %ConditionallyExplicit__carbon_thunk.type.c43f84.1 = fn_decl @ConditionallyExplicit__carbon_thunk.1 [concrete = constants.%ConditionallyExplicit__carbon_thunk.379b04.1] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -370,7 +370,7 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %ConditionallyExplicit.decl.7f9e91.2: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.6a9921.2] {} {} +// CHECK:STDOUT: %ConditionallyExplicit.decl.80b: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.717] {} {} // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.decl.3d8900.2: %ConditionallyExplicit__carbon_thunk.type.c43f84.2 = fn_decl @ConditionallyExplicit__carbon_thunk.2 [concrete = constants.%ConditionallyExplicit__carbon_thunk.379b04.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -402,34 +402,34 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: fn @ConstructorNotExplicit(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.dc5fb9.1 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.e92 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref.loc8: %Source = name_ref s, %s -// CHECK:STDOUT: %.loc8_13: type = splice_block %ConditionallyExplicitFalse.ref.loc8 [concrete = constants.%ConditionallyExplicit.6a9921.1] { +// CHECK:STDOUT: %.loc8_13: type = splice_block %ConditionallyExplicitFalse.ref.loc8 [concrete = constants.%ConditionallyExplicit.d2a] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc8: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.7f9e91.1 [concrete = constants.%ConditionallyExplicit.6a9921.1] +// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc8: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.6be [concrete = constants.%ConditionallyExplicit.d2a] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_43.1: ref %ConditionallyExplicit.6a9921.1 = temporary_storage +// CHECK:STDOUT: %.loc8_43.1: ref %ConditionallyExplicit.d2a = temporary_storage // CHECK:STDOUT: %.loc8_43.2: ref %Source = value_as_ref %s.ref.loc8 -// CHECK:STDOUT: %addr.loc8_43.1: %ptr.f95 = addr_of %.loc8_43.2 -// CHECK:STDOUT: %addr.loc8_43.2: %ptr.d63e0a.1 = addr_of %.loc8_43.1 +// CHECK:STDOUT: %addr.loc8_43.1: %ptr.71b = addr_of %.loc8_43.2 +// CHECK:STDOUT: %addr.loc8_43.2: %ptr.c11 = addr_of %.loc8_43.1 // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.3d8900.1(%addr.loc8_43.1, %addr.loc8_43.2) -// CHECK:STDOUT: %.loc8_43.3: init %ConditionallyExplicit.6a9921.1 to %.loc8_43.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc8 -// CHECK:STDOUT: %.loc8_43.4: init %ConditionallyExplicit.6a9921.1 = converted %s.ref.loc8, %.loc8_43.3 -// CHECK:STDOUT: %.loc8_43.5: ref %ConditionallyExplicit.6a9921.1 = temporary %.loc8_43.1, %.loc8_43.4 -// CHECK:STDOUT: %.loc8_43.6: %ConditionallyExplicit.6a9921.1 = acquire_value %.loc8_43.5 -// CHECK:STDOUT: %_: %ConditionallyExplicit.6a9921.1 = value_binding _, %.loc8_43.6 +// CHECK:STDOUT: %.loc8_43.3: init %ConditionallyExplicit.d2a to %.loc8_43.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc8 +// CHECK:STDOUT: %.loc8_43.4: init %ConditionallyExplicit.d2a = converted %s.ref.loc8, %.loc8_43.3 +// CHECK:STDOUT: %.loc8_43.5: ref %ConditionallyExplicit.d2a = temporary %.loc8_43.1, %.loc8_43.4 +// CHECK:STDOUT: %.loc8_43.6: %ConditionallyExplicit.d2a = acquire_value %.loc8_43.5 +// CHECK:STDOUT: %_: %ConditionallyExplicit.d2a = value_binding _, %.loc8_43.6 // CHECK:STDOUT: %s.ref.loc9: %Source = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc9: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.7f9e91.1 [concrete = constants.%ConditionallyExplicit.6a9921.1] -// CHECK:STDOUT: %.loc9_5.1: ref %ConditionallyExplicit.6a9921.1 = temporary_storage +// CHECK:STDOUT: %ConditionallyExplicitFalse.ref.loc9: type = name_ref ConditionallyExplicitFalse, imports.%ConditionallyExplicit.decl.6be [concrete = constants.%ConditionallyExplicit.d2a] +// CHECK:STDOUT: %.loc9_5.1: ref %ConditionallyExplicit.d2a = temporary_storage // CHECK:STDOUT: %.loc9_3: ref %Source = value_as_ref %s.ref.loc9 -// CHECK:STDOUT: %addr.loc9_5.1: %ptr.f95 = addr_of %.loc9_3 -// CHECK:STDOUT: %addr.loc9_5.2: %ptr.d63e0a.1 = addr_of %.loc9_5.1 +// CHECK:STDOUT: %addr.loc9_5.1: %ptr.71b = addr_of %.loc9_3 +// CHECK:STDOUT: %addr.loc9_5.2: %ptr.c11 = addr_of %.loc9_5.1 // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.3d8900.1(%addr.loc9_5.1, %addr.loc9_5.2) -// CHECK:STDOUT: %.loc9_5.2: init %ConditionallyExplicit.6a9921.1 to %.loc9_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc9 -// CHECK:STDOUT: %.loc9_5.3: init %ConditionallyExplicit.6a9921.1 = converted %s.ref.loc9, %.loc9_5.2 -// CHECK:STDOUT: %.loc9_5.4: ref %ConditionallyExplicit.6a9921.1 = temporary %.loc9_5.1, %.loc9_5.3 +// CHECK:STDOUT: %.loc9_5.2: init %ConditionallyExplicit.d2a to %.loc9_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call.loc9 +// CHECK:STDOUT: %.loc9_5.3: init %ConditionallyExplicit.d2a = converted %s.ref.loc9, %.loc9_5.2 +// CHECK:STDOUT: %.loc9_5.4: ref %ConditionallyExplicit.d2a = temporary %.loc9_5.1, %.loc9_5.3 // CHECK:STDOUT: // CHECK:STDOUT: %ConditionallyExplicit.Op.bound.loc9: = bound_method %.loc9_5.4, constants.%ConditionallyExplicit.Op.cc70d5.1 // CHECK:STDOUT: %Op.ref.loc9: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.1 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.6e607d.1 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ad69a.1] @@ -446,15 +446,15 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.7f9e91.2 [concrete = constants.%ConditionallyExplicit.6a9921.2] -// CHECK:STDOUT: %.loc15_5.1: ref %ConditionallyExplicit.6a9921.2 = temporary_storage +// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.80b [concrete = constants.%ConditionallyExplicit.717] +// CHECK:STDOUT: %.loc15_5.1: ref %ConditionallyExplicit.717 = temporary_storage // CHECK:STDOUT: %.loc15_3: ref %Source = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc15_5.1: %ptr.f95 = addr_of %.loc15_3 -// CHECK:STDOUT: %addr.loc15_5.2: %ptr.d63e0a.2 = addr_of %.loc15_5.1 +// CHECK:STDOUT: %addr.loc15_5.1: %ptr.71b = addr_of %.loc15_3 +// CHECK:STDOUT: %addr.loc15_5.2: %ptr.6d5 = addr_of %.loc15_5.1 // CHECK:STDOUT: %ConditionallyExplicit__carbon_thunk.call: init %empty_tuple.type = call imports.%ConditionallyExplicit__carbon_thunk.decl.3d8900.2(%addr.loc15_5.1, %addr.loc15_5.2) -// CHECK:STDOUT: %.loc15_5.2: init %ConditionallyExplicit.6a9921.2 to %.loc15_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call -// CHECK:STDOUT: %.loc15_5.3: init %ConditionallyExplicit.6a9921.2 = converted %s.ref, %.loc15_5.2 -// CHECK:STDOUT: %.loc15_5.4: ref %ConditionallyExplicit.6a9921.2 = temporary %.loc15_5.1, %.loc15_5.3 +// CHECK:STDOUT: %.loc15_5.2: init %ConditionallyExplicit.717 to %.loc15_5.1 = mark_in_place_init %ConditionallyExplicit__carbon_thunk.call +// CHECK:STDOUT: %.loc15_5.3: init %ConditionallyExplicit.717 = converted %s.ref, %.loc15_5.2 +// CHECK:STDOUT: %.loc15_5.4: ref %ConditionallyExplicit.717 = temporary %.loc15_5.1, %.loc15_5.3 // CHECK:STDOUT: // CHECK:STDOUT: %ConditionallyExplicit.Op.bound: = bound_method %.loc15_5.4, constants.%ConditionallyExplicit.Op.cc70d5.2 // CHECK:STDOUT: %Op.ref: %ConditionallyExplicit.cpp_destructor.type.6ce8c4.2 = name_ref Op, imports.%ConditionallyExplicit.cpp_destructor.decl.6e607d.2 [concrete = constants.%ConditionallyExplicit.cpp_destructor.1ad69a.2] @@ -463,31 +463,31 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConversionNotExplicit(%s.param: %ConditionallyExplicit.6a9921.1) { +// CHECK:STDOUT: fn @ConversionNotExplicit(%s.param: %ConditionallyExplicit.d2a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.ref.loc21: %ConditionallyExplicit.6a9921.1 = name_ref s, %s +// CHECK:STDOUT: %s.ref.loc21: %ConditionallyExplicit.d2a = name_ref s, %s // CHECK:STDOUT: %.loc21_13: type = splice_block %Dest.ref.loc21 [concrete = constants.%Dest] { // CHECK:STDOUT: %Cpp.ref.loc21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref.loc21: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: } // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound.loc21: = bound_method %s.ref.loc21, imports.%ConditionallyExplicit.cpp_operator.decl // CHECK:STDOUT: %.loc21_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr.loc21: %ptr.7c0 = addr_of %.loc21_21.1 +// CHECK:STDOUT: %addr.loc21: %ptr.246 = addr_of %.loc21_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call.loc21: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref.loc21, %addr.loc21) // CHECK:STDOUT: %.loc21_21.2: init %Dest to %.loc21_21.1 = mark_in_place_init %Dest__carbon_thunk.call.loc21 // CHECK:STDOUT: %.loc21_21.3: init %Dest = converted %s.ref.loc21, %.loc21_21.2 // CHECK:STDOUT: %.loc21_21.4: ref %Dest = temporary %.loc21_21.1, %.loc21_21.3 // CHECK:STDOUT: %.loc21_21.5: %Dest = acquire_value %.loc21_21.4 // CHECK:STDOUT: %_: %Dest = value_binding _, %.loc21_21.5 -// CHECK:STDOUT: %s.ref.loc22: %ConditionallyExplicit.6a9921.1 = name_ref s, %s +// CHECK:STDOUT: %s.ref.loc22: %ConditionallyExplicit.d2a = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc22: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref.loc22: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound.loc22: = bound_method %s.ref.loc22, imports.%ConditionallyExplicit.cpp_operator.decl // CHECK:STDOUT: %.loc22_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.7c0 = addr_of %.loc22_5.1 +// CHECK:STDOUT: %addr.loc22: %ptr.246 = addr_of %.loc22_5.1 // CHECK:STDOUT: %Dest__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref.loc22, %addr.loc22) // CHECK:STDOUT: %.loc22_5.2: init %Dest to %.loc22_5.1 = mark_in_place_init %Dest__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_5.3: init %Dest = converted %s.ref.loc22, %.loc22_5.2 @@ -504,14 +504,14 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.6a9921.1) { +// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.d2a) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.6a9921.1 = name_ref s, %s +// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.d2a = name_ref s, %s // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound: = bound_method %s.ref, imports.%ConditionallyExplicit.cpp_operator.decl // CHECK:STDOUT: %.loc28_5.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.7c0 = addr_of %.loc28_5.1 +// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc28_5.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref, %addr) // CHECK:STDOUT: %.loc28_5.2: init %Dest to %.loc28_5.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc28_5.3: init %Dest = converted %s.ref, %.loc28_5.2 @@ -528,14 +528,14 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.6a9921.1: type = class_type @ConditionallyExplicit.1 [concrete] -// CHECK:STDOUT: %pattern_type.dc5fb9.1: type = pattern_type %ConditionallyExplicit.6a9921.1 [concrete] -// CHECK:STDOUT: %ConditionallyExplicit.6a9921.2: type = class_type @ConditionallyExplicit.2 [concrete] -// CHECK:STDOUT: %Dest.058: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.a9f: type = pattern_type %Dest.058 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.717: type = class_type @ConditionallyExplicit.1 [concrete] +// CHECK:STDOUT: %pattern_type.e0f: type = pattern_type %ConditionallyExplicit.717 [concrete] +// CHECK:STDOUT: %ConditionallyExplicit.d2a: type = class_type @ConditionallyExplicit.2 [concrete] +// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.type: type = fn_type @ConditionallyExplicit.cpp_operator [concrete] // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator: %ConditionallyExplicit.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.7c0: type = ptr_type %Dest.058 [concrete] +// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest.b15 [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type: type = fn_type @Dest__carbon_thunk [concrete] // CHECK:STDOUT: %Dest__carbon_thunk: %Dest__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] @@ -547,15 +547,15 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .Source = %Source.decl -// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.7f9e91.1 -// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.7f9e91.2 +// CHECK:STDOUT: .ConditionallyExplicitTrue = %ConditionallyExplicit.decl.80b +// CHECK:STDOUT: .ConditionallyExplicitFalse = %ConditionallyExplicit.decl.6be // CHECK:STDOUT: .Dest = %Dest.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} -// CHECK:STDOUT: %ConditionallyExplicit.decl.7f9e91.1: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.6a9921.1] {} {} -// CHECK:STDOUT: %ConditionallyExplicit.decl.7f9e91.2: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.6a9921.2] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.058] {} {} +// CHECK:STDOUT: %ConditionallyExplicit.decl.80b: type = class_decl @ConditionallyExplicit.1 [concrete = constants.%ConditionallyExplicit.717] {} {} +// CHECK:STDOUT: %ConditionallyExplicit.decl.6be: type = class_decl @ConditionallyExplicit.2 [concrete = constants.%ConditionallyExplicit.d2a] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.decl: %ConditionallyExplicit.cpp_operator.type = fn_decl @ConditionallyExplicit.cpp_operator [concrete = constants.%ConditionallyExplicit.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -576,37 +576,37 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) { // CHECK:STDOUT: fn @ConstructorExplicit(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.dc5fb9.1 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.e0f = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s -// CHECK:STDOUT: %.loc15_13: type = splice_block %ConditionallyExplicitTrue.ref [concrete = constants.%ConditionallyExplicit.6a9921.1] { +// CHECK:STDOUT: %.loc15_13: type = splice_block %ConditionallyExplicitTrue.ref [concrete = constants.%ConditionallyExplicit.717] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.7f9e91.1 [concrete = constants.%ConditionallyExplicit.6a9921.1] +// CHECK:STDOUT: %ConditionallyExplicitTrue.ref: type = name_ref ConditionallyExplicitTrue, imports.%ConditionallyExplicit.decl.80b [concrete = constants.%ConditionallyExplicit.717] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc15_42: %ConditionallyExplicit.6a9921.1 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %ConditionallyExplicit.6a9921.1 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc15_42: %ConditionallyExplicit.717 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %ConditionallyExplicit.717 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.6a9921.2) { +// CHECK:STDOUT: fn @ConversionExplicit(%s.param: %ConditionallyExplicit.d2a) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.6a9921.2 = name_ref s, %s -// CHECK:STDOUT: %.loc21_13: type = splice_block %Dest.ref [concrete = constants.%Dest.058] { +// CHECK:STDOUT: %s.ref: %ConditionallyExplicit.d2a = name_ref s, %s +// CHECK:STDOUT: %.loc21_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { // CHECK:STDOUT: %Cpp.ref.loc21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.058] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] // CHECK:STDOUT: } // CHECK:STDOUT: %ConditionallyExplicit.cpp_operator.bound: = bound_method %s.ref, imports.%ConditionallyExplicit.cpp_operator.decl -// CHECK:STDOUT: %.loc21_21.1: ref %Dest.058 = temporary_storage -// CHECK:STDOUT: %addr: %ptr.7c0 = addr_of %.loc21_21.1 +// CHECK:STDOUT: %.loc21_21.1: ref %Dest.b15 = temporary_storage +// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc21_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref, %addr) -// CHECK:STDOUT: %.loc21_21.2: init %Dest.058 to %.loc21_21.1 = mark_in_place_init %Dest__carbon_thunk.call -// CHECK:STDOUT: %.loc21_21.3: init %Dest.058 = converted %s.ref, %.loc21_21.2 -// CHECK:STDOUT: %.loc21_21.4: ref %Dest.058 = temporary %.loc21_21.1, %.loc21_21.3 -// CHECK:STDOUT: %.loc21_21.5: %Dest.058 = acquire_value %.loc21_21.4 -// CHECK:STDOUT: %_: %Dest.058 = value_binding _, %.loc21_21.5 +// CHECK:STDOUT: %.loc21_21.2: init %Dest.b15 to %.loc21_21.1 = mark_in_place_init %Dest__carbon_thunk.call +// CHECK:STDOUT: %.loc21_21.3: init %Dest.b15 = converted %s.ref, %.loc21_21.2 +// CHECK:STDOUT: %.loc21_21.4: ref %Dest.b15 = temporary %.loc21_21.1, %.loc21_21.3 +// CHECK:STDOUT: %.loc21_21.5: %Dest.b15 = acquire_value %.loc21_21.4 +// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, %.loc21_21.5 // CHECK:STDOUT: // CHECK:STDOUT: %Dest.Op.bound: = bound_method %.loc21_21.4, constants.%Dest.Op // CHECK:STDOUT: %Op.ref: %Dest.cpp_destructor.type = name_ref Op, imports.%Dest.cpp_destructor.decl [concrete = constants.%Dest.cpp_destructor] diff --git a/toolchain/check/testdata/interop/cpp/impls/copy.carbon b/toolchain/check/testdata/interop/cpp/impls/copy.carbon index ad07ff8740e5..14c2e6912212 100644 --- a/toolchain/check/testdata/interop/cpp/impls/copy.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/copy.carbon @@ -200,31 +200,31 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copyable.Copyable.type: type = fn_type @Copyable.Copyable [concrete] // CHECK:STDOUT: %Copyable.Copyable: %Copyable.Copyable.type = struct_value () [concrete] -// CHECK:STDOUT: %const.bd1: type = const_type %Copyable [concrete] -// CHECK:STDOUT: %ptr.f7a: type = ptr_type %const.bd1 [concrete] -// CHECK:STDOUT: %ptr.e16: type = ptr_type %Copyable [concrete] +// CHECK:STDOUT: %const.151: type = const_type %Copyable [concrete] +// CHECK:STDOUT: %ptr.765: type = ptr_type %const.151 [concrete] +// CHECK:STDOUT: %ptr.fc9: type = ptr_type %Copyable [concrete] // CHECK:STDOUT: %Copyable__carbon_thunk.type: type = fn_type @Copyable__carbon_thunk [concrete] // CHECK:STDOUT: %Copyable__carbon_thunk: %Copyable__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Copyable.Op.type: type = fn_type @Copyable.Op [concrete] // CHECK:STDOUT: %Copyable.Op: %Copyable.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.b8df63.1: = custom_witness (%Copyable.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.af5: %Copy.type = facet_value %Copyable, (%custom_witness.b8df63.1) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.b43: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.af5) [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b43, %Copy.facet.af5 [concrete] +// CHECK:STDOUT: %Copy.facet.0af: %Copy.type = facet_value %Copyable, (%custom_witness.b8df63.1) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.b36: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.0af) [concrete] +// CHECK:STDOUT: %.8c1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b36, %Copy.facet.0af [concrete] // CHECK:STDOUT: %ExplicitCopy: type = class_type @ExplicitCopy [concrete] // CHECK:STDOUT: %ExplicitCopy.ExplicitCopy.type: type = fn_type @ExplicitCopy.ExplicitCopy [concrete] // CHECK:STDOUT: %ExplicitCopy.ExplicitCopy: %ExplicitCopy.ExplicitCopy.type = struct_value () [concrete] -// CHECK:STDOUT: %const.8e8: type = const_type %ExplicitCopy [concrete] -// CHECK:STDOUT: %ptr.85a: type = ptr_type %const.8e8 [concrete] -// CHECK:STDOUT: %ptr.f9f: type = ptr_type %ExplicitCopy [concrete] +// CHECK:STDOUT: %const.869: type = const_type %ExplicitCopy [concrete] +// CHECK:STDOUT: %ptr.39a: type = ptr_type %const.869 [concrete] +// CHECK:STDOUT: %ptr.82f: type = ptr_type %ExplicitCopy [concrete] // CHECK:STDOUT: %ExplicitCopy__carbon_thunk.type: type = fn_type @ExplicitCopy__carbon_thunk [concrete] // CHECK:STDOUT: %ExplicitCopy__carbon_thunk: %ExplicitCopy__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ExplicitCopy.Op.type: type = fn_type @ExplicitCopy.Op [concrete] // CHECK:STDOUT: %ExplicitCopy.Op: %ExplicitCopy.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.b8df63.2: = custom_witness (%ExplicitCopy.Op), @Copy [concrete] -// CHECK:STDOUT: %Copy.facet.4c2: %Copy.type = facet_value %ExplicitCopy, (%custom_witness.b8df63.2) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.4db: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.4c2) [concrete] -// CHECK:STDOUT: %.3e7: type = fn_type_with_self_type %Copy.WithSelf.Op.type.4db, %Copy.facet.4c2 [concrete] +// CHECK:STDOUT: %Copy.facet.b31: %Copy.type = facet_value %ExplicitCopy, (%custom_witness.b8df63.2) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.baa: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.b31) [concrete] +// CHECK:STDOUT: %.fcd: type = fn_type_with_self_type %Copy.WithSelf.Op.type.baa, %Copy.facet.b31 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -254,16 +254,16 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %Copyable = name_ref c, %c // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0: %.10e = impl_witness_access constants.%custom_witness.b8df63.1, element0 [concrete = constants.%Copyable.Op] +// CHECK:STDOUT: %impl.elem0: %.8c1 = impl_witness_access constants.%custom_witness.b8df63.1, element0 [concrete = constants.%Copyable.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc8_10.1: ref %Copyable = temporary_storage // CHECK:STDOUT: %Op.ref: %Copyable.Copyable.type = name_ref Op, imports.%Copyable.Copyable.decl [concrete = constants.%Copyable.Copyable] // CHECK:STDOUT: // CHECK:STDOUT: %.loc8_10.2: ref %Copyable = value_as_ref %c.ref -// CHECK:STDOUT: %addr.loc8_10.1: %ptr.e16 = addr_of %.loc8_10.2 -// CHECK:STDOUT: %.loc8_10.3: %ptr.f7a = as_compatible %addr.loc8_10.1 -// CHECK:STDOUT: %.loc8_10.4: %ptr.f7a = converted %addr.loc8_10.1, %.loc8_10.3 -// CHECK:STDOUT: %addr.loc8_10.2: %ptr.e16 = addr_of %.loc6_40.1 +// CHECK:STDOUT: %addr.loc8_10.1: %ptr.fc9 = addr_of %.loc8_10.2 +// CHECK:STDOUT: %.loc8_10.3: %ptr.765 = as_compatible %addr.loc8_10.1 +// CHECK:STDOUT: %.loc8_10.4: %ptr.765 = converted %addr.loc8_10.1, %.loc8_10.3 +// CHECK:STDOUT: %addr.loc8_10.2: %ptr.fc9 = addr_of %.loc6_40.1 // CHECK:STDOUT: %Copyable__carbon_thunk.call: init %empty_tuple.type = call imports.%Copyable__carbon_thunk.decl(%.loc8_10.4, %addr.loc8_10.2) // CHECK:STDOUT: %.loc8_10.5: init %Copyable to %.loc6_40.1 = mark_in_place_init %Copyable__carbon_thunk.call // CHECK:STDOUT: return %.loc8_10.5 to %return.param @@ -273,16 +273,16 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %ExplicitCopy = name_ref c, %c // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem0: %.3e7 = impl_witness_access constants.%custom_witness.b8df63.2, element0 [concrete = constants.%ExplicitCopy.Op] +// CHECK:STDOUT: %impl.elem0: %.fcd = impl_witness_access constants.%custom_witness.b8df63.2, element0 [concrete = constants.%ExplicitCopy.Op] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc14_10.1: ref %ExplicitCopy = temporary_storage // CHECK:STDOUT: %Op.ref: %ExplicitCopy.ExplicitCopy.type = name_ref Op, imports.%ExplicitCopy.ExplicitCopy.decl [concrete = constants.%ExplicitCopy.ExplicitCopy] // CHECK:STDOUT: // CHECK:STDOUT: %.loc14_10.2: ref %ExplicitCopy = value_as_ref %c.ref -// CHECK:STDOUT: %addr.loc14_10.1: %ptr.f9f = addr_of %.loc14_10.2 -// CHECK:STDOUT: %.loc14_10.3: %ptr.85a = as_compatible %addr.loc14_10.1 -// CHECK:STDOUT: %.loc14_10.4: %ptr.85a = converted %addr.loc14_10.1, %.loc14_10.3 -// CHECK:STDOUT: %addr.loc14_10.2: %ptr.f9f = addr_of %.loc12_48.1 +// CHECK:STDOUT: %addr.loc14_10.1: %ptr.82f = addr_of %.loc14_10.2 +// CHECK:STDOUT: %.loc14_10.3: %ptr.39a = as_compatible %addr.loc14_10.1 +// CHECK:STDOUT: %.loc14_10.4: %ptr.39a = converted %addr.loc14_10.1, %.loc14_10.3 +// CHECK:STDOUT: %addr.loc14_10.2: %ptr.82f = addr_of %.loc12_48.1 // CHECK:STDOUT: %ExplicitCopy__carbon_thunk.call: init %empty_tuple.type = call imports.%ExplicitCopy__carbon_thunk.decl(%.loc14_10.4, %addr.loc14_10.2) // CHECK:STDOUT: %.loc14_10.5: init %ExplicitCopy to %.loc12_48.1 = mark_in_place_init %ExplicitCopy__carbon_thunk.call // CHECK:STDOUT: return %.loc14_10.5 to %return.param @@ -301,17 +301,17 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: %Copyable.Op.type: type = fn_type @Copyable.Op [concrete] // CHECK:STDOUT: %Copyable.Op: %Copyable.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.b8d: = custom_witness (%Copyable.Op), @Copy.1 [concrete] -// CHECK:STDOUT: %Copy.facet.af5: %Copy.type.62b = facet_value %Copyable, (%custom_witness.b8d) [concrete] -// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy, @Copy.loc6(%Copy.facet.af5) [concrete] -// CHECK:STDOUT: %Wrap.5b3: type = class_type @Wrap, @Wrap(%Copy.facet.af5) [concrete] -// CHECK:STDOUT: %ptr.6b6: type = ptr_type %Wrap.5b3 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.54f: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%Wrap.5b3) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.24f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Wrap.5b3) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.e89: %ptr.as.Copy.impl.Op.type.24f = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.a96: %Copy.type.62b = facet_value %ptr.6b6, (%Copy.impl_witness.54f) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.166: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.a96) [concrete] -// CHECK:STDOUT: %.d7b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.166, %Copy.facet.a96 [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.e89, @ptr.as.Copy.impl.Op(%Wrap.5b3) [concrete] +// CHECK:STDOUT: %Copy.facet.0af: %Copy.type.62b = facet_value %Copyable, (%custom_witness.b8d) [concrete] +// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy, @Copy.loc6(%Copy.facet.0af) [concrete] +// CHECK:STDOUT: %Wrap.cb4: type = class_type @Wrap, @Wrap(%Copy.facet.0af) [concrete] +// CHECK:STDOUT: %ptr.727: type = ptr_type %Wrap.cb4 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.b80: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%Wrap.cb4) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b3b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Wrap.cb4) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b43: %ptr.as.Copy.impl.Op.type.b3b = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.86d: %Copy.type.62b = facet_value %ptr.727, (%Copy.impl_witness.b80) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.111: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.86d) [concrete] +// CHECK:STDOUT: %.378: type = fn_type_with_self_type %Copy.WithSelf.Op.type.111, %Copy.facet.86d [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b43, @ptr.as.Copy.impl.Op(%Wrap.cb4) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -324,22 +324,22 @@ fn EqualWitnesses(p: Wrap(Cpp.Copyable)*) -> Wrap(Cpp.Copyable)* { // CHECK:STDOUT: %Copy.ref: %Copy.type.543 = name_ref Copy, file.%Copy.decl [concrete = constants.%Copy] // CHECK:STDOUT: %c.ref: %Copyable = name_ref c, %c // CHECK:STDOUT: -// CHECK:STDOUT: %Copy.facet: %Copy.type.62b = facet_value constants.%Copyable, (constants.%custom_witness.b8d) [concrete = constants.%Copy.facet.af5] -// CHECK:STDOUT: %.loc12: %Copy.type.62b = converted constants.%Copyable, %Copy.facet [concrete = constants.%Copy.facet.af5] -// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy.ref, @Copy.loc6(constants.%Copy.facet.af5) [concrete = constants.%Copy.specific_fn] +// CHECK:STDOUT: %Copy.facet: %Copy.type.62b = facet_value constants.%Copyable, (constants.%custom_witness.b8d) [concrete = constants.%Copy.facet.0af] +// CHECK:STDOUT: %.loc12: %Copy.type.62b = converted constants.%Copyable, %Copy.facet [concrete = constants.%Copy.facet.0af] +// CHECK:STDOUT: %Copy.specific_fn: = specific_function %Copy.ref, @Copy.loc6(constants.%Copy.facet.0af) [concrete = constants.%Copy.specific_fn] // CHECK:STDOUT: // CHECK:STDOUT: %Copy.call: init %Copyable to %.loc10_34.1 = call %Copy.specific_fn(%c.ref) // CHECK:STDOUT: return %Copy.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @EqualWitnesses(%p.param: %ptr.6b6) -> out %return.param: %ptr.6b6 { +// CHECK:STDOUT: fn @EqualWitnesses(%p.param: %ptr.727) -> out %return.param: %ptr.727 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %p.ref: %ptr.6b6 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.d7b = impl_witness_access constants.%Copy.impl_witness.54f, element0 [concrete = constants.%ptr.as.Copy.impl.Op.e89] +// CHECK:STDOUT: %p.ref: %ptr.727 = name_ref p, %p +// CHECK:STDOUT: %impl.elem0: %.378 = impl_witness_access constants.%Copy.impl_witness.b80, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b43] // CHECK:STDOUT: %bound_method.loc20_10.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Wrap.5b3) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%Wrap.cb4) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc20_10.2: = bound_method %p.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.6b6 = call %bound_method.loc20_10.2(%p.ref) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call: init %ptr.727 = call %bound_method.loc20_10.2(%p.ref) // CHECK:STDOUT: return %ptr.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon index 6cf3944fa4ff..1613efa46984 100644 --- a/toolchain/check/testdata/interop/cpp/impls/destroy.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/destroy.carbon @@ -209,7 +209,7 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %PublicDestructor: type = class_type @PublicDestructor [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.512: type = pattern_type %PublicDestructor [concrete] +// CHECK:STDOUT: %pattern_type.c53: type = pattern_type %PublicDestructor [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %PublicDestructor.val: %PublicDestructor = struct_value () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] @@ -222,11 +222,11 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %TrivialDestroy.type: type = fn_type @TrivialDestroy [concrete] // CHECK:STDOUT: %TrivialDestroy: %TrivialDestroy.type = struct_value () [concrete] // CHECK:STDOUT: %TrivialDestructor: type = class_type @TrivialDestructor [concrete] -// CHECK:STDOUT: %pattern_type.2d3: type = pattern_type %TrivialDestructor [concrete] +// CHECK:STDOUT: %pattern_type.322: type = pattern_type %TrivialDestructor [concrete] // CHECK:STDOUT: %TrivialDestructor.val: %TrivialDestructor = struct_value () [concrete] // CHECK:STDOUT: %TrivialDestructor.cpp_destructor.type: type = fn_type @TrivialDestructor.cpp_destructor [concrete] // CHECK:STDOUT: %TrivialDestructor.cpp_destructor: %TrivialDestructor.cpp_destructor.type = struct_value () [concrete] -// CHECK:STDOUT: %Destroy.facet.c9e: %Destroy.type = facet_value %TrivialDestructor, (%custom_witness.cc4) [concrete] +// CHECK:STDOUT: %Destroy.facet.b4f: %Destroy.type = facet_value %TrivialDestructor, (%custom_witness.cc4) [concrete] // CHECK:STDOUT: %TrivialDestructor.Op.type: type = fn_type @TrivialDestructor.Op [concrete] // CHECK:STDOUT: %TrivialDestructor.Op: %TrivialDestructor.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -247,8 +247,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %Destroy.WithSelf.Op.decl: %Destroy.WithSelf.Op.type.12b = fn_decl @Destroy.WithSelf.Op [symbolic = @Destroy.WithSelf.%Destroy.WithSelf.Op (constants.%Destroy.WithSelf.Op.73c)] {} {} // CHECK:STDOUT: %TrivialDestructor.decl: type = class_decl @TrivialDestructor [concrete = constants.%TrivialDestructor] {} {} // CHECK:STDOUT: %TrivialDestructor.cpp_destructor.decl: %TrivialDestructor.cpp_destructor.type = fn_decl @TrivialDestructor.cpp_destructor [concrete = constants.%TrivialDestructor.cpp_destructor] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.2d3 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.2d3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.322 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.322 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %TrivialDestructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %TrivialDestructor = ref_binding self, %self.param @@ -291,8 +291,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: fn @PublicDestroy() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.512 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.512 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.c53 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.c53 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %PublicDestructor = var %a.var_patt // CHECK:STDOUT: %.loc11_41.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -314,8 +314,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: fn @TrivialDestroy() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.2d3 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.2d3 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.322 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.322 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %TrivialDestructor = var %a.var_patt // CHECK:STDOUT: %.loc15_42.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -328,8 +328,8 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %TrivialDestructor = ref_binding a, %a.var // CHECK:STDOUT: %TrivialDestructor.Op.decl: %TrivialDestructor.Op.type = fn_decl @TrivialDestructor.Op [concrete = constants.%TrivialDestructor.Op] { -// CHECK:STDOUT: %self.param_patt: %pattern_type.2d3 = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: %pattern_type.2d3 = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: %pattern_type.322 = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: %pattern_type.322 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: ref %TrivialDestructor = ref_param call_param0 // CHECK:STDOUT: %self: ref %TrivialDestructor = ref_binding self, %self.param @@ -343,7 +343,7 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: // CHECK:STDOUT: fn @TrivialDestructor.cpp_destructor(%self.param: ref %TrivialDestructor) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @TrivialDestructor.Op(%self.param: ref %TrivialDestructor) [thunk imports.%TrivialDestructor.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.c9e)] { +// CHECK:STDOUT: fn @TrivialDestructor.Op(%self.param: ref %TrivialDestructor) [thunk imports.%TrivialDestructor.cpp_destructor.decl for imports.%Destroy.WithSelf.Op.decl, @Destroy.WithSelf.Op(constants.%Destroy.facet.b4f)] { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Op.ref: %TrivialDestructor.cpp_destructor.type = name_ref Op, imports.%TrivialDestructor.cpp_destructor.decl [concrete = constants.%TrivialDestructor.cpp_destructor] // CHECK:STDOUT: %TrivialDestructor.cpp_destructor.bound: = bound_method %self.param, %Op.ref @@ -358,13 +358,13 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %ProtectedDestructor: type = class_type @ProtectedDestructor [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %struct_type.base.ebf: type = struct_type {.base: %ProtectedDestructor} [concrete] +// CHECK:STDOUT: %struct_type.base.233: type = struct_type {.base: %ProtectedDestructor} [concrete] // CHECK:STDOUT: %pattern_type.e25: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.f5e: type = struct_type {.base: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct: %struct_type.base.f5e = struct_value (%empty_struct.a40) [concrete] -// CHECK:STDOUT: %.46a: type = partial_type %ProtectedDestructor [concrete] -// CHECK:STDOUT: %empty_struct.73e: %.46a = struct_value () [concrete] +// CHECK:STDOUT: %.1d0: type = partial_type %ProtectedDestructor [concrete] +// CHECK:STDOUT: %empty_struct.724: %.1d0 = struct_value () [concrete] // CHECK:STDOUT: %ProtectedDestructor.val: %ProtectedDestructor = struct_value () [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%ProtectedDestructor.val) [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.2: type = fn_type @Destroy.Op.loc20_3.2 [concrete] @@ -380,9 +380,9 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %a.var: ref %Derived = var %a.var_patt // CHECK:STDOUT: %.loc20_37.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc20_38.1: %struct_type.base.f5e = struct_literal (%.loc20_37.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc20_38.2: ref %.46a = class_element_access %a.var, element0 -// CHECK:STDOUT: %.loc20_37.2: init %.46a to %.loc20_38.2 = class_init () [concrete = constants.%empty_struct.73e] -// CHECK:STDOUT: %.loc20_38.3: init %.46a = converted %.loc20_37.1, %.loc20_37.2 [concrete = constants.%empty_struct.73e] +// CHECK:STDOUT: %.loc20_38.2: ref %.1d0 = class_element_access %a.var, element0 +// CHECK:STDOUT: %.loc20_37.2: init %.1d0 to %.loc20_38.2 = class_init () [concrete = constants.%empty_struct.724] +// CHECK:STDOUT: %.loc20_38.3: init %.1d0 = converted %.loc20_37.1, %.loc20_37.2 [concrete = constants.%empty_struct.724] // CHECK:STDOUT: %.loc20_38.4: init %ProtectedDestructor = as_compatible %.loc20_38.3 [concrete = constants.%ProtectedDestructor.val] // CHECK:STDOUT: %.loc20_38.5: init %Derived to %a.var = class_init (%.loc20_38.4) [concrete = constants.%Derived.val] // CHECK:STDOUT: %.loc20_3: init %Derived = converted %.loc20_38.1, %.loc20_38.5 [concrete = constants.%Derived.val] @@ -394,7 +394,7 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %struct_type.base.ebf) { +// CHECK:STDOUT: fn @Destroy.Op.loc20_3.1(%self.param: ref %struct_type.base.233) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -411,13 +411,13 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %PrivateDestructor: type = class_type @PrivateDestructor [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %struct_type.base.59d: type = struct_type {.base: %PrivateDestructor} [concrete] +// CHECK:STDOUT: %struct_type.base.dea: type = struct_type {.base: %PrivateDestructor} [concrete] // CHECK:STDOUT: %pattern_type.377: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.f5e: type = struct_type {.base: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct: %struct_type.base.f5e = struct_value (%empty_struct.a40) [concrete] -// CHECK:STDOUT: %.8c2: type = partial_type %PrivateDestructor [concrete] -// CHECK:STDOUT: %empty_struct.441: %.8c2 = struct_value () [concrete] +// CHECK:STDOUT: %.ddb: type = partial_type %PrivateDestructor [concrete] +// CHECK:STDOUT: %empty_struct.0b0: %.ddb = struct_value () [concrete] // CHECK:STDOUT: %PrivateDestructor.val: %PrivateDestructor = struct_value () [concrete] // CHECK:STDOUT: %Derived.val: %Derived = struct_value (%PrivateDestructor.val) [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.2: type = fn_type @Destroy.Op.loc21_3.2 [concrete] @@ -433,9 +433,9 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: %a.var: ref %Derived = var %a.var_patt // CHECK:STDOUT: %.loc21_37.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc21_38.1: %struct_type.base.f5e = struct_literal (%.loc21_37.1) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc21_38.2: ref %.8c2 = class_element_access %a.var, element0 -// CHECK:STDOUT: %.loc21_37.2: init %.8c2 to %.loc21_38.2 = class_init () [concrete = constants.%empty_struct.441] -// CHECK:STDOUT: %.loc21_38.3: init %.8c2 = converted %.loc21_37.1, %.loc21_37.2 [concrete = constants.%empty_struct.441] +// CHECK:STDOUT: %.loc21_38.2: ref %.ddb = class_element_access %a.var, element0 +// CHECK:STDOUT: %.loc21_37.2: init %.ddb to %.loc21_38.2 = class_init () [concrete = constants.%empty_struct.0b0] +// CHECK:STDOUT: %.loc21_38.3: init %.ddb = converted %.loc21_37.1, %.loc21_37.2 [concrete = constants.%empty_struct.0b0] // CHECK:STDOUT: %.loc21_38.4: init %PrivateDestructor = as_compatible %.loc21_38.3 [concrete = constants.%PrivateDestructor.val] // CHECK:STDOUT: %.loc21_38.5: init %Derived to %a.var = class_init (%.loc21_38.4) [concrete = constants.%Derived.val] // CHECK:STDOUT: %.loc21_3: init %Derived = converted %.loc21_38.1, %.loc21_38.5 [concrete = constants.%Derived.val] @@ -447,7 +447,7 @@ fn EqualWitnesses(p: Wrap(Cpp.PublicDestructor)*) -> Wrap(Cpp.PublicDestructor)* // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc21_3.1(%self.param: ref %struct_type.base.59d) { +// CHECK:STDOUT: fn @Destroy.Op.loc21_3.1(%self.param: ref %struct_type.base.dea) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon b/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon index 0a3ba18244bb..cbcbfd9b8195 100644 --- a/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon +++ b/toolchain/check/testdata/interop/cpp/impls/implicit_as.carbon @@ -417,26 +417,26 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.a9f: type = pattern_type %Dest [concrete] +// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest [concrete] // CHECK:STDOUT: %Source.cpp_operator.type: type = fn_type @Source.cpp_operator [concrete] // CHECK:STDOUT: %Source.cpp_operator: %Source.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.7c0: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type.2ffc11.1: type = fn_type @Dest__carbon_thunk.1 [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.61ac37.1: %Dest__carbon_thunk.type.2ffc11.1 = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] // CHECK:STDOUT: %Dest.cpp_destructor: %Dest.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.Op.type: type = fn_type @Dest.Op [concrete] // CHECK:STDOUT: %Dest.Op: %Dest.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %NonConstConversion.ab3: type = class_type @NonConstConversion.1 [concrete] +// CHECK:STDOUT: %NonConstConversion.2f9: type = class_type @NonConstConversion.1 [concrete] // CHECK:STDOUT: %NonConstConversion.cpp_operator.type: type = fn_type @NonConstConversion.cpp_operator [concrete] // CHECK:STDOUT: %NonConstConversion.cpp_operator: %NonConstConversion.cpp_operator.type = struct_value () [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type.2ffc11.2: type = fn_type @Dest__carbon_thunk.2 [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.61ac37.2: %Dest__carbon_thunk.type.2ffc11.2 = struct_value () [concrete] // CHECK:STDOUT: %Source2: type = class_type @Source2 [concrete] // CHECK:STDOUT: %Dest2: type = class_type @Dest2 [concrete] -// CHECK:STDOUT: %pattern_type.0ca: type = pattern_type %Dest2 [concrete] -// CHECK:STDOUT: %ptr.96f: type = ptr_type %Source2 [concrete] -// CHECK:STDOUT: %ptr.129: type = ptr_type %Dest2 [concrete] +// CHECK:STDOUT: %pattern_type.ca0: type = pattern_type %Dest2 [concrete] +// CHECK:STDOUT: %ptr.692: type = ptr_type %Source2 [concrete] +// CHECK:STDOUT: %ptr.a5d: type = ptr_type %Dest2 [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk.type: type = fn_type @Dest2__carbon_thunk [concrete] // CHECK:STDOUT: %Dest2__carbon_thunk: %Dest2__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest2.cpp_destructor.type: type = fn_type @Dest2.cpp_destructor [concrete] @@ -471,7 +471,7 @@ fn InitFromStruct() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %NonConstConversion.decl: type = class_decl @NonConstConversion.1 [concrete = constants.%NonConstConversion.ab3] {} {} +// CHECK:STDOUT: %NonConstConversion.decl: type = class_decl @NonConstConversion.1 [concrete = constants.%NonConstConversion.2f9] {} {} // CHECK:STDOUT: %NonConstConversion.cpp_operator.decl: %NonConstConversion.cpp_operator.type = fn_decl @NonConstConversion.cpp_operator [concrete = constants.%NonConstConversion.cpp_operator] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -499,7 +499,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @UserConversion(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc8_13: type = splice_block %Dest.ref [concrete = constants.%Dest] { @@ -508,7 +508,7 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %Source.cpp_operator.bound: = bound_method %s.ref, imports.%Source.cpp_operator.decl // CHECK:STDOUT: %.loc8_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.7c0 = addr_of %.loc8_21.1 +// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc8_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.1(%s.ref, %addr) // CHECK:STDOUT: %.loc8_21.2: init %Dest to %.loc8_21.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc8_21.3: init %Dest = converted %s.ref, %.loc8_21.2 @@ -523,19 +523,19 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @NonConstConversion.loc12(%s.param: ref %NonConstConversion.ab3) { +// CHECK:STDOUT: fn @NonConstConversion.loc12(%s.param: ref %NonConstConversion.2f9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.ref: ref %NonConstConversion.ab3 = name_ref s, %s +// CHECK:STDOUT: %s.ref: ref %NonConstConversion.2f9 = name_ref s, %s // CHECK:STDOUT: %.loc14_13: type = splice_block %Dest.ref [concrete = constants.%Dest] { // CHECK:STDOUT: %Cpp.ref.loc14: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest] // CHECK:STDOUT: } // CHECK:STDOUT: %NonConstConversion.cpp_operator.bound: = bound_method %s.ref, imports.%NonConstConversion.cpp_operator.decl // CHECK:STDOUT: %.loc14_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.7c0 = addr_of %.loc14_21.1 +// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc14_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl.74d7b8.2(%s.ref, %addr) // CHECK:STDOUT: %.loc14_21.2: init %Dest to %.loc14_21.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc14_21.3: init %Dest = converted %s.ref, %.loc14_21.2 @@ -552,7 +552,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @ConstructorConversion(%s.param: %Source2) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.0ca = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.ca0 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source2 = name_ref s, %s // CHECK:STDOUT: %.loc20_13: type = splice_block %Dest2.ref [concrete = constants.%Dest2] { @@ -561,8 +561,8 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc20_22.1: ref %Dest2 = temporary_storage // CHECK:STDOUT: %.loc20_22.2: ref %Source2 = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc20_22.1: %ptr.96f = addr_of %.loc20_22.2 -// CHECK:STDOUT: %addr.loc20_22.2: %ptr.129 = addr_of %.loc20_22.1 +// CHECK:STDOUT: %addr.loc20_22.1: %ptr.692 = addr_of %.loc20_22.2 +// CHECK:STDOUT: %addr.loc20_22.2: %ptr.a5d = addr_of %.loc20_22.1 // CHECK:STDOUT: %Dest2__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest2__carbon_thunk.decl(%addr.loc20_22.1, %addr.loc20_22.2) // CHECK:STDOUT: %.loc20_22.3: init %Dest2 to %.loc20_22.1 = mark_in_place_init %Dest2__carbon_thunk.call // CHECK:STDOUT: %.loc20_22.4: init %Dest2 = converted %s.ref, %.loc20_22.3 @@ -581,8 +581,8 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonConstConversion: type = class_type @NonConstConversion [concrete] -// CHECK:STDOUT: %Dest.058: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.a9f: type = pattern_type %Dest.058 [concrete] +// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -592,21 +592,21 @@ fn InitFromStruct() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %NonConstConversion.decl: type = class_decl @NonConstConversion [concrete = constants.%NonConstConversion] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.058] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @NonConstConversionTest(%s.param: %NonConstConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %NonConstConversion = name_ref s, %s -// CHECK:STDOUT: %.loc15_13: type = splice_block %Dest.ref [concrete = constants.%Dest.058] { +// CHECK:STDOUT: %.loc15_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.058] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc15_21: %Dest.058 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %Dest.058 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc15_21: %Dest.b15 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -616,9 +616,9 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %InaccessibleConstructor: type = class_type @InaccessibleConstructor [concrete] -// CHECK:STDOUT: %pattern_type.abf: type = pattern_type %InaccessibleConstructor [concrete] -// CHECK:STDOUT: %ptr.f95: type = ptr_type %Source [concrete] -// CHECK:STDOUT: %ptr.ff1: type = ptr_type %InaccessibleConstructor [concrete] +// CHECK:STDOUT: %pattern_type.f5d: type = pattern_type %InaccessibleConstructor [concrete] +// CHECK:STDOUT: %ptr.71b: type = ptr_type %Source [concrete] +// CHECK:STDOUT: %ptr.16a: type = ptr_type %InaccessibleConstructor [concrete] // CHECK:STDOUT: %InaccessibleConstructor__carbon_thunk.type: type = fn_type @InaccessibleConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %InaccessibleConstructor__carbon_thunk: %InaccessibleConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %InaccessibleConstructor.cpp_destructor.type: type = fn_type @InaccessibleConstructor.cpp_destructor [concrete] @@ -627,10 +627,10 @@ fn InitFromStruct() { // CHECK:STDOUT: %InaccessibleConstructor.Op: %InaccessibleConstructor.Op.type = struct_value () [concrete] // CHECK:STDOUT: %InaccessibleConversion: type = class_type @InaccessibleConversion [concrete] // CHECK:STDOUT: %Dest: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.a9f: type = pattern_type %Dest [concrete] +// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest [concrete] // CHECK:STDOUT: %InaccessibleConversion.cpp_operator.type: type = fn_type @InaccessibleConversion.cpp_operator [concrete] // CHECK:STDOUT: %InaccessibleConversion.cpp_operator: %InaccessibleConversion.cpp_operator.type = struct_value () [concrete] -// CHECK:STDOUT: %ptr.7c0: type = ptr_type %Dest [concrete] +// CHECK:STDOUT: %ptr.246: type = ptr_type %Dest [concrete] // CHECK:STDOUT: %Dest__carbon_thunk.type: type = fn_type @Dest__carbon_thunk [concrete] // CHECK:STDOUT: %Dest__carbon_thunk: %Dest__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Dest.cpp_destructor.type: type = fn_type @Dest.cpp_destructor [concrete] @@ -681,7 +681,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InaccessibleConstructorTest(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.abf = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.f5d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc16_13: type = splice_block %InaccessibleConstructor.ref [concrete = constants.%InaccessibleConstructor] { @@ -690,8 +690,8 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc16_40.1: ref %InaccessibleConstructor = temporary_storage // CHECK:STDOUT: %.loc16_40.2: ref %Source = value_as_ref %s.ref -// CHECK:STDOUT: %addr.loc16_40.1: %ptr.f95 = addr_of %.loc16_40.2 -// CHECK:STDOUT: %addr.loc16_40.2: %ptr.ff1 = addr_of %.loc16_40.1 +// CHECK:STDOUT: %addr.loc16_40.1: %ptr.71b = addr_of %.loc16_40.2 +// CHECK:STDOUT: %addr.loc16_40.2: %ptr.16a = addr_of %.loc16_40.1 // CHECK:STDOUT: %InaccessibleConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%InaccessibleConstructor__carbon_thunk.decl(%addr.loc16_40.1, %addr.loc16_40.2) // CHECK:STDOUT: %.loc16_40.3: init %InaccessibleConstructor to %.loc16_40.1 = mark_in_place_init %InaccessibleConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc16_40.4: init %InaccessibleConstructor = converted %s.ref, %.loc16_40.3 @@ -709,7 +709,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InaccessibleConversionTest(%s.param: %InaccessibleConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %InaccessibleConversion = name_ref s, %s // CHECK:STDOUT: %.loc30_13: type = splice_block %Dest.ref [concrete = constants.%Dest] { @@ -718,7 +718,7 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %InaccessibleConversion.cpp_operator.bound: = bound_method %s.ref, imports.%InaccessibleConversion.cpp_operator.decl // CHECK:STDOUT: %.loc30_21.1: ref %Dest = temporary_storage -// CHECK:STDOUT: %addr: %ptr.7c0 = addr_of %.loc30_21.1 +// CHECK:STDOUT: %addr: %ptr.246 = addr_of %.loc30_21.1 // CHECK:STDOUT: %Dest__carbon_thunk.call: init %empty_tuple.type = call imports.%Dest__carbon_thunk.decl(%s.ref, %addr) // CHECK:STDOUT: %.loc30_21.2: init %Dest to %.loc30_21.1 = mark_in_place_init %Dest__carbon_thunk.call // CHECK:STDOUT: %.loc30_21.3: init %Dest = converted %s.ref, %.loc30_21.2 @@ -738,10 +738,10 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %DeletedConstructor: type = class_type @DeletedConstructor [concrete] -// CHECK:STDOUT: %pattern_type.aa2: type = pattern_type %DeletedConstructor [concrete] +// CHECK:STDOUT: %pattern_type.216: type = pattern_type %DeletedConstructor [concrete] // CHECK:STDOUT: %DeletedConversion: type = class_type @DeletedConversion [concrete] -// CHECK:STDOUT: %Dest.058: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.a9f: type = pattern_type %Dest.058 [concrete] +// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -755,13 +755,13 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} // CHECK:STDOUT: %DeletedConstructor.decl: type = class_decl @DeletedConstructor [concrete = constants.%DeletedConstructor] {} {} // CHECK:STDOUT: %DeletedConversion.decl: type = class_decl @DeletedConversion [concrete = constants.%DeletedConversion] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.058] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @DeletedConstructorTest(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.aa2 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.216 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc15_13: type = splice_block %DeletedConstructor.ref [concrete = constants.%DeletedConstructor] { @@ -776,15 +776,15 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @DeletedConversionTest(%s.param: %DeletedConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %DeletedConversion = name_ref s, %s -// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.058] { +// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.058] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc28_21: %Dest.058 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %Dest.058 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc28_21: %Dest.b15 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -793,10 +793,10 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Source: type = class_type @Source [concrete] // CHECK:STDOUT: %ExplicitConstructor: type = class_type @ExplicitConstructor [concrete] -// CHECK:STDOUT: %pattern_type.103: type = pattern_type %ExplicitConstructor [concrete] +// CHECK:STDOUT: %pattern_type.8d6: type = pattern_type %ExplicitConstructor [concrete] // CHECK:STDOUT: %ExplicitConversion: type = class_type @ExplicitConversion [concrete] -// CHECK:STDOUT: %Dest.058: type = class_type @Dest [concrete] -// CHECK:STDOUT: %pattern_type.a9f: type = pattern_type %Dest.058 [concrete] +// CHECK:STDOUT: %Dest.b15: type = class_type @Dest [concrete] +// CHECK:STDOUT: %pattern_type.56d: type = pattern_type %Dest.b15 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -810,13 +810,13 @@ fn InitFromStruct() { // CHECK:STDOUT: %Source.decl: type = class_decl @Source [concrete = constants.%Source] {} {} // CHECK:STDOUT: %ExplicitConstructor.decl: type = class_decl @ExplicitConstructor [concrete = constants.%ExplicitConstructor] {} {} // CHECK:STDOUT: %ExplicitConversion.decl: type = class_decl @ExplicitConversion [concrete = constants.%ExplicitConversion] {} {} -// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.058] {} {} +// CHECK:STDOUT: %Dest.decl: type = class_decl @Dest [concrete = constants.%Dest.b15] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ExplicitConstructorTest(%s.param: %Source) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.103 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.8d6 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %Source = name_ref s, %s // CHECK:STDOUT: %.loc15_13: type = splice_block %ExplicitConstructor.ref [concrete = constants.%ExplicitConstructor] { @@ -831,15 +831,15 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @ExplicitConversionTest(%s.param: %ExplicitConversion) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.a9f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.56d = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.ref: %ExplicitConversion = name_ref s, %s -// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.058] { +// CHECK:STDOUT: %.loc28_13: type = splice_block %Dest.ref [concrete = constants.%Dest.b15] { // CHECK:STDOUT: %Cpp.ref.loc28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.058] +// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, imports.%Dest.decl [concrete = constants.%Dest.b15] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc28_21: %Dest.058 = converted %s.ref, [concrete = ] -// CHECK:STDOUT: %_: %Dest.058 = value_binding _, [concrete = ] +// CHECK:STDOUT: %.loc28_21: %Dest.b15 = converted %s.ref, [concrete = ] +// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -849,9 +849,9 @@ fn InitFromStruct() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %IntConstructor.6ca: type = class_type @IntConstructor.1 [concrete] -// CHECK:STDOUT: %pattern_type.2e3: type = pattern_type %IntConstructor.6ca [concrete] -// CHECK:STDOUT: %ptr.89c: type = ptr_type %IntConstructor.6ca [concrete] +// CHECK:STDOUT: %IntConstructor.14f: type = class_type @IntConstructor.1 [concrete] +// CHECK:STDOUT: %pattern_type.599: type = pattern_type %IntConstructor.14f [concrete] +// CHECK:STDOUT: %ptr.380: type = ptr_type %IntConstructor.14f [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk.type: type = fn_type @IntConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk: %IntConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %IntConstructor.cpp_destructor.type: type = fn_type @IntConstructor.cpp_destructor [concrete] @@ -865,7 +865,7 @@ fn InitFromStruct() { // CHECK:STDOUT: .IntConstructor = %IntConstructor.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %IntConstructor.decl: type = class_decl @IntConstructor.1 [concrete = constants.%IntConstructor.6ca] {} {} +// CHECK:STDOUT: %IntConstructor.decl: type = class_decl @IntConstructor.1 [concrete = constants.%IntConstructor.14f] {} {} // CHECK:STDOUT: %IntConstructor__carbon_thunk.decl: %IntConstructor__carbon_thunk.type = fn_decl @IntConstructor__carbon_thunk [concrete = constants.%IntConstructor__carbon_thunk] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -881,21 +881,21 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @IntConstructor.loc6(%i.param: %i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.2e3 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.599 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %i.ref: %i32 = name_ref i, %i -// CHECK:STDOUT: %.loc8_13: type = splice_block %IntConstructor.ref [concrete = constants.%IntConstructor.6ca] { +// CHECK:STDOUT: %.loc8_13: type = splice_block %IntConstructor.ref [concrete = constants.%IntConstructor.14f] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %IntConstructor.ref: type = name_ref IntConstructor, imports.%IntConstructor.decl [concrete = constants.%IntConstructor.6ca] +// CHECK:STDOUT: %IntConstructor.ref: type = name_ref IntConstructor, imports.%IntConstructor.decl [concrete = constants.%IntConstructor.14f] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_31.1: ref %IntConstructor.6ca = temporary_storage -// CHECK:STDOUT: %addr: %ptr.89c = addr_of %.loc8_31.1 +// CHECK:STDOUT: %.loc8_31.1: ref %IntConstructor.14f = temporary_storage +// CHECK:STDOUT: %addr: %ptr.380 = addr_of %.loc8_31.1 // CHECK:STDOUT: %IntConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%IntConstructor__carbon_thunk.decl(%i.ref, %addr) -// CHECK:STDOUT: %.loc8_31.2: init %IntConstructor.6ca to %.loc8_31.1 = mark_in_place_init %IntConstructor__carbon_thunk.call -// CHECK:STDOUT: %.loc8_31.3: init %IntConstructor.6ca = converted %i.ref, %.loc8_31.2 -// CHECK:STDOUT: %.loc8_31.4: ref %IntConstructor.6ca = temporary %.loc8_31.1, %.loc8_31.3 -// CHECK:STDOUT: %.loc8_31.5: %IntConstructor.6ca = acquire_value %.loc8_31.4 -// CHECK:STDOUT: %_: %IntConstructor.6ca = value_binding _, %.loc8_31.5 +// CHECK:STDOUT: %.loc8_31.2: init %IntConstructor.14f to %.loc8_31.1 = mark_in_place_init %IntConstructor__carbon_thunk.call +// CHECK:STDOUT: %.loc8_31.3: init %IntConstructor.14f = converted %i.ref, %.loc8_31.2 +// CHECK:STDOUT: %.loc8_31.4: ref %IntConstructor.14f = temporary %.loc8_31.1, %.loc8_31.3 +// CHECK:STDOUT: %.loc8_31.5: %IntConstructor.14f = acquire_value %.loc8_31.4 +// CHECK:STDOUT: %_: %IntConstructor.14f = value_binding _, %.loc8_31.5 // CHECK:STDOUT: // CHECK:STDOUT: %IntConstructor.Op.bound: = bound_method %.loc8_31.4, constants.%IntConstructor.Op // CHECK:STDOUT: %Op.ref: %IntConstructor.cpp_destructor.type = name_ref Op, imports.%IntConstructor.cpp_destructor.decl [concrete = constants.%IntConstructor.cpp_destructor] @@ -911,9 +911,9 @@ fn InitFromStruct() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] // CHECK:STDOUT: %IntConstructor: type = class_type @IntConstructor [concrete] -// CHECK:STDOUT: %pattern_type.2e3: type = pattern_type %IntConstructor [concrete] +// CHECK:STDOUT: %pattern_type.599: type = pattern_type %IntConstructor [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.89c: type = ptr_type %IntConstructor [concrete] +// CHECK:STDOUT: %ptr.380: type = ptr_type %IntConstructor [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk.type: type = fn_type @IntConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %IntConstructor__carbon_thunk: %IntConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %IntConstructor.cpp_destructor.type: type = fn_type @IntConstructor.cpp_destructor [concrete] @@ -943,7 +943,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @IntConstructorTest(%u.param: %u32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.2e3 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.599 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u.ref: %u32 = name_ref u, %u // CHECK:STDOUT: %.loc19_13: type = splice_block %IntConstructor.ref [concrete = constants.%IntConstructor] { @@ -952,7 +952,7 @@ fn InitFromStruct() { // CHECK:STDOUT: } // CHECK:STDOUT: %.loc19_31.1: ref %IntConstructor = temporary_storage // CHECK:STDOUT: %.loc19_31.2: %i32 = converted %u.ref, [concrete = ] -// CHECK:STDOUT: %addr: %ptr.89c = addr_of %.loc19_31.1 +// CHECK:STDOUT: %addr: %ptr.380 = addr_of %.loc19_31.1 // CHECK:STDOUT: %IntConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%IntConstructor__carbon_thunk.decl(, %addr) // CHECK:STDOUT: %.loc19_31.3: init %IntConstructor to %.loc19_31.1 = mark_in_place_init %IntConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc19_31.4: init %IntConstructor = converted %u.ref, %.loc19_31.3 @@ -972,9 +972,9 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %DefaultConstructor: type = class_type @DefaultConstructor [concrete] -// CHECK:STDOUT: %pattern_type.ec7: type = pattern_type %DefaultConstructor [concrete] +// CHECK:STDOUT: %pattern_type.7fa: type = pattern_type %DefaultConstructor [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %ptr.fec: type = ptr_type %DefaultConstructor [concrete] +// CHECK:STDOUT: %ptr.b3c: type = ptr_type %DefaultConstructor [concrete] // CHECK:STDOUT: %DefaultConstructor__carbon_thunk.type: type = fn_type @DefaultConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %DefaultConstructor__carbon_thunk: %DefaultConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultConstructor.cpp_destructor.type: type = fn_type @DefaultConstructor.cpp_destructor [concrete] @@ -1004,7 +1004,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @DefaultConstructorTest() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt: %pattern_type.ec7 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt: %pattern_type.7fa = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc9_36.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_13: type = splice_block %DefaultConstructor.ref [concrete = constants.%DefaultConstructor] { @@ -1012,7 +1012,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %DefaultConstructor.ref: type = name_ref DefaultConstructor, imports.%DefaultConstructor.decl [concrete = constants.%DefaultConstructor] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc9_36.2: ref %DefaultConstructor = temporary_storage -// CHECK:STDOUT: %addr: %ptr.fec = addr_of %.loc9_36.2 +// CHECK:STDOUT: %addr: %ptr.b3c = addr_of %.loc9_36.2 // CHECK:STDOUT: %DefaultConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%DefaultConstructor__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc9_36.3: init %DefaultConstructor to %.loc9_36.2 = mark_in_place_init %DefaultConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc9_36.4: init %DefaultConstructor = converted %.loc9_36.1, %.loc9_36.3 @@ -1032,14 +1032,14 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Two: type = class_type @Two [concrete] -// CHECK:STDOUT: %pattern_type.6f8: type = pattern_type %Two [concrete] +// CHECK:STDOUT: %pattern_type.034: type = pattern_type %Two [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %tuple.type.f94: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple.ad8: %tuple.type.f94 = tuple_value (%int_1.5b8, %int_2.ecc) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.1c1: type = ptr_type %Two [concrete] +// CHECK:STDOUT: %ptr.5a9: type = ptr_type %Two [concrete] // CHECK:STDOUT: %Two__carbon_thunk.type: type = fn_type @Two__carbon_thunk [concrete] // CHECK:STDOUT: %Two__carbon_thunk: %Two__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -1060,8 +1060,8 @@ fn InitFromStruct() { // CHECK:STDOUT: %bound_method.cc3: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.4ff: %i32 = int_value 2 [concrete] // CHECK:STDOUT: %ThreeWithDefault: type = class_type @ThreeWithDefault [concrete] -// CHECK:STDOUT: %pattern_type.2b0: type = pattern_type %ThreeWithDefault [concrete] -// CHECK:STDOUT: %ptr.b6c: type = ptr_type %ThreeWithDefault [concrete] +// CHECK:STDOUT: %pattern_type.830: type = pattern_type %ThreeWithDefault [concrete] +// CHECK:STDOUT: %ptr.da2: type = ptr_type %ThreeWithDefault [concrete] // CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.type.b324b0.1: type = fn_type @ThreeWithDefault__carbon_thunk.1 [concrete] // CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.8592b9.1: %ThreeWithDefault__carbon_thunk.type.b324b0.1 = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] @@ -1122,7 +1122,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @ImplicitConvert() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc8: %pattern_type.6f8 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc8: %pattern_type.034 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc8: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1146,7 +1146,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_24: init %i32 = call %bound_method.loc8_24.2(%int_2.loc8) [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc8_24.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc8_24 [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc8_24.2: %i32 = converted %int_2.loc8, %.loc8_24.1 [concrete = constants.%int_2.4ff] -// CHECK:STDOUT: %addr.loc8: %ptr.1c1 = addr_of %.loc8_25.2 +// CHECK:STDOUT: %addr.loc8: %ptr.5a9 = addr_of %.loc8_25.2 // CHECK:STDOUT: %Two__carbon_thunk.call: init %empty_tuple.type = call imports.%Two__carbon_thunk.decl(%.loc8_21.2, %.loc8_24.2, %addr.loc8) // CHECK:STDOUT: %.loc8_25.3: init %Two to %.loc8_25.2 = mark_in_place_init %Two__carbon_thunk.call // CHECK:STDOUT: %.loc8_25.4: init %Two = converted %.loc8_25.1, %.loc8_25.3 @@ -1154,7 +1154,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc8_25.6: %Two = acquire_value %.loc8_25.5 // CHECK:STDOUT: %_.loc8: %Two = value_binding _, %.loc8_25.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc10: %pattern_type.2b0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc10: %pattern_type.830 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc10: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1178,7 +1178,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_37: init %i32 = call %bound_method.loc10_37.2(%int_2.loc10) [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc10_37.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_37 [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc10_37.2: %i32 = converted %int_2.loc10, %.loc10_37.1 [concrete = constants.%int_2.4ff] -// CHECK:STDOUT: %addr.loc10: %ptr.b6c = addr_of %.loc10_38.2 +// CHECK:STDOUT: %addr.loc10: %ptr.da2 = addr_of %.loc10_38.2 // CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%ThreeWithDefault__carbon_thunk.decl.be9bad.1(%.loc10_34.2, %.loc10_37.2, %addr.loc10) // CHECK:STDOUT: %.loc10_38.3: init %ThreeWithDefault to %.loc10_38.2 = mark_in_place_init %ThreeWithDefault__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_38.4: init %ThreeWithDefault = converted %.loc10_38.1, %.loc10_38.3 @@ -1186,7 +1186,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc10_38.6: %ThreeWithDefault = acquire_value %.loc10_38.5 // CHECK:STDOUT: %_.loc10: %ThreeWithDefault = value_binding _, %.loc10_38.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc12: %pattern_type.2b0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc12: %pattern_type.830 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1218,7 +1218,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_40: init %i32 = call %bound_method.loc12_40.2(%int_3) [concrete = constants.%int_3.49a] // CHECK:STDOUT: %.loc12_40.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc12_40 [concrete = constants.%int_3.49a] // CHECK:STDOUT: %.loc12_40.2: %i32 = converted %int_3, %.loc12_40.1 [concrete = constants.%int_3.49a] -// CHECK:STDOUT: %addr.loc12: %ptr.b6c = addr_of %.loc12_41.2 +// CHECK:STDOUT: %addr.loc12: %ptr.da2 = addr_of %.loc12_41.2 // CHECK:STDOUT: %ThreeWithDefault__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%ThreeWithDefault__carbon_thunk.decl.be9bad.2(%.loc12_34.2, %.loc12_37.2, %.loc12_40.2, %addr.loc12) // CHECK:STDOUT: %.loc12_41.3: init %ThreeWithDefault to %.loc12_41.2 = mark_in_place_init %ThreeWithDefault__carbon_thunk.call.loc12 // CHECK:STDOUT: %.loc12_41.4: init %ThreeWithDefault = converted %.loc12_41.1, %.loc12_41.3 @@ -1247,7 +1247,7 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Aggregate: type = class_type @Aggregate [concrete] -// CHECK:STDOUT: %pattern_type.8f0: type = pattern_type %Aggregate [concrete] +// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %Aggregate [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %tuple.type.985: type = tuple_type (Core.IntLiteral) [concrete] @@ -1268,7 +1268,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromTuple() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc15: %pattern_type.8f0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc15: %pattern_type.f0b = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15_27.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_13: type = splice_block %Aggregate.ref.loc15 [concrete = constants.%Aggregate] { @@ -1278,7 +1278,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc15_27.2: %Aggregate = converted %.loc15_27.1, [concrete = ] // CHECK:STDOUT: %_.loc15: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc23: %pattern_type.8f0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc23: %pattern_type.f0b = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc23_29.1: %tuple.type.985 = tuple_literal (%int_1.loc23) [concrete = constants.%tuple.378] @@ -1289,7 +1289,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc23_29.2: %Aggregate = converted %.loc23_29.1, [concrete = ] // CHECK:STDOUT: %_.loc23: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc31: %pattern_type.8f0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc31: %pattern_type.f0b = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc31: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] @@ -1307,7 +1307,7 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %Aggregate: type = class_type @Aggregate [concrete] -// CHECK:STDOUT: %pattern_type.8f0: type = pattern_type %Aggregate [concrete] +// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %Aggregate [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -1329,7 +1329,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromStruct() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc15: %pattern_type.8f0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc15: %pattern_type.f0b = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15_27.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_13: type = splice_block %Aggregate.ref.loc15 [concrete = constants.%Aggregate] { @@ -1339,7 +1339,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc15_27.2: %Aggregate = converted %.loc15_27.1, [concrete = ] // CHECK:STDOUT: %_.loc15: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc23: %pattern_type.8f0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc23: %pattern_type.f0b = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc23_33.1: %struct_type.x = struct_literal (%int_1.loc23) [concrete = constants.%struct.147] @@ -1350,7 +1350,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc23_33.2: %Aggregate = converted %.loc23_33.1, [concrete = ] // CHECK:STDOUT: %_.loc23: %Aggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc31: %pattern_type.8f0 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc31: %pattern_type.f0b = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc31: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] @@ -1369,9 +1369,9 @@ fn InitFromStruct() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %NonAggregate: type = class_type @NonAggregate [concrete] -// CHECK:STDOUT: %pattern_type.def: type = pattern_type %NonAggregate [concrete] +// CHECK:STDOUT: %pattern_type.d5f: type = pattern_type %NonAggregate [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %ptr.a75: type = ptr_type %NonAggregate [concrete] +// CHECK:STDOUT: %ptr.9fe: type = ptr_type %NonAggregate [concrete] // CHECK:STDOUT: %NonAggregate__carbon_thunk.type.67cd37.1: type = fn_type @NonAggregate__carbon_thunk.1 [concrete] // CHECK:STDOUT: %NonAggregate__carbon_thunk.30ebf5.1: %NonAggregate__carbon_thunk.type.67cd37.1 = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] @@ -1442,7 +1442,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromStruct() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc8: %pattern_type.def = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc8: %pattern_type.d5f = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8_30.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_13: type = splice_block %NonAggregate.ref.loc8 [concrete = constants.%NonAggregate] { @@ -1450,7 +1450,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %NonAggregate.ref.loc8: type = name_ref NonAggregate, imports.%NonAggregate.decl [concrete = constants.%NonAggregate] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc8_30.2: ref %NonAggregate = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.a75 = addr_of %.loc8_30.2 +// CHECK:STDOUT: %addr.loc8: %ptr.9fe = addr_of %.loc8_30.2 // CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.2d9ba4.1(%addr.loc8) // CHECK:STDOUT: %.loc8_30.3: init %NonAggregate to %.loc8_30.2 = mark_in_place_init %NonAggregate__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_30.4: init %NonAggregate = converted %.loc8_30.1, %.loc8_30.3 @@ -1458,7 +1458,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc8_30.6: %NonAggregate = acquire_value %.loc8_30.5 // CHECK:STDOUT: %_.loc8: %NonAggregate = value_binding _, %.loc8_30.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc9: %pattern_type.def = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc9: %pattern_type.d5f = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_32.1: %tuple.type.985 = tuple_literal (%int_1.loc9) [concrete = constants.%tuple.378] @@ -1474,7 +1474,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9: init %i32 = call %bound_method.loc9_30.2(%int_1.loc9) [concrete = constants.%int_1.d5e] // CHECK:STDOUT: %.loc9_30.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9 [concrete = constants.%int_1.d5e] // CHECK:STDOUT: %.loc9_30.2: %i32 = converted %int_1.loc9, %.loc9_30.1 [concrete = constants.%int_1.d5e] -// CHECK:STDOUT: %addr.loc9: %ptr.a75 = addr_of %.loc9_32.2 +// CHECK:STDOUT: %addr.loc9: %ptr.9fe = addr_of %.loc9_32.2 // CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.2d9ba4.2(%.loc9_30.2, %addr.loc9) // CHECK:STDOUT: %.loc9_32.3: init %NonAggregate to %.loc9_32.2 = mark_in_place_init %NonAggregate__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_32.4: init %NonAggregate = converted %.loc9_32.1, %.loc9_32.3 @@ -1482,7 +1482,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc9_32.6: %NonAggregate = acquire_value %.loc9_32.5 // CHECK:STDOUT: %_.loc9: %NonAggregate = value_binding _, %.loc9_32.6 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc10: %pattern_type.def = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc10: %pattern_type.d5f = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -1506,7 +1506,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_33: init %i32 = call %bound_method.loc10_33.2(%int_2) [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc10_33.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_33 [concrete = constants.%int_2.4ff] // CHECK:STDOUT: %.loc10_33.2: %i32 = converted %int_2, %.loc10_33.1 [concrete = constants.%int_2.4ff] -// CHECK:STDOUT: %addr.loc10: %ptr.a75 = addr_of %.loc10_34.2 +// CHECK:STDOUT: %addr.loc10: %ptr.9fe = addr_of %.loc10_34.2 // CHECK:STDOUT: %NonAggregate__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%NonAggregate__carbon_thunk.decl.2d9ba4.3(%.loc10_30.2, %.loc10_33.2, %addr.loc10) // CHECK:STDOUT: %.loc10_34.3: init %NonAggregate to %.loc10_34.2 = mark_in_place_init %NonAggregate__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_34.4: init %NonAggregate = converted %.loc10_34.1, %.loc10_34.3 @@ -1533,7 +1533,7 @@ fn InitFromStruct() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %NonAggregate: type = class_type @NonAggregate [concrete] -// CHECK:STDOUT: %pattern_type.def: type = pattern_type %NonAggregate [concrete] +// CHECK:STDOUT: %pattern_type.d5f: type = pattern_type %NonAggregate [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -1555,7 +1555,7 @@ fn InitFromStruct() { // CHECK:STDOUT: fn @InitFromStruct() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc15: %pattern_type.def = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc15: %pattern_type.d5f = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc15_30.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc15_13: type = splice_block %NonAggregate.ref.loc15 [concrete = constants.%NonAggregate] { @@ -1565,7 +1565,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc15_30.2: %NonAggregate = converted %.loc15_30.1, [concrete = ] // CHECK:STDOUT: %_.loc15: %NonAggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc23: %pattern_type.def = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc23: %pattern_type.d5f = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc23_36.1: %struct_type.x = struct_literal (%int_1.loc23) [concrete = constants.%struct.147] @@ -1576,7 +1576,7 @@ fn InitFromStruct() { // CHECK:STDOUT: %.loc23_36.2: %NonAggregate = converted %.loc23_36.1, [concrete = ] // CHECK:STDOUT: %_.loc23: %NonAggregate = value_binding _, [concrete = ] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc31: %pattern_type.def = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc31: %pattern_type.d5f = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc31: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] diff --git a/toolchain/check/testdata/interop/cpp/macros/macros.carbon b/toolchain/check/testdata/interop/cpp/macros/macros.carbon index 52dbcae9b1d2..00a1f40e52ef 100644 --- a/toolchain/check/testdata/interop/cpp/macros/macros.carbon +++ b/toolchain/check/testdata/interop/cpp/macros/macros.carbon @@ -2103,12 +2103,12 @@ fn F() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %pattern_type.b54: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %B [concrete] // CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %i32 [concrete] -// CHECK:STDOUT: %.b0d: ref %B = class_element_access imports.%a.var, element0 [concrete] -// CHECK:STDOUT: %.94c: ref %i32 = class_element_access %.b0d, element0 [concrete] +// CHECK:STDOUT: %.e8d: ref %B = class_element_access imports.%a.var, element0 [concrete] +// CHECK:STDOUT: %.6b6: ref %i32 = class_element_access %.e8d, element0 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.544: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] @@ -2128,11 +2128,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .m = constants.%.94c +// CHECK:STDOUT: .m = constants.%.6b6 // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %a.patt: %pattern_type.b54 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.b54 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.aa6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.aa6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt [concrete] // CHECK:STDOUT: %Core.import_ref.7f3: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.766) = 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.ec3)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.1be = impl_witness_table (%Core.import_ref.7f3), @Core.IntLiteral.as.ImplicitAs.impl [concrete] @@ -2143,10 +2143,10 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: // CHECK:STDOUT: %b.ref: %A.elem = name_ref b, @A.%.1 [concrete = @A.%.1] -// CHECK:STDOUT: %.loc17_6.1: ref %B = class_element_access imports.%a.var, element0 [concrete = constants.%.b0d] +// CHECK:STDOUT: %.loc17_6.1: ref %B = class_element_access imports.%a.var, element0 [concrete = constants.%.e8d] // CHECK:STDOUT: %c.ref: %B.elem = name_ref c, @B.%.1 [concrete = @B.%.1] -// CHECK:STDOUT: %.loc17_6.2: ref %i32 = class_element_access %.loc17_6.1, element0 [concrete = constants.%.94c] -// CHECK:STDOUT: %m.ref: ref %i32 = name_ref m, constants.%.94c [concrete = constants.%.94c] +// CHECK:STDOUT: %.loc17_6.2: ref %i32 = class_element_access %.loc17_6.1, element0 [concrete = constants.%.6b6] +// CHECK:STDOUT: %m.ref: ref %i32 = name_ref m, constants.%.6b6 [concrete = constants.%.6b6] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0: %.fa3 = impl_witness_access constants.%ImplicitAs.impl_witness.ddb, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e6b] // CHECK:STDOUT: %bound_method.loc17_9.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] diff --git a/toolchain/check/testdata/interop/cpp/namespace/import.carbon b/toolchain/check/testdata/interop/cpp/namespace/import.carbon index 3d05b9873983..488ab749db78 100644 --- a/toolchain/check/testdata/interop/cpp/namespace/import.carbon +++ b/toolchain/check/testdata/interop/cpp/namespace/import.carbon @@ -501,7 +501,7 @@ fn F() { // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %X: type = class_type @X [concrete] -// CHECK:STDOUT: %ptr.fe9: type = ptr_type %X [concrete] +// CHECK:STDOUT: %ptr.603: 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: %X.cpp_destructor.type: type = fn_type @X.cpp_destructor [concrete] @@ -526,7 +526,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_11.1: ref %X = temporary_storage -// CHECK:STDOUT: %addr: %ptr.fe9 = addr_of %.loc8_11.1 +// CHECK:STDOUT: %addr: %ptr.603 = addr_of %.loc8_11.1 // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr) // CHECK:STDOUT: %.loc8_11.2: init %X to %.loc8_11.1 = mark_in_place_init %foo__carbon_thunk.call // CHECK:STDOUT: %.loc8_11.3: ref %X = temporary %.loc8_11.1, %.loc8_11.2 diff --git a/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon b/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon index d82bead9e0fb..b0e246a303d8 100644 --- a/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/arithmetic_operators.carbon @@ -341,9 +341,9 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %assoc1.593: %AddWith.assoc_type.dfc = assoc_entity element1, imports.%Core.import_ref.31c [symbolic] // CHECK:STDOUT: %AddWith.lookup_impl_witness.211: = lookup_impl_witness %T.9be, @AddWith.1, @AddWith.1(%U.as_type.0fd) [symbolic] // CHECK:STDOUT: %AddWith.facet.57d: %AddWith.type.68f = facet_value %T.as_type.6fa, (%AddWith.lookup_impl_witness.211) [symbolic] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.b30a: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.0fd, %AddWith.facet.57d) [symbolic] -// CHECK:STDOUT: %.09b: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.b30a, %AddWith.facet.57d [symbolic] -// CHECK:STDOUT: %impl.elem1.4bc: %.09b = impl_witness_access %AddWith.lookup_impl_witness.211, element1 [symbolic] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.b30: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.0fd, %AddWith.facet.57d) [symbolic] +// CHECK:STDOUT: %.09b4: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.b30, %AddWith.facet.57d [symbolic] +// CHECK:STDOUT: %impl.elem1.4bc: %.09b4 = impl_witness_access %AddWith.lookup_impl_witness.211, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.31d: = specific_impl_function %impl.elem1.4bc, @AddWith.WithSelf.Op(%U.as_type.0fd, %AddWith.facet.57d) [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Result, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.WithSelf.Op.type.12b49e.2: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result) [symbolic] @@ -463,11 +463,11 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %impl.elem1.34f: %.977 = impl_witness_access %ModWith.lookup_impl_witness.e49, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.6e5: = specific_impl_function %impl.elem1.34f, @ModWith.WithSelf.Op(%U.as_type.0fd, %ModWith.facet.6df) [symbolic] // CHECK:STDOUT: %Int16: type = class_type @Int16 [concrete] -// CHECK:STDOUT: %pattern_type.004: type = pattern_type %Int16 [concrete] +// CHECK:STDOUT: %pattern_type.802: type = pattern_type %Int16 [concrete] // CHECK:STDOUT: %Int32: type = class_type @Int32 [concrete] -// CHECK:STDOUT: %pattern_type.3b9: type = pattern_type %Int32 [concrete] +// CHECK:STDOUT: %pattern_type.e9d: type = pattern_type %Int32 [concrete] // CHECK:STDOUT: %Int64: type = class_type @Int64 [concrete] -// CHECK:STDOUT: %pattern_type.41c: type = pattern_type %Int64 [concrete] +// CHECK:STDOUT: %pattern_type.7b1: type = pattern_type %Int64 [concrete] // CHECK:STDOUT: %int_16: Core.IntLiteral = int_value 16 [concrete] // CHECK:STDOUT: %i16: type = class_type @Int, @Int(%int_16) [concrete] // CHECK:STDOUT: %pattern_type.0cb: type = pattern_type %i16 [concrete] @@ -478,425 +478,425 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Int16.Op.type.43d658.1: type = fn_type @Int16.Op.1 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.1: %Int16.Op.type.43d658.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.4e6cb0.1: = custom_witness (%Int16.Op.cc70d5.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.809: %Destroy.type = facet_value %Int16, (%custom_witness.4e6cb0.1) [concrete] -// CHECK:STDOUT: %facet_type.aa6: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.cf1: %facet_type.aa6 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.d17: = lookup_impl_witness %.Self.cf1, @AddWith.1, @AddWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.9d9: type = impl_witness_access %AddWith.lookup_impl_witness.d17, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.f01: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.9d9 = %Int16> [concrete] +// CHECK:STDOUT: %Destroy.facet.81a: %Destroy.type = facet_value %Int16, (%custom_witness.4e6cb0.1) [concrete] +// CHECK:STDOUT: %facet_type.cef: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.f0e: %facet_type.cef = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.394: = lookup_impl_witness %.Self.f0e, @AddWith.1, @AddWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.33b: type = impl_witness_access %AddWith.lookup_impl_witness.394, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.daf: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.33b = %Int16> [concrete] // CHECK:STDOUT: %Destroy.Op.type.af7ec0.2: type = fn_type @Destroy.Op.loc176_34.2 [concrete] // CHECK:STDOUT: %Destroy.Op.1dc86d.2: %Destroy.Op.type.af7ec0.2 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.340963.2: = custom_witness (%Destroy.Op.1dc86d.2), @Destroy [concrete] -// CHECK:STDOUT: %AddWith.type.116: type = facet_type <@AddWith.1, @AddWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %AddWith.assoc_type.dda: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.c76: %AddWith.assoc_type.dda = assoc_entity element0, imports.%Core.import_ref.b37 [concrete] -// CHECK:STDOUT: %assoc1.83e: %AddWith.assoc_type.dda = assoc_entity element1, imports.%Core.import_ref.935 [concrete] +// CHECK:STDOUT: %AddWith.type.f72: type = facet_type <@AddWith.1, @AddWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %AddWith.assoc_type.02d: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.2eb: %AddWith.assoc_type.02d = assoc_entity element0, imports.%Core.import_ref.b37 [concrete] +// CHECK:STDOUT: %assoc1.a86: %AddWith.assoc_type.02d = assoc_entity element1, imports.%Core.import_ref.935 [concrete] // CHECK:STDOUT: %Op.type.0b8387.1: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %Op.b9c47d.1: %Op.type.0b8387.1 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.facet.929: %Destroy.type = facet_value %i16, (%custom_witness.340963.2) [concrete] -// CHECK:STDOUT: %custom_witness.91a: = custom_witness (%Int16, %Op.b9c47d.1), @AddWith.1, @AddWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.31d: %facet_type.f01 = facet_value %i16, (%custom_witness.340963.2, %custom_witness.91a) [concrete] -// CHECK:STDOUT: %complete_type.a93: = complete_type_witness %facet_type.aa6 [concrete] -// CHECK:STDOUT: %.Self.as_type.70cc: type = facet_access_type %.Self.cf1 [symbolic_self] -// CHECK:STDOUT: %pattern_type.616: type = pattern_type %facet_type.f01 [concrete] -// CHECK:STDOUT: %facet_type.4d6: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.c3b: %facet_type.4d6 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.72f: = lookup_impl_witness %.Self.c3b, @SubWith.1, @SubWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.b83: type = impl_witness_access %SubWith.lookup_impl_witness.72f, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.d9b: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.b83 = %Int16> [concrete] -// CHECK:STDOUT: %SubWith.type.49a: type = facet_type <@SubWith.1, @SubWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %SubWith.assoc_type.445: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.c71: %SubWith.assoc_type.445 = assoc_entity element0, imports.%Core.import_ref.bb2 [concrete] -// CHECK:STDOUT: %assoc1.a3f: %SubWith.assoc_type.445 = assoc_entity element1, imports.%Core.import_ref.480 [concrete] +// CHECK:STDOUT: %custom_witness.25d: = custom_witness (%Int16, %Op.b9c47d.1), @AddWith.1, @AddWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.b18: %facet_type.daf = facet_value %i16, (%custom_witness.340963.2, %custom_witness.25d) [concrete] +// CHECK:STDOUT: %complete_type.de7: = complete_type_witness %facet_type.cef [concrete] +// CHECK:STDOUT: %.Self.as_type.766: type = facet_access_type %.Self.f0e [symbolic_self] +// CHECK:STDOUT: %pattern_type.e7f: type = pattern_type %facet_type.daf [concrete] +// CHECK:STDOUT: %facet_type.c1e: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.3cc: %facet_type.c1e = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.fe2: = lookup_impl_witness %.Self.3cc, @SubWith.1, @SubWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.76d: type = impl_witness_access %SubWith.lookup_impl_witness.fe2, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.872: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.76d = %Int16> [concrete] +// CHECK:STDOUT: %SubWith.type.51c: type = facet_type <@SubWith.1, @SubWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %SubWith.assoc_type.5cb: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.381: %SubWith.assoc_type.5cb = assoc_entity element0, imports.%Core.import_ref.bb2 [concrete] +// CHECK:STDOUT: %assoc1.acb: %SubWith.assoc_type.5cb = assoc_entity element1, imports.%Core.import_ref.480 [concrete] // CHECK:STDOUT: %Op.type.0b8387.2: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.b9c47d.2: %Op.type.0b8387.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7ee: = custom_witness (%Int16, %Op.b9c47d.2), @SubWith.1, @SubWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.b12: %facet_type.d9b = facet_value %i16, (%custom_witness.340963.2, %custom_witness.7ee) [concrete] -// CHECK:STDOUT: %complete_type.4fe: = complete_type_witness %facet_type.4d6 [concrete] -// CHECK:STDOUT: %.Self.as_type.42f: type = facet_access_type %.Self.c3b [symbolic_self] -// CHECK:STDOUT: %pattern_type.ff0: type = pattern_type %facet_type.d9b [concrete] -// CHECK:STDOUT: %facet_type.624: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.164: %facet_type.624 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.588: = lookup_impl_witness %.Self.164, @MulWith.1, @MulWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.66a: type = impl_witness_access %MulWith.lookup_impl_witness.588, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.cc5: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.66a = %Int16> [concrete] -// CHECK:STDOUT: %MulWith.type.779: type = facet_type <@MulWith.1, @MulWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %MulWith.assoc_type.3a9: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.97a: %MulWith.assoc_type.3a9 = assoc_entity element0, imports.%Core.import_ref.a1a [concrete] -// CHECK:STDOUT: %assoc1.a46: %MulWith.assoc_type.3a9 = assoc_entity element1, imports.%Core.import_ref.7ed [concrete] +// CHECK:STDOUT: %custom_witness.a7e: = custom_witness (%Int16, %Op.b9c47d.2), @SubWith.1, @SubWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.3e4: %facet_type.872 = facet_value %i16, (%custom_witness.340963.2, %custom_witness.a7e) [concrete] +// CHECK:STDOUT: %complete_type.75e: = complete_type_witness %facet_type.c1e [concrete] +// CHECK:STDOUT: %.Self.as_type.dcb: type = facet_access_type %.Self.3cc [symbolic_self] +// CHECK:STDOUT: %pattern_type.85a: type = pattern_type %facet_type.872 [concrete] +// CHECK:STDOUT: %facet_type.98f: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.1c9: %facet_type.98f = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.a93: = lookup_impl_witness %.Self.1c9, @MulWith.1, @MulWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.cce: type = impl_witness_access %MulWith.lookup_impl_witness.a93, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.2c5: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.cce = %Int16> [concrete] +// CHECK:STDOUT: %MulWith.type.40b: type = facet_type <@MulWith.1, @MulWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %MulWith.assoc_type.533: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.8f1: %MulWith.assoc_type.533 = assoc_entity element0, imports.%Core.import_ref.a1a [concrete] +// CHECK:STDOUT: %assoc1.bee: %MulWith.assoc_type.533 = assoc_entity element1, imports.%Core.import_ref.7ed [concrete] // CHECK:STDOUT: %Op.type.0b8387.3: type = fn_type @Op.3 [concrete] // CHECK:STDOUT: %Op.b9c47d.3: %Op.type.0b8387.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.448: = custom_witness (%Int16, %Op.b9c47d.3), @MulWith.1, @MulWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.0d3: %facet_type.cc5 = facet_value %i16, (%custom_witness.340963.2, %custom_witness.448) [concrete] -// CHECK:STDOUT: %complete_type.ec6: = complete_type_witness %facet_type.624 [concrete] -// CHECK:STDOUT: %.Self.as_type.49c: type = facet_access_type %.Self.164 [symbolic_self] -// CHECK:STDOUT: %pattern_type.da6: type = pattern_type %facet_type.cc5 [concrete] -// CHECK:STDOUT: %facet_type.b9b: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.7ba: %facet_type.b9b = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.836: = lookup_impl_witness %.Self.7ba, @DivWith.1, @DivWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.6cb: type = impl_witness_access %DivWith.lookup_impl_witness.836, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.1b5: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.6cb = %Int16> [concrete] -// CHECK:STDOUT: %DivWith.type.35b: type = facet_type <@DivWith.1, @DivWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %DivWith.assoc_type.6ae: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.1bc: %DivWith.assoc_type.6ae = assoc_entity element0, imports.%Core.import_ref.b8f [concrete] -// CHECK:STDOUT: %assoc1.5a7: %DivWith.assoc_type.6ae = assoc_entity element1, imports.%Core.import_ref.44d [concrete] +// CHECK:STDOUT: %custom_witness.b37: = custom_witness (%Int16, %Op.b9c47d.3), @MulWith.1, @MulWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.690: %facet_type.2c5 = facet_value %i16, (%custom_witness.340963.2, %custom_witness.b37) [concrete] +// CHECK:STDOUT: %complete_type.64c: = complete_type_witness %facet_type.98f [concrete] +// CHECK:STDOUT: %.Self.as_type.85f: type = facet_access_type %.Self.1c9 [symbolic_self] +// CHECK:STDOUT: %pattern_type.cd4: type = pattern_type %facet_type.2c5 [concrete] +// CHECK:STDOUT: %facet_type.521: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.5ce: %facet_type.521 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.f18: = lookup_impl_witness %.Self.5ce, @DivWith.1, @DivWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.45d: type = impl_witness_access %DivWith.lookup_impl_witness.f18, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.715: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.45d = %Int16> [concrete] +// CHECK:STDOUT: %DivWith.type.2b7: type = facet_type <@DivWith.1, @DivWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %DivWith.assoc_type.f24: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.e80: %DivWith.assoc_type.f24 = assoc_entity element0, imports.%Core.import_ref.b8f [concrete] +// CHECK:STDOUT: %assoc1.113: %DivWith.assoc_type.f24 = assoc_entity element1, imports.%Core.import_ref.44d [concrete] // CHECK:STDOUT: %Op.type.0b8387.4: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.b9c47d.4: %Op.type.0b8387.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.3be: = custom_witness (%Int16, %Op.b9c47d.4), @DivWith.1, @DivWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.b04: %facet_type.1b5 = facet_value %i16, (%custom_witness.340963.2, %custom_witness.3be) [concrete] -// CHECK:STDOUT: %complete_type.7df: = complete_type_witness %facet_type.b9b [concrete] -// CHECK:STDOUT: %.Self.as_type.31a: type = facet_access_type %.Self.7ba [symbolic_self] -// CHECK:STDOUT: %pattern_type.ec4: type = pattern_type %facet_type.1b5 [concrete] -// CHECK:STDOUT: %facet_type.ca3: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %.Self.cfe: %facet_type.ca3 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.305: = lookup_impl_witness %.Self.cfe, @ModWith.1, @ModWith.1(%Int16) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.2b9: type = impl_witness_access %ModWith.lookup_impl_witness.305, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.9a8: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.2b9 = %Int16> [concrete] -// CHECK:STDOUT: %ModWith.type.3ef: type = facet_type <@ModWith.1, @ModWith.1(%Int16)> [concrete] -// CHECK:STDOUT: %ModWith.assoc_type.744: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int16) [concrete] -// CHECK:STDOUT: %assoc0.727: %ModWith.assoc_type.744 = assoc_entity element0, imports.%Core.import_ref.f19 [concrete] -// CHECK:STDOUT: %assoc1.ba4: %ModWith.assoc_type.744 = assoc_entity element1, imports.%Core.import_ref.556 [concrete] +// CHECK:STDOUT: %custom_witness.45b: = custom_witness (%Int16, %Op.b9c47d.4), @DivWith.1, @DivWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.41e: %facet_type.715 = facet_value %i16, (%custom_witness.340963.2, %custom_witness.45b) [concrete] +// CHECK:STDOUT: %complete_type.236: = complete_type_witness %facet_type.521 [concrete] +// CHECK:STDOUT: %.Self.as_type.2c8: type = facet_access_type %.Self.5ce [symbolic_self] +// CHECK:STDOUT: %pattern_type.b0e: type = pattern_type %facet_type.715 [concrete] +// CHECK:STDOUT: %facet_type.eee: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %.Self.5ab: %facet_type.eee = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.c9e: = lookup_impl_witness %.Self.5ab, @ModWith.1, @ModWith.1(%Int16) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.044: type = impl_witness_access %ModWith.lookup_impl_witness.c9e, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.c2d: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.044 = %Int16> [concrete] +// CHECK:STDOUT: %ModWith.type.06a: type = facet_type <@ModWith.1, @ModWith.1(%Int16)> [concrete] +// CHECK:STDOUT: %ModWith.assoc_type.a11: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int16) [concrete] +// CHECK:STDOUT: %assoc0.418: %ModWith.assoc_type.a11 = assoc_entity element0, imports.%Core.import_ref.f19 [concrete] +// CHECK:STDOUT: %assoc1.67f: %ModWith.assoc_type.a11 = assoc_entity element1, imports.%Core.import_ref.556 [concrete] // CHECK:STDOUT: %Op.type.0b8387.5: type = fn_type @Op.5 [concrete] // CHECK:STDOUT: %Op.b9c47d.5: %Op.type.0b8387.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.dcf: = custom_witness (%Int16, %Op.b9c47d.5), @ModWith.1, @ModWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.5eb: %facet_type.9a8 = facet_value %i16, (%custom_witness.340963.2, %custom_witness.dcf) [concrete] -// CHECK:STDOUT: %complete_type.1cf: = complete_type_witness %facet_type.ca3 [concrete] -// CHECK:STDOUT: %.Self.as_type.da7: type = facet_access_type %.Self.cfe [symbolic_self] -// CHECK:STDOUT: %pattern_type.a3b: type = pattern_type %facet_type.9a8 [concrete] +// CHECK:STDOUT: %custom_witness.7ff: = custom_witness (%Int16, %Op.b9c47d.5), @ModWith.1, @ModWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.5ea: %facet_type.c2d = facet_value %i16, (%custom_witness.340963.2, %custom_witness.7ff) [concrete] +// CHECK:STDOUT: %complete_type.26b: = complete_type_witness %facet_type.eee [concrete] +// CHECK:STDOUT: %.Self.as_type.c50: type = facet_access_type %.Self.5ab [symbolic_self] +// CHECK:STDOUT: %pattern_type.752: type = pattern_type %facet_type.c2d [concrete] // CHECK:STDOUT: %facet_type.074: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%i16)> [concrete] // CHECK:STDOUT: %.Self.a3f: %facet_type.074 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %AddWith.lookup_impl_witness.e89: = lookup_impl_witness %.Self.a3f, @AddWith.1, @AddWith.1(%i16) [symbolic_self] // CHECK:STDOUT: %impl.elem0.4db: type = impl_witness_access %AddWith.lookup_impl_witness.e89, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.854: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%i16) where %impl.elem0.4db = %Int16> [concrete] +// CHECK:STDOUT: %facet_type.5b5: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%i16) where %impl.elem0.4db = %Int16> [concrete] // CHECK:STDOUT: %AddWith.type.a6e: type = facet_type <@AddWith.1, @AddWith.1(%i16)> [concrete] // CHECK:STDOUT: %AddWith.assoc_type.6b4: type = assoc_entity_type @AddWith.1, @AddWith.1(%i16) [concrete] // CHECK:STDOUT: %assoc0.8ca: %AddWith.assoc_type.6b4 = assoc_entity element0, imports.%Core.import_ref.b37 [concrete] // CHECK:STDOUT: %assoc1.864: %AddWith.assoc_type.6b4 = assoc_entity element1, imports.%Core.import_ref.935 [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.3: type = fn_type @Int16.Op.3 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.3: %Int16.Op.type.43d658.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b98: = custom_witness (%Int16, %Int16.Op.cc70d5.3), @AddWith.1, @AddWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.cb4: %facet_type.854 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.b98) [concrete] +// CHECK:STDOUT: %custom_witness.d49: = custom_witness (%Int16, %Int16.Op.cc70d5.3), @AddWith.1, @AddWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.8d1: %facet_type.5b5 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.d49) [concrete] // CHECK:STDOUT: %complete_type.fbb: = complete_type_witness %facet_type.074 [concrete] // CHECK:STDOUT: %.Self.as_type.1c2: type = facet_access_type %.Self.a3f [symbolic_self] -// CHECK:STDOUT: %pattern_type.7902: type = pattern_type %facet_type.854 [concrete] +// CHECK:STDOUT: %pattern_type.267: type = pattern_type %facet_type.5b5 [concrete] // CHECK:STDOUT: %facet_type.352: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%i16)> [concrete] // CHECK:STDOUT: %.Self.982: %facet_type.352 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %SubWith.lookup_impl_witness.7e3: = lookup_impl_witness %.Self.982, @SubWith.1, @SubWith.1(%i16) [symbolic_self] // CHECK:STDOUT: %impl.elem0.aa0: type = impl_witness_access %SubWith.lookup_impl_witness.7e3, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.712: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%i16) where %impl.elem0.aa0 = %Int16> [concrete] +// CHECK:STDOUT: %facet_type.fbb: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%i16) where %impl.elem0.aa0 = %Int16> [concrete] // CHECK:STDOUT: %SubWith.type.2f5: type = facet_type <@SubWith.1, @SubWith.1(%i16)> [concrete] // CHECK:STDOUT: %SubWith.assoc_type.70d: type = assoc_entity_type @SubWith.1, @SubWith.1(%i16) [concrete] // CHECK:STDOUT: %assoc0.367: %SubWith.assoc_type.70d = assoc_entity element0, imports.%Core.import_ref.bb2 [concrete] // CHECK:STDOUT: %assoc1.6ca: %SubWith.assoc_type.70d = assoc_entity element1, imports.%Core.import_ref.480 [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.4: type = fn_type @Int16.Op.4 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.4: %Int16.Op.type.43d658.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.cf8: = custom_witness (%Int16, %Int16.Op.cc70d5.4), @SubWith.1, @SubWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.812: %facet_type.712 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.cf8) [concrete] +// CHECK:STDOUT: %custom_witness.5c6: = custom_witness (%Int16, %Int16.Op.cc70d5.4), @SubWith.1, @SubWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.f76: %facet_type.fbb = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.5c6) [concrete] // CHECK:STDOUT: %complete_type.757: = complete_type_witness %facet_type.352 [concrete] // CHECK:STDOUT: %.Self.as_type.311: type = facet_access_type %.Self.982 [symbolic_self] -// CHECK:STDOUT: %pattern_type.f30: type = pattern_type %facet_type.712 [concrete] +// CHECK:STDOUT: %pattern_type.246: type = pattern_type %facet_type.fbb [concrete] // CHECK:STDOUT: %facet_type.bff: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%i16)> [concrete] // CHECK:STDOUT: %.Self.92d: %facet_type.bff = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %MulWith.lookup_impl_witness.fd5: = lookup_impl_witness %.Self.92d, @MulWith.1, @MulWith.1(%i16) [symbolic_self] // CHECK:STDOUT: %impl.elem0.004: type = impl_witness_access %MulWith.lookup_impl_witness.fd5, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.e32: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%i16) where %impl.elem0.004 = %Int16> [concrete] +// CHECK:STDOUT: %facet_type.f39: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%i16) where %impl.elem0.004 = %Int16> [concrete] // CHECK:STDOUT: %MulWith.type.278: type = facet_type <@MulWith.1, @MulWith.1(%i16)> [concrete] // CHECK:STDOUT: %MulWith.assoc_type.8cf: type = assoc_entity_type @MulWith.1, @MulWith.1(%i16) [concrete] // CHECK:STDOUT: %assoc0.de2: %MulWith.assoc_type.8cf = assoc_entity element0, imports.%Core.import_ref.a1a [concrete] // CHECK:STDOUT: %assoc1.c99: %MulWith.assoc_type.8cf = assoc_entity element1, imports.%Core.import_ref.7ed [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.5: type = fn_type @Int16.Op.5 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.5: %Int16.Op.type.43d658.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f7b: = custom_witness (%Int16, %Int16.Op.cc70d5.5), @MulWith.1, @MulWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.c7b: %facet_type.e32 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.f7b) [concrete] +// CHECK:STDOUT: %custom_witness.21d: = custom_witness (%Int16, %Int16.Op.cc70d5.5), @MulWith.1, @MulWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.a39: %facet_type.f39 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.21d) [concrete] // CHECK:STDOUT: %complete_type.4fc: = complete_type_witness %facet_type.bff [concrete] // CHECK:STDOUT: %.Self.as_type.f34: type = facet_access_type %.Self.92d [symbolic_self] -// CHECK:STDOUT: %pattern_type.cfd: type = pattern_type %facet_type.e32 [concrete] +// CHECK:STDOUT: %pattern_type.9af: type = pattern_type %facet_type.f39 [concrete] // CHECK:STDOUT: %facet_type.223: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%i16)> [concrete] // CHECK:STDOUT: %.Self.867: %facet_type.223 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %DivWith.lookup_impl_witness.7f7: = lookup_impl_witness %.Self.867, @DivWith.1, @DivWith.1(%i16) [symbolic_self] // CHECK:STDOUT: %impl.elem0.e0d: type = impl_witness_access %DivWith.lookup_impl_witness.7f7, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.fd7: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%i16) where %impl.elem0.e0d = %Int16> [concrete] +// CHECK:STDOUT: %facet_type.3fe: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%i16) where %impl.elem0.e0d = %Int16> [concrete] // CHECK:STDOUT: %DivWith.type.9b1: type = facet_type <@DivWith.1, @DivWith.1(%i16)> [concrete] // CHECK:STDOUT: %DivWith.assoc_type.746: type = assoc_entity_type @DivWith.1, @DivWith.1(%i16) [concrete] // CHECK:STDOUT: %assoc0.13d: %DivWith.assoc_type.746 = assoc_entity element0, imports.%Core.import_ref.b8f [concrete] // CHECK:STDOUT: %assoc1.84d: %DivWith.assoc_type.746 = assoc_entity element1, imports.%Core.import_ref.44d [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.6: type = fn_type @Int16.Op.6 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.6: %Int16.Op.type.43d658.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8a1: = custom_witness (%Int16, %Int16.Op.cc70d5.6), @DivWith.1, @DivWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.291: %facet_type.fd7 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.8a1) [concrete] +// CHECK:STDOUT: %custom_witness.6a8: = custom_witness (%Int16, %Int16.Op.cc70d5.6), @DivWith.1, @DivWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.0e0: %facet_type.3fe = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.6a8) [concrete] // CHECK:STDOUT: %complete_type.ddd: = complete_type_witness %facet_type.223 [concrete] // CHECK:STDOUT: %.Self.as_type.3fc: type = facet_access_type %.Self.867 [symbolic_self] -// CHECK:STDOUT: %pattern_type.5f9: type = pattern_type %facet_type.fd7 [concrete] +// CHECK:STDOUT: %pattern_type.063: type = pattern_type %facet_type.3fe [concrete] // CHECK:STDOUT: %facet_type.c0c: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%i16)> [concrete] // CHECK:STDOUT: %.Self.762: %facet_type.c0c = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %ModWith.lookup_impl_witness.cfe: = lookup_impl_witness %.Self.762, @ModWith.1, @ModWith.1(%i16) [symbolic_self] // CHECK:STDOUT: %impl.elem0.4d9: type = impl_witness_access %ModWith.lookup_impl_witness.cfe, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.edf: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%i16) where %impl.elem0.4d9 = %Int16> [concrete] +// CHECK:STDOUT: %facet_type.3cb: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%i16) where %impl.elem0.4d9 = %Int16> [concrete] // CHECK:STDOUT: %ModWith.type.59b: type = facet_type <@ModWith.1, @ModWith.1(%i16)> [concrete] // CHECK:STDOUT: %ModWith.assoc_type.3a6: type = assoc_entity_type @ModWith.1, @ModWith.1(%i16) [concrete] // CHECK:STDOUT: %assoc0.2b8: %ModWith.assoc_type.3a6 = assoc_entity element0, imports.%Core.import_ref.f19 [concrete] // CHECK:STDOUT: %assoc1.a21: %ModWith.assoc_type.3a6 = assoc_entity element1, imports.%Core.import_ref.556 [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.7: type = fn_type @Int16.Op.7 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.7: %Int16.Op.type.43d658.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.ae3: = custom_witness (%Int16, %Int16.Op.cc70d5.7), @ModWith.1, @ModWith.1(%i16) [concrete] -// CHECK:STDOUT: %facet_value.076: %facet_type.edf = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.ae3) [concrete] +// CHECK:STDOUT: %custom_witness.cdb: = custom_witness (%Int16, %Int16.Op.cc70d5.7), @ModWith.1, @ModWith.1(%i16) [concrete] +// CHECK:STDOUT: %facet_value.be3: %facet_type.3cb = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.cdb) [concrete] // CHECK:STDOUT: %complete_type.e02: = complete_type_witness %facet_type.c0c [concrete] // CHECK:STDOUT: %.Self.as_type.68f: type = facet_access_type %.Self.762 [symbolic_self] -// CHECK:STDOUT: %pattern_type.83e: type = pattern_type %facet_type.edf [concrete] +// CHECK:STDOUT: %pattern_type.7ba: type = pattern_type %facet_type.3cb [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.1: type = fn_type @Int32.Op.1 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.1: %Int32.Op.type.43d658.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.4e6cb0.2: = custom_witness (%Int32.Op.cc70d5.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.2c3: %Destroy.type = facet_value %Int32, (%custom_witness.4e6cb0.2) [concrete] -// CHECK:STDOUT: %facet_type.f56: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.977: %facet_type.f56 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.883: = lookup_impl_witness %.Self.977, @AddWith.1, @AddWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.2e9: type = impl_witness_access %AddWith.lookup_impl_witness.883, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.36e: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.2e9 = %Int32> [concrete] -// CHECK:STDOUT: %AddWith.type.c13: type = facet_type <@AddWith.1, @AddWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %AddWith.assoc_type.f6f: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.41e: %AddWith.assoc_type.f6f = assoc_entity element0, imports.%Core.import_ref.b37 [concrete] -// CHECK:STDOUT: %assoc1.519: %AddWith.assoc_type.f6f = assoc_entity element1, imports.%Core.import_ref.935 [concrete] +// CHECK:STDOUT: %Destroy.facet.cff: %Destroy.type = facet_value %Int32, (%custom_witness.4e6cb0.2) [concrete] +// CHECK:STDOUT: %facet_type.ba9: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.347: %facet_type.ba9 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.d10: = lookup_impl_witness %.Self.347, @AddWith.1, @AddWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.3a6: type = impl_witness_access %AddWith.lookup_impl_witness.d10, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.ca7: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.3a6 = %Int32> [concrete] +// CHECK:STDOUT: %AddWith.type.468: type = facet_type <@AddWith.1, @AddWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %AddWith.assoc_type.e39: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.f9d: %AddWith.assoc_type.e39 = assoc_entity element0, imports.%Core.import_ref.b37 [concrete] +// CHECK:STDOUT: %assoc1.32d: %AddWith.assoc_type.e39 = assoc_entity element1, imports.%Core.import_ref.935 [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.8: type = fn_type @Int16.Op.8 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.8: %Int16.Op.type.43d658.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.05cc3d.1: = custom_witness (%Int32, %Int16.Op.cc70d5.8), @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.d12: %facet_type.36e = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.05cc3d.1) [concrete] -// CHECK:STDOUT: %complete_type.39f: = complete_type_witness %facet_type.f56 [concrete] -// CHECK:STDOUT: %.Self.as_type.70c2: type = facet_access_type %.Self.977 [symbolic_self] -// CHECK:STDOUT: %pattern_type.204: type = pattern_type %facet_type.36e [concrete] -// CHECK:STDOUT: %facet_type.eb0: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.604: %facet_type.eb0 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.8be: = lookup_impl_witness %.Self.604, @SubWith.1, @SubWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.7af: type = impl_witness_access %SubWith.lookup_impl_witness.8be, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.dfd: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.7af = %Int32> [concrete] -// CHECK:STDOUT: %SubWith.type.554: type = facet_type <@SubWith.1, @SubWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %SubWith.assoc_type.6db: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.053: %SubWith.assoc_type.6db = assoc_entity element0, imports.%Core.import_ref.bb2 [concrete] -// CHECK:STDOUT: %assoc1.3e8: %SubWith.assoc_type.6db = assoc_entity element1, imports.%Core.import_ref.480 [concrete] +// CHECK:STDOUT: %custom_witness.d576a6.1: = custom_witness (%Int32, %Int16.Op.cc70d5.8), @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.b10: %facet_type.ca7 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.d576a6.1) [concrete] +// CHECK:STDOUT: %complete_type.95c: = complete_type_witness %facet_type.ba9 [concrete] +// CHECK:STDOUT: %.Self.as_type.9fd: type = facet_access_type %.Self.347 [symbolic_self] +// CHECK:STDOUT: %pattern_type.10c: type = pattern_type %facet_type.ca7 [concrete] +// CHECK:STDOUT: %facet_type.2eb: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.f63: %facet_type.2eb = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.029: = lookup_impl_witness %.Self.f63, @SubWith.1, @SubWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.e1a: type = impl_witness_access %SubWith.lookup_impl_witness.029, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.53b: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.e1a = %Int32> [concrete] +// CHECK:STDOUT: %SubWith.type.36c: type = facet_type <@SubWith.1, @SubWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %SubWith.assoc_type.641: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.820: %SubWith.assoc_type.641 = assoc_entity element0, imports.%Core.import_ref.bb2 [concrete] +// CHECK:STDOUT: %assoc1.d34f: %SubWith.assoc_type.641 = assoc_entity element1, imports.%Core.import_ref.480 [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.9: type = fn_type @Int16.Op.9 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.9: %Int16.Op.type.43d658.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6b476a.1: = custom_witness (%Int32, %Int16.Op.cc70d5.9), @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.4728: %facet_type.dfd = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.6b476a.1) [concrete] -// CHECK:STDOUT: %complete_type.872: = complete_type_witness %facet_type.eb0 [concrete] -// CHECK:STDOUT: %.Self.as_type.d34: type = facet_access_type %.Self.604 [symbolic_self] -// CHECK:STDOUT: %pattern_type.b5c: type = pattern_type %facet_type.dfd [concrete] -// CHECK:STDOUT: %facet_type.87a: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.485: %facet_type.87a = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.99b: = lookup_impl_witness %.Self.485, @MulWith.1, @MulWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.a71: type = impl_witness_access %MulWith.lookup_impl_witness.99b, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.4d5: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.a71 = %Int32> [concrete] -// CHECK:STDOUT: %MulWith.type.d6e: type = facet_type <@MulWith.1, @MulWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %MulWith.assoc_type.e4f: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.879: %MulWith.assoc_type.e4f = assoc_entity element0, imports.%Core.import_ref.a1a [concrete] -// CHECK:STDOUT: %assoc1.aaa: %MulWith.assoc_type.e4f = assoc_entity element1, imports.%Core.import_ref.7ed [concrete] +// CHECK:STDOUT: %custom_witness.88a574.1: = custom_witness (%Int32, %Int16.Op.cc70d5.9), @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.499: %facet_type.53b = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.88a574.1) [concrete] +// CHECK:STDOUT: %complete_type.d22: = complete_type_witness %facet_type.2eb [concrete] +// CHECK:STDOUT: %.Self.as_type.531: type = facet_access_type %.Self.f63 [symbolic_self] +// CHECK:STDOUT: %pattern_type.0bd5: type = pattern_type %facet_type.53b [concrete] +// CHECK:STDOUT: %facet_type.493: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.e2d: %facet_type.493 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.11c: = lookup_impl_witness %.Self.e2d, @MulWith.1, @MulWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.ef0: type = impl_witness_access %MulWith.lookup_impl_witness.11c, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.dac: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.ef0 = %Int32> [concrete] +// CHECK:STDOUT: %MulWith.type.a1b: type = facet_type <@MulWith.1, @MulWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %MulWith.assoc_type.534: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.266: %MulWith.assoc_type.534 = assoc_entity element0, imports.%Core.import_ref.a1a [concrete] +// CHECK:STDOUT: %assoc1.5d0: %MulWith.assoc_type.534 = assoc_entity element1, imports.%Core.import_ref.7ed [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.10: type = fn_type @Int16.Op.10 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.10: %Int16.Op.type.43d658.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f03b6f.1: = custom_witness (%Int32, %Int16.Op.cc70d5.10), @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.800: %facet_type.4d5 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.f03b6f.1) [concrete] -// CHECK:STDOUT: %complete_type.e5c: = complete_type_witness %facet_type.87a [concrete] -// CHECK:STDOUT: %.Self.as_type.963: type = facet_access_type %.Self.485 [symbolic_self] -// CHECK:STDOUT: %pattern_type.459: type = pattern_type %facet_type.4d5 [concrete] -// CHECK:STDOUT: %facet_type.81b: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.ec5: %facet_type.81b = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.073: = lookup_impl_witness %.Self.ec5, @DivWith.1, @DivWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.920: type = impl_witness_access %DivWith.lookup_impl_witness.073, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.6bd: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.920 = %Int32> [concrete] -// CHECK:STDOUT: %DivWith.type.0f5: type = facet_type <@DivWith.1, @DivWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %DivWith.assoc_type.205: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.6dd: %DivWith.assoc_type.205 = assoc_entity element0, imports.%Core.import_ref.b8f [concrete] -// CHECK:STDOUT: %assoc1.87f: %DivWith.assoc_type.205 = assoc_entity element1, imports.%Core.import_ref.44d [concrete] +// CHECK:STDOUT: %custom_witness.29b64e.1: = custom_witness (%Int32, %Int16.Op.cc70d5.10), @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.714: %facet_type.dac = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.29b64e.1) [concrete] +// CHECK:STDOUT: %complete_type.5d8: = complete_type_witness %facet_type.493 [concrete] +// CHECK:STDOUT: %.Self.as_type.cc2: type = facet_access_type %.Self.e2d [symbolic_self] +// CHECK:STDOUT: %pattern_type.490: type = pattern_type %facet_type.dac [concrete] +// CHECK:STDOUT: %facet_type.8bd: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.569: %facet_type.8bd = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.06e: = lookup_impl_witness %.Self.569, @DivWith.1, @DivWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.363: type = impl_witness_access %DivWith.lookup_impl_witness.06e, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.882: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.363 = %Int32> [concrete] +// CHECK:STDOUT: %DivWith.type.5b3: type = facet_type <@DivWith.1, @DivWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %DivWith.assoc_type.19e: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.600: %DivWith.assoc_type.19e = assoc_entity element0, imports.%Core.import_ref.b8f [concrete] +// CHECK:STDOUT: %assoc1.006: %DivWith.assoc_type.19e = assoc_entity element1, imports.%Core.import_ref.44d [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.11: type = fn_type @Int16.Op.11 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.11: %Int16.Op.type.43d658.11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d7810b.1: = custom_witness (%Int32, %Int16.Op.cc70d5.11), @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.763: %facet_type.6bd = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.d7810b.1) [concrete] -// CHECK:STDOUT: %complete_type.a26: = complete_type_witness %facet_type.81b [concrete] -// CHECK:STDOUT: %.Self.as_type.0ba: type = facet_access_type %.Self.ec5 [symbolic_self] -// CHECK:STDOUT: %pattern_type.790c: type = pattern_type %facet_type.6bd [concrete] -// CHECK:STDOUT: %facet_type.fed: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %.Self.6f8: %facet_type.fed = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.ba6: = lookup_impl_witness %.Self.6f8, @ModWith.1, @ModWith.1(%Int32) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.1ad: type = impl_witness_access %ModWith.lookup_impl_witness.ba6, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.8ee: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.1ad = %Int32> [concrete] -// CHECK:STDOUT: %ModWith.type.e59: type = facet_type <@ModWith.1, @ModWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %ModWith.assoc_type.e6b: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.bf2: %ModWith.assoc_type.e6b = assoc_entity element0, imports.%Core.import_ref.f19 [concrete] -// CHECK:STDOUT: %assoc1.adf: %ModWith.assoc_type.e6b = assoc_entity element1, imports.%Core.import_ref.556 [concrete] +// CHECK:STDOUT: %custom_witness.ed8572.1: = custom_witness (%Int32, %Int16.Op.cc70d5.11), @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.961: %facet_type.882 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.ed8572.1) [concrete] +// CHECK:STDOUT: %complete_type.621: = complete_type_witness %facet_type.8bd [concrete] +// CHECK:STDOUT: %.Self.as_type.a51: type = facet_access_type %.Self.569 [symbolic_self] +// CHECK:STDOUT: %pattern_type.6c2: type = pattern_type %facet_type.882 [concrete] +// CHECK:STDOUT: %facet_type.7ef: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %.Self.b0b: %facet_type.7ef = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.1a9: = lookup_impl_witness %.Self.b0b, @ModWith.1, @ModWith.1(%Int32) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.2b5: type = impl_witness_access %ModWith.lookup_impl_witness.1a9, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.f6f: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.2b5 = %Int32> [concrete] +// CHECK:STDOUT: %ModWith.type.4ca: type = facet_type <@ModWith.1, @ModWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %ModWith.assoc_type.ce3: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.d3a: %ModWith.assoc_type.ce3 = assoc_entity element0, imports.%Core.import_ref.f19 [concrete] +// CHECK:STDOUT: %assoc1.e15: %ModWith.assoc_type.ce3 = assoc_entity element1, imports.%Core.import_ref.556 [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.12: type = fn_type @Int16.Op.12 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.12: %Int16.Op.type.43d658.12 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.370752.1: = custom_witness (%Int32, %Int16.Op.cc70d5.12), @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.26e: %facet_type.8ee = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.370752.1) [concrete] -// CHECK:STDOUT: %complete_type.9d2: = complete_type_witness %facet_type.fed [concrete] -// CHECK:STDOUT: %.Self.as_type.0bc: type = facet_access_type %.Self.6f8 [symbolic_self] -// CHECK:STDOUT: %pattern_type.239: type = pattern_type %facet_type.8ee [concrete] -// CHECK:STDOUT: %facet_type.2f8: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.9d9 = %Int32> [concrete] +// CHECK:STDOUT: %custom_witness.775a7e.1: = custom_witness (%Int32, %Int16.Op.cc70d5.12), @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.fd8: %facet_type.f6f = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.775a7e.1) [concrete] +// CHECK:STDOUT: %complete_type.38f: = complete_type_witness %facet_type.7ef [concrete] +// CHECK:STDOUT: %.Self.as_type.cd6: type = facet_access_type %.Self.b0b [symbolic_self] +// CHECK:STDOUT: %pattern_type.218: type = pattern_type %facet_type.f6f [concrete] +// CHECK:STDOUT: %facet_type.871: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int16) where %impl.elem0.33b = %Int32> [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.2: type = fn_type @Int32.Op.2 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.2: %Int32.Op.type.43d658.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.95f: = custom_witness (%Int32, %Int32.Op.cc70d5.2), @AddWith.1, @AddWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.9e5: %facet_type.2f8 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.95f) [concrete] -// CHECK:STDOUT: %pattern_type.8af: type = pattern_type %facet_type.2f8 [concrete] -// CHECK:STDOUT: %facet_type.e67: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.b83 = %Int32> [concrete] +// CHECK:STDOUT: %custom_witness.6bd: = custom_witness (%Int32, %Int32.Op.cc70d5.2), @AddWith.1, @AddWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.355: %facet_type.871 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.6bd) [concrete] +// CHECK:STDOUT: %pattern_type.4a5: type = pattern_type %facet_type.871 [concrete] +// CHECK:STDOUT: %facet_type.935: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int16) where %impl.elem0.76d = %Int32> [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.3: type = fn_type @Int32.Op.3 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.3: %Int32.Op.type.43d658.3 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.5b9: = custom_witness (%Int32, %Int32.Op.cc70d5.3), @SubWith.1, @SubWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.fa2: %facet_type.e67 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.5b9) [concrete] -// CHECK:STDOUT: %pattern_type.f19: type = pattern_type %facet_type.e67 [concrete] -// CHECK:STDOUT: %facet_type.4ee: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.66a = %Int32> [concrete] +// CHECK:STDOUT: %custom_witness.4a6: = custom_witness (%Int32, %Int32.Op.cc70d5.3), @SubWith.1, @SubWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.903: %facet_type.935 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.4a6) [concrete] +// CHECK:STDOUT: %pattern_type.041: type = pattern_type %facet_type.935 [concrete] +// CHECK:STDOUT: %facet_type.e67: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int16) where %impl.elem0.cce = %Int32> [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.4: type = fn_type @Int32.Op.4 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.4: %Int32.Op.type.43d658.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.de2: = custom_witness (%Int32, %Int32.Op.cc70d5.4), @MulWith.1, @MulWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.727: %facet_type.4ee = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.de2) [concrete] -// CHECK:STDOUT: %pattern_type.5fc: type = pattern_type %facet_type.4ee [concrete] -// CHECK:STDOUT: %facet_type.f88: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.6cb = %Int32> [concrete] +// CHECK:STDOUT: %custom_witness.8eb7: = custom_witness (%Int32, %Int32.Op.cc70d5.4), @MulWith.1, @MulWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.22a: %facet_type.e67 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.8eb7) [concrete] +// CHECK:STDOUT: %pattern_type.53f: type = pattern_type %facet_type.e67 [concrete] +// CHECK:STDOUT: %facet_type.576: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int16) where %impl.elem0.45d = %Int32> [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.5: type = fn_type @Int32.Op.5 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.5: %Int32.Op.type.43d658.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.29d: = custom_witness (%Int32, %Int32.Op.cc70d5.5), @DivWith.1, @DivWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.62c: %facet_type.f88 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.29d) [concrete] -// CHECK:STDOUT: %pattern_type.871: type = pattern_type %facet_type.f88 [concrete] -// CHECK:STDOUT: %facet_type.994: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.2b9 = %Int32> [concrete] +// CHECK:STDOUT: %custom_witness.7d5: = custom_witness (%Int32, %Int32.Op.cc70d5.5), @DivWith.1, @DivWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.b06: %facet_type.576 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.7d5) [concrete] +// CHECK:STDOUT: %pattern_type.240: type = pattern_type %facet_type.576 [concrete] +// CHECK:STDOUT: %facet_type.745: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int16) where %impl.elem0.044 = %Int32> [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.6: type = fn_type @Int32.Op.6 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.6: %Int32.Op.type.43d658.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b06: = custom_witness (%Int32, %Int32.Op.cc70d5.6), @ModWith.1, @ModWith.1(%Int16) [concrete] -// CHECK:STDOUT: %facet_value.c1a: %facet_type.994 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.b06) [concrete] -// CHECK:STDOUT: %pattern_type.269: type = pattern_type %facet_type.994 [concrete] +// CHECK:STDOUT: %custom_witness.5f4: = custom_witness (%Int32, %Int32.Op.cc70d5.6), @ModWith.1, @ModWith.1(%Int16) [concrete] +// CHECK:STDOUT: %facet_value.0f2: %facet_type.745 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.5f4) [concrete] +// CHECK:STDOUT: %pattern_type.dbb: type = pattern_type %facet_type.745 [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.7: type = fn_type @Int32.Op.7 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.7: %Int32.Op.type.43d658.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.05cc3d.2: = custom_witness (%Int32, %Int32.Op.cc70d5.7), @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.bbe: %facet_type.36e = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.05cc3d.2) [concrete] +// CHECK:STDOUT: %custom_witness.d576a6.2: = custom_witness (%Int32, %Int32.Op.cc70d5.7), @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.52a: %facet_type.ca7 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.d576a6.2) [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.8: type = fn_type @Int32.Op.8 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.8: %Int32.Op.type.43d658.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6b476a.2: = custom_witness (%Int32, %Int32.Op.cc70d5.8), @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.d8c: %facet_type.dfd = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.6b476a.2) [concrete] +// CHECK:STDOUT: %custom_witness.88a574.2: = custom_witness (%Int32, %Int32.Op.cc70d5.8), @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.fdc: %facet_type.53b = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.88a574.2) [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.9: type = fn_type @Int32.Op.9 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.9: %Int32.Op.type.43d658.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.f03b6f.2: = custom_witness (%Int32, %Int32.Op.cc70d5.9), @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.11a: %facet_type.4d5 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.f03b6f.2) [concrete] +// CHECK:STDOUT: %custom_witness.29b64e.2: = custom_witness (%Int32, %Int32.Op.cc70d5.9), @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.561: %facet_type.dac = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.29b64e.2) [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.10: type = fn_type @Int32.Op.10 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.10: %Int32.Op.type.43d658.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d7810b.2: = custom_witness (%Int32, %Int32.Op.cc70d5.10), @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.fcc: %facet_type.6bd = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.d7810b.2) [concrete] +// CHECK:STDOUT: %custom_witness.ed8572.2: = custom_witness (%Int32, %Int32.Op.cc70d5.10), @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.9c5: %facet_type.882 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.ed8572.2) [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.11: type = fn_type @Int32.Op.11 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.11: %Int32.Op.type.43d658.11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.370752.2: = custom_witness (%Int32, %Int32.Op.cc70d5.11), @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.c5d: %facet_type.8ee = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.370752.2) [concrete] +// CHECK:STDOUT: %custom_witness.775a7e.2: = custom_witness (%Int32, %Int32.Op.cc70d5.11), @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.06b: %facet_type.f6f = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.775a7e.2) [concrete] // CHECK:STDOUT: %Int64.Op.type.43d658.1: type = fn_type @Int64.Op.1 [concrete] // CHECK:STDOUT: %Int64.Op.cc70d5.1: %Int64.Op.type.43d658.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.4e6cb0.3: = custom_witness (%Int64.Op.cc70d5.1), @Destroy [concrete] -// CHECK:STDOUT: %Destroy.facet.44d: %Destroy.type = facet_value %Int64, (%custom_witness.4e6cb0.3) [concrete] -// CHECK:STDOUT: %facet_type.b51: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.b56: %facet_type.b51 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %AddWith.lookup_impl_witness.71c: = lookup_impl_witness %.Self.b56, @AddWith.1, @AddWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.cdf: type = impl_witness_access %AddWith.lookup_impl_witness.71c, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.b34: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64) where %impl.elem0.cdf = %Int64> [concrete] -// CHECK:STDOUT: %AddWith.type.b5c: type = facet_type <@AddWith.1, @AddWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %AddWith.assoc_type.ea8: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.c63: %AddWith.assoc_type.ea8 = assoc_entity element0, imports.%Core.import_ref.b37 [concrete] -// CHECK:STDOUT: %assoc1.69c: %AddWith.assoc_type.ea8 = assoc_entity element1, imports.%Core.import_ref.935 [concrete] +// CHECK:STDOUT: %Destroy.facet.787: %Destroy.type = facet_value %Int64, (%custom_witness.4e6cb0.3) [concrete] +// CHECK:STDOUT: %facet_type.328: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.643: %facet_type.328 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %AddWith.lookup_impl_witness.017: = lookup_impl_witness %.Self.643, @AddWith.1, @AddWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.c37: type = impl_witness_access %AddWith.lookup_impl_witness.017, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.8fd: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int64) where %impl.elem0.c37 = %Int64> [concrete] +// CHECK:STDOUT: %AddWith.type.a00: type = facet_type <@AddWith.1, @AddWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %AddWith.assoc_type.8b7: type = assoc_entity_type @AddWith.1, @AddWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.d15: %AddWith.assoc_type.8b7 = assoc_entity element0, imports.%Core.import_ref.b37 [concrete] +// CHECK:STDOUT: %assoc1.5d1: %AddWith.assoc_type.8b7 = assoc_entity element1, imports.%Core.import_ref.935 [concrete] // CHECK:STDOUT: %Op.type.0b8387.6: type = fn_type @Op.6 [concrete] // CHECK:STDOUT: %Op.b9c47d.6: %Op.type.0b8387.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.e14: = custom_witness (%Int64, %Op.b9c47d.6), @AddWith.1, @AddWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.512: %facet_type.b34 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.e14) [concrete] -// CHECK:STDOUT: %complete_type.245: = complete_type_witness %facet_type.b51 [concrete] -// CHECK:STDOUT: %.Self.as_type.f5c: type = facet_access_type %.Self.b56 [symbolic_self] -// CHECK:STDOUT: %pattern_type.1c9: type = pattern_type %facet_type.b34 [concrete] -// CHECK:STDOUT: %facet_type.8dc: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.504: %facet_type.8dc = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %SubWith.lookup_impl_witness.960: = lookup_impl_witness %.Self.504, @SubWith.1, @SubWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.8ab: type = impl_witness_access %SubWith.lookup_impl_witness.960, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.b2b: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64) where %impl.elem0.8ab = %Int64> [concrete] -// CHECK:STDOUT: %SubWith.type.4c4: type = facet_type <@SubWith.1, @SubWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %SubWith.assoc_type.25c: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.2a2: %SubWith.assoc_type.25c = assoc_entity element0, imports.%Core.import_ref.bb2 [concrete] -// CHECK:STDOUT: %assoc1.4e8: %SubWith.assoc_type.25c = assoc_entity element1, imports.%Core.import_ref.480 [concrete] +// CHECK:STDOUT: %custom_witness.956: = custom_witness (%Int64, %Op.b9c47d.6), @AddWith.1, @AddWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.4d8: %facet_type.8fd = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.956) [concrete] +// CHECK:STDOUT: %complete_type.3d6: = complete_type_witness %facet_type.328 [concrete] +// CHECK:STDOUT: %.Self.as_type.37c: type = facet_access_type %.Self.643 [symbolic_self] +// CHECK:STDOUT: %pattern_type.826: type = pattern_type %facet_type.8fd [concrete] +// CHECK:STDOUT: %facet_type.45b: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.32f: %facet_type.45b = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %SubWith.lookup_impl_witness.919: = lookup_impl_witness %.Self.32f, @SubWith.1, @SubWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.634: type = impl_witness_access %SubWith.lookup_impl_witness.919, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.c72: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int64) where %impl.elem0.634 = %Int64> [concrete] +// CHECK:STDOUT: %SubWith.type.c91: type = facet_type <@SubWith.1, @SubWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %SubWith.assoc_type.b5d: type = assoc_entity_type @SubWith.1, @SubWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.a4a: %SubWith.assoc_type.b5d = assoc_entity element0, imports.%Core.import_ref.bb2 [concrete] +// CHECK:STDOUT: %assoc1.197: %SubWith.assoc_type.b5d = assoc_entity element1, imports.%Core.import_ref.480 [concrete] // CHECK:STDOUT: %Op.type.0b8387.7: type = fn_type @Op.7 [concrete] // CHECK:STDOUT: %Op.b9c47d.7: %Op.type.0b8387.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d0e: = custom_witness (%Int64, %Op.b9c47d.7), @SubWith.1, @SubWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.0f3: %facet_type.b2b = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.d0e) [concrete] -// CHECK:STDOUT: %complete_type.8ff: = complete_type_witness %facet_type.8dc [concrete] -// CHECK:STDOUT: %.Self.as_type.e9c: type = facet_access_type %.Self.504 [symbolic_self] -// CHECK:STDOUT: %pattern_type.e40: type = pattern_type %facet_type.b2b [concrete] -// CHECK:STDOUT: %facet_type.4f0: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.bc5: %facet_type.4f0 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %MulWith.lookup_impl_witness.3f1: = lookup_impl_witness %.Self.bc5, @MulWith.1, @MulWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.a20: type = impl_witness_access %MulWith.lookup_impl_witness.3f1, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.b1b: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64) where %impl.elem0.a20 = %Int64> [concrete] -// CHECK:STDOUT: %MulWith.type.6fc: type = facet_type <@MulWith.1, @MulWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %MulWith.assoc_type.23b: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.5d0: %MulWith.assoc_type.23b = assoc_entity element0, imports.%Core.import_ref.a1a [concrete] -// CHECK:STDOUT: %assoc1.78a: %MulWith.assoc_type.23b = assoc_entity element1, imports.%Core.import_ref.7ed [concrete] +// CHECK:STDOUT: %custom_witness.a20: = custom_witness (%Int64, %Op.b9c47d.7), @SubWith.1, @SubWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.9e5: %facet_type.c72 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.a20) [concrete] +// CHECK:STDOUT: %complete_type.6c6: = complete_type_witness %facet_type.45b [concrete] +// CHECK:STDOUT: %.Self.as_type.d56: type = facet_access_type %.Self.32f [symbolic_self] +// CHECK:STDOUT: %pattern_type.9ae: type = pattern_type %facet_type.c72 [concrete] +// CHECK:STDOUT: %facet_type.cbc: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.e7c: %facet_type.cbc = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %MulWith.lookup_impl_witness.966: = lookup_impl_witness %.Self.e7c, @MulWith.1, @MulWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.7e2: type = impl_witness_access %MulWith.lookup_impl_witness.966, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.c0f: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int64) where %impl.elem0.7e2 = %Int64> [concrete] +// CHECK:STDOUT: %MulWith.type.5ad: type = facet_type <@MulWith.1, @MulWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %MulWith.assoc_type.c04: type = assoc_entity_type @MulWith.1, @MulWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.68c: %MulWith.assoc_type.c04 = assoc_entity element0, imports.%Core.import_ref.a1a [concrete] +// CHECK:STDOUT: %assoc1.db7: %MulWith.assoc_type.c04 = assoc_entity element1, imports.%Core.import_ref.7ed [concrete] // CHECK:STDOUT: %Op.type.0b8387.8: type = fn_type @Op.8 [concrete] // CHECK:STDOUT: %Op.b9c47d.8: %Op.type.0b8387.8 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.784: = custom_witness (%Int64, %Op.b9c47d.8), @MulWith.1, @MulWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.cda: %facet_type.b1b = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.784) [concrete] -// CHECK:STDOUT: %complete_type.609: = complete_type_witness %facet_type.4f0 [concrete] -// CHECK:STDOUT: %.Self.as_type.ec4: type = facet_access_type %.Self.bc5 [symbolic_self] -// CHECK:STDOUT: %pattern_type.c0b: type = pattern_type %facet_type.b1b [concrete] -// CHECK:STDOUT: %facet_type.d54: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.987: %facet_type.d54 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %DivWith.lookup_impl_witness.d5e: = lookup_impl_witness %.Self.987, @DivWith.1, @DivWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.cba: type = impl_witness_access %DivWith.lookup_impl_witness.d5e, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.0c6: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64) where %impl.elem0.cba = %Int64> [concrete] -// CHECK:STDOUT: %DivWith.type.46b: type = facet_type <@DivWith.1, @DivWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %DivWith.assoc_type.d66: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.d4a: %DivWith.assoc_type.d66 = assoc_entity element0, imports.%Core.import_ref.b8f [concrete] -// CHECK:STDOUT: %assoc1.e3e: %DivWith.assoc_type.d66 = assoc_entity element1, imports.%Core.import_ref.44d [concrete] +// CHECK:STDOUT: %custom_witness.318: = custom_witness (%Int64, %Op.b9c47d.8), @MulWith.1, @MulWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.582: %facet_type.c0f = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.318) [concrete] +// CHECK:STDOUT: %complete_type.786: = complete_type_witness %facet_type.cbc [concrete] +// CHECK:STDOUT: %.Self.as_type.a8f: type = facet_access_type %.Self.e7c [symbolic_self] +// CHECK:STDOUT: %pattern_type.251: type = pattern_type %facet_type.c0f [concrete] +// CHECK:STDOUT: %facet_type.c6f: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.b9d: %facet_type.c6f = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %DivWith.lookup_impl_witness.358: = lookup_impl_witness %.Self.b9d, @DivWith.1, @DivWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.113: type = impl_witness_access %DivWith.lookup_impl_witness.358, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.75d: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int64) where %impl.elem0.113 = %Int64> [concrete] +// CHECK:STDOUT: %DivWith.type.6d6: type = facet_type <@DivWith.1, @DivWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %DivWith.assoc_type.946: type = assoc_entity_type @DivWith.1, @DivWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.c8e: %DivWith.assoc_type.946 = assoc_entity element0, imports.%Core.import_ref.b8f [concrete] +// CHECK:STDOUT: %assoc1.156: %DivWith.assoc_type.946 = assoc_entity element1, imports.%Core.import_ref.44d [concrete] // CHECK:STDOUT: %Op.type.0b8387.9: type = fn_type @Op.9 [concrete] // CHECK:STDOUT: %Op.b9c47d.9: %Op.type.0b8387.9 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.a1d: = custom_witness (%Int64, %Op.b9c47d.9), @DivWith.1, @DivWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.862: %facet_type.0c6 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.a1d) [concrete] -// CHECK:STDOUT: %complete_type.d68: = complete_type_witness %facet_type.d54 [concrete] -// CHECK:STDOUT: %.Self.as_type.fad: type = facet_access_type %.Self.987 [symbolic_self] -// CHECK:STDOUT: %pattern_type.4e3: type = pattern_type %facet_type.0c6 [concrete] -// CHECK:STDOUT: %facet_type.ad6: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %.Self.eba: %facet_type.ad6 = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %ModWith.lookup_impl_witness.d93: = lookup_impl_witness %.Self.eba, @ModWith.1, @ModWith.1(%Int64) [symbolic_self] -// CHECK:STDOUT: %impl.elem0.036: type = impl_witness_access %ModWith.lookup_impl_witness.d93, element0 [symbolic_self] -// CHECK:STDOUT: %facet_type.892: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64) where %impl.elem0.036 = %Int64> [concrete] -// CHECK:STDOUT: %ModWith.type.610: type = facet_type <@ModWith.1, @ModWith.1(%Int64)> [concrete] -// CHECK:STDOUT: %ModWith.assoc_type.08d: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int64) [concrete] -// CHECK:STDOUT: %assoc0.558: %ModWith.assoc_type.08d = assoc_entity element0, imports.%Core.import_ref.f19 [concrete] -// CHECK:STDOUT: %assoc1.ad0: %ModWith.assoc_type.08d = assoc_entity element1, imports.%Core.import_ref.556 [concrete] +// CHECK:STDOUT: %custom_witness.143: = custom_witness (%Int64, %Op.b9c47d.9), @DivWith.1, @DivWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.6ba: %facet_type.75d = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.143) [concrete] +// CHECK:STDOUT: %complete_type.12e: = complete_type_witness %facet_type.c6f [concrete] +// CHECK:STDOUT: %.Self.as_type.9e3: type = facet_access_type %.Self.b9d [symbolic_self] +// CHECK:STDOUT: %pattern_type.348: type = pattern_type %facet_type.75d [concrete] +// CHECK:STDOUT: %facet_type.0d9: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %.Self.8a7: %facet_type.0d9 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %ModWith.lookup_impl_witness.112: = lookup_impl_witness %.Self.8a7, @ModWith.1, @ModWith.1(%Int64) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.079: type = impl_witness_access %ModWith.lookup_impl_witness.112, element0 [symbolic_self] +// CHECK:STDOUT: %facet_type.a6f: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int64) where %impl.elem0.079 = %Int64> [concrete] +// CHECK:STDOUT: %ModWith.type.d62: type = facet_type <@ModWith.1, @ModWith.1(%Int64)> [concrete] +// CHECK:STDOUT: %ModWith.assoc_type.cdd: type = assoc_entity_type @ModWith.1, @ModWith.1(%Int64) [concrete] +// CHECK:STDOUT: %assoc0.cb9: %ModWith.assoc_type.cdd = assoc_entity element0, imports.%Core.import_ref.f19 [concrete] +// CHECK:STDOUT: %assoc1.d34e: %ModWith.assoc_type.cdd = assoc_entity element1, imports.%Core.import_ref.556 [concrete] // CHECK:STDOUT: %Op.type.0b8387.10: type = fn_type @Op.10 [concrete] // CHECK:STDOUT: %Op.b9c47d.10: %Op.type.0b8387.10 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.1f5: = custom_witness (%Int64, %Op.b9c47d.10), @ModWith.1, @ModWith.1(%Int64) [concrete] -// CHECK:STDOUT: %facet_value.3fc: %facet_type.892 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.1f5) [concrete] -// CHECK:STDOUT: %complete_type.1c0: = complete_type_witness %facet_type.ad6 [concrete] -// CHECK:STDOUT: %.Self.as_type.0bf: type = facet_access_type %.Self.eba [symbolic_self] -// CHECK:STDOUT: %pattern_type.a7b8: type = pattern_type %facet_type.892 [concrete] -// CHECK:STDOUT: %facet_type.167: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.2e9 = %Int64> [concrete] +// CHECK:STDOUT: %custom_witness.af4: = custom_witness (%Int64, %Op.b9c47d.10), @ModWith.1, @ModWith.1(%Int64) [concrete] +// CHECK:STDOUT: %facet_value.6cd: %facet_type.a6f = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.af4) [concrete] +// CHECK:STDOUT: %complete_type.3e7: = complete_type_witness %facet_type.0d9 [concrete] +// CHECK:STDOUT: %.Self.as_type.c68: type = facet_access_type %.Self.8a7 [symbolic_self] +// CHECK:STDOUT: %pattern_type.1af: type = pattern_type %facet_type.a6f [concrete] +// CHECK:STDOUT: %facet_type.5ef: type = facet_type <@Destroy & @AddWith.1, @AddWith.1(%Int32) where %impl.elem0.3a6 = %Int64> [concrete] // CHECK:STDOUT: %Op.type.0b8387.11: type = fn_type @Op.11 [concrete] // CHECK:STDOUT: %Op.b9c47d.11: %Op.type.0b8387.11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.8f1: = custom_witness (%Int64, %Op.b9c47d.11), @AddWith.1, @AddWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.7c6: %facet_type.167 = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.8f1) [concrete] -// CHECK:STDOUT: %pattern_type.109: type = pattern_type %facet_type.167 [concrete] -// CHECK:STDOUT: %facet_type.39e: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.7af = %Int64> [concrete] +// CHECK:STDOUT: %custom_witness.ca2: = custom_witness (%Int64, %Op.b9c47d.11), @AddWith.1, @AddWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.c06: %facet_type.5ef = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.ca2) [concrete] +// CHECK:STDOUT: %pattern_type.80a: type = pattern_type %facet_type.5ef [concrete] +// CHECK:STDOUT: %facet_type.77f: type = facet_type <@Destroy & @SubWith.1, @SubWith.1(%Int32) where %impl.elem0.e1a = %Int64> [concrete] // CHECK:STDOUT: %Op.type.0b8387.12: type = fn_type @Op.12 [concrete] // CHECK:STDOUT: %Op.b9c47d.12: %Op.type.0b8387.12 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.148: = custom_witness (%Int64, %Op.b9c47d.12), @SubWith.1, @SubWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.4720: %facet_type.39e = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.148) [concrete] -// CHECK:STDOUT: %pattern_type.a19: type = pattern_type %facet_type.39e [concrete] -// CHECK:STDOUT: %facet_type.7cf: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.a71 = %Int64> [concrete] +// CHECK:STDOUT: %custom_witness.274: = custom_witness (%Int64, %Op.b9c47d.12), @SubWith.1, @SubWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.106: %facet_type.77f = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.274) [concrete] +// CHECK:STDOUT: %pattern_type.86a: type = pattern_type %facet_type.77f [concrete] +// CHECK:STDOUT: %facet_type.751: type = facet_type <@Destroy & @MulWith.1, @MulWith.1(%Int32) where %impl.elem0.ef0 = %Int64> [concrete] // CHECK:STDOUT: %Op.type.0b8387.13: type = fn_type @Op.13 [concrete] // CHECK:STDOUT: %Op.b9c47d.13: %Op.type.0b8387.13 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.d3e: = custom_witness (%Int64, %Op.b9c47d.13), @MulWith.1, @MulWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.ebb: %facet_type.7cf = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.d3e) [concrete] -// CHECK:STDOUT: %pattern_type.2b4: type = pattern_type %facet_type.7cf [concrete] -// CHECK:STDOUT: %facet_type.e1a: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.920 = %Int64> [concrete] +// CHECK:STDOUT: %custom_witness.286: = custom_witness (%Int64, %Op.b9c47d.13), @MulWith.1, @MulWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.f97: %facet_type.751 = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.286) [concrete] +// CHECK:STDOUT: %pattern_type.a3e: type = pattern_type %facet_type.751 [concrete] +// CHECK:STDOUT: %facet_type.86b: type = facet_type <@Destroy & @DivWith.1, @DivWith.1(%Int32) where %impl.elem0.363 = %Int64> [concrete] // CHECK:STDOUT: %Op.type.0b8387.14: type = fn_type @Op.14 [concrete] // CHECK:STDOUT: %Op.b9c47d.14: %Op.type.0b8387.14 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.847: = custom_witness (%Int64, %Op.b9c47d.14), @DivWith.1, @DivWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.075: %facet_type.e1a = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.847) [concrete] -// CHECK:STDOUT: %pattern_type.d89: type = pattern_type %facet_type.e1a [concrete] -// CHECK:STDOUT: %facet_type.349: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.1ad = %Int64> [concrete] +// CHECK:STDOUT: %custom_witness.159: = custom_witness (%Int64, %Op.b9c47d.14), @DivWith.1, @DivWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.b56: %facet_type.86b = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.159) [concrete] +// CHECK:STDOUT: %pattern_type.b0b: type = pattern_type %facet_type.86b [concrete] +// CHECK:STDOUT: %facet_type.713: type = facet_type <@Destroy & @ModWith.1, @ModWith.1(%Int32) where %impl.elem0.2b5 = %Int64> [concrete] // CHECK:STDOUT: %Op.type.0b8387.15: type = fn_type @Op.15 [concrete] // CHECK:STDOUT: %Op.b9c47d.15: %Op.type.0b8387.15 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.4aa: = custom_witness (%Int64, %Op.b9c47d.15), @ModWith.1, @ModWith.1(%Int32) [concrete] -// CHECK:STDOUT: %facet_value.4e4: %facet_type.349 = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.4aa) [concrete] -// CHECK:STDOUT: %pattern_type.a62: type = pattern_type %facet_type.349 [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.01a: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.44d) [concrete] -// CHECK:STDOUT: %.ded: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.01a, %Destroy.facet.44d [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.55e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.2c3) [concrete] -// CHECK:STDOUT: %.c44: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.55e, %Destroy.facet.2c3 [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e9d: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.809) [concrete] -// CHECK:STDOUT: %.f30: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e9d, %Destroy.facet.809 [concrete] +// CHECK:STDOUT: %custom_witness.2d7: = custom_witness (%Int64, %Op.b9c47d.15), @ModWith.1, @ModWith.1(%Int32) [concrete] +// CHECK:STDOUT: %facet_value.800: %facet_type.713 = facet_value %Int64, (%custom_witness.4e6cb0.3, %custom_witness.2d7) [concrete] +// CHECK:STDOUT: %pattern_type.c06: type = pattern_type %facet_type.713 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.01d: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.787) [concrete] +// CHECK:STDOUT: %.0f7: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.01d, %Destroy.facet.787 [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.e16: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.cff) [concrete] +// CHECK:STDOUT: %.e18: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.e16, %Destroy.facet.cff [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ce6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.81a) [concrete] +// CHECK:STDOUT: %.b23: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ce6, %Destroy.facet.81a [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %AddAssignWith.type.dc8ed5.1: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%Other)> [symbolic] // CHECK:STDOUT: %Self.689a47.1: %AddAssignWith.type.dc8ed5.1 = symbolic_binding Self, 1 [symbolic] @@ -1000,7 +1000,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Int16.Op.type.43d658.13: type = fn_type @Int16.Op.13 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.13: %Int16.Op.type.43d658.13 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.dd4: = custom_witness (%Int16.Op.cc70d5.13), @AddAssignWith.1, @AddAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.a2b: %AddAssignWith.type.5a5 = facet_value %Int16, (%custom_witness.dd4) [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.7e5: %AddAssignWith.type.5a5 = facet_value %Int16, (%custom_witness.dd4) [concrete] // CHECK:STDOUT: %pattern_type.307: type = pattern_type %AddAssignWith.type.5a5 [concrete] // CHECK:STDOUT: %SubAssignWith.type.2da: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%i16)> [concrete] // CHECK:STDOUT: %SubAssignWith.assoc_type.f3f: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%i16) [concrete] @@ -1008,7 +1008,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Int16.Op.type.43d658.14: type = fn_type @Int16.Op.14 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.14: %Int16.Op.type.43d658.14 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.364: = custom_witness (%Int16.Op.cc70d5.14), @SubAssignWith.1, @SubAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.8a1: %SubAssignWith.type.2da = facet_value %Int16, (%custom_witness.364) [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.a58: %SubAssignWith.type.2da = facet_value %Int16, (%custom_witness.364) [concrete] // CHECK:STDOUT: %pattern_type.2c7: type = pattern_type %SubAssignWith.type.2da [concrete] // CHECK:STDOUT: %MulAssignWith.type.a70: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%i16)> [concrete] // CHECK:STDOUT: %MulAssignWith.assoc_type.f71: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%i16) [concrete] @@ -1016,7 +1016,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Int16.Op.type.43d658.15: type = fn_type @Int16.Op.15 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.15: %Int16.Op.type.43d658.15 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.898: = custom_witness (%Int16.Op.cc70d5.15), @MulAssignWith.1, @MulAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.eb1: %MulAssignWith.type.a70 = facet_value %Int16, (%custom_witness.898) [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.ece: %MulAssignWith.type.a70 = facet_value %Int16, (%custom_witness.898) [concrete] // CHECK:STDOUT: %pattern_type.0b2: type = pattern_type %MulAssignWith.type.a70 [concrete] // CHECK:STDOUT: %DivAssignWith.type.7f8: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%i16)> [concrete] // CHECK:STDOUT: %DivAssignWith.assoc_type.e83: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%i16) [concrete] @@ -1024,7 +1024,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Int16.Op.type.43d658.16: type = fn_type @Int16.Op.16 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.16: %Int16.Op.type.43d658.16 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.11f: = custom_witness (%Int16.Op.cc70d5.16), @DivAssignWith.1, @DivAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.3b7: %DivAssignWith.type.7f8 = facet_value %Int16, (%custom_witness.11f) [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.153: %DivAssignWith.type.7f8 = facet_value %Int16, (%custom_witness.11f) [concrete] // CHECK:STDOUT: %pattern_type.455: type = pattern_type %DivAssignWith.type.7f8 [concrete] // CHECK:STDOUT: %ModAssignWith.type.eee: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%i16)> [concrete] // CHECK:STDOUT: %ModAssignWith.assoc_type.08a: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%i16) [concrete] @@ -1032,68 +1032,68 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Int16.Op.type.43d658.17: type = fn_type @Int16.Op.17 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.17: %Int16.Op.type.43d658.17 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.c16: = custom_witness (%Int16.Op.cc70d5.17), @ModAssignWith.1, @ModAssignWith.1(%i16) [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.397: %ModAssignWith.type.eee = facet_value %Int16, (%custom_witness.c16) [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.b79: %ModAssignWith.type.eee = facet_value %Int16, (%custom_witness.c16) [concrete] // CHECK:STDOUT: %pattern_type.df1: type = pattern_type %ModAssignWith.type.eee [concrete] -// CHECK:STDOUT: %AddAssignWith.type.22f: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %AddAssignWith.assoc_type.6a5: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.20f: %AddAssignWith.assoc_type.6a5 = assoc_entity element0, imports.%Core.import_ref.4eb [concrete] +// CHECK:STDOUT: %AddAssignWith.type.426: type = facet_type <@AddAssignWith.1, @AddAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %AddAssignWith.assoc_type.ab4: type = assoc_entity_type @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.704: %AddAssignWith.assoc_type.ab4 = assoc_entity element0, imports.%Core.import_ref.4eb [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.12: type = fn_type @Int32.Op.12 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.12: %Int32.Op.type.43d658.12 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.92c4bb.1: = custom_witness (%Int32.Op.cc70d5.12), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.269: %AddAssignWith.type.22f = facet_value %Int32, (%custom_witness.92c4bb.1) [concrete] -// CHECK:STDOUT: %pattern_type.2d7: type = pattern_type %AddAssignWith.type.22f [concrete] -// CHECK:STDOUT: %SubAssignWith.type.c0c: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %SubAssignWith.assoc_type.5d1: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.5e1: %SubAssignWith.assoc_type.5d1 = assoc_entity element0, imports.%Core.import_ref.a2d0 [concrete] +// CHECK:STDOUT: %custom_witness.54bf25.1: = custom_witness (%Int32.Op.cc70d5.12), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.d81: %AddAssignWith.type.426 = facet_value %Int32, (%custom_witness.54bf25.1) [concrete] +// CHECK:STDOUT: %pattern_type.0bd0: type = pattern_type %AddAssignWith.type.426 [concrete] +// CHECK:STDOUT: %SubAssignWith.type.9df: type = facet_type <@SubAssignWith.1, @SubAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %SubAssignWith.assoc_type.597: type = assoc_entity_type @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.6dc: %SubAssignWith.assoc_type.597 = assoc_entity element0, imports.%Core.import_ref.a2d0 [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.14: type = fn_type @Int32.Op.14 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.14: %Int32.Op.type.43d658.14 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6c915d.1: = custom_witness (%Int32.Op.cc70d5.14), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.b55: %SubAssignWith.type.c0c = facet_value %Int32, (%custom_witness.6c915d.1) [concrete] -// CHECK:STDOUT: %pattern_type.0ae: type = pattern_type %SubAssignWith.type.c0c [concrete] -// CHECK:STDOUT: %MulAssignWith.type.f1b: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %MulAssignWith.assoc_type.38d: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.bb5: %MulAssignWith.assoc_type.38d = assoc_entity element0, imports.%Core.import_ref.475 [concrete] +// CHECK:STDOUT: %custom_witness.69cd18.1: = custom_witness (%Int32.Op.cc70d5.14), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.059: %SubAssignWith.type.9df = facet_value %Int32, (%custom_witness.69cd18.1) [concrete] +// CHECK:STDOUT: %pattern_type.1b0: type = pattern_type %SubAssignWith.type.9df [concrete] +// CHECK:STDOUT: %MulAssignWith.type.073: type = facet_type <@MulAssignWith.1, @MulAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %MulAssignWith.assoc_type.f6e: type = assoc_entity_type @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.cc8: %MulAssignWith.assoc_type.f6e = assoc_entity element0, imports.%Core.import_ref.475 [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.15: type = fn_type @Int32.Op.15 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.15: %Int32.Op.type.43d658.15 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.74ecb3.1: = custom_witness (%Int32.Op.cc70d5.15), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.28c: %MulAssignWith.type.f1b = facet_value %Int32, (%custom_witness.74ecb3.1) [concrete] -// CHECK:STDOUT: %pattern_type.b7f: type = pattern_type %MulAssignWith.type.f1b [concrete] -// CHECK:STDOUT: %DivAssignWith.type.453: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %DivAssignWith.assoc_type.693: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.50a: %DivAssignWith.assoc_type.693 = assoc_entity element0, imports.%Core.import_ref.12d [concrete] +// CHECK:STDOUT: %custom_witness.fc45f7.1: = custom_witness (%Int32.Op.cc70d5.15), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.7a5: %MulAssignWith.type.073 = facet_value %Int32, (%custom_witness.fc45f7.1) [concrete] +// CHECK:STDOUT: %pattern_type.9f8: type = pattern_type %MulAssignWith.type.073 [concrete] +// CHECK:STDOUT: %DivAssignWith.type.2a3: type = facet_type <@DivAssignWith.1, @DivAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %DivAssignWith.assoc_type.d28: type = assoc_entity_type @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.68b: %DivAssignWith.assoc_type.d28 = assoc_entity element0, imports.%Core.import_ref.12d [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.16: type = fn_type @Int32.Op.16 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.16: %Int32.Op.type.43d658.16 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.72221e.1: = custom_witness (%Int32.Op.cc70d5.16), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.da6: %DivAssignWith.type.453 = facet_value %Int32, (%custom_witness.72221e.1) [concrete] -// CHECK:STDOUT: %pattern_type.964: type = pattern_type %DivAssignWith.type.453 [concrete] -// CHECK:STDOUT: %ModAssignWith.type.390: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%Int32)> [concrete] -// CHECK:STDOUT: %ModAssignWith.assoc_type.e54: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %assoc0.ec3: %ModAssignWith.assoc_type.e54 = assoc_entity element0, imports.%Core.import_ref.c884 [concrete] +// CHECK:STDOUT: %custom_witness.b90a73.1: = custom_witness (%Int32.Op.cc70d5.16), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.e46: %DivAssignWith.type.2a3 = facet_value %Int32, (%custom_witness.b90a73.1) [concrete] +// CHECK:STDOUT: %pattern_type.ce3: type = pattern_type %DivAssignWith.type.2a3 [concrete] +// CHECK:STDOUT: %ModAssignWith.type.da6: type = facet_type <@ModAssignWith.1, @ModAssignWith.1(%Int32)> [concrete] +// CHECK:STDOUT: %ModAssignWith.assoc_type.e9f: type = assoc_entity_type @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %assoc0.13c: %ModAssignWith.assoc_type.e9f = assoc_entity element0, imports.%Core.import_ref.c884 [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.17: type = fn_type @Int32.Op.17 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.17: %Int32.Op.type.43d658.17 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.2e8ae2.1: = custom_witness (%Int32.Op.cc70d5.17), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.1c5: %ModAssignWith.type.390 = facet_value %Int32, (%custom_witness.2e8ae2.1) [concrete] -// CHECK:STDOUT: %pattern_type.dd3: type = pattern_type %ModAssignWith.type.390 [concrete] +// CHECK:STDOUT: %custom_witness.c151ba.1: = custom_witness (%Int32.Op.cc70d5.17), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.2ba: %ModAssignWith.type.da6 = facet_value %Int32, (%custom_witness.c151ba.1) [concrete] +// CHECK:STDOUT: %pattern_type.f9a: type = pattern_type %ModAssignWith.type.da6 [concrete] // CHECK:STDOUT: %Int64.Op.type.43d658.2: type = fn_type @Int64.Op.2 [concrete] // CHECK:STDOUT: %Int64.Op.cc70d5.2: %Int64.Op.type.43d658.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.92c4bb.2: = custom_witness (%Int64.Op.cc70d5.2), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %AddAssignWith.facet.775: %AddAssignWith.type.22f = facet_value %Int64, (%custom_witness.92c4bb.2) [concrete] +// CHECK:STDOUT: %custom_witness.54bf25.2: = custom_witness (%Int64.Op.cc70d5.2), @AddAssignWith.1, @AddAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %AddAssignWith.facet.994: %AddAssignWith.type.426 = facet_value %Int64, (%custom_witness.54bf25.2) [concrete] // CHECK:STDOUT: %Int64.Op.type.43d658.4: type = fn_type @Int64.Op.4 [concrete] // CHECK:STDOUT: %Int64.Op.cc70d5.4: %Int64.Op.type.43d658.4 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.6c915d.2: = custom_witness (%Int64.Op.cc70d5.4), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %SubAssignWith.facet.e52: %SubAssignWith.type.c0c = facet_value %Int64, (%custom_witness.6c915d.2) [concrete] +// CHECK:STDOUT: %custom_witness.69cd18.2: = custom_witness (%Int64.Op.cc70d5.4), @SubAssignWith.1, @SubAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %SubAssignWith.facet.cec: %SubAssignWith.type.9df = facet_value %Int64, (%custom_witness.69cd18.2) [concrete] // CHECK:STDOUT: %Int64.Op.type.43d658.5: type = fn_type @Int64.Op.5 [concrete] // CHECK:STDOUT: %Int64.Op.cc70d5.5: %Int64.Op.type.43d658.5 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.74ecb3.2: = custom_witness (%Int64.Op.cc70d5.5), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %MulAssignWith.facet.3f1: %MulAssignWith.type.f1b = facet_value %Int64, (%custom_witness.74ecb3.2) [concrete] +// CHECK:STDOUT: %custom_witness.fc45f7.2: = custom_witness (%Int64.Op.cc70d5.5), @MulAssignWith.1, @MulAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %MulAssignWith.facet.9d6: %MulAssignWith.type.073 = facet_value %Int64, (%custom_witness.fc45f7.2) [concrete] // CHECK:STDOUT: %Int64.Op.type.43d658.6: type = fn_type @Int64.Op.6 [concrete] // CHECK:STDOUT: %Int64.Op.cc70d5.6: %Int64.Op.type.43d658.6 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.72221e.2: = custom_witness (%Int64.Op.cc70d5.6), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %DivAssignWith.facet.674: %DivAssignWith.type.453 = facet_value %Int64, (%custom_witness.72221e.2) [concrete] +// CHECK:STDOUT: %custom_witness.b90a73.2: = custom_witness (%Int64.Op.cc70d5.6), @DivAssignWith.1, @DivAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %DivAssignWith.facet.e51: %DivAssignWith.type.2a3 = facet_value %Int64, (%custom_witness.b90a73.2) [concrete] // CHECK:STDOUT: %Int64.Op.type.43d658.7: type = fn_type @Int64.Op.7 [concrete] // CHECK:STDOUT: %Int64.Op.cc70d5.7: %Int64.Op.type.43d658.7 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.2e8ae2.2: = custom_witness (%Int64.Op.cc70d5.7), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] -// CHECK:STDOUT: %ModAssignWith.facet.b08: %ModAssignWith.type.390 = facet_value %Int64, (%custom_witness.2e8ae2.2) [concrete] +// CHECK:STDOUT: %custom_witness.c151ba.2: = custom_witness (%Int64.Op.cc70d5.7), @ModAssignWith.1, @ModAssignWith.1(%Int32) [concrete] +// CHECK:STDOUT: %ModAssignWith.facet.5ae: %ModAssignWith.type.da6 = facet_value %Int64, (%custom_witness.c151ba.2) [concrete] // CHECK:STDOUT: %Inc.type: type = facet_type <@Inc> [concrete] // CHECK:STDOUT: %T.fed: %Inc.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.as_type.1d1: type = facet_access_type %T.fed [symbolic] @@ -1131,198 +1131,198 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %Int32.Op.type.43d658.18: type = fn_type @Int32.Op.18 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.18: %Int32.Op.type.43d658.18 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.b11: = custom_witness (%Int32.Op.cc70d5.18), @Inc [concrete] -// CHECK:STDOUT: %Inc.facet.0be: %Inc.type = facet_value %Int32, (%custom_witness.b11) [concrete] +// CHECK:STDOUT: %Inc.facet.c12: %Inc.type = facet_value %Int32, (%custom_witness.b11) [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.19: type = fn_type @Int32.Op.19 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.19: %Int32.Op.type.43d658.19 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.b00: = custom_witness (%Int32.Op.cc70d5.19), @Dec [concrete] -// CHECK:STDOUT: %Dec.facet.c89: %Dec.type = facet_value %Int32, (%custom_witness.b00) [concrete] -// CHECK:STDOUT: %facet_type.67d: type = facet_type <@Destroy & @Negate where %impl.elem0.d91 = %Int64> [concrete] +// CHECK:STDOUT: %Dec.facet.706: %Dec.type = facet_value %Int32, (%custom_witness.b00) [concrete] +// CHECK:STDOUT: %facet_type.286: type = facet_type <@Destroy & @Negate where %impl.elem0.d91 = %Int64> [concrete] // CHECK:STDOUT: %Int16.Op.type.43d658.18: type = fn_type @Int16.Op.18 [concrete] // CHECK:STDOUT: %Int16.Op.cc70d5.18: %Int16.Op.type.43d658.18 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.69a: = custom_witness (%Int64, %Int16.Op.cc70d5.18), @Negate [concrete] -// CHECK:STDOUT: %facet_value.5b4: %facet_type.67d = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.69a) [concrete] -// CHECK:STDOUT: %pattern_type.100: type = pattern_type %facet_type.67d [concrete] -// CHECK:STDOUT: %facet_type.016: type = facet_type <@Destroy & @Negate where %impl.elem0.d91 = %Int32> [concrete] +// CHECK:STDOUT: %custom_witness.ce3: = custom_witness (%Int64, %Int16.Op.cc70d5.18), @Negate [concrete] +// CHECK:STDOUT: %facet_value.15e: %facet_type.286 = facet_value %Int16, (%custom_witness.4e6cb0.1, %custom_witness.ce3) [concrete] +// CHECK:STDOUT: %pattern_type.fc5: type = pattern_type %facet_type.286 [concrete] +// CHECK:STDOUT: %facet_type.06f: type = facet_type <@Destroy & @Negate where %impl.elem0.d91 = %Int32> [concrete] // CHECK:STDOUT: %Int32.Op.type.43d658.20: type = fn_type @Int32.Op.20 [concrete] // CHECK:STDOUT: %Int32.Op.cc70d5.20: %Int32.Op.type.43d658.20 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b23: = custom_witness (%Int32, %Int32.Op.cc70d5.20), @Negate [concrete] -// CHECK:STDOUT: %facet_value.afe: %facet_type.016 = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.b23) [concrete] -// CHECK:STDOUT: %pattern_type.17e: type = pattern_type %facet_type.016 [concrete] -// CHECK:STDOUT: %complete_type.eb1: = complete_type_witness %AddWith.type.116 [concrete] -// CHECK:STDOUT: %AddWith.facet.b43: %AddWith.type.116 = facet_value %i16, (%custom_witness.91a) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.af0: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.b43) [concrete] -// CHECK:STDOUT: %.6ba: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.af0, %AddWith.facet.b43 [concrete] -// CHECK:STDOUT: %complete_type.99b: = complete_type_witness %SubWith.type.49a [concrete] -// CHECK:STDOUT: %SubWith.facet.428: %SubWith.type.49a = facet_value %i16, (%custom_witness.7ee) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.196: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.428) [concrete] -// CHECK:STDOUT: %.ee9: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.196, %SubWith.facet.428 [concrete] -// CHECK:STDOUT: %complete_type.255: = complete_type_witness %MulWith.type.779 [concrete] -// CHECK:STDOUT: %MulWith.facet.48c: %MulWith.type.779 = facet_value %i16, (%custom_witness.448) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.1d0: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.48c) [concrete] -// CHECK:STDOUT: %.03b: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.1d0, %MulWith.facet.48c [concrete] -// CHECK:STDOUT: %complete_type.c6d: = complete_type_witness %DivWith.type.35b [concrete] -// CHECK:STDOUT: %DivWith.facet.b79: %DivWith.type.35b = facet_value %i16, (%custom_witness.3be) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.b57: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.b79) [concrete] -// CHECK:STDOUT: %.c89: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.b57, %DivWith.facet.b79 [concrete] -// CHECK:STDOUT: %complete_type.55f: = complete_type_witness %ModWith.type.3ef [concrete] -// CHECK:STDOUT: %ModWith.facet.8a9: %ModWith.type.3ef = facet_value %i16, (%custom_witness.dcf) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.06b: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.8a9) [concrete] -// CHECK:STDOUT: %.d15: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.06b, %ModWith.facet.8a9 [concrete] +// CHECK:STDOUT: %custom_witness.79d: = custom_witness (%Int32, %Int32.Op.cc70d5.20), @Negate [concrete] +// CHECK:STDOUT: %facet_value.fd9: %facet_type.06f = facet_value %Int32, (%custom_witness.4e6cb0.2, %custom_witness.79d) [concrete] +// CHECK:STDOUT: %pattern_type.742: type = pattern_type %facet_type.06f [concrete] +// CHECK:STDOUT: %complete_type.5ae: = complete_type_witness %AddWith.type.f72 [concrete] +// CHECK:STDOUT: %AddWith.facet.a65: %AddWith.type.f72 = facet_value %i16, (%custom_witness.25d) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.d02: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.a65) [concrete] +// CHECK:STDOUT: %.107: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.d02, %AddWith.facet.a65 [concrete] +// CHECK:STDOUT: %complete_type.091: = complete_type_witness %SubWith.type.51c [concrete] +// CHECK:STDOUT: %SubWith.facet.d26: %SubWith.type.51c = facet_value %i16, (%custom_witness.a7e) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.d52: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.d26) [concrete] +// CHECK:STDOUT: %.1af: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.d52, %SubWith.facet.d26 [concrete] +// CHECK:STDOUT: %complete_type.ada: = complete_type_witness %MulWith.type.40b [concrete] +// CHECK:STDOUT: %MulWith.facet.1f7: %MulWith.type.40b = facet_value %i16, (%custom_witness.b37) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.6e6: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.1f7) [concrete] +// CHECK:STDOUT: %.a51: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.6e6, %MulWith.facet.1f7 [concrete] +// CHECK:STDOUT: %complete_type.aae: = complete_type_witness %DivWith.type.2b7 [concrete] +// CHECK:STDOUT: %DivWith.facet.ad7: %DivWith.type.2b7 = facet_value %i16, (%custom_witness.45b) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.c4c: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.ad7) [concrete] +// CHECK:STDOUT: %.955: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.c4c, %DivWith.facet.ad7 [concrete] +// CHECK:STDOUT: %complete_type.20b: = complete_type_witness %ModWith.type.06a [concrete] +// CHECK:STDOUT: %ModWith.facet.13b: %ModWith.type.06a = facet_value %i16, (%custom_witness.7ff) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.8a6: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.13b) [concrete] +// CHECK:STDOUT: %.9f3: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.8a6, %ModWith.facet.13b [concrete] // CHECK:STDOUT: %complete_type.def: = complete_type_witness %AddWith.type.a6e [concrete] -// CHECK:STDOUT: %AddWith.facet.ebf: %AddWith.type.a6e = facet_value %Int16, (%custom_witness.b98) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.e1f: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i16, %AddWith.facet.ebf) [concrete] -// CHECK:STDOUT: %.0c2: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.e1f, %AddWith.facet.ebf [concrete] +// CHECK:STDOUT: %AddWith.facet.9ad: %AddWith.type.a6e = facet_value %Int16, (%custom_witness.d49) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.9c2: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i16, %AddWith.facet.9ad) [concrete] +// CHECK:STDOUT: %.d11: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.9c2, %AddWith.facet.9ad [concrete] // CHECK:STDOUT: %complete_type.8c1: = complete_type_witness %SubWith.type.2f5 [concrete] -// CHECK:STDOUT: %SubWith.facet.925: %SubWith.type.2f5 = facet_value %Int16, (%custom_witness.cf8) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.f37: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%i16, %SubWith.facet.925) [concrete] -// CHECK:STDOUT: %.859: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.f37, %SubWith.facet.925 [concrete] +// CHECK:STDOUT: %SubWith.facet.7ab: %SubWith.type.2f5 = facet_value %Int16, (%custom_witness.5c6) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.574: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%i16, %SubWith.facet.7ab) [concrete] +// CHECK:STDOUT: %.dd2: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.574, %SubWith.facet.7ab [concrete] // CHECK:STDOUT: %complete_type.514: = complete_type_witness %MulWith.type.278 [concrete] -// CHECK:STDOUT: %MulWith.facet.ada: %MulWith.type.278 = facet_value %Int16, (%custom_witness.f7b) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.f13: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%i16, %MulWith.facet.ada) [concrete] -// CHECK:STDOUT: %.70e: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.f13, %MulWith.facet.ada [concrete] +// CHECK:STDOUT: %MulWith.facet.039: %MulWith.type.278 = facet_value %Int16, (%custom_witness.21d) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.62b: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%i16, %MulWith.facet.039) [concrete] +// CHECK:STDOUT: %.a8d: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.62b, %MulWith.facet.039 [concrete] // CHECK:STDOUT: %complete_type.51d: = complete_type_witness %DivWith.type.9b1 [concrete] -// CHECK:STDOUT: %DivWith.facet.cdf: %DivWith.type.9b1 = facet_value %Int16, (%custom_witness.8a1) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.9e2: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%i16, %DivWith.facet.cdf) [concrete] -// CHECK:STDOUT: %.b48: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.9e2, %DivWith.facet.cdf [concrete] +// CHECK:STDOUT: %DivWith.facet.f6b: %DivWith.type.9b1 = facet_value %Int16, (%custom_witness.6a8) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.d99: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%i16, %DivWith.facet.f6b) [concrete] +// CHECK:STDOUT: %.b64: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.d99, %DivWith.facet.f6b [concrete] // CHECK:STDOUT: %complete_type.155: = complete_type_witness %ModWith.type.59b [concrete] -// CHECK:STDOUT: %ModWith.facet.e53: %ModWith.type.59b = facet_value %Int16, (%custom_witness.ae3) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.2ad: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%i16, %ModWith.facet.e53) [concrete] -// CHECK:STDOUT: %.1c7: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.2ad, %ModWith.facet.e53 [concrete] -// CHECK:STDOUT: %complete_type.f05: = complete_type_witness %AddWith.type.c13 [concrete] -// CHECK:STDOUT: %AddWith.facet.53e: %AddWith.type.c13 = facet_value %Int16, (%custom_witness.05cc3d.1) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.2ef: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.53e) [concrete] -// CHECK:STDOUT: %.3e9: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.2ef, %AddWith.facet.53e [concrete] -// CHECK:STDOUT: %complete_type.60a: = complete_type_witness %SubWith.type.554 [concrete] -// CHECK:STDOUT: %SubWith.facet.3f55d: %SubWith.type.554 = facet_value %Int16, (%custom_witness.6b476a.1) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.3d1: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.3f55d) [concrete] -// CHECK:STDOUT: %.cb2: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.3d1, %SubWith.facet.3f55d [concrete] -// CHECK:STDOUT: %complete_type.e35: = complete_type_witness %MulWith.type.d6e [concrete] -// CHECK:STDOUT: %MulWith.facet.19f: %MulWith.type.d6e = facet_value %Int16, (%custom_witness.f03b6f.1) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.b6f: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.19f) [concrete] -// CHECK:STDOUT: %.90d: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.b6f, %MulWith.facet.19f [concrete] -// CHECK:STDOUT: %complete_type.fbd: = complete_type_witness %DivWith.type.0f5 [concrete] -// CHECK:STDOUT: %DivWith.facet.b85: %DivWith.type.0f5 = facet_value %Int16, (%custom_witness.d7810b.1) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.ba6: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.b85) [concrete] -// CHECK:STDOUT: %.574: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.ba6, %DivWith.facet.b85 [concrete] -// CHECK:STDOUT: %complete_type.965: = complete_type_witness %ModWith.type.e59 [concrete] -// CHECK:STDOUT: %ModWith.facet.b34: %ModWith.type.e59 = facet_value %Int16, (%custom_witness.370752.1) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.160: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.b34) [concrete] -// CHECK:STDOUT: %.99d: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.160, %ModWith.facet.b34 [concrete] -// CHECK:STDOUT: %AddWith.facet.0e1: %AddWith.type.116 = facet_value %Int32, (%custom_witness.95f) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.e9f: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.0e1) [concrete] -// CHECK:STDOUT: %.a45: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.e9f, %AddWith.facet.0e1 [concrete] -// CHECK:STDOUT: %SubWith.facet.b27: %SubWith.type.49a = facet_value %Int32, (%custom_witness.5b9) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.060: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.b27) [concrete] -// CHECK:STDOUT: %.a47: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.060, %SubWith.facet.b27 [concrete] -// CHECK:STDOUT: %MulWith.facet.731: %MulWith.type.779 = facet_value %Int32, (%custom_witness.de2) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.075: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.731) [concrete] -// CHECK:STDOUT: %.ebc: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.075, %MulWith.facet.731 [concrete] -// CHECK:STDOUT: %DivWith.facet.3df: %DivWith.type.35b = facet_value %Int32, (%custom_witness.29d) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.477: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.3df) [concrete] -// CHECK:STDOUT: %.2ec: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.477, %DivWith.facet.3df [concrete] -// CHECK:STDOUT: %ModWith.facet.4d5: %ModWith.type.3ef = facet_value %Int32, (%custom_witness.b06) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.5c7: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.4d5) [concrete] -// CHECK:STDOUT: %.083: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.5c7, %ModWith.facet.4d5 [concrete] -// CHECK:STDOUT: %AddWith.facet.2b9: %AddWith.type.c13 = facet_value %Int32, (%custom_witness.05cc3d.2) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.984: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.2b9) [concrete] -// CHECK:STDOUT: %.a90: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.984, %AddWith.facet.2b9 [concrete] -// CHECK:STDOUT: %SubWith.facet.c2c: %SubWith.type.554 = facet_value %Int32, (%custom_witness.6b476a.2) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.cf1: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.c2c) [concrete] -// CHECK:STDOUT: %.f60: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.cf1, %SubWith.facet.c2c [concrete] -// CHECK:STDOUT: %MulWith.facet.075: %MulWith.type.d6e = facet_value %Int32, (%custom_witness.f03b6f.2) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.b6d: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.075) [concrete] -// CHECK:STDOUT: %.3a9: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.b6d, %MulWith.facet.075 [concrete] -// CHECK:STDOUT: %DivWith.facet.64b: %DivWith.type.0f5 = facet_value %Int32, (%custom_witness.d7810b.2) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.1ff: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.64b) [concrete] -// CHECK:STDOUT: %.262: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.1ff, %DivWith.facet.64b [concrete] -// CHECK:STDOUT: %ModWith.facet.7ee: %ModWith.type.e59 = facet_value %Int32, (%custom_witness.370752.2) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.c6a: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.7ee) [concrete] -// CHECK:STDOUT: %.1754: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.c6a, %ModWith.facet.7ee [concrete] -// CHECK:STDOUT: %complete_type.905: = complete_type_witness %AddWith.type.b5c [concrete] -// CHECK:STDOUT: %AddWith.facet.d6a: %AddWith.type.b5c = facet_value %Int32, (%custom_witness.e14) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.815: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int64, %AddWith.facet.d6a) [concrete] -// CHECK:STDOUT: %.c1e: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.815, %AddWith.facet.d6a [concrete] -// CHECK:STDOUT: %complete_type.7e8: = complete_type_witness %SubWith.type.4c4 [concrete] -// CHECK:STDOUT: %SubWith.facet.bd2: %SubWith.type.4c4 = facet_value %Int32, (%custom_witness.d0e) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.6af: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int64, %SubWith.facet.bd2) [concrete] -// CHECK:STDOUT: %.b8f: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.6af, %SubWith.facet.bd2 [concrete] -// CHECK:STDOUT: %complete_type.3a2: = complete_type_witness %MulWith.type.6fc [concrete] -// CHECK:STDOUT: %MulWith.facet.806: %MulWith.type.6fc = facet_value %Int32, (%custom_witness.784) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.96e: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int64, %MulWith.facet.806) [concrete] -// CHECK:STDOUT: %.a56: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.96e, %MulWith.facet.806 [concrete] -// CHECK:STDOUT: %complete_type.504: = complete_type_witness %DivWith.type.46b [concrete] -// CHECK:STDOUT: %DivWith.facet.3c3: %DivWith.type.46b = facet_value %Int32, (%custom_witness.a1d) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.bde: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int64, %DivWith.facet.3c3) [concrete] -// CHECK:STDOUT: %.27f: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.bde, %DivWith.facet.3c3 [concrete] -// CHECK:STDOUT: %complete_type.52f: = complete_type_witness %ModWith.type.610 [concrete] -// CHECK:STDOUT: %ModWith.facet.e04: %ModWith.type.610 = facet_value %Int32, (%custom_witness.1f5) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.abf: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int64, %ModWith.facet.e04) [concrete] -// CHECK:STDOUT: %.22f: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.abf, %ModWith.facet.e04 [concrete] -// CHECK:STDOUT: %AddWith.facet.fd0: %AddWith.type.c13 = facet_value %Int64, (%custom_witness.8f1) [concrete] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type.3e0: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.fd0) [concrete] -// CHECK:STDOUT: %.800: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.3e0, %AddWith.facet.fd0 [concrete] -// CHECK:STDOUT: %SubWith.facet.09f: %SubWith.type.554 = facet_value %Int64, (%custom_witness.148) [concrete] -// CHECK:STDOUT: %SubWith.WithSelf.Op.type.4fe: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.09f) [concrete] -// CHECK:STDOUT: %.593: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.4fe, %SubWith.facet.09f [concrete] -// CHECK:STDOUT: %MulWith.facet.f0b: %MulWith.type.d6e = facet_value %Int64, (%custom_witness.d3e) [concrete] -// CHECK:STDOUT: %MulWith.WithSelf.Op.type.bf9: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.f0b) [concrete] -// CHECK:STDOUT: %.f35: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.bf9, %MulWith.facet.f0b [concrete] -// CHECK:STDOUT: %DivWith.facet.756: %DivWith.type.0f5 = facet_value %Int64, (%custom_witness.847) [concrete] -// CHECK:STDOUT: %DivWith.WithSelf.Op.type.4be: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.756) [concrete] -// CHECK:STDOUT: %.eae: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.4be, %DivWith.facet.756 [concrete] -// CHECK:STDOUT: %ModWith.facet.735: %ModWith.type.e59 = facet_value %Int64, (%custom_witness.4aa) [concrete] -// CHECK:STDOUT: %ModWith.WithSelf.Op.type.e0f: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.735) [concrete] -// CHECK:STDOUT: %.0ab: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.e0f, %ModWith.facet.735 [concrete] +// CHECK:STDOUT: %ModWith.facet.08e: %ModWith.type.59b = facet_value %Int16, (%custom_witness.cdb) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.2a7: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%i16, %ModWith.facet.08e) [concrete] +// CHECK:STDOUT: %.6bc: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.2a7, %ModWith.facet.08e [concrete] +// CHECK:STDOUT: %complete_type.a20: = complete_type_witness %AddWith.type.468 [concrete] +// CHECK:STDOUT: %AddWith.facet.7e1: %AddWith.type.468 = facet_value %Int16, (%custom_witness.d576a6.1) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.067b: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.7e1) [concrete] +// CHECK:STDOUT: %.1a1: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.067b, %AddWith.facet.7e1 [concrete] +// CHECK:STDOUT: %complete_type.08a: = complete_type_witness %SubWith.type.36c [concrete] +// CHECK:STDOUT: %SubWith.facet.81b: %SubWith.type.36c = facet_value %Int16, (%custom_witness.88a574.1) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.7f1: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.81b) [concrete] +// CHECK:STDOUT: %.35f: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.7f1, %SubWith.facet.81b [concrete] +// CHECK:STDOUT: %complete_type.d33: = complete_type_witness %MulWith.type.a1b [concrete] +// CHECK:STDOUT: %MulWith.facet.741: %MulWith.type.a1b = facet_value %Int16, (%custom_witness.29b64e.1) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.5d5: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.741) [concrete] +// CHECK:STDOUT: %.8fd: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.5d5, %MulWith.facet.741 [concrete] +// CHECK:STDOUT: %complete_type.8b9: = complete_type_witness %DivWith.type.5b3 [concrete] +// CHECK:STDOUT: %DivWith.facet.643: %DivWith.type.5b3 = facet_value %Int16, (%custom_witness.ed8572.1) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.4f2: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.643) [concrete] +// CHECK:STDOUT: %.23a: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.4f2, %DivWith.facet.643 [concrete] +// CHECK:STDOUT: %complete_type.76f: = complete_type_witness %ModWith.type.4ca [concrete] +// CHECK:STDOUT: %ModWith.facet.fe3: %ModWith.type.4ca = facet_value %Int16, (%custom_witness.775a7e.1) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.d57: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.fe3) [concrete] +// CHECK:STDOUT: %.fc5: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.d57, %ModWith.facet.fe3 [concrete] +// CHECK:STDOUT: %AddWith.facet.9fc: %AddWith.type.f72 = facet_value %Int32, (%custom_witness.6bd) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.d86: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int16, %AddWith.facet.9fc) [concrete] +// CHECK:STDOUT: %.742: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.d86, %AddWith.facet.9fc [concrete] +// CHECK:STDOUT: %SubWith.facet.38c: %SubWith.type.51c = facet_value %Int32, (%custom_witness.4a6) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.13b: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int16, %SubWith.facet.38c) [concrete] +// CHECK:STDOUT: %.286: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.13b, %SubWith.facet.38c [concrete] +// CHECK:STDOUT: %MulWith.facet.e5f: %MulWith.type.40b = facet_value %Int32, (%custom_witness.8eb7) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.072: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int16, %MulWith.facet.e5f) [concrete] +// CHECK:STDOUT: %.f85: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.072, %MulWith.facet.e5f [concrete] +// CHECK:STDOUT: %DivWith.facet.dee: %DivWith.type.2b7 = facet_value %Int32, (%custom_witness.7d5) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.1e1: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int16, %DivWith.facet.dee) [concrete] +// CHECK:STDOUT: %.278: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.1e1, %DivWith.facet.dee [concrete] +// CHECK:STDOUT: %ModWith.facet.9f3: %ModWith.type.06a = facet_value %Int32, (%custom_witness.5f4) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.156: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int16, %ModWith.facet.9f3) [concrete] +// CHECK:STDOUT: %.433: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.156, %ModWith.facet.9f3 [concrete] +// CHECK:STDOUT: %AddWith.facet.9fb: %AddWith.type.468 = facet_value %Int32, (%custom_witness.d576a6.2) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.8f0: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.9fb) [concrete] +// CHECK:STDOUT: %.bb9: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.8f0, %AddWith.facet.9fb [concrete] +// CHECK:STDOUT: %SubWith.facet.0fc: %SubWith.type.36c = facet_value %Int32, (%custom_witness.88a574.2) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.8e3: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.0fc) [concrete] +// CHECK:STDOUT: %.99d: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.8e3, %SubWith.facet.0fc [concrete] +// CHECK:STDOUT: %MulWith.facet.845: %MulWith.type.a1b = facet_value %Int32, (%custom_witness.29b64e.2) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.dc5: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.845) [concrete] +// CHECK:STDOUT: %.fbd: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.dc5, %MulWith.facet.845 [concrete] +// CHECK:STDOUT: %DivWith.facet.96a: %DivWith.type.5b3 = facet_value %Int32, (%custom_witness.ed8572.2) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.a2d: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.96a) [concrete] +// CHECK:STDOUT: %.f67: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.a2d, %DivWith.facet.96a [concrete] +// CHECK:STDOUT: %ModWith.facet.7c4: %ModWith.type.4ca = facet_value %Int32, (%custom_witness.775a7e.2) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.c92: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.7c4) [concrete] +// CHECK:STDOUT: %.df9: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.c92, %ModWith.facet.7c4 [concrete] +// CHECK:STDOUT: %complete_type.ef2: = complete_type_witness %AddWith.type.a00 [concrete] +// CHECK:STDOUT: %AddWith.facet.881: %AddWith.type.a00 = facet_value %Int32, (%custom_witness.956) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.b6d: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int64, %AddWith.facet.881) [concrete] +// CHECK:STDOUT: %.acd: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.b6d, %AddWith.facet.881 [concrete] +// CHECK:STDOUT: %complete_type.ac8: = complete_type_witness %SubWith.type.c91 [concrete] +// CHECK:STDOUT: %SubWith.facet.ac7: %SubWith.type.c91 = facet_value %Int32, (%custom_witness.a20) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.41c: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int64, %SubWith.facet.ac7) [concrete] +// CHECK:STDOUT: %.9a9: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.41c, %SubWith.facet.ac7 [concrete] +// CHECK:STDOUT: %complete_type.d1a: = complete_type_witness %MulWith.type.5ad [concrete] +// CHECK:STDOUT: %MulWith.facet.aee: %MulWith.type.5ad = facet_value %Int32, (%custom_witness.318) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.e87: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int64, %MulWith.facet.aee) [concrete] +// CHECK:STDOUT: %.ae6: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.e87, %MulWith.facet.aee [concrete] +// CHECK:STDOUT: %complete_type.2f1: = complete_type_witness %DivWith.type.6d6 [concrete] +// CHECK:STDOUT: %DivWith.facet.dcc: %DivWith.type.6d6 = facet_value %Int32, (%custom_witness.143) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.aca: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int64, %DivWith.facet.dcc) [concrete] +// CHECK:STDOUT: %.359: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.aca, %DivWith.facet.dcc [concrete] +// CHECK:STDOUT: %complete_type.da3: = complete_type_witness %ModWith.type.d62 [concrete] +// CHECK:STDOUT: %ModWith.facet.5fe: %ModWith.type.d62 = facet_value %Int32, (%custom_witness.af4) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.2ca: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int64, %ModWith.facet.5fe) [concrete] +// CHECK:STDOUT: %.241: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.2ca, %ModWith.facet.5fe [concrete] +// CHECK:STDOUT: %AddWith.facet.f65: %AddWith.type.468 = facet_value %Int64, (%custom_witness.ca2) [concrete] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type.f90: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%Int32, %AddWith.facet.f65) [concrete] +// CHECK:STDOUT: %.9c9: type = fn_type_with_self_type %AddWith.WithSelf.Op.type.f90, %AddWith.facet.f65 [concrete] +// CHECK:STDOUT: %SubWith.facet.7e1: %SubWith.type.36c = facet_value %Int64, (%custom_witness.274) [concrete] +// CHECK:STDOUT: %SubWith.WithSelf.Op.type.034: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(%Int32, %SubWith.facet.7e1) [concrete] +// CHECK:STDOUT: %.2b5: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.034, %SubWith.facet.7e1 [concrete] +// CHECK:STDOUT: %MulWith.facet.2fc: %MulWith.type.a1b = facet_value %Int64, (%custom_witness.286) [concrete] +// CHECK:STDOUT: %MulWith.WithSelf.Op.type.8a2: type = fn_type @MulWith.WithSelf.Op, @MulWith.WithSelf(%Int32, %MulWith.facet.2fc) [concrete] +// CHECK:STDOUT: %.3bd: type = fn_type_with_self_type %MulWith.WithSelf.Op.type.8a2, %MulWith.facet.2fc [concrete] +// CHECK:STDOUT: %DivWith.facet.aa2: %DivWith.type.5b3 = facet_value %Int64, (%custom_witness.159) [concrete] +// CHECK:STDOUT: %DivWith.WithSelf.Op.type.60b: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(%Int32, %DivWith.facet.aa2) [concrete] +// CHECK:STDOUT: %.b76: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.60b, %DivWith.facet.aa2 [concrete] +// CHECK:STDOUT: %ModWith.facet.39c: %ModWith.type.4ca = facet_value %Int64, (%custom_witness.2d7) [concrete] +// CHECK:STDOUT: %ModWith.WithSelf.Op.type.599: type = fn_type @ModWith.WithSelf.Op, @ModWith.WithSelf(%Int32, %ModWith.facet.39c) [concrete] +// CHECK:STDOUT: %.da3: type = fn_type_with_self_type %ModWith.WithSelf.Op.type.599, %ModWith.facet.39c [concrete] // CHECK:STDOUT: %complete_type.c3b: = complete_type_witness %AddAssignWith.type.5a5 [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.759: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i16, %AddAssignWith.facet.a2b) [concrete] -// CHECK:STDOUT: %.09f: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.759, %AddAssignWith.facet.a2b [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.ae1: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i16, %AddAssignWith.facet.7e5) [concrete] +// CHECK:STDOUT: %.47c: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.ae1, %AddAssignWith.facet.7e5 [concrete] // CHECK:STDOUT: %complete_type.289: = complete_type_witness %SubAssignWith.type.2da [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.203: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i16, %SubAssignWith.facet.8a1) [concrete] -// CHECK:STDOUT: %.5d8: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.203, %SubAssignWith.facet.8a1 [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.631: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i16, %SubAssignWith.facet.a58) [concrete] +// CHECK:STDOUT: %.34a: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.631, %SubAssignWith.facet.a58 [concrete] // CHECK:STDOUT: %complete_type.9b6: = complete_type_witness %MulAssignWith.type.a70 [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.7fd: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i16, %MulAssignWith.facet.eb1) [concrete] -// CHECK:STDOUT: %.ad1: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.7fd, %MulAssignWith.facet.eb1 [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.c14: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i16, %MulAssignWith.facet.ece) [concrete] +// CHECK:STDOUT: %.26d: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.c14, %MulAssignWith.facet.ece [concrete] // CHECK:STDOUT: %complete_type.41f: = complete_type_witness %DivAssignWith.type.7f8 [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.de3: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i16, %DivAssignWith.facet.3b7) [concrete] -// CHECK:STDOUT: %.583: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.de3, %DivAssignWith.facet.3b7 [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.10c: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i16, %DivAssignWith.facet.153) [concrete] +// CHECK:STDOUT: %.7b7: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.10c, %DivAssignWith.facet.153 [concrete] // CHECK:STDOUT: %complete_type.955: = complete_type_witness %ModAssignWith.type.eee [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.ae1: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i16, %ModAssignWith.facet.397) [concrete] -// CHECK:STDOUT: %.306: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.ae1, %ModAssignWith.facet.397 [concrete] -// CHECK:STDOUT: %complete_type.547: = complete_type_witness %AddAssignWith.type.22f [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.540: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.269) [concrete] -// CHECK:STDOUT: %.31d: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.540, %AddAssignWith.facet.269 [concrete] -// CHECK:STDOUT: %complete_type.d8e: = complete_type_witness %SubAssignWith.type.c0c [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.8d0: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.b55) [concrete] -// CHECK:STDOUT: %.4ce: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.8d0, %SubAssignWith.facet.b55 [concrete] -// CHECK:STDOUT: %complete_type.4e2: = complete_type_witness %MulAssignWith.type.f1b [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.d30: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.28c) [concrete] -// CHECK:STDOUT: %.e33: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.d30, %MulAssignWith.facet.28c [concrete] -// CHECK:STDOUT: %complete_type.463: = complete_type_witness %DivAssignWith.type.453 [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.18d: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.da6) [concrete] -// CHECK:STDOUT: %.833: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.18d, %DivAssignWith.facet.da6 [concrete] -// CHECK:STDOUT: %complete_type.e8b: = complete_type_witness %ModAssignWith.type.390 [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.924: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.1c5) [concrete] -// CHECK:STDOUT: %.f71: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.924, %ModAssignWith.facet.1c5 [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.c06: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.775) [concrete] -// CHECK:STDOUT: %.99b: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.c06, %AddAssignWith.facet.775 [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.802: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.e52) [concrete] -// CHECK:STDOUT: %.bbb: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.802, %SubAssignWith.facet.e52 [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.8f2: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.3f1) [concrete] -// CHECK:STDOUT: %.fc3: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.8f2, %MulAssignWith.facet.3f1 [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.7b9: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.674) [concrete] -// CHECK:STDOUT: %.b6d: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.7b9, %DivAssignWith.facet.674 [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.58d: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.b08) [concrete] -// CHECK:STDOUT: %.602: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.58d, %ModAssignWith.facet.b08 [concrete] -// CHECK:STDOUT: %Inc.WithSelf.Op.type.b98: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet.0be) [concrete] -// CHECK:STDOUT: %.cd1: type = fn_type_with_self_type %Inc.WithSelf.Op.type.b98, %Inc.facet.0be [concrete] -// CHECK:STDOUT: %Dec.WithSelf.Op.type.0bb: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet.c89) [concrete] -// CHECK:STDOUT: %.9b3: type = fn_type_with_self_type %Dec.WithSelf.Op.type.0bb, %Dec.facet.c89 [concrete] -// CHECK:STDOUT: %Negate.facet.acb: %Negate.type = facet_value %Int16, (%custom_witness.69a) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.07e: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.acb) [concrete] -// CHECK:STDOUT: %.10b: type = fn_type_with_self_type %Negate.WithSelf.Op.type.07e, %Negate.facet.acb [concrete] -// CHECK:STDOUT: %Negate.facet.f0b: %Negate.type = facet_value %Int32, (%custom_witness.b23) [concrete] -// CHECK:STDOUT: %Negate.WithSelf.Op.type.d4d: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.f0b) [concrete] -// CHECK:STDOUT: %.6b6: type = fn_type_with_self_type %Negate.WithSelf.Op.type.d4d, %Negate.facet.f0b [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.a71: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i16, %ModAssignWith.facet.b79) [concrete] +// CHECK:STDOUT: %.1c7: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.a71, %ModAssignWith.facet.b79 [concrete] +// CHECK:STDOUT: %complete_type.d78: = complete_type_witness %AddAssignWith.type.426 [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.49e: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.d81) [concrete] +// CHECK:STDOUT: %.03c: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.49e, %AddAssignWith.facet.d81 [concrete] +// CHECK:STDOUT: %complete_type.729: = complete_type_witness %SubAssignWith.type.9df [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.046: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.059) [concrete] +// CHECK:STDOUT: %.673: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.046, %SubAssignWith.facet.059 [concrete] +// CHECK:STDOUT: %complete_type.cd8: = complete_type_witness %MulAssignWith.type.073 [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.e8c: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.7a5) [concrete] +// CHECK:STDOUT: %.09b8: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.e8c, %MulAssignWith.facet.7a5 [concrete] +// CHECK:STDOUT: %complete_type.6cd: = complete_type_witness %DivAssignWith.type.2a3 [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.4f9: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.e46) [concrete] +// CHECK:STDOUT: %.bdb: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.4f9, %DivAssignWith.facet.e46 [concrete] +// CHECK:STDOUT: %complete_type.062: = complete_type_witness %ModAssignWith.type.da6 [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.95c: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.2ba) [concrete] +// CHECK:STDOUT: %.c5f: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.95c, %ModAssignWith.facet.2ba [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.6f4: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Int32, %AddAssignWith.facet.994) [concrete] +// CHECK:STDOUT: %.a64: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.6f4, %AddAssignWith.facet.994 [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.c8e: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Int32, %SubAssignWith.facet.cec) [concrete] +// CHECK:STDOUT: %.797: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.c8e, %SubAssignWith.facet.cec [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.f0f: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Int32, %MulAssignWith.facet.9d6) [concrete] +// CHECK:STDOUT: %.292: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.f0f, %MulAssignWith.facet.9d6 [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.adc: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Int32, %DivAssignWith.facet.e51) [concrete] +// CHECK:STDOUT: %.733: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.adc, %DivAssignWith.facet.e51 [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.c03: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Int32, %ModAssignWith.facet.5ae) [concrete] +// CHECK:STDOUT: %.98b: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.c03, %ModAssignWith.facet.5ae [concrete] +// CHECK:STDOUT: %Inc.WithSelf.Op.type.0e6: type = fn_type @Inc.WithSelf.Op, @Inc.WithSelf(%Inc.facet.c12) [concrete] +// CHECK:STDOUT: %.2b7: type = fn_type_with_self_type %Inc.WithSelf.Op.type.0e6, %Inc.facet.c12 [concrete] +// CHECK:STDOUT: %Dec.WithSelf.Op.type.fb8: type = fn_type @Dec.WithSelf.Op, @Dec.WithSelf(%Dec.facet.706) [concrete] +// CHECK:STDOUT: %.1dd: type = fn_type_with_self_type %Dec.WithSelf.Op.type.fb8, %Dec.facet.706 [concrete] +// CHECK:STDOUT: %Negate.facet.8ca: %Negate.type = facet_value %Int16, (%custom_witness.ce3) [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.916: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.8ca) [concrete] +// CHECK:STDOUT: %.aa8: type = fn_type_with_self_type %Negate.WithSelf.Op.type.916, %Negate.facet.8ca [concrete] +// CHECK:STDOUT: %Negate.facet.c5f: %Negate.type = facet_value %Int32, (%custom_witness.79d) [concrete] +// CHECK:STDOUT: %Negate.WithSelf.Op.type.7f7: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet.c5f) [concrete] +// CHECK:STDOUT: %.f52: type = fn_type_with_self_type %Negate.WithSelf.Op.type.7f7, %Negate.facet.c5f [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1377,9 +1377,9 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %assoc1: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.f48) = assoc_entity element1, imports.%Core.import_ref.935 [symbolic = %assoc1 (constants.%assoc1.bb6)] // CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126: = lookup_impl_witness %T.loc123_4.1, @AddWith.1, @AddWith.1(%U.as_type.loc123_36.1) [symbolic = %AddWith.lookup_impl_witness.loc126 (constants.%AddWith.lookup_impl_witness.211)] // CHECK:STDOUT: %AddWith.facet: @AddWith.loc124.%AddWith.type.loc123_36.1 (%AddWith.type.68f) = facet_value %T.as_type.loc124_29.1, (%AddWith.lookup_impl_witness.loc126) [symbolic = %AddWith.facet (constants.%AddWith.facet.57d)] -// CHECK:STDOUT: %AddWith.WithSelf.Op.type: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.loc123_36.1, %AddWith.facet) [symbolic = %AddWith.WithSelf.Op.type (constants.%AddWith.WithSelf.Op.type.b30a)] -// CHECK:STDOUT: %.loc126_5.4: type = fn_type_with_self_type %AddWith.WithSelf.Op.type, %AddWith.facet [symbolic = %.loc126_5.4 (constants.%.09b)] -// CHECK:STDOUT: %impl.elem1.loc126_5.2: @AddWith.loc124.%.loc126_5.4 (%.09b) = impl_witness_access %AddWith.lookup_impl_witness.loc126, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.4bc)] +// CHECK:STDOUT: %AddWith.WithSelf.Op.type: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%U.as_type.loc123_36.1, %AddWith.facet) [symbolic = %AddWith.WithSelf.Op.type (constants.%AddWith.WithSelf.Op.type.b30)] +// CHECK:STDOUT: %.loc126_5.4: type = fn_type_with_self_type %AddWith.WithSelf.Op.type, %AddWith.facet [symbolic = %.loc126_5.4 (constants.%.09b4)] +// CHECK:STDOUT: %impl.elem1.loc126_5.2: @AddWith.loc124.%.loc126_5.4 (%.09b4) = impl_witness_access %AddWith.lookup_impl_witness.loc126, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.4bc)] // CHECK:STDOUT: %specific_impl_fn.loc126_5.3: = specific_impl_function %impl.elem1.loc126_5.2, @AddWith.WithSelf.Op(%U.as_type.loc123_36.1, %AddWith.facet) [symbolic = %specific_impl_fn.loc126_5.3 (constants.%specific_impl_fn.31d)] // CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Result.loc121_9.1) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.12b49e.2)] // CHECK:STDOUT: %.loc126_5.5: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Result.loc121_9.1 [symbolic = %.loc126_5.5 (constants.%.9c3)] @@ -1394,7 +1394,7 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %AddWith.type.loc126: type = facet_type <@AddWith.1, @AddWith.1(constants.%U.as_type.0fd)> [symbolic = %AddWith.type.loc123_36.1 (constants.%AddWith.type.68f)] // CHECK:STDOUT: %.loc126_5.1: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.f48) = specific_constant imports.%Core.import_ref.010, @AddWith.WithSelf(constants.%U.as_type.0fd, constants.%Self.39b) [symbolic = %assoc1 (constants.%assoc1.bb6)] // CHECK:STDOUT: %Op.ref: @AddWith.loc124.%AddWith.assoc_type (%AddWith.assoc_type.f48) = name_ref Op, %.loc126_5.1 [symbolic = %assoc1 (constants.%assoc1.bb6)] -// CHECK:STDOUT: %impl.elem1.loc126_5.1: @AddWith.loc124.%.loc126_5.4 (%.09b) = impl_witness_access constants.%AddWith.lookup_impl_witness.211, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.4bc)] +// CHECK:STDOUT: %impl.elem1.loc126_5.1: @AddWith.loc124.%.loc126_5.4 (%.09b4) = impl_witness_access constants.%AddWith.lookup_impl_witness.211, element1 [symbolic = %impl.elem1.loc126_5.2 (constants.%impl.elem1.4bc)] // CHECK:STDOUT: %bound_method.loc126_5.1: = bound_method %x.ref, %impl.elem1.loc126_5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.1: = specific_impl_function %impl.elem1.loc126_5.1, @AddWith.WithSelf.Op(constants.%U.as_type.0fd, constants.%AddWith.facet.57d) [symbolic = %specific_impl_fn.loc126_5.3 (constants.%specific_impl_fn.31d)] // CHECK:STDOUT: %bound_method.loc126_5.2: = bound_method %x.ref, %specific_impl_fn.loc126_5.1 @@ -1925,213 +1925,213 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.a04 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.809, constants.%Destroy.facet.809, constants.%facet_value.31d) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.809 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.81a, constants.%Destroy.facet.81a, constants.%facet_value.b18) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.81a +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int16 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.116 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.aa6 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.cf1 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.a93 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.70cc -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.dda -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c76 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d17 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.9d9 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.f72 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.cef +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.f0e +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.de7 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.766 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.02d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2eb +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.394 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.33b // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.f01 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.31d -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.616 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.daf +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.b18 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.e7f +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%i16 // CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.0cb -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.eb1 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.83e -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.91a -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.b43 -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.af0 -// CHECK:STDOUT: %.loc126_5.4 => constants.%.6ba +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.5ae +// CHECK:STDOUT: %assoc1 => constants.%assoc1.a86 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.25d +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.a65 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.d02 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.107 // CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.b9c47d.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.b9c47d.1 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc126_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.809, constants.%Destroy.facet.809, constants.%facet_value.b12) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.809 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.81a, constants.%Destroy.facet.81a, constants.%facet_value.3e4) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.81a +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int16 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.49a -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.4d6 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.c3b -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.4fe -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.42f -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.445 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c71 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.72f -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.b83 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.51c +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.c1e +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.3cc +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.75e +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.dcb +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.5cb +// CHECK:STDOUT: %assoc0 => constants.%assoc0.381 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.fe2 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.76d // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.d9b -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.b12 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.ff0 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.872 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.3e4 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.85a +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%i16 // CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.0cb -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.99b -// CHECK:STDOUT: %assoc1 => constants.%assoc1.a3f -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.7ee -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.428 -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.196 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.ee9 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.091 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.acb +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.a7e +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.d26 +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.d52 +// CHECK:STDOUT: %.loc137_5.4 => constants.%.1af // CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.b9c47d.2 // CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.b9c47d.2 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc137_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.809, constants.%Destroy.facet.809, constants.%facet_value.0d3) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.809 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.81a, constants.%Destroy.facet.81a, constants.%facet_value.690) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.81a +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int16 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.779 -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.624 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.164 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.ec6 -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.49c -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.3a9 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.97a -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.588 -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.66a +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.40b +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.98f +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.1c9 +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.64c +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.85f +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.533 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.8f1 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.a93 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.cce // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.cc5 -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.0d3 -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.da6 -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.2c5 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.690 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.cd4 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%i16 // CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.0cb -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.255 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.a46 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.448 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.48c -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.1d0 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.03b +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.ada +// CHECK:STDOUT: %assoc1 => constants.%assoc1.bee +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.b37 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.1f7 +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.6e6 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.a51 // CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.b9c47d.3 // CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.b9c47d.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc148_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.809, constants.%Destroy.facet.809, constants.%facet_value.b04) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.809 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.81a, constants.%Destroy.facet.81a, constants.%facet_value.41e) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.81a +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int16 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.35b -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.b9b -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.7ba -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.7df -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.31a -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.6ae -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1bc -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.836 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.6cb +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.2b7 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.521 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.5ce +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.236 +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.2c8 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.f24 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e80 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.f18 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.45d // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.1b5 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.b04 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.ec4 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.715 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.41e +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.b0e +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%i16 // CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.0cb -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.c6d -// CHECK:STDOUT: %assoc1 => constants.%assoc1.5a7 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.3be -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.b79 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.b57 -// CHECK:STDOUT: %.loc159_5.4 => constants.%.c89 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.aae +// CHECK:STDOUT: %assoc1 => constants.%assoc1.113 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.45b +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.ad7 +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.c4c +// CHECK:STDOUT: %.loc159_5.4 => constants.%.955 // CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.b9c47d.4 // CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.b9c47d.4 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc159_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.809, constants.%Destroy.facet.809, constants.%facet_value.5eb) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.809 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.81a, constants.%Destroy.facet.81a, constants.%facet_value.5ea) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.81a +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int16 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.3ef -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ca3 -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.cfe -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.1cf -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.da7 -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.744 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.727 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.305 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.2b9 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.06a +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.eee +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.5ab +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.26b +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.c50 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.a11 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.418 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.c9e +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.044 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.9a8 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.5eb -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.a3b -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.c2d +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.5ea +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.752 +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%i16 // CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.0cb -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.55f -// CHECK:STDOUT: %assoc1 => constants.%assoc1.ba4 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.dcf -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.8a9 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.06b -// CHECK:STDOUT: %.loc170_5.4 => constants.%.d15 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.20b +// CHECK:STDOUT: %assoc1 => constants.%assoc1.67f +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.7ff +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.13b +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.8a6 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.9f3 // CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.b9c47d.5 // CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.b9c47d.5 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc170_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.809, constants.%Destroy.facet.929, constants.%facet_value.cb4) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.81a, constants.%Destroy.facet.929, constants.%facet_value.8d1) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.929 // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%i16 // CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.a6e @@ -2144,12 +2144,12 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.e89 // CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.4db // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.854 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.cb4 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.7902 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.5b5 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.8d1 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.267 +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2158,21 +2158,21 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.def // CHECK:STDOUT: %assoc1 => constants.%assoc1.864 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.b98 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.ebf -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.e1f -// CHECK:STDOUT: %.loc126_5.4 => constants.%.0c2 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.d49 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.9ad +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.9c2 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.d11 // CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int16.Op.cc70d5.3 // CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int16.Op.cc70d5.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc126_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.809, constants.%Destroy.facet.929, constants.%facet_value.812) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.81a, constants.%Destroy.facet.929, constants.%facet_value.f76) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.929 // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%i16 // CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.2f5 @@ -2185,12 +2185,12 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.7e3 // CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.aa0 // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.712 -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.812 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.f30 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.fbb +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.f76 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.246 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2199,21 +2199,21 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.8c1 // CHECK:STDOUT: %assoc1 => constants.%assoc1.6ca -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.cf8 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.925 -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.f37 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.859 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.5c6 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.7ab +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.574 +// CHECK:STDOUT: %.loc137_5.4 => constants.%.dd2 // CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int16.Op.cc70d5.4 // CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int16.Op.cc70d5.4 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc137_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.809, constants.%Destroy.facet.929, constants.%facet_value.c7b) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.81a, constants.%Destroy.facet.929, constants.%facet_value.a39) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.929 // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%i16 // CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.278 @@ -2226,12 +2226,12 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.fd5 // CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.004 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.e32 -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.c7b -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.cfd -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.f39 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.a39 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.9af +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2240,21 +2240,21 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.514 // CHECK:STDOUT: %assoc1 => constants.%assoc1.c99 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.f7b -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.ada -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.f13 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.70e +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.21d +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.039 +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.62b +// CHECK:STDOUT: %.loc148_5.4 => constants.%.a8d // CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int16.Op.cc70d5.5 // CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int16.Op.cc70d5.5 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc148_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.809, constants.%Destroy.facet.929, constants.%facet_value.291) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.81a, constants.%Destroy.facet.929, constants.%facet_value.0e0) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.929 // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%i16 // CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.9b1 @@ -2267,12 +2267,12 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.7f7 // CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.e0d // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.fd7 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.291 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.5f9 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.3fe +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.0e0 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.063 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2281,21 +2281,21 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.51d // CHECK:STDOUT: %assoc1 => constants.%assoc1.84d -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.8a1 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.cdf -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.9e2 -// CHECK:STDOUT: %.loc159_5.4 => constants.%.b48 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.6a8 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.f6b +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.d99 +// CHECK:STDOUT: %.loc159_5.4 => constants.%.b64 // CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int16.Op.cc70d5.6 // CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int16.Op.cc70d5.6 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc159_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.809, constants.%Destroy.facet.929, constants.%facet_value.076) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.81a, constants.%Destroy.facet.929, constants.%facet_value.be3) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.929 // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%i16 // CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.59b @@ -2308,12 +2308,12 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.cfe // CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.4d9 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int16 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.edf -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.076 -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.83e -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.004 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.3cb +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.be3 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.7ba +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.802 // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2322,1039 +2322,1039 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.2da // CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.155 // CHECK:STDOUT: %assoc1 => constants.%assoc1.a21 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.ae3 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.e53 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.2ad -// CHECK:STDOUT: %.loc170_5.4 => constants.%.1c7 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.cdb +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.08e +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.2a7 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.6bc // CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int16.Op.cc70d5.7 // CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int16.Op.cc70d5.7 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e9d -// CHECK:STDOUT: %.loc170_5.5 => constants.%.f30 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.ce6 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.b23 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.1 // CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int16.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.d12) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.b10) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.c13 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.f56 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.977 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.39f -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.70c2 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.f6f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.41e -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.883 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.2e9 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.468 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.ba9 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.347 +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.95c +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.9fd +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.e39 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f9d +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d10 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.3a6 // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.36e -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.d12 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.204 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.ca7 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.b10 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.10c +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.004 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.f05 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.519 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.05cc3d.1 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.53e -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.2ef -// CHECK:STDOUT: %.loc126_5.4 => constants.%.3e9 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.a20 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.32d +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.d576a6.1 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.7e1 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.067b +// CHECK:STDOUT: %.loc126_5.4 => constants.%.1a1 // CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int16.Op.cc70d5.8 // CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int16.Op.cc70d5.8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc126_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.4728) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.499) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.554 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.eb0 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.604 -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.872 -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.d34 -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.6db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.053 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.8be -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.7af +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.36c +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.2eb +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.f63 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.d22 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.531 +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.641 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.820 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.029 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.e1a // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.dfd -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.4728 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.b5c -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.53b +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.499 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.0bd5 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.004 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.60a -// CHECK:STDOUT: %assoc1 => constants.%assoc1.3e8 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.6b476a.1 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.3f55d -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.3d1 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.cb2 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.08a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.d34f +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.88a574.1 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.81b +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.7f1 +// CHECK:STDOUT: %.loc137_5.4 => constants.%.35f // CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int16.Op.cc70d5.9 // CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int16.Op.cc70d5.9 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc137_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.800) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.714) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.d6e -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.87a -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.485 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.e5c -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.963 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.e4f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.879 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.99b -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.a71 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.a1b +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.493 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.e2d +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.5d8 +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.cc2 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.534 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.266 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.11c +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.ef0 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.4d5 -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.800 -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.459 -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.dac +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.714 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.490 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.004 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.e35 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.aaa -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.f03b6f.1 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.19f -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.b6f -// CHECK:STDOUT: %.loc148_5.4 => constants.%.90d +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.d33 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.5d0 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.29b64e.1 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.741 +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.5d5 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.8fd // CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int16.Op.cc70d5.10 // CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int16.Op.cc70d5.10 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc148_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.763) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.961) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.0f5 -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.81b -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.ec5 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.a26 -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.0ba -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.205 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6dd -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.073 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.920 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.5b3 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.8bd +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.569 +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.621 +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.a51 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.19e +// CHECK:STDOUT: %assoc0 => constants.%assoc0.600 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.06e +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.363 // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.6bd -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.763 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.790c -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.882 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.961 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.6c2 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.004 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.fbd -// CHECK:STDOUT: %assoc1 => constants.%assoc1.87f -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.d7810b.1 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.b85 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.ba6 -// CHECK:STDOUT: %.loc159_5.4 => constants.%.574 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.8b9 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.006 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.ed8572.1 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.643 +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.4f2 +// CHECK:STDOUT: %.loc159_5.4 => constants.%.23a // CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int16.Op.cc70d5.11 // CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int16.Op.cc70d5.11 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc159_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.26e) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.fd8) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.e59 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.fed -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.6f8 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.9d2 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.0bc -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.e6b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bf2 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.ba6 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.1ad +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.4ca +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.7ef +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.b0b +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.38f +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.cd6 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.ce3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d3a +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.1a9 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.2b5 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.8ee -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.26e -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.239 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.f6f +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.fd8 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.218 +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.004 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.802 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.965 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.adf -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.370752.1 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.b34 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.160 -// CHECK:STDOUT: %.loc170_5.4 => constants.%.99d +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.76f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.e15 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.775a7e.1 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.fe3 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.d57 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.fc5 // CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int16.Op.cc70d5.12 // CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int16.Op.cc70d5.12 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc170_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2c3, constants.%Destroy.facet.809, constants.%facet_value.9e5) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.cff, constants.%Destroy.facet.81a, constants.%facet_value.355) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int16 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.116 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.aa6 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.cf1 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.a93 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.70cc -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.dda -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c76 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d17 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.9d9 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.f72 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.cef +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.f0e +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.de7 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.766 +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.02d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.2eb +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.394 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.33b // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.2f8 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.9e5 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.8af -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.871 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.355 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.4a5 +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.eb1 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.83e -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.95f -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.0e1 -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.e9f -// CHECK:STDOUT: %.loc126_5.4 => constants.%.a45 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.5ae +// CHECK:STDOUT: %assoc1 => constants.%assoc1.a86 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.6bd +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.9fc +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.d86 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.742 // CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int32.Op.cc70d5.2 // CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int32.Op.cc70d5.2 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc126_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2c3, constants.%Destroy.facet.809, constants.%facet_value.fa2) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.cff, constants.%Destroy.facet.81a, constants.%facet_value.903) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int16 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.49a -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.4d6 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.c3b -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.4fe -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.42f -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.445 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c71 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.72f -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.b83 +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.51c +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.c1e +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.3cc +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.75e +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.dcb +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.5cb +// CHECK:STDOUT: %assoc0 => constants.%assoc0.381 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.fe2 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.76d // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.e67 -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.fa2 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.f19 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.935 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.903 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.041 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.99b -// CHECK:STDOUT: %assoc1 => constants.%assoc1.a3f -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.5b9 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.b27 -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.060 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.a47 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.091 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.acb +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.4a6 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.38c +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.13b +// CHECK:STDOUT: %.loc137_5.4 => constants.%.286 // CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int32.Op.cc70d5.3 // CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int32.Op.cc70d5.3 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc137_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2c3, constants.%Destroy.facet.809, constants.%facet_value.727) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.cff, constants.%Destroy.facet.81a, constants.%facet_value.22a) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int16 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.779 -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.624 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.164 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.ec6 -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.49c -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.3a9 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.97a -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.588 -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.66a +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.40b +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.98f +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.1c9 +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.64c +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.85f +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.533 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.8f1 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.a93 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.cce // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.4ee -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.727 -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.5fc -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.e67 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.22a +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.53f +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.255 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.a46 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.de2 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.731 -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.075 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.ebc +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.ada +// CHECK:STDOUT: %assoc1 => constants.%assoc1.bee +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.8eb7 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.e5f +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.072 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.f85 // CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int32.Op.cc70d5.4 // CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int32.Op.cc70d5.4 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc148_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2c3, constants.%Destroy.facet.809, constants.%facet_value.62c) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.cff, constants.%Destroy.facet.81a, constants.%facet_value.b06) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int16 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.35b -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.b9b -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.7ba -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.7df -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.31a -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.6ae -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1bc -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.836 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.6cb +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.2b7 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.521 +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.5ce +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.236 +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.2c8 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.f24 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.e80 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.f18 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.45d // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.f88 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.62c -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.871 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.576 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.b06 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.240 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.c6d -// CHECK:STDOUT: %assoc1 => constants.%assoc1.5a7 -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.29d -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.3df -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.477 -// CHECK:STDOUT: %.loc159_5.4 => constants.%.2ec +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.aae +// CHECK:STDOUT: %assoc1 => constants.%assoc1.113 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.7d5 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.dee +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.1e1 +// CHECK:STDOUT: %.loc159_5.4 => constants.%.278 // CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int32.Op.cc70d5.5 // CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int32.Op.cc70d5.5 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc159_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2c3, constants.%Destroy.facet.809, constants.%facet_value.c1a) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.809 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.cff, constants.%Destroy.facet.81a, constants.%facet_value.0f2) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.81a // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int16 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.3ef -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ca3 -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.cfe -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.1cf -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.da7 -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.744 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.727 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.305 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.2b9 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.06a +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.eee +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.5ab +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.26b +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.c50 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.a11 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.418 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.c9e +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.044 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.994 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.c1a -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.269 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.745 +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.0f2 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.dbb +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.55f -// CHECK:STDOUT: %assoc1 => constants.%assoc1.ba4 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.b06 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.4d5 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.5c7 -// CHECK:STDOUT: %.loc170_5.4 => constants.%.083 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.20b +// CHECK:STDOUT: %assoc1 => constants.%assoc1.67f +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.5f4 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.9f3 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.156 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.433 // CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int32.Op.cc70d5.6 // CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int32.Op.cc70d5.6 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc170_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.bbe) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.52a) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.c13 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.f56 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.977 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.39f -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.70c2 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.f6f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.41e -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.883 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.2e9 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.468 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.ba9 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.347 +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.95c +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.9fd +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.e39 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f9d +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d10 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.3a6 // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.36e -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.bbe -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.204 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.ca7 +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.52a +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.10c +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.f05 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.519 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.05cc3d.2 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.2b9 -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.984 -// CHECK:STDOUT: %.loc126_5.4 => constants.%.a90 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.a20 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.32d +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.d576a6.2 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.9fb +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.8f0 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.bb9 // CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Int32.Op.cc70d5.7 // CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Int32.Op.cc70d5.7 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc126_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc126_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.d8c) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.fdc) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.554 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.eb0 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.604 -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.872 -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.d34 -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.6db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.053 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.8be -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.7af +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.36c +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.2eb +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.f63 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.d22 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.531 +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.641 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.820 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.029 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.e1a // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.dfd -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.d8c -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.b5c -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.53b +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.fdc +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.0bd5 +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.60a -// CHECK:STDOUT: %assoc1 => constants.%assoc1.3e8 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.6b476a.2 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.c2c -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.cf1 -// CHECK:STDOUT: %.loc137_5.4 => constants.%.f60 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.08a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.d34f +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.88a574.2 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.0fc +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.8e3 +// CHECK:STDOUT: %.loc137_5.4 => constants.%.99d // CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Int32.Op.cc70d5.8 // CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Int32.Op.cc70d5.8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc137_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc137_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.11a) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.561) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.d6e -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.87a -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.485 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.e5c -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.963 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.e4f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.879 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.99b -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.a71 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.a1b +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.493 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.e2d +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.5d8 +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.cc2 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.534 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.266 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.11c +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.ef0 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.4d5 -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.11a -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.459 -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.dac +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.561 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.490 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.e35 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.aaa -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.f03b6f.2 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.075 -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.b6d -// CHECK:STDOUT: %.loc148_5.4 => constants.%.3a9 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.d33 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.5d0 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.29b64e.2 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.845 +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.dc5 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.fbd // CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Int32.Op.cc70d5.9 // CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Int32.Op.cc70d5.9 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc148_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc148_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.fcc) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.9c5) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.0f5 -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.81b -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.ec5 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.a26 -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.0ba -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.205 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6dd -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.073 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.920 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.5b3 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.8bd +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.569 +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.621 +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.a51 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.19e +// CHECK:STDOUT: %assoc0 => constants.%assoc0.600 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.06e +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.363 // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.6bd -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.fcc -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.790c -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.882 +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.9c5 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.6c2 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.fbd -// CHECK:STDOUT: %assoc1 => constants.%assoc1.87f -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.d7810b.2 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.64b -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.1ff -// CHECK:STDOUT: %.loc159_5.4 => constants.%.262 +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.8b9 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.006 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.ed8572.2 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.96a +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.a2d +// CHECK:STDOUT: %.loc159_5.4 => constants.%.f67 // CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Int32.Op.cc70d5.10 // CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Int32.Op.cc70d5.10 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc159_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc159_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.2c3, constants.%Destroy.facet.2c3, constants.%facet_value.c5d) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.2c3 -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.cff, constants.%Destroy.facet.cff, constants.%facet_value.06b) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.cff +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.e59 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.fed -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.6f8 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.9d2 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.0bc -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.e6b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bf2 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.ba6 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.1ad +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.4ca +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.7ef +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.b0b +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.38f +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.cd6 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.ce3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d3a +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.1a9 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.2b5 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.8ee -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.c5d -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.239 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.f6f +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.06b +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.218 +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.965 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.adf -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.370752.2 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.7ee -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.c6a -// CHECK:STDOUT: %.loc170_5.4 => constants.%.1754 +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.76f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.e15 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.775a7e.2 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.7c4 +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.c92 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.df9 // CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Int32.Op.cc70d5.11 // CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Int32.Op.cc70d5.11 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc170_5.5 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc170_5.5 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.44d, constants.%Destroy.facet.44d, constants.%facet_value.512) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.44d +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.787, constants.%Destroy.facet.787, constants.%facet_value.4d8) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.787 // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int64 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.b5c -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.b51 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.b56 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.245 -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.f5c -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.ea8 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c63 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.71c -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.cdf +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.a00 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.328 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.643 +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.3d6 +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.37c +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.8b7 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d15 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.017 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.c37 // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.b34 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.512 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.1c9 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.8fd +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.4d8 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.826 +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.41c +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.7b1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.905 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.69c -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.e14 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.d6a -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.815 -// CHECK:STDOUT: %.loc126_5.4 => constants.%.c1e +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.ef2 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.5d1 +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.956 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.881 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.b6d +// CHECK:STDOUT: %.loc126_5.4 => constants.%.acd // CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.b9c47d.6 // CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.b9c47d.6 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc126_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc126_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.44d, constants.%Destroy.facet.44d, constants.%facet_value.0f3) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.44d +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.787, constants.%Destroy.facet.787, constants.%facet_value.9e5) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.787 // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int64 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.4c4 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.8dc -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.504 -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.8ff -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.e9c -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.25c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.2a2 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.960 -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.8ab +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.c91 +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.45b +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.32f +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.6c6 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.d56 +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.b5d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a4a +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.919 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.634 // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.b2b -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.0f3 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.e40 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.c72 +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.9e5 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.9ae +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.41c +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.7b1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.7e8 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.4e8 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.d0e -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.bd2 -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.6af -// CHECK:STDOUT: %.loc137_5.4 => constants.%.b8f +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.ac8 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.197 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.a20 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.ac7 +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.41c +// CHECK:STDOUT: %.loc137_5.4 => constants.%.9a9 // CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.b9c47d.7 // CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.b9c47d.7 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc137_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc137_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.44d, constants.%Destroy.facet.44d, constants.%facet_value.cda) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.44d +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.787, constants.%Destroy.facet.787, constants.%facet_value.582) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.787 // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int64 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.6fc -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.4f0 -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.bc5 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.609 -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.ec4 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.23b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5d0 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.3f1 -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.a20 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.5ad +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.cbc +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.e7c +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.786 +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.a8f +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.c04 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.68c +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.966 +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.7e2 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.b1b -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.cda -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.c0b -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.c0f +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.582 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.251 +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.41c +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.7b1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.3a2 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.78a -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.784 -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.806 -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.96e -// CHECK:STDOUT: %.loc148_5.4 => constants.%.a56 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.d1a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.db7 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.318 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.aee +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.e87 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.ae6 // CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.b9c47d.8 // CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.b9c47d.8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc148_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc148_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.44d, constants.%Destroy.facet.44d, constants.%facet_value.862) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.44d +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.787, constants.%Destroy.facet.787, constants.%facet_value.6ba) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.787 // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int64 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.46b -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.d54 -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.987 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.d68 -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.fad -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.d66 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d4a -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.d5e -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.cba +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.6d6 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.c6f +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.b9d +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.12e +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.9e3 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.946 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.c8e +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.358 +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.113 // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.0c6 -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.862 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.4e3 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.75d +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.6ba +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.348 +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.41c +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.7b1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.504 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.e3e -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.a1d -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.3c3 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.bde -// CHECK:STDOUT: %.loc159_5.4 => constants.%.27f +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.2f1 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.156 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.143 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.dcc +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.aca +// CHECK:STDOUT: %.loc159_5.4 => constants.%.359 // CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.b9c47d.9 // CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.b9c47d.9 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc159_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc159_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.44d, constants.%Destroy.facet.44d, constants.%facet_value.3fc) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.44d +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.787, constants.%Destroy.facet.787, constants.%facet_value.6cd) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.787 // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int64 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.610 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.ad6 -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.eba -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.1c0 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.0bf -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.08d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.558 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.d93 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.036 +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.d62 +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.0d9 +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.8a7 +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.3e7 +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.c68 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.cdd +// CHECK:STDOUT: %assoc0 => constants.%assoc0.cb9 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.112 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.079 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.892 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.3fc -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.a7b8 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.a6f +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.6cd +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.1af +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.41c +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.7b1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.52f -// CHECK:STDOUT: %assoc1 => constants.%assoc1.ad0 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.1f5 -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.e04 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.abf -// CHECK:STDOUT: %.loc170_5.4 => constants.%.22f +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.da3 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.d34e +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.af4 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.5fe +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.2ca +// CHECK:STDOUT: %.loc170_5.4 => constants.%.241 // CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.b9c47d.10 // CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.b9c47d.10 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc170_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc170_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.44d, constants.%Destroy.facet.2c3, constants.%facet_value.7c6) { -// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @AddWith.loc124(constants.%Destroy.facet.787, constants.%Destroy.facet.cff, constants.%facet_value.c06) { +// CHECK:STDOUT: %Result.loc121_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc122_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc123_36.1 => constants.%Int32 -// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.c13 -// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.f56 -// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.977 -// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.39f -// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.70c2 -// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.f6f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.41e -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.883 -// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.2e9 +// CHECK:STDOUT: %AddWith.type.loc123_36.1 => constants.%AddWith.type.468 +// CHECK:STDOUT: %facet_type.loc123_20 => constants.%facet_type.ba9 +// CHECK:STDOUT: %.Self.loc123_38.1 => constants.%.Self.347 +// CHECK:STDOUT: %require_complete.loc123 => constants.%complete_type.95c +// CHECK:STDOUT: %.Self.as_type.loc123_44.1 => constants.%.Self.as_type.9fd +// CHECK:STDOUT: %AddWith.assoc_type => constants.%AddWith.assoc_type.e39 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f9d +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc123 => constants.%AddWith.lookup_impl_witness.d10 +// CHECK:STDOUT: %impl.elem0.loc123_44.1 => constants.%impl.elem0.3a6 // CHECK:STDOUT: %Result.as_type.loc123_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.167 -// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.7c6 -// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.109 -// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc123_38 => constants.%facet_type.5ef +// CHECK:STDOUT: %T.loc123_4.1 => constants.%facet_value.c06 +// CHECK:STDOUT: %pattern_type.loc123 => constants.%pattern_type.80a +// CHECK:STDOUT: %pattern_type.loc124_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc124_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc124_27 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc124_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc124_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc124_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.f05 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.519 -// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.8f1 -// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.fd0 -// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.3e0 -// CHECK:STDOUT: %.loc126_5.4 => constants.%.800 +// CHECK:STDOUT: %require_complete.loc126 => constants.%complete_type.a20 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.32d +// CHECK:STDOUT: %AddWith.lookup_impl_witness.loc126 => constants.%custom_witness.ca2 +// CHECK:STDOUT: %AddWith.facet => constants.%AddWith.facet.f65 +// CHECK:STDOUT: %AddWith.WithSelf.Op.type => constants.%AddWith.WithSelf.Op.type.f90 +// CHECK:STDOUT: %.loc126_5.4 => constants.%.9c9 // CHECK:STDOUT: %impl.elem1.loc126_5.2 => constants.%Op.b9c47d.11 // CHECK:STDOUT: %specific_impl_fn.loc126_5.3 => constants.%Op.b9c47d.11 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc126_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc126_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc126_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc126_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.44d, constants.%Destroy.facet.2c3, constants.%facet_value.4720) { -// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @SubWith.loc135(constants.%Destroy.facet.787, constants.%Destroy.facet.cff, constants.%facet_value.106) { +// CHECK:STDOUT: %Result.loc132_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc133_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc134_36.1 => constants.%Int32 -// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.554 -// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.eb0 -// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.604 -// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.872 -// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.d34 -// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.6db -// CHECK:STDOUT: %assoc0 => constants.%assoc0.053 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.8be -// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.7af +// CHECK:STDOUT: %SubWith.type.loc134_36.1 => constants.%SubWith.type.36c +// CHECK:STDOUT: %facet_type.loc134_20 => constants.%facet_type.2eb +// CHECK:STDOUT: %.Self.loc134_38.1 => constants.%.Self.f63 +// CHECK:STDOUT: %require_complete.loc134 => constants.%complete_type.d22 +// CHECK:STDOUT: %.Self.as_type.loc134_44.1 => constants.%.Self.as_type.531 +// CHECK:STDOUT: %SubWith.assoc_type => constants.%SubWith.assoc_type.641 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.820 +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc134 => constants.%SubWith.lookup_impl_witness.029 +// CHECK:STDOUT: %impl.elem0.loc134_44.1 => constants.%impl.elem0.e1a // CHECK:STDOUT: %Result.as_type.loc134_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.39e -// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.4720 -// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.a19 -// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc134_38 => constants.%facet_type.77f +// CHECK:STDOUT: %T.loc134_4.1 => constants.%facet_value.106 +// CHECK:STDOUT: %pattern_type.loc134 => constants.%pattern_type.86a +// CHECK:STDOUT: %pattern_type.loc135_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc135_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc135_27 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc135_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc135_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc135_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.60a -// CHECK:STDOUT: %assoc1 => constants.%assoc1.3e8 -// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.148 -// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.09f -// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.4fe -// CHECK:STDOUT: %.loc137_5.4 => constants.%.593 +// CHECK:STDOUT: %require_complete.loc137 => constants.%complete_type.08a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.d34f +// CHECK:STDOUT: %SubWith.lookup_impl_witness.loc137 => constants.%custom_witness.274 +// CHECK:STDOUT: %SubWith.facet => constants.%SubWith.facet.7e1 +// CHECK:STDOUT: %SubWith.WithSelf.Op.type => constants.%SubWith.WithSelf.Op.type.034 +// CHECK:STDOUT: %.loc137_5.4 => constants.%.2b5 // CHECK:STDOUT: %impl.elem1.loc137_5.2 => constants.%Op.b9c47d.12 // CHECK:STDOUT: %specific_impl_fn.loc137_5.3 => constants.%Op.b9c47d.12 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc137_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc137_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc137_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc137_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.44d, constants.%Destroy.facet.2c3, constants.%facet_value.ebb) { -// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @MulWith.loc146(constants.%Destroy.facet.787, constants.%Destroy.facet.cff, constants.%facet_value.f97) { +// CHECK:STDOUT: %Result.loc143_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc144_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc145_36.1 => constants.%Int32 -// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.d6e -// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.87a -// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.485 -// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.e5c -// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.963 -// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.e4f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.879 -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.99b -// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.a71 +// CHECK:STDOUT: %MulWith.type.loc145_36.1 => constants.%MulWith.type.a1b +// CHECK:STDOUT: %facet_type.loc145_20 => constants.%facet_type.493 +// CHECK:STDOUT: %.Self.loc145_38.1 => constants.%.Self.e2d +// CHECK:STDOUT: %require_complete.loc145 => constants.%complete_type.5d8 +// CHECK:STDOUT: %.Self.as_type.loc145_44.1 => constants.%.Self.as_type.cc2 +// CHECK:STDOUT: %MulWith.assoc_type => constants.%MulWith.assoc_type.534 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.266 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc145 => constants.%MulWith.lookup_impl_witness.11c +// CHECK:STDOUT: %impl.elem0.loc145_44.1 => constants.%impl.elem0.ef0 // CHECK:STDOUT: %Result.as_type.loc145_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.7cf -// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.ebb -// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.2b4 -// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc145_38 => constants.%facet_type.751 +// CHECK:STDOUT: %T.loc145_4.1 => constants.%facet_value.f97 +// CHECK:STDOUT: %pattern_type.loc145 => constants.%pattern_type.a3e +// CHECK:STDOUT: %pattern_type.loc146_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc146_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc146_27 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc146_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc146_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc146_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.e35 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.aaa -// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.d3e -// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.f0b -// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.bf9 -// CHECK:STDOUT: %.loc148_5.4 => constants.%.f35 +// CHECK:STDOUT: %require_complete.loc148 => constants.%complete_type.d33 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.5d0 +// CHECK:STDOUT: %MulWith.lookup_impl_witness.loc148 => constants.%custom_witness.286 +// CHECK:STDOUT: %MulWith.facet => constants.%MulWith.facet.2fc +// CHECK:STDOUT: %MulWith.WithSelf.Op.type => constants.%MulWith.WithSelf.Op.type.8a2 +// CHECK:STDOUT: %.loc148_5.4 => constants.%.3bd // CHECK:STDOUT: %impl.elem1.loc148_5.2 => constants.%Op.b9c47d.13 // CHECK:STDOUT: %specific_impl_fn.loc148_5.3 => constants.%Op.b9c47d.13 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc148_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc148_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc148_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc148_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.44d, constants.%Destroy.facet.2c3, constants.%facet_value.075) { -// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @DivWith.loc157(constants.%Destroy.facet.787, constants.%Destroy.facet.cff, constants.%facet_value.b56) { +// CHECK:STDOUT: %Result.loc154_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc155_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc156_36.1 => constants.%Int32 -// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.0f5 -// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.81b -// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.ec5 -// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.a26 -// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.0ba -// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.205 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6dd -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.073 -// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.920 +// CHECK:STDOUT: %DivWith.type.loc156_36.1 => constants.%DivWith.type.5b3 +// CHECK:STDOUT: %facet_type.loc156_20 => constants.%facet_type.8bd +// CHECK:STDOUT: %.Self.loc156_38.1 => constants.%.Self.569 +// CHECK:STDOUT: %require_complete.loc156 => constants.%complete_type.621 +// CHECK:STDOUT: %.Self.as_type.loc156_44.1 => constants.%.Self.as_type.a51 +// CHECK:STDOUT: %DivWith.assoc_type => constants.%DivWith.assoc_type.19e +// CHECK:STDOUT: %assoc0 => constants.%assoc0.600 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc156 => constants.%DivWith.lookup_impl_witness.06e +// CHECK:STDOUT: %impl.elem0.loc156_44.1 => constants.%impl.elem0.363 // CHECK:STDOUT: %Result.as_type.loc156_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.e1a -// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.075 -// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.d89 -// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc156_38 => constants.%facet_type.86b +// CHECK:STDOUT: %T.loc156_4.1 => constants.%facet_value.b56 +// CHECK:STDOUT: %pattern_type.loc156 => constants.%pattern_type.b0b +// CHECK:STDOUT: %pattern_type.loc157_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc157_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc157_27 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc157_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc157_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc157_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.fbd -// CHECK:STDOUT: %assoc1 => constants.%assoc1.87f -// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.847 -// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.756 -// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.4be -// CHECK:STDOUT: %.loc159_5.4 => constants.%.eae +// CHECK:STDOUT: %require_complete.loc159 => constants.%complete_type.8b9 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.006 +// CHECK:STDOUT: %DivWith.lookup_impl_witness.loc159 => constants.%custom_witness.159 +// CHECK:STDOUT: %DivWith.facet => constants.%DivWith.facet.aa2 +// CHECK:STDOUT: %DivWith.WithSelf.Op.type => constants.%DivWith.WithSelf.Op.type.60b +// CHECK:STDOUT: %.loc159_5.4 => constants.%.b76 // CHECK:STDOUT: %impl.elem1.loc159_5.2 => constants.%Op.b9c47d.14 // CHECK:STDOUT: %specific_impl_fn.loc159_5.3 => constants.%Op.b9c47d.14 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc159_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc159_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc159_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc159_5.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.44d, constants.%Destroy.facet.2c3, constants.%facet_value.4e4) { -// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.44d -// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @ModWith.loc168(constants.%Destroy.facet.787, constants.%Destroy.facet.cff, constants.%facet_value.800) { +// CHECK:STDOUT: %Result.loc165_9.1 => constants.%Destroy.facet.787 +// CHECK:STDOUT: %U.loc166_4.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %U.as_type.loc167_36.1 => constants.%Int32 -// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.e59 -// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.fed -// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.6f8 -// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.9d2 -// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.0bc -// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.e6b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bf2 -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.ba6 -// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.1ad +// CHECK:STDOUT: %ModWith.type.loc167_36.1 => constants.%ModWith.type.4ca +// CHECK:STDOUT: %facet_type.loc167_20 => constants.%facet_type.7ef +// CHECK:STDOUT: %.Self.loc167_38.1 => constants.%.Self.b0b +// CHECK:STDOUT: %require_complete.loc167 => constants.%complete_type.38f +// CHECK:STDOUT: %.Self.as_type.loc167_44.1 => constants.%.Self.as_type.cd6 +// CHECK:STDOUT: %ModWith.assoc_type => constants.%ModWith.assoc_type.ce3 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d3a +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc167 => constants.%ModWith.lookup_impl_witness.1a9 +// CHECK:STDOUT: %impl.elem0.loc167_44.1 => constants.%impl.elem0.2b5 // CHECK:STDOUT: %Result.as_type.loc167_54.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.349 -// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.4e4 -// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.a62 -// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type.loc167_38 => constants.%facet_type.713 +// CHECK:STDOUT: %T.loc167_4.1 => constants.%facet_value.800 +// CHECK:STDOUT: %pattern_type.loc167 => constants.%pattern_type.c06 +// CHECK:STDOUT: %pattern_type.loc168_16 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc168_29.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc168_27 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc168_33 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc168_16 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_27 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc168_33 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.965 -// CHECK:STDOUT: %assoc1 => constants.%assoc1.adf -// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.4aa -// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.735 -// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.e0f -// CHECK:STDOUT: %.loc170_5.4 => constants.%.0ab +// CHECK:STDOUT: %require_complete.loc170 => constants.%complete_type.76f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.e15 +// CHECK:STDOUT: %ModWith.lookup_impl_witness.loc170 => constants.%custom_witness.2d7 +// CHECK:STDOUT: %ModWith.facet => constants.%ModWith.facet.39c +// CHECK:STDOUT: %ModWith.WithSelf.Op.type => constants.%ModWith.WithSelf.Op.type.599 +// CHECK:STDOUT: %.loc170_5.4 => constants.%.da3 // CHECK:STDOUT: %impl.elem1.loc170_5.2 => constants.%Op.b9c47d.15 // CHECK:STDOUT: %specific_impl_fn.loc170_5.3 => constants.%Op.b9c47d.15 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc170_5.5 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc170_5.5 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc170_5.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc170_5.4 => constants.%Int64.Op.cc70d5.1 @@ -3410,13 +3410,13 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.51d1c4.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%i16, constants.%AddAssignWith.facet.a2b) { +// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%i16, constants.%AddAssignWith.facet.7e5) { // CHECK:STDOUT: %U.loc225_19.1 => constants.%i16 // CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.5a5 -// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.a2b +// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.7e5 // CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.307 // CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -3425,20 +3425,20 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.c3b // CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.12d // CHECK:STDOUT: %assoc0 => constants.%assoc0.6ce -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.759 -// CHECK:STDOUT: %.loc227_5.2 => constants.%.09f +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.ae1 +// CHECK:STDOUT: %.loc227_5.2 => constants.%.47c // CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.dd4 // CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int16.Op.cc70d5.13 // CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int16.Op.cc70d5.13 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%i16, constants.%SubAssignWith.facet.8a1) { +// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%i16, constants.%SubAssignWith.facet.a58) { // CHECK:STDOUT: %U.loc231_19.1 => constants.%i16 // CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.2da -// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.8a1 +// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.a58 // CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.2c7 // CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -3447,20 +3447,20 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.289 // CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.f3f // CHECK:STDOUT: %assoc0 => constants.%assoc0.1c8 -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.203 -// CHECK:STDOUT: %.loc233_5.2 => constants.%.5d8 +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.631 +// CHECK:STDOUT: %.loc233_5.2 => constants.%.34a // CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.364 // CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int16.Op.cc70d5.14 // CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int16.Op.cc70d5.14 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%i16, constants.%MulAssignWith.facet.eb1) { +// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%i16, constants.%MulAssignWith.facet.ece) { // CHECK:STDOUT: %U.loc237_19.1 => constants.%i16 // CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.a70 -// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.eb1 +// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.ece // CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.0b2 // CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -3469,20 +3469,20 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.9b6 // CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.f71 // CHECK:STDOUT: %assoc0 => constants.%assoc0.037 -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.7fd -// CHECK:STDOUT: %.loc239_5.2 => constants.%.ad1 +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.c14 +// CHECK:STDOUT: %.loc239_5.2 => constants.%.26d // CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.898 // CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int16.Op.cc70d5.15 // CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int16.Op.cc70d5.15 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%i16, constants.%DivAssignWith.facet.3b7) { +// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%i16, constants.%DivAssignWith.facet.153) { // CHECK:STDOUT: %U.loc243_19.1 => constants.%i16 // CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.7f8 -// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.3b7 +// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.153 // CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.455 // CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -3491,20 +3491,20 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.41f // CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.e83 // CHECK:STDOUT: %assoc0 => constants.%assoc0.065 -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.de3 -// CHECK:STDOUT: %.loc245_5.2 => constants.%.583 +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.10c +// CHECK:STDOUT: %.loc245_5.2 => constants.%.7b7 // CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.11f // CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int16.Op.cc70d5.16 // CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int16.Op.cc70d5.16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%i16, constants.%ModAssignWith.facet.397) { +// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%i16, constants.%ModAssignWith.facet.b79) { // CHECK:STDOUT: %U.loc249_19.1 => constants.%i16 // CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.eee -// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.397 +// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.b79 // CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.df1 // CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.802 // CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.0cb // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -3513,229 +3513,229 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.955 // CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.08a // CHECK:STDOUT: %assoc0 => constants.%assoc0.c9f -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.ae1 -// CHECK:STDOUT: %.loc251_5.2 => constants.%.306 +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.a71 +// CHECK:STDOUT: %.loc251_5.2 => constants.%.1c7 // CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.c16 // CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int16.Op.cc70d5.17 // CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int16.Op.cc70d5.17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.269) { +// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.d81) { // CHECK:STDOUT: %U.loc225_19.1 => constants.%Int32 -// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.22f -// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.269 -// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.2d7 +// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.426 +// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.d81 +// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.0bd0 // CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc225_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc225_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.547 -// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.6a5 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.20f -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.540 -// CHECK:STDOUT: %.loc227_5.2 => constants.%.31d -// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.92c4bb.1 +// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.d78 +// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.ab4 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.704 +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.49e +// CHECK:STDOUT: %.loc227_5.2 => constants.%.03c +// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.54bf25.1 // CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int32.Op.cc70d5.12 // CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int32.Op.cc70d5.12 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.b55) { +// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.059) { // CHECK:STDOUT: %U.loc231_19.1 => constants.%Int32 -// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.c0c -// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.b55 -// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.0ae +// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.9df +// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.059 +// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.1b0 // CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc231_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc231_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.d8e -// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.5d1 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5e1 -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.8d0 -// CHECK:STDOUT: %.loc233_5.2 => constants.%.4ce -// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.6c915d.1 +// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.729 +// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.597 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.6dc +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.046 +// CHECK:STDOUT: %.loc233_5.2 => constants.%.673 +// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.69cd18.1 // CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int32.Op.cc70d5.14 // CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int32.Op.cc70d5.14 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.28c) { +// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.7a5) { // CHECK:STDOUT: %U.loc237_19.1 => constants.%Int32 -// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.f1b -// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.28c -// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.b7f +// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.073 +// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.7a5 +// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.9f8 // CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc237_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc237_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.4e2 -// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.38d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bb5 -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.d30 -// CHECK:STDOUT: %.loc239_5.2 => constants.%.e33 -// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.74ecb3.1 +// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.cd8 +// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.f6e +// CHECK:STDOUT: %assoc0 => constants.%assoc0.cc8 +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.e8c +// CHECK:STDOUT: %.loc239_5.2 => constants.%.09b8 +// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.fc45f7.1 // CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int32.Op.cc70d5.15 // CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int32.Op.cc70d5.15 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.da6) { +// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.e46) { // CHECK:STDOUT: %U.loc243_19.1 => constants.%Int32 -// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.453 -// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.da6 -// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.964 +// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.2a3 +// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.e46 +// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.ce3 // CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc243_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc243_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.463 -// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.693 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.50a -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.18d -// CHECK:STDOUT: %.loc245_5.2 => constants.%.833 -// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.72221e.1 +// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.6cd +// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.d28 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.68b +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.4f9 +// CHECK:STDOUT: %.loc245_5.2 => constants.%.bdb +// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.b90a73.1 // CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int32.Op.cc70d5.16 // CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int32.Op.cc70d5.16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.1c5) { +// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.2ba) { // CHECK:STDOUT: %U.loc249_19.1 => constants.%Int32 -// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.390 -// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.1c5 -// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.dd3 +// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.da6 +// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.2ba +// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.f9a // CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.3b9 -// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.e9d +// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc249_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc249_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.e8b -// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.e54 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.ec3 -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.924 -// CHECK:STDOUT: %.loc251_5.2 => constants.%.f71 -// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.2e8ae2.1 +// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.062 +// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.e9f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.13c +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.95c +// CHECK:STDOUT: %.loc251_5.2 => constants.%.c5f +// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.c151ba.1 // CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int32.Op.cc70d5.17 // CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int32.Op.cc70d5.17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.775) { +// CHECK:STDOUT: specific @AddAssignWith.loc225(constants.%Int32, constants.%AddAssignWith.facet.994) { // CHECK:STDOUT: %U.loc225_19.1 => constants.%Int32 -// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.22f -// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.775 -// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.2d7 +// CHECK:STDOUT: %AddAssignWith.type.loc225_52.1 => constants.%AddAssignWith.type.426 +// CHECK:STDOUT: %T.loc225_29.1 => constants.%AddAssignWith.facet.994 +// CHECK:STDOUT: %pattern_type.loc225_29 => constants.%pattern_type.0bd0 // CHECK:STDOUT: %T.as_type.loc225_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc225_60 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc225_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc225_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc225_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.547 -// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.6a5 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.20f -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.c06 -// CHECK:STDOUT: %.loc227_5.2 => constants.%.99b -// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.92c4bb.2 +// CHECK:STDOUT: %require_complete.loc227 => constants.%complete_type.d78 +// CHECK:STDOUT: %AddAssignWith.assoc_type => constants.%AddAssignWith.assoc_type.ab4 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.704 +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type => constants.%AddAssignWith.WithSelf.Op.type.6f4 +// CHECK:STDOUT: %.loc227_5.2 => constants.%.a64 +// CHECK:STDOUT: %AddAssignWith.lookup_impl_witness => constants.%custom_witness.54bf25.2 // CHECK:STDOUT: %impl.elem0.loc227_5.2 => constants.%Int64.Op.cc70d5.2 // CHECK:STDOUT: %specific_impl_fn.loc227_5.2 => constants.%Int64.Op.cc70d5.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.e52) { +// CHECK:STDOUT: specific @SubAssignWith.loc231(constants.%Int32, constants.%SubAssignWith.facet.cec) { // CHECK:STDOUT: %U.loc231_19.1 => constants.%Int32 -// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.c0c -// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.e52 -// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.0ae +// CHECK:STDOUT: %SubAssignWith.type.loc231_52.1 => constants.%SubAssignWith.type.9df +// CHECK:STDOUT: %T.loc231_29.1 => constants.%SubAssignWith.facet.cec +// CHECK:STDOUT: %pattern_type.loc231_29 => constants.%pattern_type.1b0 // CHECK:STDOUT: %T.as_type.loc231_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc231_60 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc231_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc231_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc231_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.d8e -// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.5d1 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5e1 -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.802 -// CHECK:STDOUT: %.loc233_5.2 => constants.%.bbb -// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.6c915d.2 +// CHECK:STDOUT: %require_complete.loc233 => constants.%complete_type.729 +// CHECK:STDOUT: %SubAssignWith.assoc_type => constants.%SubAssignWith.assoc_type.597 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.6dc +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type => constants.%SubAssignWith.WithSelf.Op.type.c8e +// CHECK:STDOUT: %.loc233_5.2 => constants.%.797 +// CHECK:STDOUT: %SubAssignWith.lookup_impl_witness => constants.%custom_witness.69cd18.2 // CHECK:STDOUT: %impl.elem0.loc233_5.2 => constants.%Int64.Op.cc70d5.4 // CHECK:STDOUT: %specific_impl_fn.loc233_5.2 => constants.%Int64.Op.cc70d5.4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.3f1) { +// CHECK:STDOUT: specific @MulAssignWith.loc237(constants.%Int32, constants.%MulAssignWith.facet.9d6) { // CHECK:STDOUT: %U.loc237_19.1 => constants.%Int32 -// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.f1b -// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.3f1 -// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.b7f +// CHECK:STDOUT: %MulAssignWith.type.loc237_52.1 => constants.%MulAssignWith.type.073 +// CHECK:STDOUT: %T.loc237_29.1 => constants.%MulAssignWith.facet.9d6 +// CHECK:STDOUT: %pattern_type.loc237_29 => constants.%pattern_type.9f8 // CHECK:STDOUT: %T.as_type.loc237_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc237_60 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc237_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc237_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc237_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.4e2 -// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.38d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bb5 -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.8f2 -// CHECK:STDOUT: %.loc239_5.2 => constants.%.fc3 -// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.74ecb3.2 +// CHECK:STDOUT: %require_complete.loc239 => constants.%complete_type.cd8 +// CHECK:STDOUT: %MulAssignWith.assoc_type => constants.%MulAssignWith.assoc_type.f6e +// CHECK:STDOUT: %assoc0 => constants.%assoc0.cc8 +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type => constants.%MulAssignWith.WithSelf.Op.type.f0f +// CHECK:STDOUT: %.loc239_5.2 => constants.%.292 +// CHECK:STDOUT: %MulAssignWith.lookup_impl_witness => constants.%custom_witness.fc45f7.2 // CHECK:STDOUT: %impl.elem0.loc239_5.2 => constants.%Int64.Op.cc70d5.5 // CHECK:STDOUT: %specific_impl_fn.loc239_5.2 => constants.%Int64.Op.cc70d5.5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.674) { +// CHECK:STDOUT: specific @DivAssignWith.loc243(constants.%Int32, constants.%DivAssignWith.facet.e51) { // CHECK:STDOUT: %U.loc243_19.1 => constants.%Int32 -// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.453 -// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.674 -// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.964 +// CHECK:STDOUT: %DivAssignWith.type.loc243_52.1 => constants.%DivAssignWith.type.2a3 +// CHECK:STDOUT: %T.loc243_29.1 => constants.%DivAssignWith.facet.e51 +// CHECK:STDOUT: %pattern_type.loc243_29 => constants.%pattern_type.ce3 // CHECK:STDOUT: %T.as_type.loc243_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc243_60 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc243_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc243_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc243_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.463 -// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.693 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.50a -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.7b9 -// CHECK:STDOUT: %.loc245_5.2 => constants.%.b6d -// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.72221e.2 +// CHECK:STDOUT: %require_complete.loc245 => constants.%complete_type.6cd +// CHECK:STDOUT: %DivAssignWith.assoc_type => constants.%DivAssignWith.assoc_type.d28 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.68b +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type => constants.%DivAssignWith.WithSelf.Op.type.adc +// CHECK:STDOUT: %.loc245_5.2 => constants.%.733 +// CHECK:STDOUT: %DivAssignWith.lookup_impl_witness => constants.%custom_witness.b90a73.2 // CHECK:STDOUT: %impl.elem0.loc245_5.2 => constants.%Int64.Op.cc70d5.6 // CHECK:STDOUT: %specific_impl_fn.loc245_5.2 => constants.%Int64.Op.cc70d5.6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.b08) { +// CHECK:STDOUT: specific @ModAssignWith.loc249(constants.%Int32, constants.%ModAssignWith.facet.5ae) { // CHECK:STDOUT: %U.loc249_19.1 => constants.%Int32 -// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.390 -// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.b08 -// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.dd3 +// CHECK:STDOUT: %ModAssignWith.type.loc249_52.1 => constants.%ModAssignWith.type.da6 +// CHECK:STDOUT: %T.loc249_29.1 => constants.%ModAssignWith.facet.5ae +// CHECK:STDOUT: %pattern_type.loc249_29 => constants.%pattern_type.f9a // CHECK:STDOUT: %T.as_type.loc249_62.1 => constants.%Int64 -// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.41c -// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc249_60 => constants.%pattern_type.7b1 +// CHECK:STDOUT: %pattern_type.loc249_66 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc249_55 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc249_66 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.e8b -// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.e54 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.ec3 -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.58d -// CHECK:STDOUT: %.loc251_5.2 => constants.%.602 -// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.2e8ae2.2 +// CHECK:STDOUT: %require_complete.loc251 => constants.%complete_type.062 +// CHECK:STDOUT: %ModAssignWith.assoc_type => constants.%ModAssignWith.assoc_type.e9f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.13c +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type => constants.%ModAssignWith.WithSelf.Op.type.c03 +// CHECK:STDOUT: %.loc251_5.2 => constants.%.98b +// CHECK:STDOUT: %ModAssignWith.lookup_impl_witness => constants.%custom_witness.c151ba.2 // CHECK:STDOUT: %impl.elem0.loc251_5.2 => constants.%Int64.Op.cc70d5.7 // CHECK:STDOUT: %specific_impl_fn.loc251_5.2 => constants.%Int64.Op.cc70d5.7 // CHECK:STDOUT: } @@ -3763,81 +3763,81 @@ fn TestUnaryOperators(a: Cpp.Int16, b: Cpp.Int32) { // CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.48b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestInc(constants.%Inc.facet.0be) { -// CHECK:STDOUT: %T.loc278_13.1 => constants.%Inc.facet.0be +// CHECK:STDOUT: specific @TestInc(constants.%Inc.facet.c12) { +// CHECK:STDOUT: %T.loc278_13.1 => constants.%Inc.facet.c12 // CHECK:STDOUT: %T.as_type.loc278_33.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %Inc.WithSelf.Op.type => constants.%Inc.WithSelf.Op.type.b98 -// CHECK:STDOUT: %.loc280 => constants.%.cd1 +// CHECK:STDOUT: %Inc.WithSelf.Op.type => constants.%Inc.WithSelf.Op.type.0e6 +// CHECK:STDOUT: %.loc280 => constants.%.2b7 // CHECK:STDOUT: %Inc.lookup_impl_witness => constants.%custom_witness.b11 // CHECK:STDOUT: %impl.elem0.loc280_3.2 => constants.%Int32.Op.cc70d5.18 // CHECK:STDOUT: %specific_impl_fn.loc280_3.2 => constants.%Int32.Op.cc70d5.18 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestDec(constants.%Dec.facet.c89) { -// CHECK:STDOUT: %T.loc284_13.1 => constants.%Dec.facet.c89 +// CHECK:STDOUT: specific @TestDec(constants.%Dec.facet.706) { +// CHECK:STDOUT: %T.loc284_13.1 => constants.%Dec.facet.706 // CHECK:STDOUT: %T.as_type.loc284_33.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %Dec.WithSelf.Op.type => constants.%Dec.WithSelf.Op.type.0bb -// CHECK:STDOUT: %.loc286 => constants.%.9b3 +// CHECK:STDOUT: %Dec.WithSelf.Op.type => constants.%Dec.WithSelf.Op.type.fb8 +// CHECK:STDOUT: %.loc286 => constants.%.1dd // CHECK:STDOUT: %Dec.lookup_impl_witness => constants.%custom_witness.b00 // CHECK:STDOUT: %impl.elem0.loc286_3.2 => constants.%Int32.Op.cc70d5.19 // CHECK:STDOUT: %specific_impl_fn.loc286_3.2 => constants.%Int32.Op.cc70d5.19 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.44d, constants.%facet_value.5b4) { -// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.44d +// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.787, constants.%facet_value.15e) { +// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.787 // CHECK:STDOUT: %Result.as_type.loc293_50.1 => constants.%Int64 -// CHECK:STDOUT: %facet_type => constants.%facet_type.67d -// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.5b4 -// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.100 -// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.41c +// CHECK:STDOUT: %facet_type => constants.%facet_type.286 +// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.15e +// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.fc5 +// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.7b1 // CHECK:STDOUT: %T.as_type.loc294_24.1 => constants.%Int16 -// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.004 +// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.802 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc294_11 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc294_22 => constants.%complete_type.357 -// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.69a -// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.acb -// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.07e -// CHECK:STDOUT: %.loc296_3.3 => constants.%.10b +// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.ce3 +// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.8ca +// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.916 +// CHECK:STDOUT: %.loc296_3.3 => constants.%.aa8 // CHECK:STDOUT: %impl.elem1.loc296_3.2 => constants.%Int16.Op.cc70d5.18 // CHECK:STDOUT: %specific_impl_fn.loc296_3.3 => constants.%Int16.Op.cc70d5.18 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01a -// CHECK:STDOUT: %.loc296_3.4 => constants.%.ded +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.01d +// CHECK:STDOUT: %.loc296_3.4 => constants.%.0f7 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.3 // CHECK:STDOUT: %impl.elem0.loc296_3.2 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc296_3.4 => constants.%Int64.Op.cc70d5.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.2c3, constants.%facet_value.afe) { -// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.2c3 +// CHECK:STDOUT: specific @TestNegate(constants.%Destroy.facet.cff, constants.%facet_value.fd9) { +// CHECK:STDOUT: %Result.loc292_9.1 => constants.%Destroy.facet.cff // CHECK:STDOUT: %Result.as_type.loc293_50.1 => constants.%Int32 -// CHECK:STDOUT: %facet_type => constants.%facet_type.016 -// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.afe -// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.17e -// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %facet_type => constants.%facet_type.06f +// CHECK:STDOUT: %T.loc293_4.1 => constants.%facet_value.fd9 +// CHECK:STDOUT: %pattern_type.loc293 => constants.%pattern_type.742 +// CHECK:STDOUT: %pattern_type.loc294_11 => constants.%pattern_type.e9d // CHECK:STDOUT: %T.as_type.loc294_24.1 => constants.%Int32 -// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.3b9 +// CHECK:STDOUT: %pattern_type.loc294_22 => constants.%pattern_type.e9d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc294_11 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc294_22 => constants.%complete_type.357 -// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.b23 -// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.f0b -// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.d4d -// CHECK:STDOUT: %.loc296_3.3 => constants.%.6b6 +// CHECK:STDOUT: %Negate.lookup_impl_witness => constants.%custom_witness.79d +// CHECK:STDOUT: %Negate.facet => constants.%Negate.facet.c5f +// CHECK:STDOUT: %Negate.WithSelf.Op.type => constants.%Negate.WithSelf.Op.type.7f7 +// CHECK:STDOUT: %.loc296_3.3 => constants.%.f52 // CHECK:STDOUT: %impl.elem1.loc296_3.2 => constants.%Int32.Op.cc70d5.20 // CHECK:STDOUT: %specific_impl_fn.loc296_3.3 => constants.%Int32.Op.cc70d5.20 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.55e -// CHECK:STDOUT: %.loc296_3.4 => constants.%.c44 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type => constants.%Destroy.WithSelf.Op.type.e16 +// CHECK:STDOUT: %.loc296_3.4 => constants.%.e18 // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%custom_witness.4e6cb0.2 // CHECK:STDOUT: %impl.elem0.loc296_3.2 => constants.%Int32.Op.cc70d5.1 // CHECK:STDOUT: %specific_impl_fn.loc296_3.4 => constants.%Int32.Op.cc70d5.1 diff --git a/toolchain/check/testdata/interop/cpp/operators/deref.carbon b/toolchain/check/testdata/interop/cpp/operators/deref.carbon index fb8c09e65565..084125eb1c5c 100644 --- a/toolchain/check/testdata/interop/cpp/operators/deref.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/deref.carbon @@ -135,9 +135,9 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %ConstDeref.Op.type: type = fn_type @ConstDeref.Op [concrete] // CHECK:STDOUT: %ConstDeref.Op: %ConstDeref.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.261: = custom_witness (%i32, %ConstDeref.Op), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.facet.960: %CppUnsafeDeref.type = facet_value %ConstDeref, (%custom_witness.261) [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.f6c: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.960) [concrete] -// CHECK:STDOUT: %.632: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.f6c, %CppUnsafeDeref.facet.960 [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.facet.f59: %CppUnsafeDeref.type = facet_value %ConstDeref, (%custom_witness.261) [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.2e3: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.f59) [concrete] +// CHECK:STDOUT: %.e15: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.2e3, %CppUnsafeDeref.facet.f59 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -171,7 +171,7 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %Op.ref.loc13_38: %CppUnsafeDeref.assoc_type = name_ref Op, imports.%Core.import_ref.ca6 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant @ConstDeref.cpp_operator.%i32.2 [concrete = constants.%i32] // CHECK:STDOUT: -// CHECK:STDOUT: %impl.elem1: %.632 = impl_witness_access constants.%custom_witness.261, element1 [concrete = constants.%ConstDeref.Op] +// CHECK:STDOUT: %impl.elem1: %.e15 = impl_witness_access constants.%custom_witness.261, element1 [concrete = constants.%ConstDeref.Op] // CHECK:STDOUT: %bound_method: = bound_method %int_ptr.ref, %impl.elem1 // CHECK:STDOUT: %Op.ref.loc13_43: %ConstDeref.cpp_operator.type = name_ref Op, imports.%ConstDeref.cpp_operator.decl [concrete = constants.%ConstDeref.cpp_operator] // CHECK:STDOUT: %ConstDeref.cpp_operator.bound: = bound_method %int_ptr.ref, %Op.ref.loc13_43 @@ -196,9 +196,9 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %MutableDeref.cpp_operator.type: type = fn_type @MutableDeref.cpp_operator [concrete] // CHECK:STDOUT: %MutableDeref.cpp_operator: %MutableDeref.cpp_operator.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.0b1: = custom_witness (%i32, %MutableDeref.cpp_operator), @CppUnsafeDeref [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.facet.ebc: %CppUnsafeDeref.type = facet_value %MutableDeref, (%custom_witness.0b1) [concrete] -// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.473: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.ebc) [concrete] -// CHECK:STDOUT: %.2ed: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.473, %CppUnsafeDeref.facet.ebc [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.facet.b48: %CppUnsafeDeref.type = facet_value %MutableDeref, (%custom_witness.0b1) [concrete] +// CHECK:STDOUT: %CppUnsafeDeref.WithSelf.Op.type.f94: type = fn_type @CppUnsafeDeref.WithSelf.Op, @CppUnsafeDeref.WithSelf(%CppUnsafeDeref.facet.b48) [concrete] +// CHECK:STDOUT: %.300: type = fn_type_with_self_type %CppUnsafeDeref.WithSelf.Op.type.f94, %CppUnsafeDeref.facet.b48 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -221,7 +221,7 @@ fn TestDerefFail(not_ptr: Cpp.NotAPtr) { // CHECK:STDOUT: %CppUnsafeDeref.ref: type = name_ref CppUnsafeDeref, imports.%Core.CppUnsafeDeref [concrete = constants.%CppUnsafeDeref.type] // CHECK:STDOUT: %Op.ref: %CppUnsafeDeref.assoc_type = name_ref Op, imports.%Core.import_ref.ca6 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant @MutableDeref.cpp_operator.%i32.2 [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem1: %.2ed = impl_witness_access constants.%custom_witness.0b1, element1 [concrete = constants.%MutableDeref.cpp_operator] +// CHECK:STDOUT: %impl.elem1: %.300 = impl_witness_access constants.%custom_witness.0b1, element1 [concrete = constants.%MutableDeref.cpp_operator] // CHECK:STDOUT: %bound_method: = bound_method %int_ptr.ref, %impl.elem1 // CHECK:STDOUT: %MutableDeref.cpp_operator.call: ref %i32 = call %bound_method(%int_ptr.ref) // CHECK:STDOUT: return %MutableDeref.cpp_operator.call diff --git a/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon b/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon index afd75dfb4671..f9641ad2b3e1 100644 --- a/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/eq_with.carbon @@ -391,25 +391,25 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: %impl.elem1: %.2bb = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.bc2: = specific_impl_function %impl.elem1, @EqWith.WithSelf.NotEqual(%U, %T) [symbolic] // CHECK:STDOUT: %EqualityComparable: type = class_type @EqualityComparable [concrete] -// CHECK:STDOUT: %pattern_type.6c6: type = pattern_type %EqualityComparable [concrete] +// CHECK:STDOUT: %pattern_type.51b: type = pattern_type %EqualityComparable [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %EqWith.type.f1f: type = facet_type <@EqWith.1, @EqWith.1(%EqualityComparable)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.ee4: type = assoc_entity_type @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] -// CHECK:STDOUT: %assoc0.734: %EqWith.assoc_type.ee4 = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] -// CHECK:STDOUT: %assoc1.5b4: %EqWith.assoc_type.ee4 = assoc_entity element1, imports.%Core.import_ref.515 [concrete] +// CHECK:STDOUT: %EqWith.type.01f: type = facet_type <@EqWith.1, @EqWith.1(%EqualityComparable)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.804: type = assoc_entity_type @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] +// CHECK:STDOUT: %assoc0.614: %EqWith.assoc_type.804 = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] +// CHECK:STDOUT: %assoc1.7f7: %EqWith.assoc_type.804 = assoc_entity element1, imports.%Core.import_ref.515 [concrete] // CHECK:STDOUT: %EqualityComparable.Equal.type: type = fn_type @EqualityComparable.Equal [concrete] // CHECK:STDOUT: %EqualityComparable.Equal: %EqualityComparable.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %EqualityComparable.NotEqual.type: type = fn_type @EqualityComparable.NotEqual [concrete] // CHECK:STDOUT: %EqualityComparable.NotEqual: %EqualityComparable.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.416: = custom_witness (%EqualityComparable.Equal, %EqualityComparable.NotEqual), @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] -// CHECK:STDOUT: %EqWith.facet.607: %EqWith.type.f1f = facet_value %EqualityComparable, (%custom_witness.416) [concrete] -// CHECK:STDOUT: %pattern_type.293: type = pattern_type %EqWith.type.f1f [concrete] -// CHECK:STDOUT: %complete_type.fc9: = complete_type_witness %EqWith.type.f1f [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.9be: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.607) [concrete] -// CHECK:STDOUT: %.608: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.9be, %EqWith.facet.607 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.2b0: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.607) [concrete] -// CHECK:STDOUT: %.b22: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.2b0, %EqWith.facet.607 [concrete] +// CHECK:STDOUT: %custom_witness.1b3: = custom_witness (%EqualityComparable.Equal, %EqualityComparable.NotEqual), @EqWith.1, @EqWith.1(%EqualityComparable) [concrete] +// CHECK:STDOUT: %EqWith.facet.dc5: %EqWith.type.01f = facet_value %EqualityComparable, (%custom_witness.1b3) [concrete] +// CHECK:STDOUT: %pattern_type.6c1: type = pattern_type %EqWith.type.01f [concrete] +// CHECK:STDOUT: %complete_type.bcc: = complete_type_witness %EqWith.type.01f [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.d46: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.dc5) [concrete] +// CHECK:STDOUT: %.5de: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.d46, %EqWith.facet.dc5 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.0ea: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%EqualityComparable, %EqWith.facet.dc5) [concrete] +// CHECK:STDOUT: %.45e: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.0ea, %EqWith.facet.dc5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -476,29 +476,29 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc11(constants.%EqualityComparable, constants.%EqWith.facet.607) { +// CHECK:STDOUT: specific @EqWith.loc11(constants.%EqualityComparable, constants.%EqWith.facet.dc5) { // CHECK:STDOUT: %U.loc11_12.1 => constants.%EqualityComparable -// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.f1f -// CHECK:STDOUT: %T.loc11_22.1 => constants.%EqWith.facet.607 -// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.293 +// CHECK:STDOUT: %EqWith.type.loc11_38.1 => constants.%EqWith.type.01f +// CHECK:STDOUT: %T.loc11_22.1 => constants.%EqWith.facet.dc5 +// CHECK:STDOUT: %pattern_type.loc11_22 => constants.%pattern_type.6c1 // CHECK:STDOUT: %T.as_type.loc11_44.1 => constants.%EqualityComparable -// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.6c6 -// CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.6c6 +// CHECK:STDOUT: %pattern_type.loc11_42 => constants.%pattern_type.51b +// CHECK:STDOUT: %pattern_type.loc11_48 => constants.%pattern_type.51b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc11_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc11_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc13 => constants.%complete_type.fc9 -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.ee4 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.734 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.9be -// CHECK:STDOUT: %.loc13_5.2 => constants.%.608 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.416 +// CHECK:STDOUT: %require_complete.loc13 => constants.%complete_type.bcc +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.804 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.614 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.d46 +// CHECK:STDOUT: %.loc13_5.2 => constants.%.5de +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.1b3 // CHECK:STDOUT: %impl.elem0.loc13_5.2 => constants.%EqualityComparable.Equal // CHECK:STDOUT: %specific_impl_fn.loc13_5.2 => constants.%EqualityComparable.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.5b4 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.2b0 -// CHECK:STDOUT: %.loc14_5.2 => constants.%.b22 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.7f7 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.0ea +// CHECK:STDOUT: %.loc14_5.2 => constants.%.45e // CHECK:STDOUT: %impl.elem1.loc14_5.2 => constants.%EqualityComparable.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc14_5.2 => constants.%EqualityComparable.NotEqual // CHECK:STDOUT: } @@ -537,99 +537,99 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: %impl.elem1: %.2bb = impl_witness_access %EqWith.lookup_impl_witness, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.bc2: = specific_impl_function %impl.elem1, @EqWith.WithSelf.NotEqual(%U, %T) [symbolic] // CHECK:STDOUT: %A1: type = class_type @A1 [concrete] -// CHECK:STDOUT: %pattern_type.489: type = pattern_type %A1 [concrete] +// CHECK:STDOUT: %pattern_type.c8a: type = pattern_type %A1 [concrete] // CHECK:STDOUT: %B1: type = class_type @B1 [concrete] -// CHECK:STDOUT: %pattern_type.278: type = pattern_type %B1 [concrete] +// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %B1 [concrete] // CHECK:STDOUT: %A2: type = class_type @A2 [concrete] -// CHECK:STDOUT: %pattern_type.914: type = pattern_type %A2 [concrete] +// CHECK:STDOUT: %pattern_type.1e3: type = pattern_type %A2 [concrete] // CHECK:STDOUT: %B2: type = class_type @B2 [concrete] -// CHECK:STDOUT: %pattern_type.6a4: type = pattern_type %B2 [concrete] +// CHECK:STDOUT: %pattern_type.fab: type = pattern_type %B2 [concrete] // CHECK:STDOUT: %A3: type = class_type @A3 [concrete] -// CHECK:STDOUT: %pattern_type.e08: type = pattern_type %A3 [concrete] +// CHECK:STDOUT: %pattern_type.ada: type = pattern_type %A3 [concrete] // CHECK:STDOUT: %B3: type = class_type @B3 [concrete] -// CHECK:STDOUT: %pattern_type.18a: type = pattern_type %B3 [concrete] +// CHECK:STDOUT: %pattern_type.a20: type = pattern_type %B3 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %EqWith.type.a7b: type = facet_type <@EqWith.1, @EqWith.1(%B1)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.7fe: type = assoc_entity_type @EqWith.1, @EqWith.1(%B1) [concrete] -// CHECK:STDOUT: %assoc0.bd9: %EqWith.assoc_type.7fe = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] -// CHECK:STDOUT: %assoc1.16f: %EqWith.assoc_type.7fe = assoc_entity element1, imports.%Core.import_ref.515 [concrete] +// CHECK:STDOUT: %EqWith.type.9e4: type = facet_type <@EqWith.1, @EqWith.1(%B1)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.196: type = assoc_entity_type @EqWith.1, @EqWith.1(%B1) [concrete] +// CHECK:STDOUT: %assoc0.f5f: %EqWith.assoc_type.196 = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] +// CHECK:STDOUT: %assoc1.511: %EqWith.assoc_type.196 = assoc_entity element1, imports.%Core.import_ref.515 [concrete] // CHECK:STDOUT: %A1.Equal.type: type = fn_type @A1.Equal [concrete] // CHECK:STDOUT: %A1.Equal: %A1.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %A1.NotEqual.type: type = fn_type @A1.NotEqual [concrete] // CHECK:STDOUT: %A1.NotEqual: %A1.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.da5: = custom_witness (%A1.Equal, %A1.NotEqual), @EqWith.1, @EqWith.1(%B1) [concrete] -// CHECK:STDOUT: %EqWith.facet.ebd: %EqWith.type.a7b = facet_value %A1, (%custom_witness.da5) [concrete] -// CHECK:STDOUT: %pattern_type.70c: type = pattern_type %EqWith.type.a7b [concrete] -// CHECK:STDOUT: %EqWith.type.4bb: type = facet_type <@EqWith.1, @EqWith.1(%A1)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.2fe: type = assoc_entity_type @EqWith.1, @EqWith.1(%A1) [concrete] -// CHECK:STDOUT: %assoc0.d56: %EqWith.assoc_type.2fe = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] -// CHECK:STDOUT: %assoc1.839: %EqWith.assoc_type.2fe = assoc_entity element1, imports.%Core.import_ref.515 [concrete] +// CHECK:STDOUT: %custom_witness.494: = custom_witness (%A1.Equal, %A1.NotEqual), @EqWith.1, @EqWith.1(%B1) [concrete] +// CHECK:STDOUT: %EqWith.facet.169: %EqWith.type.9e4 = facet_value %A1, (%custom_witness.494) [concrete] +// CHECK:STDOUT: %pattern_type.443: type = pattern_type %EqWith.type.9e4 [concrete] +// CHECK:STDOUT: %EqWith.type.361: type = facet_type <@EqWith.1, @EqWith.1(%A1)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.56b: type = assoc_entity_type @EqWith.1, @EqWith.1(%A1) [concrete] +// CHECK:STDOUT: %assoc0.eba: %EqWith.assoc_type.56b = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] +// CHECK:STDOUT: %assoc1.8ff: %EqWith.assoc_type.56b = assoc_entity element1, imports.%Core.import_ref.515 [concrete] // CHECK:STDOUT: %B1.Equal.type: type = fn_type @B1.Equal [concrete] // CHECK:STDOUT: %B1.Equal: %B1.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %B1.NotEqual.type: type = fn_type @B1.NotEqual [concrete] // CHECK:STDOUT: %B1.NotEqual: %B1.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.359: = custom_witness (%B1.Equal, %B1.NotEqual), @EqWith.1, @EqWith.1(%A1) [concrete] -// CHECK:STDOUT: %EqWith.facet.116: %EqWith.type.4bb = facet_value %B1, (%custom_witness.359) [concrete] -// CHECK:STDOUT: %pattern_type.a38: type = pattern_type %EqWith.type.4bb [concrete] -// CHECK:STDOUT: %EqWith.type.901: type = facet_type <@EqWith.1, @EqWith.1(%A2)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.e32: type = assoc_entity_type @EqWith.1, @EqWith.1(%A2) [concrete] -// CHECK:STDOUT: %assoc0.8d2: %EqWith.assoc_type.e32 = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] -// CHECK:STDOUT: %assoc1.182: %EqWith.assoc_type.e32 = assoc_entity element1, imports.%Core.import_ref.515 [concrete] +// CHECK:STDOUT: %custom_witness.9ed: = custom_witness (%B1.Equal, %B1.NotEqual), @EqWith.1, @EqWith.1(%A1) [concrete] +// CHECK:STDOUT: %EqWith.facet.136: %EqWith.type.361 = facet_value %B1, (%custom_witness.9ed) [concrete] +// CHECK:STDOUT: %pattern_type.144: type = pattern_type %EqWith.type.361 [concrete] +// CHECK:STDOUT: %EqWith.type.cd4: type = facet_type <@EqWith.1, @EqWith.1(%A2)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.4df: type = assoc_entity_type @EqWith.1, @EqWith.1(%A2) [concrete] +// CHECK:STDOUT: %assoc0.d22: %EqWith.assoc_type.4df = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] +// CHECK:STDOUT: %assoc1.ae7: %EqWith.assoc_type.4df = assoc_entity element1, imports.%Core.import_ref.515 [concrete] // CHECK:STDOUT: %B2.Equal.type: type = fn_type @B2.Equal [concrete] // CHECK:STDOUT: %B2.Equal: %B2.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %B2.NotEqual.type: type = fn_type @B2.NotEqual [concrete] // CHECK:STDOUT: %B2.NotEqual: %B2.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.354: = custom_witness (%B2.Equal, %B2.NotEqual), @EqWith.1, @EqWith.1(%A2) [concrete] -// CHECK:STDOUT: %EqWith.facet.a81: %EqWith.type.901 = facet_value %B2, (%custom_witness.354) [concrete] -// CHECK:STDOUT: %pattern_type.9a8: type = pattern_type %EqWith.type.901 [concrete] -// CHECK:STDOUT: %EqWith.type.561: type = facet_type <@EqWith.1, @EqWith.1(%B3)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.15c: type = assoc_entity_type @EqWith.1, @EqWith.1(%B3) [concrete] -// CHECK:STDOUT: %assoc0.6ac: %EqWith.assoc_type.15c = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] -// CHECK:STDOUT: %assoc1.666: %EqWith.assoc_type.15c = assoc_entity element1, imports.%Core.import_ref.515 [concrete] +// CHECK:STDOUT: %custom_witness.8ba: = custom_witness (%B2.Equal, %B2.NotEqual), @EqWith.1, @EqWith.1(%A2) [concrete] +// CHECK:STDOUT: %EqWith.facet.e2d: %EqWith.type.cd4 = facet_value %B2, (%custom_witness.8ba) [concrete] +// CHECK:STDOUT: %pattern_type.fdf: type = pattern_type %EqWith.type.cd4 [concrete] +// CHECK:STDOUT: %EqWith.type.07f: type = facet_type <@EqWith.1, @EqWith.1(%B3)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.fb1: type = assoc_entity_type @EqWith.1, @EqWith.1(%B3) [concrete] +// CHECK:STDOUT: %assoc0.5ff: %EqWith.assoc_type.fb1 = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] +// CHECK:STDOUT: %assoc1.0e8: %EqWith.assoc_type.fb1 = assoc_entity element1, imports.%Core.import_ref.515 [concrete] // CHECK:STDOUT: %A3.Equal.type: type = fn_type @A3.Equal [concrete] // CHECK:STDOUT: %A3.Equal: %A3.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type: type = fn_type @NotEqual [concrete] // CHECK:STDOUT: %NotEqual: %NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.505: = custom_witness (%A3.Equal, %NotEqual), @EqWith.1, @EqWith.1(%B3) [concrete] -// CHECK:STDOUT: %EqWith.facet.364: %EqWith.type.561 = facet_value %A3, (%custom_witness.505) [concrete] -// CHECK:STDOUT: %pattern_type.005: type = pattern_type %EqWith.type.561 [concrete] -// CHECK:STDOUT: %EqWith.type.e18: type = facet_type <@EqWith.1, @EqWith.1(%A3)> [concrete] -// CHECK:STDOUT: %EqWith.assoc_type.d3d: type = assoc_entity_type @EqWith.1, @EqWith.1(%A3) [concrete] -// CHECK:STDOUT: %assoc0.865: %EqWith.assoc_type.d3d = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] -// CHECK:STDOUT: %assoc1.afb: %EqWith.assoc_type.d3d = assoc_entity element1, imports.%Core.import_ref.515 [concrete] +// CHECK:STDOUT: %custom_witness.4f1: = custom_witness (%A3.Equal, %NotEqual), @EqWith.1, @EqWith.1(%B3) [concrete] +// CHECK:STDOUT: %EqWith.facet.06d: %EqWith.type.07f = facet_value %A3, (%custom_witness.4f1) [concrete] +// CHECK:STDOUT: %pattern_type.101: type = pattern_type %EqWith.type.07f [concrete] +// CHECK:STDOUT: %EqWith.type.3fd: type = facet_type <@EqWith.1, @EqWith.1(%A3)> [concrete] +// CHECK:STDOUT: %EqWith.assoc_type.796: type = assoc_entity_type @EqWith.1, @EqWith.1(%A3) [concrete] +// CHECK:STDOUT: %assoc0.a60: %EqWith.assoc_type.796 = assoc_entity element0, imports.%Core.import_ref.5f3 [concrete] +// CHECK:STDOUT: %assoc1.dce: %EqWith.assoc_type.796 = assoc_entity element1, imports.%Core.import_ref.515 [concrete] // CHECK:STDOUT: %Equal.type: type = fn_type @Equal [concrete] // CHECK:STDOUT: %Equal: %Equal.type = struct_value () [concrete] // CHECK:STDOUT: %B3.NotEqual.type: type = fn_type @B3.NotEqual [concrete] // CHECK:STDOUT: %B3.NotEqual: %B3.NotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7a4: = custom_witness (%Equal, %B3.NotEqual), @EqWith.1, @EqWith.1(%A3) [concrete] -// CHECK:STDOUT: %EqWith.facet.967: %EqWith.type.e18 = facet_value %B3, (%custom_witness.7a4) [concrete] -// CHECK:STDOUT: %pattern_type.ea1: type = pattern_type %EqWith.type.e18 [concrete] -// CHECK:STDOUT: %complete_type.e1f: = complete_type_witness %EqWith.type.a7b [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.18c: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B1, %EqWith.facet.ebd) [concrete] -// CHECK:STDOUT: %.76d: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.18c, %EqWith.facet.ebd [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.bd2: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B1, %EqWith.facet.ebd) [concrete] -// CHECK:STDOUT: %.6e6: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.bd2, %EqWith.facet.ebd [concrete] -// CHECK:STDOUT: %complete_type.a8f: = complete_type_witness %EqWith.type.4bb [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.d12: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A1, %EqWith.facet.116) [concrete] -// CHECK:STDOUT: %.3f5: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.d12, %EqWith.facet.116 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.1d9: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A1, %EqWith.facet.116) [concrete] -// CHECK:STDOUT: %.fdb: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.1d9, %EqWith.facet.116 [concrete] -// CHECK:STDOUT: %complete_type.109: = complete_type_witness %EqWith.type.901 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.f00: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A2, %EqWith.facet.a81) [concrete] -// CHECK:STDOUT: %.ca5: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.f00, %EqWith.facet.a81 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.ee1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A2, %EqWith.facet.a81) [concrete] -// CHECK:STDOUT: %.02f: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.ee1, %EqWith.facet.a81 [concrete] -// CHECK:STDOUT: %complete_type.02e: = complete_type_witness %EqWith.type.561 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.f3b: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B3, %EqWith.facet.364) [concrete] -// CHECK:STDOUT: %.eed: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.f3b, %EqWith.facet.364 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a49: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B3, %EqWith.facet.364) [concrete] -// CHECK:STDOUT: %.5c9: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a49, %EqWith.facet.364 [concrete] -// CHECK:STDOUT: %complete_type.d47: = complete_type_witness %EqWith.type.e18 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.be3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A3, %EqWith.facet.967) [concrete] -// CHECK:STDOUT: %.af5: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.be3, %EqWith.facet.967 [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a22: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A3, %EqWith.facet.967) [concrete] -// CHECK:STDOUT: %.b2b: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a22, %EqWith.facet.967 [concrete] +// CHECK:STDOUT: %custom_witness.4ed: = custom_witness (%Equal, %B3.NotEqual), @EqWith.1, @EqWith.1(%A3) [concrete] +// CHECK:STDOUT: %EqWith.facet.2b7: %EqWith.type.3fd = facet_value %B3, (%custom_witness.4ed) [concrete] +// CHECK:STDOUT: %pattern_type.a79: type = pattern_type %EqWith.type.3fd [concrete] +// CHECK:STDOUT: %complete_type.fc0: = complete_type_witness %EqWith.type.9e4 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.b43: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B1, %EqWith.facet.169) [concrete] +// CHECK:STDOUT: %.e88: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.b43, %EqWith.facet.169 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.cd5: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B1, %EqWith.facet.169) [concrete] +// CHECK:STDOUT: %.a12: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.cd5, %EqWith.facet.169 [concrete] +// CHECK:STDOUT: %complete_type.1c8: = complete_type_witness %EqWith.type.361 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.d63: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A1, %EqWith.facet.136) [concrete] +// CHECK:STDOUT: %.895: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.d63, %EqWith.facet.136 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.6f4: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A1, %EqWith.facet.136) [concrete] +// CHECK:STDOUT: %.781: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.6f4, %EqWith.facet.136 [concrete] +// CHECK:STDOUT: %complete_type.017: = complete_type_witness %EqWith.type.cd4 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.135: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A2, %EqWith.facet.e2d) [concrete] +// CHECK:STDOUT: %.400: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.135, %EqWith.facet.e2d [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.57a: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A2, %EqWith.facet.e2d) [concrete] +// CHECK:STDOUT: %.ce7: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.57a, %EqWith.facet.e2d [concrete] +// CHECK:STDOUT: %complete_type.d97: = complete_type_witness %EqWith.type.07f [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.738: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%B3, %EqWith.facet.06d) [concrete] +// CHECK:STDOUT: %.72a: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.738, %EqWith.facet.06d [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.512: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%B3, %EqWith.facet.06d) [concrete] +// CHECK:STDOUT: %.a1d: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.512, %EqWith.facet.06d [concrete] +// CHECK:STDOUT: %complete_type.fb2: = complete_type_witness %EqWith.type.3fd [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.033: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%A3, %EqWith.facet.2b7) [concrete] +// CHECK:STDOUT: %.938: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.033, %EqWith.facet.2b7 [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.362: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%A3, %EqWith.facet.2b7) [concrete] +// CHECK:STDOUT: %.2b0: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.362, %EqWith.facet.2b7 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -696,137 +696,137 @@ fn Test(only_neq: Cpp.OnlyNeq, // CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%B1, constants.%EqWith.facet.ebd) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%B1, constants.%EqWith.facet.169) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%B1 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.a7b -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.ebd -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.70c +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.9e4 +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.169 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.443 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%A1 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.489 -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.278 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.c8a +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.e62 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.e1f -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.7fe -// CHECK:STDOUT: %assoc0 => constants.%assoc0.bd9 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.18c -// CHECK:STDOUT: %.loc36_5.2 => constants.%.76d -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.da5 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.fc0 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.196 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f5f +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.b43 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.e88 +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.494 // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%A1.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%A1.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.16f -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.bd2 -// CHECK:STDOUT: %.loc37_5.2 => constants.%.6e6 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.511 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.cd5 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.a12 // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%A1.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%A1.NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%A1, constants.%EqWith.facet.116) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%A1, constants.%EqWith.facet.136) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%A1 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.4bb -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.116 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.a38 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.361 +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.136 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.144 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B1 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.278 -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.489 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.e62 +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.c8a // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.a8f -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.2fe -// CHECK:STDOUT: %assoc0 => constants.%assoc0.d56 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.d12 -// CHECK:STDOUT: %.loc36_5.2 => constants.%.3f5 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.359 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.1c8 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.56b +// CHECK:STDOUT: %assoc0 => constants.%assoc0.eba +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.d63 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.895 +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.9ed // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%B1.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%B1.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.839 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.1d9 -// CHECK:STDOUT: %.loc37_5.2 => constants.%.fdb +// CHECK:STDOUT: %assoc1 => constants.%assoc1.8ff +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.6f4 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.781 // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%B1.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%B1.NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%A2, constants.%EqWith.facet.a81) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%A2, constants.%EqWith.facet.e2d) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%A2 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.901 -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.a81 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.9a8 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.cd4 +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.e2d +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.fdf // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B2 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.6a4 -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.914 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.fab +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.1e3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.109 -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.e32 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8d2 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.f00 -// CHECK:STDOUT: %.loc36_5.2 => constants.%.ca5 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.354 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.017 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.4df +// CHECK:STDOUT: %assoc0 => constants.%assoc0.d22 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.135 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.400 +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.8ba // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%B2.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%B2.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.182 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.ee1 -// CHECK:STDOUT: %.loc37_5.2 => constants.%.02f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.ae7 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.57a +// CHECK:STDOUT: %.loc37_5.2 => constants.%.ce7 // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%B2.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%B2.NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%B3, constants.%EqWith.facet.364) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%B3, constants.%EqWith.facet.06d) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%B3 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.561 -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.364 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.005 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.07f +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.06d +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.101 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%A3 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.e08 -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.18a +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.ada +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.a20 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.02e -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.15c -// CHECK:STDOUT: %assoc0 => constants.%assoc0.6ac -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.f3b -// CHECK:STDOUT: %.loc36_5.2 => constants.%.eed -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.505 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.d97 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.fb1 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.5ff +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.738 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.72a +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.4f1 // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%A3.Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%A3.Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.666 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.a49 -// CHECK:STDOUT: %.loc37_5.2 => constants.%.5c9 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.0e8 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.512 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.a1d // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%NotEqual // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @EqWith.loc34(constants.%A3, constants.%EqWith.facet.967) { +// CHECK:STDOUT: specific @EqWith.loc34(constants.%A3, constants.%EqWith.facet.2b7) { // CHECK:STDOUT: %U.loc34_12.1 => constants.%A3 -// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.e18 -// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.967 -// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.ea1 +// CHECK:STDOUT: %EqWith.type.loc34_38.1 => constants.%EqWith.type.3fd +// CHECK:STDOUT: %T.loc34_22.1 => constants.%EqWith.facet.2b7 +// CHECK:STDOUT: %pattern_type.loc34_22 => constants.%pattern_type.a79 // CHECK:STDOUT: %T.as_type.loc34_44.1 => constants.%B3 -// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.18a -// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.e08 +// CHECK:STDOUT: %pattern_type.loc34_42 => constants.%pattern_type.a20 +// CHECK:STDOUT: %pattern_type.loc34_48 => constants.%pattern_type.ada // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc34_42 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc34_48 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.d47 -// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.d3d -// CHECK:STDOUT: %assoc0 => constants.%assoc0.865 -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.be3 -// CHECK:STDOUT: %.loc36_5.2 => constants.%.af5 -// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.7a4 +// CHECK:STDOUT: %require_complete.loc36 => constants.%complete_type.fb2 +// CHECK:STDOUT: %EqWith.assoc_type => constants.%EqWith.assoc_type.796 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.a60 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type => constants.%EqWith.WithSelf.Equal.type.033 +// CHECK:STDOUT: %.loc36_5.2 => constants.%.938 +// CHECK:STDOUT: %EqWith.lookup_impl_witness => constants.%custom_witness.4ed // CHECK:STDOUT: %impl.elem0.loc36_5.2 => constants.%Equal // CHECK:STDOUT: %specific_impl_fn.loc36_5.2 => constants.%Equal -// CHECK:STDOUT: %assoc1 => constants.%assoc1.afb -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.a22 -// CHECK:STDOUT: %.loc37_5.2 => constants.%.b2b +// CHECK:STDOUT: %assoc1 => constants.%assoc1.dce +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type => constants.%EqWith.WithSelf.NotEqual.type.362 +// CHECK:STDOUT: %.loc37_5.2 => constants.%.2b0 // CHECK:STDOUT: %impl.elem1.loc37_5.2 => constants.%B3.NotEqual // CHECK:STDOUT: %specific_impl_fn.loc37_5.2 => constants.%B3.NotEqual // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/operators/operators.carbon b/toolchain/check/testdata/interop/cpp/operators/operators.carbon index 7c754ef7275b..e5ffcc39d86e 100644 --- a/toolchain/check/testdata/interop/cpp/operators/operators.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/operators.carbon @@ -1024,10 +1024,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %cpp_operator.type.c0fb5e.1: type = fn_type @cpp_operator.1 [concrete] @@ -1086,15 +1086,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.a00 = ref_binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.a00 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %c.patt: %pattern_type.479 = ref_binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.479 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_21: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_23: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c.var {} -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_3 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_26: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: assign %c.var, %.loc8_26 @@ -1108,14 +1108,14 @@ fn F() { // CHECK:STDOUT: %c.ref.loc12: ref %C = name_ref c, %c // CHECK:STDOUT: %cpp_operator.call.loc12: ref %C = call imports.%cpp_operator.decl.4046da.2(%c.ref.loc12) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %minus.patt: %pattern_type.a00 = value_binding_pattern minus [concrete] +// CHECK:STDOUT: %minus.patt: %pattern_type.479 = value_binding_pattern minus [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref.loc15: ref %C = name_ref c, %c // CHECK:STDOUT: %.loc15_29.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc15_30.1: %C = acquire_value %c.ref.loc15 // CHECK:STDOUT: %.loc15_30.2: ref %C = value_as_ref %.loc15_30.1 -// CHECK:STDOUT: %addr.loc15_29.1: %ptr.dbb = addr_of %.loc15_30.2 -// CHECK:STDOUT: %addr.loc15_29.2: %ptr.dbb = addr_of %.loc15_29.1 +// CHECK:STDOUT: %addr.loc15_29.1: %ptr.3a8 = addr_of %.loc15_30.2 +// CHECK:STDOUT: %addr.loc15_29.2: %ptr.3a8 = addr_of %.loc15_29.1 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%addr.loc15_29.1, %addr.loc15_29.2) // CHECK:STDOUT: %.loc15_29.2: init %C to %.loc15_29.1 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: %.loc15_24: type = splice_block %C.ref.loc15 [concrete = constants.%C] { @@ -1126,14 +1126,14 @@ fn F() { // CHECK:STDOUT: %.loc15_29.4: %C = acquire_value %.loc15_29.3 // CHECK:STDOUT: %minus: %C = value_binding minus, %.loc15_29.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %complement.patt: %pattern_type.a00 = value_binding_pattern complement [concrete] +// CHECK:STDOUT: %complement.patt: %pattern_type.479 = value_binding_pattern complement [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.ref.loc18: ref %C = name_ref c, %c // CHECK:STDOUT: %.loc18_34.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc18_35.1: %C = acquire_value %c.ref.loc18 // CHECK:STDOUT: %.loc18_35.2: ref %C = value_as_ref %.loc18_35.1 -// CHECK:STDOUT: %addr.loc18_34.1: %ptr.dbb = addr_of %.loc18_35.2 -// CHECK:STDOUT: %addr.loc18_34.2: %ptr.dbb = addr_of %.loc18_34.1 +// CHECK:STDOUT: %addr.loc18_34.1: %ptr.3a8 = addr_of %.loc18_35.2 +// CHECK:STDOUT: %addr.loc18_34.2: %ptr.3a8 = addr_of %.loc18_34.1 // CHECK:STDOUT: %operator_Tilde__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Tilde__carbon_thunk.decl(%addr.loc18_34.1, %addr.loc18_34.2) // CHECK:STDOUT: %.loc18_34.2: init %C to %.loc18_34.1 = mark_in_place_init %operator_Tilde__carbon_thunk.call // CHECK:STDOUT: %.loc18_29: type = splice_block %C.ref.loc18 [concrete = constants.%C] { @@ -1164,10 +1164,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -1419,15 +1419,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.a00 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_3 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_27: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: assign %c1.var, %.loc8_27 @@ -1437,15 +1437,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.a00 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc9_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %.loc9_3 +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_27: init %C to %.loc9_3 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: assign %c2.var, %.loc9_27 @@ -1455,7 +1455,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c2: ref %C = ref_binding c2, %c2.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %addition.patt: %pattern_type.a00 = value_binding_pattern addition [concrete] +// CHECK:STDOUT: %addition.patt: %pattern_type.479 = value_binding_pattern addition [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc12: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc12: ref %C = name_ref c2, %c2 @@ -1463,10 +1463,10 @@ fn F() { // CHECK:STDOUT: %.loc12_32.1: %C = acquire_value %c1.ref.loc12 // CHECK:STDOUT: %.loc12_37.1: %C = acquire_value %c2.ref.loc12 // CHECK:STDOUT: %.loc12_32.2: ref %C = value_as_ref %.loc12_32.1 -// CHECK:STDOUT: %addr.loc12_35.1: %ptr.dbb = addr_of %.loc12_32.2 +// CHECK:STDOUT: %addr.loc12_35.1: %ptr.3a8 = addr_of %.loc12_32.2 // CHECK:STDOUT: %.loc12_37.2: ref %C = value_as_ref %.loc12_37.1 -// CHECK:STDOUT: %addr.loc12_35.2: %ptr.dbb = addr_of %.loc12_37.2 -// CHECK:STDOUT: %addr.loc12_35.3: %ptr.dbb = addr_of %.loc12_35.1 +// CHECK:STDOUT: %addr.loc12_35.2: %ptr.3a8 = addr_of %.loc12_37.2 +// CHECK:STDOUT: %addr.loc12_35.3: %ptr.3a8 = addr_of %.loc12_35.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc12_35.1, %addr.loc12_35.2, %addr.loc12_35.3) // CHECK:STDOUT: %.loc12_35.2: init %C to %.loc12_35.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc12_27: type = splice_block %C.ref.loc12 [concrete = constants.%C] { @@ -1477,7 +1477,7 @@ fn F() { // CHECK:STDOUT: %.loc12_35.4: %C = acquire_value %.loc12_35.3 // CHECK:STDOUT: %addition: %C = value_binding addition, %.loc12_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %subtraction.patt: %pattern_type.a00 = value_binding_pattern subtraction [concrete] +// CHECK:STDOUT: %subtraction.patt: %pattern_type.479 = value_binding_pattern subtraction [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc13: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc13: ref %C = name_ref c2, %c2 @@ -1485,10 +1485,10 @@ fn F() { // CHECK:STDOUT: %.loc13_35.1: %C = acquire_value %c1.ref.loc13 // CHECK:STDOUT: %.loc13_40.1: %C = acquire_value %c2.ref.loc13 // CHECK:STDOUT: %.loc13_35.2: ref %C = value_as_ref %.loc13_35.1 -// CHECK:STDOUT: %addr.loc13_38.1: %ptr.dbb = addr_of %.loc13_35.2 +// CHECK:STDOUT: %addr.loc13_38.1: %ptr.3a8 = addr_of %.loc13_35.2 // CHECK:STDOUT: %.loc13_40.2: ref %C = value_as_ref %.loc13_40.1 -// CHECK:STDOUT: %addr.loc13_38.2: %ptr.dbb = addr_of %.loc13_40.2 -// CHECK:STDOUT: %addr.loc13_38.3: %ptr.dbb = addr_of %.loc13_38.1 +// CHECK:STDOUT: %addr.loc13_38.2: %ptr.3a8 = addr_of %.loc13_40.2 +// CHECK:STDOUT: %addr.loc13_38.3: %ptr.3a8 = addr_of %.loc13_38.1 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%addr.loc13_38.1, %addr.loc13_38.2, %addr.loc13_38.3) // CHECK:STDOUT: %.loc13_38.2: init %C to %.loc13_38.1 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: %.loc13_30: type = splice_block %C.ref.loc13 [concrete = constants.%C] { @@ -1499,7 +1499,7 @@ fn F() { // CHECK:STDOUT: %.loc13_38.4: %C = acquire_value %.loc13_38.3 // CHECK:STDOUT: %subtraction: %C = value_binding subtraction, %.loc13_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %multiplication.patt: %pattern_type.a00 = value_binding_pattern multiplication [concrete] +// CHECK:STDOUT: %multiplication.patt: %pattern_type.479 = value_binding_pattern multiplication [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc14: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc14: ref %C = name_ref c2, %c2 @@ -1507,10 +1507,10 @@ fn F() { // CHECK:STDOUT: %.loc14_38.1: %C = acquire_value %c1.ref.loc14 // CHECK:STDOUT: %.loc14_43.1: %C = acquire_value %c2.ref.loc14 // CHECK:STDOUT: %.loc14_38.2: ref %C = value_as_ref %.loc14_38.1 -// CHECK:STDOUT: %addr.loc14_41.1: %ptr.dbb = addr_of %.loc14_38.2 +// CHECK:STDOUT: %addr.loc14_41.1: %ptr.3a8 = addr_of %.loc14_38.2 // CHECK:STDOUT: %.loc14_43.2: ref %C = value_as_ref %.loc14_43.1 -// CHECK:STDOUT: %addr.loc14_41.2: %ptr.dbb = addr_of %.loc14_43.2 -// CHECK:STDOUT: %addr.loc14_41.3: %ptr.dbb = addr_of %.loc14_41.1 +// CHECK:STDOUT: %addr.loc14_41.2: %ptr.3a8 = addr_of %.loc14_43.2 +// CHECK:STDOUT: %addr.loc14_41.3: %ptr.3a8 = addr_of %.loc14_41.1 // CHECK:STDOUT: %operator_Star__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Star__carbon_thunk.decl(%addr.loc14_41.1, %addr.loc14_41.2, %addr.loc14_41.3) // CHECK:STDOUT: %.loc14_41.2: init %C to %.loc14_41.1 = mark_in_place_init %operator_Star__carbon_thunk.call // CHECK:STDOUT: %.loc14_33: type = splice_block %C.ref.loc14 [concrete = constants.%C] { @@ -1521,7 +1521,7 @@ fn F() { // CHECK:STDOUT: %.loc14_41.4: %C = acquire_value %.loc14_41.3 // CHECK:STDOUT: %multiplication: %C = value_binding multiplication, %.loc14_41.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %division.patt: %pattern_type.a00 = value_binding_pattern division [concrete] +// CHECK:STDOUT: %division.patt: %pattern_type.479 = value_binding_pattern division [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc15: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc15: ref %C = name_ref c2, %c2 @@ -1529,10 +1529,10 @@ fn F() { // CHECK:STDOUT: %.loc15_32.1: %C = acquire_value %c1.ref.loc15 // CHECK:STDOUT: %.loc15_37.1: %C = acquire_value %c2.ref.loc15 // CHECK:STDOUT: %.loc15_32.2: ref %C = value_as_ref %.loc15_32.1 -// CHECK:STDOUT: %addr.loc15_35.1: %ptr.dbb = addr_of %.loc15_32.2 +// CHECK:STDOUT: %addr.loc15_35.1: %ptr.3a8 = addr_of %.loc15_32.2 // CHECK:STDOUT: %.loc15_37.2: ref %C = value_as_ref %.loc15_37.1 -// CHECK:STDOUT: %addr.loc15_35.2: %ptr.dbb = addr_of %.loc15_37.2 -// CHECK:STDOUT: %addr.loc15_35.3: %ptr.dbb = addr_of %.loc15_35.1 +// CHECK:STDOUT: %addr.loc15_35.2: %ptr.3a8 = addr_of %.loc15_37.2 +// CHECK:STDOUT: %addr.loc15_35.3: %ptr.3a8 = addr_of %.loc15_35.1 // CHECK:STDOUT: %operator_Slash__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Slash__carbon_thunk.decl(%addr.loc15_35.1, %addr.loc15_35.2, %addr.loc15_35.3) // CHECK:STDOUT: %.loc15_35.2: init %C to %.loc15_35.1 = mark_in_place_init %operator_Slash__carbon_thunk.call // CHECK:STDOUT: %.loc15_27: type = splice_block %C.ref.loc15 [concrete = constants.%C] { @@ -1543,7 +1543,7 @@ fn F() { // CHECK:STDOUT: %.loc15_35.4: %C = acquire_value %.loc15_35.3 // CHECK:STDOUT: %division: %C = value_binding division, %.loc15_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %modulo.patt: %pattern_type.a00 = value_binding_pattern modulo [concrete] +// CHECK:STDOUT: %modulo.patt: %pattern_type.479 = value_binding_pattern modulo [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc16: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc16: ref %C = name_ref c2, %c2 @@ -1551,10 +1551,10 @@ fn F() { // CHECK:STDOUT: %.loc16_30.1: %C = acquire_value %c1.ref.loc16 // CHECK:STDOUT: %.loc16_35.1: %C = acquire_value %c2.ref.loc16 // CHECK:STDOUT: %.loc16_30.2: ref %C = value_as_ref %.loc16_30.1 -// CHECK:STDOUT: %addr.loc16_33.1: %ptr.dbb = addr_of %.loc16_30.2 +// CHECK:STDOUT: %addr.loc16_33.1: %ptr.3a8 = addr_of %.loc16_30.2 // CHECK:STDOUT: %.loc16_35.2: ref %C = value_as_ref %.loc16_35.1 -// CHECK:STDOUT: %addr.loc16_33.2: %ptr.dbb = addr_of %.loc16_35.2 -// CHECK:STDOUT: %addr.loc16_33.3: %ptr.dbb = addr_of %.loc16_33.1 +// CHECK:STDOUT: %addr.loc16_33.2: %ptr.3a8 = addr_of %.loc16_35.2 +// CHECK:STDOUT: %addr.loc16_33.3: %ptr.3a8 = addr_of %.loc16_33.1 // CHECK:STDOUT: %operator_Percent__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Percent__carbon_thunk.decl(%addr.loc16_33.1, %addr.loc16_33.2, %addr.loc16_33.3) // CHECK:STDOUT: %.loc16_33.2: init %C to %.loc16_33.1 = mark_in_place_init %operator_Percent__carbon_thunk.call // CHECK:STDOUT: %.loc16_25: type = splice_block %C.ref.loc16 [concrete = constants.%C] { @@ -1565,7 +1565,7 @@ fn F() { // CHECK:STDOUT: %.loc16_33.4: %C = acquire_value %.loc16_33.3 // CHECK:STDOUT: %modulo: %C = value_binding modulo, %.loc16_33.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %bitwise_and.patt: %pattern_type.a00 = value_binding_pattern bitwise_and [concrete] +// CHECK:STDOUT: %bitwise_and.patt: %pattern_type.479 = value_binding_pattern bitwise_and [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc19: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc19: ref %C = name_ref c2, %c2 @@ -1573,10 +1573,10 @@ fn F() { // CHECK:STDOUT: %.loc19_35.1: %C = acquire_value %c1.ref.loc19 // CHECK:STDOUT: %.loc19_40.1: %C = acquire_value %c2.ref.loc19 // CHECK:STDOUT: %.loc19_35.2: ref %C = value_as_ref %.loc19_35.1 -// CHECK:STDOUT: %addr.loc19_38.1: %ptr.dbb = addr_of %.loc19_35.2 +// CHECK:STDOUT: %addr.loc19_38.1: %ptr.3a8 = addr_of %.loc19_35.2 // CHECK:STDOUT: %.loc19_40.2: ref %C = value_as_ref %.loc19_40.1 -// CHECK:STDOUT: %addr.loc19_38.2: %ptr.dbb = addr_of %.loc19_40.2 -// CHECK:STDOUT: %addr.loc19_38.3: %ptr.dbb = addr_of %.loc19_38.1 +// CHECK:STDOUT: %addr.loc19_38.2: %ptr.3a8 = addr_of %.loc19_40.2 +// CHECK:STDOUT: %addr.loc19_38.3: %ptr.3a8 = addr_of %.loc19_38.1 // CHECK:STDOUT: %operator_Amp__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Amp__carbon_thunk.decl(%addr.loc19_38.1, %addr.loc19_38.2, %addr.loc19_38.3) // CHECK:STDOUT: %.loc19_38.2: init %C to %.loc19_38.1 = mark_in_place_init %operator_Amp__carbon_thunk.call // CHECK:STDOUT: %.loc19_30: type = splice_block %C.ref.loc19 [concrete = constants.%C] { @@ -1587,7 +1587,7 @@ fn F() { // CHECK:STDOUT: %.loc19_38.4: %C = acquire_value %.loc19_38.3 // CHECK:STDOUT: %bitwise_and: %C = value_binding bitwise_and, %.loc19_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %bitwise_or.patt: %pattern_type.a00 = value_binding_pattern bitwise_or [concrete] +// CHECK:STDOUT: %bitwise_or.patt: %pattern_type.479 = value_binding_pattern bitwise_or [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc20: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc20: ref %C = name_ref c2, %c2 @@ -1595,10 +1595,10 @@ fn F() { // CHECK:STDOUT: %.loc20_34.1: %C = acquire_value %c1.ref.loc20 // CHECK:STDOUT: %.loc20_39.1: %C = acquire_value %c2.ref.loc20 // CHECK:STDOUT: %.loc20_34.2: ref %C = value_as_ref %.loc20_34.1 -// CHECK:STDOUT: %addr.loc20_37.1: %ptr.dbb = addr_of %.loc20_34.2 +// CHECK:STDOUT: %addr.loc20_37.1: %ptr.3a8 = addr_of %.loc20_34.2 // CHECK:STDOUT: %.loc20_39.2: ref %C = value_as_ref %.loc20_39.1 -// CHECK:STDOUT: %addr.loc20_37.2: %ptr.dbb = addr_of %.loc20_39.2 -// CHECK:STDOUT: %addr.loc20_37.3: %ptr.dbb = addr_of %.loc20_37.1 +// CHECK:STDOUT: %addr.loc20_37.2: %ptr.3a8 = addr_of %.loc20_39.2 +// CHECK:STDOUT: %addr.loc20_37.3: %ptr.3a8 = addr_of %.loc20_37.1 // CHECK:STDOUT: %operator_Pipe__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Pipe__carbon_thunk.decl(%addr.loc20_37.1, %addr.loc20_37.2, %addr.loc20_37.3) // CHECK:STDOUT: %.loc20_37.2: init %C to %.loc20_37.1 = mark_in_place_init %operator_Pipe__carbon_thunk.call // CHECK:STDOUT: %.loc20_29: type = splice_block %C.ref.loc20 [concrete = constants.%C] { @@ -1609,7 +1609,7 @@ fn F() { // CHECK:STDOUT: %.loc20_37.4: %C = acquire_value %.loc20_37.3 // CHECK:STDOUT: %bitwise_or: %C = value_binding bitwise_or, %.loc20_37.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %bitwise_xor.patt: %pattern_type.a00 = value_binding_pattern bitwise_xor [concrete] +// CHECK:STDOUT: %bitwise_xor.patt: %pattern_type.479 = value_binding_pattern bitwise_xor [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc21: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc21: ref %C = name_ref c2, %c2 @@ -1617,10 +1617,10 @@ fn F() { // CHECK:STDOUT: %.loc21_35.1: %C = acquire_value %c1.ref.loc21 // CHECK:STDOUT: %.loc21_40.1: %C = acquire_value %c2.ref.loc21 // CHECK:STDOUT: %.loc21_35.2: ref %C = value_as_ref %.loc21_35.1 -// CHECK:STDOUT: %addr.loc21_38.1: %ptr.dbb = addr_of %.loc21_35.2 +// CHECK:STDOUT: %addr.loc21_38.1: %ptr.3a8 = addr_of %.loc21_35.2 // CHECK:STDOUT: %.loc21_40.2: ref %C = value_as_ref %.loc21_40.1 -// CHECK:STDOUT: %addr.loc21_38.2: %ptr.dbb = addr_of %.loc21_40.2 -// CHECK:STDOUT: %addr.loc21_38.3: %ptr.dbb = addr_of %.loc21_38.1 +// CHECK:STDOUT: %addr.loc21_38.2: %ptr.3a8 = addr_of %.loc21_40.2 +// CHECK:STDOUT: %addr.loc21_38.3: %ptr.3a8 = addr_of %.loc21_38.1 // CHECK:STDOUT: %operator_Caret__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Caret__carbon_thunk.decl(%addr.loc21_38.1, %addr.loc21_38.2, %addr.loc21_38.3) // CHECK:STDOUT: %.loc21_38.2: init %C to %.loc21_38.1 = mark_in_place_init %operator_Caret__carbon_thunk.call // CHECK:STDOUT: %.loc21_30: type = splice_block %C.ref.loc21 [concrete = constants.%C] { @@ -1631,7 +1631,7 @@ fn F() { // CHECK:STDOUT: %.loc21_38.4: %C = acquire_value %.loc21_38.3 // CHECK:STDOUT: %bitwise_xor: %C = value_binding bitwise_xor, %.loc21_38.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %left_shift.patt: %pattern_type.a00 = value_binding_pattern left_shift [concrete] +// CHECK:STDOUT: %left_shift.patt: %pattern_type.479 = value_binding_pattern left_shift [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc22: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_3.loc22: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] @@ -1645,8 +1645,8 @@ fn F() { // CHECK:STDOUT: %.loc22_40.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_3.49a] // CHECK:STDOUT: %.loc22_40.2: %i32 = converted %int_3.loc22, %.loc22_40.1 [concrete = constants.%int_3.49a] // CHECK:STDOUT: %.loc22_34.2: ref %C = value_as_ref %.loc22_34.1 -// CHECK:STDOUT: %addr.loc22_37.1: %ptr.dbb = addr_of %.loc22_34.2 -// CHECK:STDOUT: %addr.loc22_37.2: %ptr.dbb = addr_of %.loc22_37.1 +// CHECK:STDOUT: %addr.loc22_37.1: %ptr.3a8 = addr_of %.loc22_34.2 +// CHECK:STDOUT: %addr.loc22_37.2: %ptr.3a8 = addr_of %.loc22_37.1 // CHECK:STDOUT: %operator_LessLess__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_LessLess__carbon_thunk.decl(%addr.loc22_37.1, %.loc22_40.2, %addr.loc22_37.2) // CHECK:STDOUT: %.loc22_37.2: init %C to %.loc22_37.1 = mark_in_place_init %operator_LessLess__carbon_thunk.call // CHECK:STDOUT: %.loc22_29: type = splice_block %C.ref.loc22 [concrete = constants.%C] { @@ -1657,7 +1657,7 @@ fn F() { // CHECK:STDOUT: %.loc22_37.4: %C = acquire_value %.loc22_37.3 // CHECK:STDOUT: %left_shift: %C = value_binding left_shift, %.loc22_37.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %right_shift.patt: %pattern_type.a00 = value_binding_pattern right_shift [concrete] +// CHECK:STDOUT: %right_shift.patt: %pattern_type.479 = value_binding_pattern right_shift [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc23: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_5.loc23: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] @@ -1671,8 +1671,8 @@ fn F() { // CHECK:STDOUT: %.loc23_41.1: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc23 [concrete = constants.%int_5.c41] // CHECK:STDOUT: %.loc23_41.2: %i32 = converted %int_5.loc23, %.loc23_41.1 [concrete = constants.%int_5.c41] // CHECK:STDOUT: %.loc23_35.2: ref %C = value_as_ref %.loc23_35.1 -// CHECK:STDOUT: %addr.loc23_38.1: %ptr.dbb = addr_of %.loc23_35.2 -// CHECK:STDOUT: %addr.loc23_38.2: %ptr.dbb = addr_of %.loc23_38.1 +// CHECK:STDOUT: %addr.loc23_38.1: %ptr.3a8 = addr_of %.loc23_35.2 +// CHECK:STDOUT: %addr.loc23_38.2: %ptr.3a8 = addr_of %.loc23_38.1 // CHECK:STDOUT: %operator_GreaterGreater__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_GreaterGreater__carbon_thunk.decl(%addr.loc23_38.1, %.loc23_41.2, %addr.loc23_38.2) // CHECK:STDOUT: %.loc23_38.2: init %C to %.loc23_38.1 = mark_in_place_init %operator_GreaterGreater__carbon_thunk.call // CHECK:STDOUT: %.loc23_30: type = splice_block %C.ref.loc23 [concrete = constants.%C] { @@ -1686,49 +1686,49 @@ fn F() { // CHECK:STDOUT: %c2.ref.loc26: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc26_9.1: %C = acquire_value %c2.ref.loc26 // CHECK:STDOUT: %.loc26_9.2: ref %C = value_as_ref %.loc26_9.1 -// CHECK:STDOUT: %addr.loc26: %ptr.dbb = addr_of %.loc26_9.2 +// CHECK:STDOUT: %addr.loc26: %ptr.3a8 = addr_of %.loc26_9.2 // CHECK:STDOUT: %operator_PlusEqual__carbon_thunk.call: ref %C = call imports.%operator_PlusEqual__carbon_thunk.decl(%c1.ref.loc26, %addr.loc26) // CHECK:STDOUT: %c1.ref.loc27: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc27: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc27_9.1: %C = acquire_value %c2.ref.loc27 // CHECK:STDOUT: %.loc27_9.2: ref %C = value_as_ref %.loc27_9.1 -// CHECK:STDOUT: %addr.loc27: %ptr.dbb = addr_of %.loc27_9.2 +// CHECK:STDOUT: %addr.loc27: %ptr.3a8 = addr_of %.loc27_9.2 // CHECK:STDOUT: %operator_MinusEqual__carbon_thunk.call: ref %C = call imports.%operator_MinusEqual__carbon_thunk.decl(%c1.ref.loc27, %addr.loc27) // CHECK:STDOUT: %c1.ref.loc28: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc28: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc28_9.1: %C = acquire_value %c2.ref.loc28 // CHECK:STDOUT: %.loc28_9.2: ref %C = value_as_ref %.loc28_9.1 -// CHECK:STDOUT: %addr.loc28: %ptr.dbb = addr_of %.loc28_9.2 +// CHECK:STDOUT: %addr.loc28: %ptr.3a8 = addr_of %.loc28_9.2 // CHECK:STDOUT: %operator_StarEqual__carbon_thunk.call: ref %C = call imports.%operator_StarEqual__carbon_thunk.decl(%c1.ref.loc28, %addr.loc28) // CHECK:STDOUT: %c1.ref.loc29: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc29: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc29_9.1: %C = acquire_value %c2.ref.loc29 // CHECK:STDOUT: %.loc29_9.2: ref %C = value_as_ref %.loc29_9.1 -// CHECK:STDOUT: %addr.loc29: %ptr.dbb = addr_of %.loc29_9.2 +// CHECK:STDOUT: %addr.loc29: %ptr.3a8 = addr_of %.loc29_9.2 // CHECK:STDOUT: %operator_SlashEqual__carbon_thunk.call: ref %C = call imports.%operator_SlashEqual__carbon_thunk.decl(%c1.ref.loc29, %addr.loc29) // CHECK:STDOUT: %c1.ref.loc30: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc30: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc30_9.1: %C = acquire_value %c2.ref.loc30 // CHECK:STDOUT: %.loc30_9.2: ref %C = value_as_ref %.loc30_9.1 -// CHECK:STDOUT: %addr.loc30: %ptr.dbb = addr_of %.loc30_9.2 +// CHECK:STDOUT: %addr.loc30: %ptr.3a8 = addr_of %.loc30_9.2 // CHECK:STDOUT: %operator_PercentEqual__carbon_thunk.call: ref %C = call imports.%operator_PercentEqual__carbon_thunk.decl(%c1.ref.loc30, %addr.loc30) // CHECK:STDOUT: %c1.ref.loc33: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc33: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc33_9.1: %C = acquire_value %c2.ref.loc33 // CHECK:STDOUT: %.loc33_9.2: ref %C = value_as_ref %.loc33_9.1 -// CHECK:STDOUT: %addr.loc33: %ptr.dbb = addr_of %.loc33_9.2 +// CHECK:STDOUT: %addr.loc33: %ptr.3a8 = addr_of %.loc33_9.2 // CHECK:STDOUT: %operator_AmpEqual__carbon_thunk.call: ref %C = call imports.%operator_AmpEqual__carbon_thunk.decl(%c1.ref.loc33, %addr.loc33) // CHECK:STDOUT: %c1.ref.loc34: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc34: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc34_9.1: %C = acquire_value %c2.ref.loc34 // CHECK:STDOUT: %.loc34_9.2: ref %C = value_as_ref %.loc34_9.1 -// CHECK:STDOUT: %addr.loc34: %ptr.dbb = addr_of %.loc34_9.2 +// CHECK:STDOUT: %addr.loc34: %ptr.3a8 = addr_of %.loc34_9.2 // CHECK:STDOUT: %operator_PipeEqual__carbon_thunk.call: ref %C = call imports.%operator_PipeEqual__carbon_thunk.decl(%c1.ref.loc34, %addr.loc34) // CHECK:STDOUT: %c1.ref.loc35: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc35: ref %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc35_9.1: %C = acquire_value %c2.ref.loc35 // CHECK:STDOUT: %.loc35_9.2: ref %C = value_as_ref %.loc35_9.1 -// CHECK:STDOUT: %addr.loc35: %ptr.dbb = addr_of %.loc35_9.2 +// CHECK:STDOUT: %addr.loc35: %ptr.3a8 = addr_of %.loc35_9.2 // CHECK:STDOUT: %operator_CaretEqual__carbon_thunk.call: ref %C = call imports.%operator_CaretEqual__carbon_thunk.decl(%c1.ref.loc35, %addr.loc35) // CHECK:STDOUT: %c1.ref.loc36: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %int_3.loc36: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] @@ -1758,9 +1758,9 @@ fn F() { // CHECK:STDOUT: %.loc40_28.1: %C = acquire_value %c1.ref.loc40 // CHECK:STDOUT: %.loc40_34.1: %C = acquire_value %c2.ref.loc40 // CHECK:STDOUT: %.loc40_28.2: ref %C = value_as_ref %.loc40_28.1 -// CHECK:STDOUT: %addr.loc40_31.1: %ptr.dbb = addr_of %.loc40_28.2 +// CHECK:STDOUT: %addr.loc40_31.1: %ptr.3a8 = addr_of %.loc40_28.2 // CHECK:STDOUT: %.loc40_34.2: ref %C = value_as_ref %.loc40_34.1 -// CHECK:STDOUT: %addr.loc40_31.2: %ptr.dbb = addr_of %.loc40_34.2 +// CHECK:STDOUT: %addr.loc40_31.2: %ptr.3a8 = addr_of %.loc40_34.2 // CHECK:STDOUT: %.loc40_31.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc40_31.3: %ptr.bb2 = addr_of %.loc40_31.1 // CHECK:STDOUT: %operator_EqualEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_EqualEqual__carbon_thunk.decl(%addr.loc40_31.1, %addr.loc40_31.2, %addr.loc40_31.3) @@ -1777,9 +1777,9 @@ fn F() { // CHECK:STDOUT: %.loc41_32.1: %C = acquire_value %c1.ref.loc41 // CHECK:STDOUT: %.loc41_38.1: %C = acquire_value %c2.ref.loc41 // CHECK:STDOUT: %.loc41_32.2: ref %C = value_as_ref %.loc41_32.1 -// CHECK:STDOUT: %addr.loc41_35.1: %ptr.dbb = addr_of %.loc41_32.2 +// CHECK:STDOUT: %addr.loc41_35.1: %ptr.3a8 = addr_of %.loc41_32.2 // CHECK:STDOUT: %.loc41_38.2: ref %C = value_as_ref %.loc41_38.1 -// CHECK:STDOUT: %addr.loc41_35.2: %ptr.dbb = addr_of %.loc41_38.2 +// CHECK:STDOUT: %addr.loc41_35.2: %ptr.3a8 = addr_of %.loc41_38.2 // CHECK:STDOUT: %.loc41_35.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc41_35.3: %ptr.bb2 = addr_of %.loc41_35.1 // CHECK:STDOUT: %operator_ExclaimEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_ExclaimEqual__carbon_thunk.decl(%addr.loc41_35.1, %addr.loc41_35.2, %addr.loc41_35.3) @@ -1796,9 +1796,9 @@ fn F() { // CHECK:STDOUT: %.loc42_35.1: %C = acquire_value %c1.ref.loc42 // CHECK:STDOUT: %.loc42_40.1: %C = acquire_value %c2.ref.loc42 // CHECK:STDOUT: %.loc42_35.2: ref %C = value_as_ref %.loc42_35.1 -// CHECK:STDOUT: %addr.loc42_38.1: %ptr.dbb = addr_of %.loc42_35.2 +// CHECK:STDOUT: %addr.loc42_38.1: %ptr.3a8 = addr_of %.loc42_35.2 // CHECK:STDOUT: %.loc42_40.2: ref %C = value_as_ref %.loc42_40.1 -// CHECK:STDOUT: %addr.loc42_38.2: %ptr.dbb = addr_of %.loc42_40.2 +// CHECK:STDOUT: %addr.loc42_38.2: %ptr.3a8 = addr_of %.loc42_40.2 // CHECK:STDOUT: %.loc42_38.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc42_38.3: %ptr.bb2 = addr_of %.loc42_38.1 // CHECK:STDOUT: %operator_Greater__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Greater__carbon_thunk.decl(%addr.loc42_38.1, %addr.loc42_38.2, %addr.loc42_38.3) @@ -1815,9 +1815,9 @@ fn F() { // CHECK:STDOUT: %.loc43_32.1: %C = acquire_value %c1.ref.loc43 // CHECK:STDOUT: %.loc43_37.1: %C = acquire_value %c2.ref.loc43 // CHECK:STDOUT: %.loc43_32.2: ref %C = value_as_ref %.loc43_32.1 -// CHECK:STDOUT: %addr.loc43_35.1: %ptr.dbb = addr_of %.loc43_32.2 +// CHECK:STDOUT: %addr.loc43_35.1: %ptr.3a8 = addr_of %.loc43_32.2 // CHECK:STDOUT: %.loc43_37.2: ref %C = value_as_ref %.loc43_37.1 -// CHECK:STDOUT: %addr.loc43_35.2: %ptr.dbb = addr_of %.loc43_37.2 +// CHECK:STDOUT: %addr.loc43_35.2: %ptr.3a8 = addr_of %.loc43_37.2 // CHECK:STDOUT: %.loc43_35.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc43_35.3: %ptr.bb2 = addr_of %.loc43_35.1 // CHECK:STDOUT: %operator_Less__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Less__carbon_thunk.decl(%addr.loc43_35.1, %addr.loc43_35.2, %addr.loc43_35.3) @@ -1834,9 +1834,9 @@ fn F() { // CHECK:STDOUT: %.loc44_44.1: %C = acquire_value %c1.ref.loc44 // CHECK:STDOUT: %.loc44_50.1: %C = acquire_value %c2.ref.loc44 // CHECK:STDOUT: %.loc44_44.2: ref %C = value_as_ref %.loc44_44.1 -// CHECK:STDOUT: %addr.loc44_47.1: %ptr.dbb = addr_of %.loc44_44.2 +// CHECK:STDOUT: %addr.loc44_47.1: %ptr.3a8 = addr_of %.loc44_44.2 // CHECK:STDOUT: %.loc44_50.2: ref %C = value_as_ref %.loc44_50.1 -// CHECK:STDOUT: %addr.loc44_47.2: %ptr.dbb = addr_of %.loc44_50.2 +// CHECK:STDOUT: %addr.loc44_47.2: %ptr.3a8 = addr_of %.loc44_50.2 // CHECK:STDOUT: %.loc44_47.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc44_47.3: %ptr.bb2 = addr_of %.loc44_47.1 // CHECK:STDOUT: %operator_GreaterEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_GreaterEqual__carbon_thunk.decl(%addr.loc44_47.1, %addr.loc44_47.2, %addr.loc44_47.3) @@ -1853,9 +1853,9 @@ fn F() { // CHECK:STDOUT: %.loc45_41.1: %C = acquire_value %c1.ref.loc45 // CHECK:STDOUT: %.loc45_47.1: %C = acquire_value %c2.ref.loc45 // CHECK:STDOUT: %.loc45_41.2: ref %C = value_as_ref %.loc45_41.1 -// CHECK:STDOUT: %addr.loc45_44.1: %ptr.dbb = addr_of %.loc45_41.2 +// CHECK:STDOUT: %addr.loc45_44.1: %ptr.3a8 = addr_of %.loc45_41.2 // CHECK:STDOUT: %.loc45_47.2: ref %C = value_as_ref %.loc45_47.1 -// CHECK:STDOUT: %addr.loc45_44.2: %ptr.dbb = addr_of %.loc45_47.2 +// CHECK:STDOUT: %addr.loc45_44.2: %ptr.3a8 = addr_of %.loc45_47.2 // CHECK:STDOUT: %.loc45_44.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc45_44.3: %ptr.bb2 = addr_of %.loc45_44.1 // CHECK:STDOUT: %operator_LessEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_LessEqual__carbon_thunk.decl(%addr.loc45_44.1, %addr.loc45_44.2, %addr.loc45_44.3) @@ -1953,10 +1953,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -1994,13 +1994,13 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_27.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_27.1 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_27.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_27.2: init %C to %.loc8_27.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_14: type = splice_block %C.ref.loc8_14 [concrete = constants.%C] { @@ -2011,13 +2011,13 @@ fn F() { // CHECK:STDOUT: %.loc8_27.4: %C = acquire_value %.loc8_27.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_27.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_27.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %.loc9_27.1 +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_27.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_27.2: init %C to %.loc9_27.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_14: type = splice_block %C.ref.loc9_14 [concrete = constants.%C] { @@ -2028,16 +2028,16 @@ fn F() { // CHECK:STDOUT: %.loc9_27.4: %C = acquire_value %.loc9_27.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_27.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.a00 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.479 = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc10: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_22.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_19: ref %C = value_as_ref %c1.ref.loc10 -// CHECK:STDOUT: %addr.loc10_22.1: %ptr.dbb = addr_of %.loc10_19 +// CHECK:STDOUT: %addr.loc10_22.1: %ptr.3a8 = addr_of %.loc10_19 // CHECK:STDOUT: %.loc10_24: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_22.2: %ptr.dbb = addr_of %.loc10_24 -// CHECK:STDOUT: %addr.loc10_22.3: %ptr.dbb = addr_of %.loc10_22.1 +// CHECK:STDOUT: %addr.loc10_22.2: %ptr.3a8 = addr_of %.loc10_24 +// CHECK:STDOUT: %addr.loc10_22.3: %ptr.3a8 = addr_of %.loc10_22.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_22.1, %addr.loc10_22.2, %addr.loc10_22.3) // CHECK:STDOUT: %.loc10_22.2: init %C to %.loc10_22.1 = mark_in_place_init %operator_Plus__carbon_thunk.call.loc10 // CHECK:STDOUT: %.loc10_14: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -2048,16 +2048,16 @@ fn F() { // CHECK:STDOUT: %.loc10_22.4: %C = acquire_value %.loc10_22.3 // CHECK:STDOUT: %c3: %C = value_binding c3, %.loc10_22.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c4.patt: %pattern_type.a00 = value_binding_pattern c4 [concrete] +// CHECK:STDOUT: %c4.patt: %pattern_type.479 = value_binding_pattern c4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc11: %C = name_ref c1, %c1 // CHECK:STDOUT: %c3.ref.loc11: %C = name_ref c3, %c3 // CHECK:STDOUT: %.loc11_22.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc11_19: ref %C = value_as_ref %c1.ref.loc11 -// CHECK:STDOUT: %addr.loc11_22.1: %ptr.dbb = addr_of %.loc11_19 +// CHECK:STDOUT: %addr.loc11_22.1: %ptr.3a8 = addr_of %.loc11_19 // CHECK:STDOUT: %.loc11_24: ref %C = value_as_ref %c3.ref.loc11 -// CHECK:STDOUT: %addr.loc11_22.2: %ptr.dbb = addr_of %.loc11_24 -// CHECK:STDOUT: %addr.loc11_22.3: %ptr.dbb = addr_of %.loc11_22.1 +// CHECK:STDOUT: %addr.loc11_22.2: %ptr.3a8 = addr_of %.loc11_24 +// CHECK:STDOUT: %addr.loc11_22.3: %ptr.3a8 = addr_of %.loc11_22.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc11_22.1, %addr.loc11_22.2, %addr.loc11_22.3) // CHECK:STDOUT: %.loc11_22.2: init %C to %.loc11_22.1 = mark_in_place_init %operator_Plus__carbon_thunk.call.loc11 // CHECK:STDOUT: %.loc11_14: type = splice_block %C.ref.loc11 [concrete = constants.%C] { @@ -2068,16 +2068,16 @@ fn F() { // CHECK:STDOUT: %.loc11_22.4: %C = acquire_value %.loc11_22.3 // CHECK:STDOUT: %c4: %C = value_binding c4, %.loc11_22.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c5.patt: %pattern_type.a00 = value_binding_pattern c5 [concrete] +// CHECK:STDOUT: %c5.patt: %pattern_type.479 = value_binding_pattern c5 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c4.ref: %C = name_ref c4, %c4 // CHECK:STDOUT: %c3.ref.loc12: %C = name_ref c3, %c3 // CHECK:STDOUT: %.loc12_29.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc12_26: ref %C = value_as_ref %c4.ref -// CHECK:STDOUT: %addr.loc12_29.1: %ptr.dbb = addr_of %.loc12_26 +// CHECK:STDOUT: %addr.loc12_29.1: %ptr.3a8 = addr_of %.loc12_26 // CHECK:STDOUT: %.loc12_31: ref %C = value_as_ref %c3.ref.loc12 -// CHECK:STDOUT: %addr.loc12_29.2: %ptr.dbb = addr_of %.loc12_31 -// CHECK:STDOUT: %addr.loc12_29.3: %ptr.dbb = addr_of %.loc12_29.1 +// CHECK:STDOUT: %addr.loc12_29.2: %ptr.3a8 = addr_of %.loc12_31 +// CHECK:STDOUT: %addr.loc12_29.3: %ptr.3a8 = addr_of %.loc12_29.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc12_29.1, %addr.loc12_29.2, %addr.loc12_29.3) // CHECK:STDOUT: %.loc12_29.2: init %C to %.loc12_29.1 = mark_in_place_init %operator_Plus__carbon_thunk.call.loc12 // CHECK:STDOUT: %.loc12_21: type = splice_block %C.ref.loc12 [concrete = constants.%C] { @@ -2116,10 +2116,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %pattern_type.831: type = pattern_type bool [concrete] @@ -2168,15 +2168,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.a00 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc15_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc15_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc15_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc15_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc15: %ptr.dbb = addr_of %.loc15_3 +// CHECK:STDOUT: %addr.loc15: %ptr.3a8 = addr_of %.loc15_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc15: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc15) // CHECK:STDOUT: %.loc15_27: init %C to %.loc15_3 = mark_in_place_init %C__carbon_thunk.call.loc15 // CHECK:STDOUT: assign %c1.var, %.loc15_27 @@ -2186,15 +2186,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.a00 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc16_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc16_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc16_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc16_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc16: %ptr.dbb = addr_of %.loc16_3 +// CHECK:STDOUT: %addr.loc16: %ptr.3a8 = addr_of %.loc16_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc16) // CHECK:STDOUT: %.loc16_27: init %C to %.loc16_3 = mark_in_place_init %C__carbon_thunk.call.loc16 // CHECK:STDOUT: assign %c2.var, %.loc16_27 @@ -2211,9 +2211,9 @@ fn F() { // CHECK:STDOUT: %.loc19_35.1: %C = acquire_value %c1.ref.loc19 // CHECK:STDOUT: %.loc19_40.1: %C = acquire_value %c2.ref.loc19 // CHECK:STDOUT: %.loc19_35.2: ref %C = value_as_ref %.loc19_35.1 -// CHECK:STDOUT: %addr.loc19_38.1: %ptr.dbb = addr_of %.loc19_35.2 +// CHECK:STDOUT: %addr.loc19_38.1: %ptr.3a8 = addr_of %.loc19_35.2 // CHECK:STDOUT: %.loc19_40.2: ref %C = value_as_ref %.loc19_40.1 -// CHECK:STDOUT: %addr.loc19_38.2: %ptr.dbb = addr_of %.loc19_40.2 +// CHECK:STDOUT: %addr.loc19_38.2: %ptr.3a8 = addr_of %.loc19_40.2 // CHECK:STDOUT: %.loc19_38.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc19_38.3: %ptr.bb2 = addr_of %.loc19_38.1 // CHECK:STDOUT: %operator_Greater__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Greater__carbon_thunk.decl(%addr.loc19_38.1, %addr.loc19_38.2, %addr.loc19_38.3) @@ -2244,9 +2244,9 @@ fn F() { // CHECK:STDOUT: %.loc36_41.1: %C = acquire_value %c1.ref.loc36 // CHECK:STDOUT: %.loc36_47.1: %C = acquire_value %c2.ref.loc36 // CHECK:STDOUT: %.loc36_41.2: ref %C = value_as_ref %.loc36_41.1 -// CHECK:STDOUT: %addr.loc36_44.1: %ptr.dbb = addr_of %.loc36_41.2 +// CHECK:STDOUT: %addr.loc36_44.1: %ptr.3a8 = addr_of %.loc36_41.2 // CHECK:STDOUT: %.loc36_47.2: ref %C = value_as_ref %.loc36_47.1 -// CHECK:STDOUT: %addr.loc36_44.2: %ptr.dbb = addr_of %.loc36_47.2 +// CHECK:STDOUT: %addr.loc36_44.2: %ptr.3a8 = addr_of %.loc36_47.2 // CHECK:STDOUT: %.loc36_44.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc36_44.3: %ptr.bb2 = addr_of %.loc36_44.1 // CHECK:STDOUT: %operator_LessEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_LessEqual__carbon_thunk.decl(%addr.loc36_44.1, %addr.loc36_44.2, %addr.loc36_44.3) @@ -2278,10 +2278,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %pattern_type.831: type = pattern_type bool [concrete] @@ -2323,15 +2323,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.a00 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc12_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc12_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc12_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc12_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc12: %ptr.dbb = addr_of %.loc12_3 +// CHECK:STDOUT: %addr.loc12: %ptr.3a8 = addr_of %.loc12_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc12: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc12) // CHECK:STDOUT: %.loc12_27: init %C to %.loc12_3 = mark_in_place_init %C__carbon_thunk.call.loc12 // CHECK:STDOUT: assign %c1.var, %.loc12_27 @@ -2341,15 +2341,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.a00 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %Cpp.ref.loc13_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc13_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc13_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc13_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc13: %ptr.dbb = addr_of %.loc13_3 +// CHECK:STDOUT: %addr.loc13: %ptr.3a8 = addr_of %.loc13_3 // CHECK:STDOUT: %C__carbon_thunk.call.loc13: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc13) // CHECK:STDOUT: %.loc13_27: init %C to %.loc13_3 = mark_in_place_init %C__carbon_thunk.call.loc13 // CHECK:STDOUT: assign %c2.var, %.loc13_27 @@ -2366,9 +2366,9 @@ fn F() { // CHECK:STDOUT: %.loc16_28.1: %C = acquire_value %c1.ref.loc16 // CHECK:STDOUT: %.loc16_34.1: %C = acquire_value %c2.ref.loc16 // CHECK:STDOUT: %.loc16_28.2: ref %C = value_as_ref %.loc16_28.1 -// CHECK:STDOUT: %addr.loc16_31.1: %ptr.dbb = addr_of %.loc16_28.2 +// CHECK:STDOUT: %addr.loc16_31.1: %ptr.3a8 = addr_of %.loc16_28.2 // CHECK:STDOUT: %.loc16_34.2: ref %C = value_as_ref %.loc16_34.1 -// CHECK:STDOUT: %addr.loc16_31.2: %ptr.dbb = addr_of %.loc16_34.2 +// CHECK:STDOUT: %addr.loc16_31.2: %ptr.3a8 = addr_of %.loc16_34.2 // CHECK:STDOUT: %.loc16_31.1: ref bool = temporary_storage // CHECK:STDOUT: %addr.loc16_31.3: %ptr.bb2 = addr_of %.loc16_31.1 // CHECK:STDOUT: %operator_EqualEqual__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_EqualEqual__carbon_thunk.decl(%addr.loc16_31.1, %addr.loc16_31.2, %addr.loc16_31.3) @@ -2405,10 +2405,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.8ab: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.908: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.d15: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.58d: 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: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2450,14 +2450,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.8ab = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.908 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc8_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc8_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.d15 = addr_of %.loc8_31.1 +// CHECK:STDOUT: %addr.loc8: %ptr.58d = addr_of %.loc8_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_31.2: init %C to %.loc8_31.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_16: type = splice_block %C.ref.loc8_16 [concrete = constants.%C] { @@ -2469,14 +2469,14 @@ fn F() { // CHECK:STDOUT: %.loc8_31.4: %C = acquire_value %.loc8_31.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.8ab = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.908 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc9_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc9_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.d15 = addr_of %.loc9_31.1 +// CHECK:STDOUT: %addr.loc9: %ptr.58d = addr_of %.loc9_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_31.2: init %C to %.loc9_31.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_16: type = splice_block %C.ref.loc9_16 [concrete = constants.%C] { @@ -2488,16 +2488,16 @@ fn F() { // CHECK:STDOUT: %.loc9_31.4: %C = acquire_value %.loc9_31.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.8ab = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.908 = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_31.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_28: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_31.1: %ptr.d15 = addr_of %.loc10_28 +// CHECK:STDOUT: %addr.loc10_31.1: %ptr.58d = addr_of %.loc10_28 // CHECK:STDOUT: %.loc10_33: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_31.2: %ptr.d15 = addr_of %.loc10_33 -// CHECK:STDOUT: %addr.loc10_31.3: %ptr.d15 = addr_of %.loc10_31.1 +// CHECK:STDOUT: %addr.loc10_31.2: %ptr.58d = addr_of %.loc10_33 +// CHECK:STDOUT: %addr.loc10_31.3: %ptr.58d = addr_of %.loc10_31.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_31.1, %addr.loc10_31.2, %addr.loc10_31.3) // CHECK:STDOUT: %.loc10_31.2: init %C to %.loc10_31.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_23: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -2529,17 +2529,17 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C1: type = class_type @C1 [concrete] -// CHECK:STDOUT: %pattern_type.3aa: type = pattern_type %C1 [concrete] +// CHECK:STDOUT: %pattern_type.c99: type = pattern_type %C1 [concrete] // CHECK:STDOUT: %C1.C1.cpp_overload_set.type: type = cpp_overload_set_type @C1.C1.cpp_overload_set [concrete] // CHECK:STDOUT: %C1.C1.cpp_overload_set.value: %C1.C1.cpp_overload_set.type = cpp_overload_set_value @C1.C1.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.f1e: type = ptr_type %C1 [concrete] +// CHECK:STDOUT: %ptr.4ba: type = ptr_type %C1 [concrete] // CHECK:STDOUT: %C1__carbon_thunk.type: type = fn_type @C1__carbon_thunk [concrete] // CHECK:STDOUT: %C1__carbon_thunk: %C1__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C2: type = class_type @C2 [concrete] -// CHECK:STDOUT: %pattern_type.725: type = pattern_type %C2 [concrete] +// CHECK:STDOUT: %pattern_type.04f: type = pattern_type %C2 [concrete] // CHECK:STDOUT: %C2.C2.cpp_overload_set.type: type = cpp_overload_set_type @C2.C2.cpp_overload_set [concrete] // CHECK:STDOUT: %C2.C2.cpp_overload_set.value: %C2.C2.cpp_overload_set.type = cpp_overload_set_value @C2.C2.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.2ef: type = ptr_type %C2 [concrete] +// CHECK:STDOUT: %ptr.1df: type = ptr_type %C2 [concrete] // CHECK:STDOUT: %C2__carbon_thunk.type: type = fn_type @C2__carbon_thunk [concrete] // CHECK:STDOUT: %C2__carbon_thunk: %C2__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2609,14 +2609,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.3aa = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.c99 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N1.ref.loc8_26: = name_ref N1, imports.%N1 [concrete = imports.%N1] // CHECK:STDOUT: %C1.ref.loc8_29: type = name_ref C1, imports.%C1.decl [concrete = constants.%C1] // CHECK:STDOUT: %C1.ref.loc8_32: %C1.C1.cpp_overload_set.type = name_ref C1, imports.%C1.C1.cpp_overload_set.value [concrete = constants.%C1.C1.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_36.1: ref %C1 = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.f1e = addr_of %.loc8_36.1 +// CHECK:STDOUT: %addr.loc8: %ptr.4ba = addr_of %.loc8_36.1 // CHECK:STDOUT: %C1__carbon_thunk.call: init %empty_tuple.type = call imports.%C1__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_36.2: init %C1 to %.loc8_36.1 = mark_in_place_init %C1__carbon_thunk.call // CHECK:STDOUT: %.loc8_17: type = splice_block %C1.ref.loc8_17 [concrete = constants.%C1] { @@ -2628,14 +2628,14 @@ fn F() { // CHECK:STDOUT: %.loc8_36.4: %C1 = acquire_value %.loc8_36.3 // CHECK:STDOUT: %c1: %C1 = value_binding c1, %.loc8_36.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.725 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.04f = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N2.ref.loc9_26: = name_ref N2, imports.%N2 [concrete = imports.%N2] // CHECK:STDOUT: %C2.ref.loc9_29: type = name_ref C2, imports.%C2.decl [concrete = constants.%C2] // CHECK:STDOUT: %C2.ref.loc9_32: %C2.C2.cpp_overload_set.type = name_ref C2, imports.%C2.C2.cpp_overload_set.value [concrete = constants.%C2.C2.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_36.1: ref %C2 = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.2ef = addr_of %.loc9_36.1 +// CHECK:STDOUT: %addr.loc9: %ptr.1df = addr_of %.loc9_36.1 // CHECK:STDOUT: %C2__carbon_thunk.call: init %empty_tuple.type = call imports.%C2__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_36.2: init %C2 to %.loc9_36.1 = mark_in_place_init %C2__carbon_thunk.call // CHECK:STDOUT: %.loc9_17: type = splice_block %C2.ref.loc9_17 [concrete = constants.%C2] { @@ -2647,16 +2647,16 @@ fn F() { // CHECK:STDOUT: %.loc9_36.4: %C2 = acquire_value %.loc9_36.3 // CHECK:STDOUT: %c2: %C2 = value_binding c2, %.loc9_36.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.725 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.04f = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref.loc10: %C1 = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref.loc10: %C2 = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_33.1: ref %C2 = temporary_storage // CHECK:STDOUT: %.loc10_30: ref %C1 = value_as_ref %c1.ref.loc10 -// CHECK:STDOUT: %addr.loc10_33.1: %ptr.f1e = addr_of %.loc10_30 +// CHECK:STDOUT: %addr.loc10_33.1: %ptr.4ba = addr_of %.loc10_30 // CHECK:STDOUT: %.loc10_35: ref %C2 = value_as_ref %c2.ref.loc10 -// CHECK:STDOUT: %addr.loc10_33.2: %ptr.2ef = addr_of %.loc10_35 -// CHECK:STDOUT: %addr.loc10_33.3: %ptr.2ef = addr_of %.loc10_33.1 +// CHECK:STDOUT: %addr.loc10_33.2: %ptr.1df = addr_of %.loc10_35 +// CHECK:STDOUT: %addr.loc10_33.3: %ptr.1df = addr_of %.loc10_33.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_33.1, %addr.loc10_33.2, %addr.loc10_33.3) // CHECK:STDOUT: %.loc10_33.2: init %C2 to %.loc10_33.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_24: type = splice_block %C2.ref.loc10 [concrete = constants.%C2] { @@ -2668,16 +2668,16 @@ fn F() { // CHECK:STDOUT: %.loc10_33.4: %C2 = acquire_value %.loc10_33.3 // CHECK:STDOUT: %c3: %C2 = value_binding c3, %.loc10_33.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c4.patt: %pattern_type.725 = value_binding_pattern c4 [concrete] +// CHECK:STDOUT: %c4.patt: %pattern_type.04f = value_binding_pattern c4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.ref.loc11: %C2 = name_ref c2, %c2 // CHECK:STDOUT: %c1.ref.loc11: %C1 = name_ref c1, %c1 // CHECK:STDOUT: %.loc11_33.1: ref %C2 = temporary_storage // CHECK:STDOUT: %.loc11_30: ref %C2 = value_as_ref %c2.ref.loc11 -// CHECK:STDOUT: %addr.loc11_33.1: %ptr.2ef = addr_of %.loc11_30 +// CHECK:STDOUT: %addr.loc11_33.1: %ptr.1df = addr_of %.loc11_30 // CHECK:STDOUT: %.loc11_35: ref %C1 = value_as_ref %c1.ref.loc11 -// CHECK:STDOUT: %addr.loc11_33.2: %ptr.f1e = addr_of %.loc11_35 -// CHECK:STDOUT: %addr.loc11_33.3: %ptr.2ef = addr_of %.loc11_33.1 +// CHECK:STDOUT: %addr.loc11_33.2: %ptr.4ba = addr_of %.loc11_35 +// CHECK:STDOUT: %addr.loc11_33.3: %ptr.1df = addr_of %.loc11_33.1 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%addr.loc11_33.1, %addr.loc11_33.2, %addr.loc11_33.3) // CHECK:STDOUT: %.loc11_33.2: init %C2 to %.loc11_33.1 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: %.loc11_24: type = splice_block %C2.ref.loc11 [concrete = constants.%C2] { @@ -2714,10 +2714,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.8ab: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.908: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.d15: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.58d: 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: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -2752,14 +2752,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.8ab = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.908 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc8_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc8_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.d15 = addr_of %.loc8_31.1 +// CHECK:STDOUT: %addr.loc8: %ptr.58d = addr_of %.loc8_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_31.2: init %C to %.loc8_31.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_16: type = splice_block %C.ref.loc8_16 [concrete = constants.%C] { @@ -2771,14 +2771,14 @@ fn F() { // CHECK:STDOUT: %.loc8_31.4: %C = acquire_value %.loc8_31.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.8ab = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.908 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc9_24: = name_ref N, imports.%N [concrete = imports.%N] // CHECK:STDOUT: %C.ref.loc9_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.d15 = addr_of %.loc9_31.1 +// CHECK:STDOUT: %addr.loc9: %ptr.58d = addr_of %.loc9_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_31.2: init %C to %.loc9_31.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_16: type = splice_block %C.ref.loc9_16 [concrete = constants.%C] { @@ -2790,7 +2790,7 @@ fn F() { // CHECK:STDOUT: %.loc9_31.4: %C = acquire_value %.loc9_31.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.8ab = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.908 = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 @@ -2818,10 +2818,10 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %O: type = class_type @O [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.ab7: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.cc2: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.714: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.010: 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: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2860,14 +2860,14 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.ab7 = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.cc2 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %O.ref.loc8_24: type = name_ref O, imports.%O.decl [concrete = constants.%O] // CHECK:STDOUT: %C.ref.loc8_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.714 = addr_of %.loc8_31.1 +// CHECK:STDOUT: %addr.loc8: %ptr.010 = addr_of %.loc8_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_31.2: init %C to %.loc8_31.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_16: type = splice_block %C.ref.loc8_16 [concrete = constants.%C] { @@ -2879,14 +2879,14 @@ fn F() { // CHECK:STDOUT: %.loc8_31.4: %C = acquire_value %.loc8_31.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.ab7 = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.cc2 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_21: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %O.ref.loc9_24: type = name_ref O, imports.%O.decl [concrete = constants.%O] // CHECK:STDOUT: %C.ref.loc9_26: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_28: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_31.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.714 = addr_of %.loc9_31.1 +// CHECK:STDOUT: %addr.loc9: %ptr.010 = addr_of %.loc9_31.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_31.2: init %C to %.loc9_31.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_16: type = splice_block %C.ref.loc9_16 [concrete = constants.%C] { @@ -2898,16 +2898,16 @@ fn F() { // CHECK:STDOUT: %.loc9_31.4: %C = acquire_value %.loc9_31.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_31.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.ab7 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.cc2 = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_31.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_28: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_31.1: %ptr.714 = addr_of %.loc10_28 +// CHECK:STDOUT: %addr.loc10_31.1: %ptr.010 = addr_of %.loc10_28 // CHECK:STDOUT: %.loc10_33: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_31.2: %ptr.714 = addr_of %.loc10_33 -// CHECK:STDOUT: %addr.loc10_31.3: %ptr.714 = addr_of %.loc10_31.1 +// CHECK:STDOUT: %addr.loc10_31.2: %ptr.010 = addr_of %.loc10_33 +// CHECK:STDOUT: %addr.loc10_31.3: %ptr.010 = addr_of %.loc10_31.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_31.1, %addr.loc10_31.2, %addr.loc10_31.3) // CHECK:STDOUT: %.loc10_31.2: init %C to %.loc10_31.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_23: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -2940,10 +2940,10 @@ fn F() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %O: type = class_type @O [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.f0d: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.221: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.788: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.403: 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: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] @@ -2986,7 +2986,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.f0d = value_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.221 = value_binding_pattern c1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc8_26: = name_ref N, imports.%N [concrete = imports.%N] @@ -2994,7 +2994,7 @@ fn F() { // CHECK:STDOUT: %C.ref.loc8_30: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_32: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_35.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc8: %ptr.788 = addr_of %.loc8_35.1 +// CHECK:STDOUT: %addr.loc8: %ptr.403 = addr_of %.loc8_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_35.2: init %C to %.loc8_35.1 = mark_in_place_init %C__carbon_thunk.call.loc8 // CHECK:STDOUT: %.loc8_18: type = splice_block %C.ref.loc8_18 [concrete = constants.%C] { @@ -3007,7 +3007,7 @@ fn F() { // CHECK:STDOUT: %.loc8_35.4: %C = acquire_value %.loc8_35.3 // CHECK:STDOUT: %c1: %C = value_binding c1, %.loc8_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.f0d = value_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.221 = value_binding_pattern c2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_23: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc9_26: = name_ref N, imports.%N [concrete = imports.%N] @@ -3015,7 +3015,7 @@ fn F() { // CHECK:STDOUT: %C.ref.loc9_30: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc9_32: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_35.1: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc9: %ptr.788 = addr_of %.loc9_35.1 +// CHECK:STDOUT: %addr.loc9: %ptr.403 = addr_of %.loc9_35.1 // CHECK:STDOUT: %C__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_35.2: init %C to %.loc9_35.1 = mark_in_place_init %C__carbon_thunk.call.loc9 // CHECK:STDOUT: %.loc9_18: type = splice_block %C.ref.loc9_18 [concrete = constants.%C] { @@ -3028,16 +3028,16 @@ fn F() { // CHECK:STDOUT: %.loc9_35.4: %C = acquire_value %.loc9_35.3 // CHECK:STDOUT: %c2: %C = value_binding c2, %.loc9_35.4 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.f0d = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.221 = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_33.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_30: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_33.1: %ptr.788 = addr_of %.loc10_30 +// CHECK:STDOUT: %addr.loc10_33.1: %ptr.403 = addr_of %.loc10_30 // CHECK:STDOUT: %.loc10_35: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_33.2: %ptr.788 = addr_of %.loc10_35 -// CHECK:STDOUT: %addr.loc10_33.3: %ptr.788 = addr_of %.loc10_33.1 +// CHECK:STDOUT: %addr.loc10_33.2: %ptr.403 = addr_of %.loc10_35 +// CHECK:STDOUT: %addr.loc10_33.3: %ptr.403 = addr_of %.loc10_33.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_33.1, %addr.loc10_33.2, %addr.loc10_33.3) // CHECK:STDOUT: %.loc10_33.2: init %C to %.loc10_33.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_25: type = splice_block %C.ref.loc10 [concrete = constants.%C] { @@ -3070,10 +3070,10 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete] // CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: 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: %C.cpp_operator.type.8beb8d.1: type = fn_type @C.cpp_operator.1 [concrete] @@ -3132,15 +3132,15 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c1.patt: %pattern_type.a00 = ref_binding_pattern c1 [concrete] -// CHECK:STDOUT: %c1.var_patt: %pattern_type.a00 = var_pattern %c1.patt [concrete] +// CHECK:STDOUT: %c1.patt: %pattern_type.479 = ref_binding_pattern c1 [concrete] +// CHECK:STDOUT: %c1.var_patt: %pattern_type.479 = var_pattern %c1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.var: ref %C = var %c1.var_patt // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8_22: type = name_ref C, imports.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc8_24: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c1.var {} -// CHECK:STDOUT: %addr.loc8: %ptr.dbb = addr_of %.loc8_3 +// CHECK:STDOUT: %addr.loc8: %ptr.3a8 = addr_of %.loc8_3 // CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_27: init %C to %.loc8_3 = mark_in_place_init %C__carbon_thunk.call // CHECK:STDOUT: assign %c1.var, %.loc8_27 @@ -3150,14 +3150,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c1: ref %C = ref_binding c1, %c1.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c2.patt: %pattern_type.a00 = ref_binding_pattern c2 [concrete] -// CHECK:STDOUT: %c2.var_patt: %pattern_type.a00 = var_pattern %c2.patt [concrete] +// CHECK:STDOUT: %c2.patt: %pattern_type.479 = ref_binding_pattern c2 [concrete] +// CHECK:STDOUT: %c2.var_patt: %pattern_type.479 = var_pattern %c2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c2.var: ref %C = var %c2.var_patt // CHECK:STDOUT: %c1.ref.loc9: ref %C = name_ref c1, %c1 // CHECK:STDOUT: %C.cpp_operator.bound.loc9: = bound_method %c1.ref.loc9, imports.%C.cpp_operator.decl.092f40.1 // CHECK:STDOUT: %.loc9_3: ref %C = splice_block %c2.var {} -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %.loc9_3 +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %.loc9_3 // CHECK:STDOUT: %operator_Minus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Minus__carbon_thunk.decl(%c1.ref.loc9, %addr.loc9) // CHECK:STDOUT: %.loc9_19: init %C to %.loc9_3 = mark_in_place_init %operator_Minus__carbon_thunk.call // CHECK:STDOUT: assign %c2.var, %.loc9_19 @@ -3167,8 +3167,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %c2: ref %C = ref_binding c2, %c2.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.a00 = ref_binding_pattern c3 [concrete] -// CHECK:STDOUT: %c3.var_patt: %pattern_type.a00 = var_pattern %c3.patt [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.479 = ref_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.var_patt: %pattern_type.479 = var_pattern %c3.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c3.var: ref %C = var %c3.var_patt // CHECK:STDOUT: %c1.ref.loc10: ref %C = name_ref c1, %c1 @@ -3177,8 +3177,8 @@ fn F() { // CHECK:STDOUT: %.loc10_3: ref %C = splice_block %c3.var {} // CHECK:STDOUT: %.loc10_31.1: %C = acquire_value %c2.ref // CHECK:STDOUT: %.loc10_31.2: ref %C = value_as_ref %.loc10_31.1 -// CHECK:STDOUT: %addr.loc10_29.1: %ptr.dbb = addr_of %.loc10_31.2 -// CHECK:STDOUT: %addr.loc10_29.2: %ptr.dbb = addr_of %.loc10_3 +// CHECK:STDOUT: %addr.loc10_29.1: %ptr.3a8 = addr_of %.loc10_31.2 +// CHECK:STDOUT: %addr.loc10_29.2: %ptr.3a8 = addr_of %.loc10_3 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%c1.ref.loc10, %addr.loc10_29.1, %addr.loc10_29.2) // CHECK:STDOUT: %.loc10_29: init %C to %.loc10_3 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: assign %c3.var, %.loc10_29 @@ -3209,7 +3209,7 @@ fn F() { // CHECK:STDOUT: %B: type = class_type @B [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %ptr.13d: type = ptr_type %B [concrete] +// CHECK:STDOUT: %ptr.d5c: type = ptr_type %B [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -3227,9 +3227,9 @@ fn F() { // CHECK:STDOUT: %x.ref.loc14_10: %B = name_ref x, %x // CHECK:STDOUT: %x.ref.loc14_14: %B = name_ref x, %x // CHECK:STDOUT: %.loc14_10: ref %B = value_as_ref %x.ref.loc14_10 -// CHECK:STDOUT: %addr.loc14_12.1: %ptr.13d = addr_of %.loc14_10 +// CHECK:STDOUT: %addr.loc14_12.1: %ptr.d5c = addr_of %.loc14_10 // CHECK:STDOUT: %.loc14_14: ref %B = value_as_ref %x.ref.loc14_14 -// CHECK:STDOUT: %addr.loc14_12.2: %ptr.13d = addr_of %.loc14_14 +// CHECK:STDOUT: %addr.loc14_12.2: %ptr.d5c = addr_of %.loc14_14 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %i32 = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc14_12.1, %addr.loc14_12.2) // CHECK:STDOUT: return %operator_Plus__carbon_thunk.call // CHECK:STDOUT: } @@ -3239,8 +3239,8 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk.type: type = fn_type @operator_Plus__carbon_thunk [concrete] // CHECK:STDOUT: %operator_Plus__carbon_thunk: %operator_Plus__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] @@ -3271,16 +3271,16 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c3.patt: %pattern_type.a00 = value_binding_pattern c3 [concrete] +// CHECK:STDOUT: %c3.patt: %pattern_type.479 = value_binding_pattern c3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c1.ref: %C = name_ref c1, %c1 // CHECK:STDOUT: %c2.ref: %C = name_ref c2, %c2 // CHECK:STDOUT: %.loc10_29.1: ref %C = temporary_storage // CHECK:STDOUT: %.loc10_26: ref %C = value_as_ref %c1.ref -// CHECK:STDOUT: %addr.loc10_29.1: %ptr.dbb = addr_of %.loc10_26 +// CHECK:STDOUT: %addr.loc10_29.1: %ptr.3a8 = addr_of %.loc10_26 // CHECK:STDOUT: %.loc10_31: ref %C = value_as_ref %c2.ref -// CHECK:STDOUT: %addr.loc10_29.2: %ptr.dbb = addr_of %.loc10_31 -// CHECK:STDOUT: %addr.loc10_29.3: %ptr.dbb = addr_of %.loc10_29.1 +// CHECK:STDOUT: %addr.loc10_29.2: %ptr.3a8 = addr_of %.loc10_31 +// CHECK:STDOUT: %addr.loc10_29.3: %ptr.3a8 = addr_of %.loc10_29.1 // CHECK:STDOUT: %operator_Plus__carbon_thunk.call: init %empty_tuple.type = call imports.%operator_Plus__carbon_thunk.decl(%addr.loc10_29.1, %addr.loc10_29.2, %addr.loc10_29.3) // CHECK:STDOUT: %.loc10_29.2: init %C to %.loc10_29.1 = mark_in_place_init %operator_Plus__carbon_thunk.call // CHECK:STDOUT: %.loc10_21: type = splice_block %C.ref.loc10 [concrete = constants.%C] { diff --git a/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon b/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon index f98725d76213..c61367055e2a 100644 --- a/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/ordered_with.carbon @@ -439,15 +439,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %impl.elem3: %.137 = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] // CHECK:STDOUT: %specific_impl_fn.261: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T) [symbolic] // CHECK:STDOUT: %Ordered: type = class_type @Ordered [concrete] -// CHECK:STDOUT: %pattern_type.cc8: type = pattern_type %Ordered [concrete] +// CHECK:STDOUT: %pattern_type.56a: type = pattern_type %Ordered [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %OrderedWith.type.e20: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Ordered)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.78b: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] -// CHECK:STDOUT: %assoc0.1de: %OrderedWith.assoc_type.78b = assoc_entity element0, imports.%Core.import_ref.250 [concrete] -// CHECK:STDOUT: %assoc1.117: %OrderedWith.assoc_type.78b = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] -// CHECK:STDOUT: %assoc2.4c9: %OrderedWith.assoc_type.78b = assoc_entity element2, imports.%Core.import_ref.ece [concrete] -// CHECK:STDOUT: %assoc3.210: %OrderedWith.assoc_type.78b = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] +// CHECK:STDOUT: %OrderedWith.type.ef0: type = facet_type <@OrderedWith.1, @OrderedWith.1(%Ordered)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.298: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] +// CHECK:STDOUT: %assoc0.0d2: %OrderedWith.assoc_type.298 = assoc_entity element0, imports.%Core.import_ref.250 [concrete] +// CHECK:STDOUT: %assoc1.d8d: %OrderedWith.assoc_type.298 = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] +// CHECK:STDOUT: %assoc2.1b7: %OrderedWith.assoc_type.298 = assoc_entity element2, imports.%Core.import_ref.ece [concrete] +// CHECK:STDOUT: %assoc3.1e4: %OrderedWith.assoc_type.298 = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] // CHECK:STDOUT: %Ordered.Less.type: type = fn_type @Ordered.Less [concrete] // CHECK:STDOUT: %Ordered.Less: %Ordered.Less.type = struct_value () [concrete] // CHECK:STDOUT: %Ordered.LessOrEquivalent.type: type = fn_type @Ordered.LessOrEquivalent [concrete] @@ -456,18 +456,18 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %Ordered.Greater: %Ordered.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %Ordered.GreaterOrEquivalent.type: type = fn_type @Ordered.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %Ordered.GreaterOrEquivalent: %Ordered.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.13d: = custom_witness (%Ordered.Less, %Ordered.LessOrEquivalent, %Ordered.Greater, %Ordered.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.8a0: %OrderedWith.type.e20 = facet_value %Ordered, (%custom_witness.13d) [concrete] -// CHECK:STDOUT: %pattern_type.a62: type = pattern_type %OrderedWith.type.e20 [concrete] -// CHECK:STDOUT: %complete_type.051: = complete_type_witness %OrderedWith.type.e20 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b67: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %.0b2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.b67, %OrderedWith.facet.8a0 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.e10: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %.61a: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.e10, %OrderedWith.facet.8a0 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.c7f: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %.f88: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.c7f, %OrderedWith.facet.8a0 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.c39: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %.20a: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.c39, %OrderedWith.facet.8a0 [concrete] +// CHECK:STDOUT: %custom_witness.99d: = custom_witness (%Ordered.Less, %Ordered.LessOrEquivalent, %Ordered.Greater, %Ordered.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%Ordered) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.0d3: %OrderedWith.type.ef0 = facet_value %Ordered, (%custom_witness.99d) [concrete] +// CHECK:STDOUT: %pattern_type.432: type = pattern_type %OrderedWith.type.ef0 [concrete] +// CHECK:STDOUT: %complete_type.831: = complete_type_witness %OrderedWith.type.ef0 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.d4c: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.0d3) [concrete] +// CHECK:STDOUT: %.2f2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.d4c, %OrderedWith.facet.0d3 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.e37: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.0d3) [concrete] +// CHECK:STDOUT: %.bcc: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.e37, %OrderedWith.facet.0d3 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.2d4: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.0d3) [concrete] +// CHECK:STDOUT: %.287: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.2d4, %OrderedWith.facet.0d3 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.589: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Ordered, %OrderedWith.facet.0d3) [concrete] +// CHECK:STDOUT: %.e4e: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.589, %OrderedWith.facet.0d3 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -570,39 +570,39 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc13(constants.%Ordered, constants.%OrderedWith.facet.8a0) { +// CHECK:STDOUT: specific @OrderedWith.loc13(constants.%Ordered, constants.%OrderedWith.facet.0d3) { // CHECK:STDOUT: %U.loc13_17.1 => constants.%Ordered -// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.e20 -// CHECK:STDOUT: %T.loc13_27.1 => constants.%OrderedWith.facet.8a0 -// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.a62 +// CHECK:STDOUT: %OrderedWith.type.loc13_48.1 => constants.%OrderedWith.type.ef0 +// CHECK:STDOUT: %T.loc13_27.1 => constants.%OrderedWith.facet.0d3 +// CHECK:STDOUT: %pattern_type.loc13_27 => constants.%pattern_type.432 // CHECK:STDOUT: %T.as_type.loc13_54.1 => constants.%Ordered -// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.cc8 -// CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.cc8 +// CHECK:STDOUT: %pattern_type.loc13_52 => constants.%pattern_type.56a +// CHECK:STDOUT: %pattern_type.loc13_58 => constants.%pattern_type.56a // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc13_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc13_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc15 => constants.%complete_type.051 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.78b -// CHECK:STDOUT: %assoc0 => constants.%assoc0.1de -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.b67 -// CHECK:STDOUT: %.loc15_5.2 => constants.%.0b2 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.13d +// CHECK:STDOUT: %require_complete.loc15 => constants.%complete_type.831 +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.298 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.0d2 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.d4c +// CHECK:STDOUT: %.loc15_5.2 => constants.%.2f2 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.99d // CHECK:STDOUT: %impl.elem0.loc15_5.2 => constants.%Ordered.Less // CHECK:STDOUT: %specific_impl_fn.loc15_5.2 => constants.%Ordered.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.117 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.e10 -// CHECK:STDOUT: %.loc16_5.2 => constants.%.61a +// CHECK:STDOUT: %assoc1 => constants.%assoc1.d8d +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.e37 +// CHECK:STDOUT: %.loc16_5.2 => constants.%.bcc // CHECK:STDOUT: %impl.elem1.loc16_5.2 => constants.%Ordered.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc16_5.2 => constants.%Ordered.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.4c9 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.c7f -// CHECK:STDOUT: %.loc17_5.2 => constants.%.f88 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.1b7 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.2d4 +// CHECK:STDOUT: %.loc17_5.2 => constants.%.287 // CHECK:STDOUT: %impl.elem2.loc17_5.2 => constants.%Ordered.Greater // CHECK:STDOUT: %specific_impl_fn.loc17_5.2 => constants.%Ordered.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.210 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.c39 -// CHECK:STDOUT: %.loc18_5.2 => constants.%.20a +// CHECK:STDOUT: %assoc3 => constants.%assoc3.1e4 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.589 +// CHECK:STDOUT: %.loc18_5.2 => constants.%.e4e // CHECK:STDOUT: %impl.elem3.loc18_5.2 => constants.%Ordered.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc18_5.2 => constants.%Ordered.GreaterOrEquivalent // CHECK:STDOUT: } @@ -657,25 +657,25 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %impl.elem3: %.137 = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] // CHECK:STDOUT: %specific_impl_fn.261: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T) [symbolic] // CHECK:STDOUT: %A1: type = class_type @A1 [concrete] -// CHECK:STDOUT: %pattern_type.489: type = pattern_type %A1 [concrete] +// CHECK:STDOUT: %pattern_type.c8a: type = pattern_type %A1 [concrete] // CHECK:STDOUT: %B1: type = class_type @B1 [concrete] -// CHECK:STDOUT: %pattern_type.278: type = pattern_type %B1 [concrete] +// CHECK:STDOUT: %pattern_type.e62: type = pattern_type %B1 [concrete] // CHECK:STDOUT: %A2: type = class_type @A2 [concrete] -// CHECK:STDOUT: %pattern_type.914: type = pattern_type %A2 [concrete] +// CHECK:STDOUT: %pattern_type.1e3: type = pattern_type %A2 [concrete] // CHECK:STDOUT: %B2: type = class_type @B2 [concrete] -// CHECK:STDOUT: %pattern_type.6a4: type = pattern_type %B2 [concrete] +// CHECK:STDOUT: %pattern_type.fab: type = pattern_type %B2 [concrete] // CHECK:STDOUT: %A3: type = class_type @A3 [concrete] -// CHECK:STDOUT: %pattern_type.e08: type = pattern_type %A3 [concrete] +// CHECK:STDOUT: %pattern_type.ada: type = pattern_type %A3 [concrete] // CHECK:STDOUT: %B3: type = class_type @B3 [concrete] -// CHECK:STDOUT: %pattern_type.18a: type = pattern_type %B3 [concrete] +// CHECK:STDOUT: %pattern_type.a20: type = pattern_type %B3 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %OrderedWith.type.848: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B1)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.d2f: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B1) [concrete] -// CHECK:STDOUT: %assoc0.5f5: %OrderedWith.assoc_type.d2f = assoc_entity element0, imports.%Core.import_ref.250 [concrete] -// CHECK:STDOUT: %assoc1.dd5: %OrderedWith.assoc_type.d2f = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] -// CHECK:STDOUT: %assoc2.198: %OrderedWith.assoc_type.d2f = assoc_entity element2, imports.%Core.import_ref.ece [concrete] -// CHECK:STDOUT: %assoc3.40e: %OrderedWith.assoc_type.d2f = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] +// CHECK:STDOUT: %OrderedWith.type.e85: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B1)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.46d: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B1) [concrete] +// CHECK:STDOUT: %assoc0.074: %OrderedWith.assoc_type.46d = assoc_entity element0, imports.%Core.import_ref.250 [concrete] +// CHECK:STDOUT: %assoc1.b94: %OrderedWith.assoc_type.46d = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] +// CHECK:STDOUT: %assoc2.085: %OrderedWith.assoc_type.46d = assoc_entity element2, imports.%Core.import_ref.ece [concrete] +// CHECK:STDOUT: %assoc3.426: %OrderedWith.assoc_type.46d = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] // CHECK:STDOUT: %A1.Less.type: type = fn_type @A1.Less [concrete] // CHECK:STDOUT: %A1.Less: %A1.Less.type = struct_value () [concrete] // CHECK:STDOUT: %A1.LessOrEquivalent.type: type = fn_type @A1.LessOrEquivalent [concrete] @@ -684,15 +684,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %A1.Greater: %A1.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %A1.GreaterOrEquivalent.type: type = fn_type @A1.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %A1.GreaterOrEquivalent: %A1.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.61b: = custom_witness (%A1.Less, %A1.LessOrEquivalent, %A1.Greater, %A1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B1) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.0b6: %OrderedWith.type.848 = facet_value %A1, (%custom_witness.61b) [concrete] -// CHECK:STDOUT: %pattern_type.b8e: type = pattern_type %OrderedWith.type.848 [concrete] -// CHECK:STDOUT: %OrderedWith.type.3fd: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A1)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.753: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A1) [concrete] -// CHECK:STDOUT: %assoc0.48a: %OrderedWith.assoc_type.753 = assoc_entity element0, imports.%Core.import_ref.250 [concrete] -// CHECK:STDOUT: %assoc1.af7: %OrderedWith.assoc_type.753 = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] -// CHECK:STDOUT: %assoc2.b59: %OrderedWith.assoc_type.753 = assoc_entity element2, imports.%Core.import_ref.ece [concrete] -// CHECK:STDOUT: %assoc3.859: %OrderedWith.assoc_type.753 = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] +// CHECK:STDOUT: %custom_witness.ca6: = custom_witness (%A1.Less, %A1.LessOrEquivalent, %A1.Greater, %A1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B1) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.97c: %OrderedWith.type.e85 = facet_value %A1, (%custom_witness.ca6) [concrete] +// CHECK:STDOUT: %pattern_type.187: type = pattern_type %OrderedWith.type.e85 [concrete] +// CHECK:STDOUT: %OrderedWith.type.de5: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A1)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.6f1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A1) [concrete] +// CHECK:STDOUT: %assoc0.5e4: %OrderedWith.assoc_type.6f1 = assoc_entity element0, imports.%Core.import_ref.250 [concrete] +// CHECK:STDOUT: %assoc1.547: %OrderedWith.assoc_type.6f1 = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] +// CHECK:STDOUT: %assoc2.e9f: %OrderedWith.assoc_type.6f1 = assoc_entity element2, imports.%Core.import_ref.ece [concrete] +// CHECK:STDOUT: %assoc3.c50: %OrderedWith.assoc_type.6f1 = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] // CHECK:STDOUT: %B1.Less.type: type = fn_type @B1.Less [concrete] // CHECK:STDOUT: %B1.Less: %B1.Less.type = struct_value () [concrete] // CHECK:STDOUT: %B1.LessOrEquivalent.type: type = fn_type @B1.LessOrEquivalent [concrete] @@ -701,15 +701,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %B1.Greater: %B1.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %B1.GreaterOrEquivalent.type: type = fn_type @B1.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %B1.GreaterOrEquivalent: %B1.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.831: = custom_witness (%B1.Less, %B1.LessOrEquivalent, %B1.Greater, %B1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A1) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.b58: %OrderedWith.type.3fd = facet_value %B1, (%custom_witness.831) [concrete] -// CHECK:STDOUT: %pattern_type.e33: type = pattern_type %OrderedWith.type.3fd [concrete] -// CHECK:STDOUT: %OrderedWith.type.077: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A2)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.893: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A2) [concrete] -// CHECK:STDOUT: %assoc0.c31: %OrderedWith.assoc_type.893 = assoc_entity element0, imports.%Core.import_ref.250 [concrete] -// CHECK:STDOUT: %assoc1.1c3: %OrderedWith.assoc_type.893 = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] -// CHECK:STDOUT: %assoc2.dc0: %OrderedWith.assoc_type.893 = assoc_entity element2, imports.%Core.import_ref.ece [concrete] -// CHECK:STDOUT: %assoc3.20d: %OrderedWith.assoc_type.893 = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] +// CHECK:STDOUT: %custom_witness.998: = custom_witness (%B1.Less, %B1.LessOrEquivalent, %B1.Greater, %B1.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A1) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.53d: %OrderedWith.type.de5 = facet_value %B1, (%custom_witness.998) [concrete] +// CHECK:STDOUT: %pattern_type.18c: type = pattern_type %OrderedWith.type.de5 [concrete] +// CHECK:STDOUT: %OrderedWith.type.b2b: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A2)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.ede: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A2) [concrete] +// CHECK:STDOUT: %assoc0.ae2: %OrderedWith.assoc_type.ede = assoc_entity element0, imports.%Core.import_ref.250 [concrete] +// CHECK:STDOUT: %assoc1.a64: %OrderedWith.assoc_type.ede = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] +// CHECK:STDOUT: %assoc2.24c: %OrderedWith.assoc_type.ede = assoc_entity element2, imports.%Core.import_ref.ece [concrete] +// CHECK:STDOUT: %assoc3.f57: %OrderedWith.assoc_type.ede = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] // CHECK:STDOUT: %B2.Less.type: type = fn_type @B2.Less [concrete] // CHECK:STDOUT: %B2.Less: %B2.Less.type = struct_value () [concrete] // CHECK:STDOUT: %B2.LessOrEquivalent.type: type = fn_type @B2.LessOrEquivalent [concrete] @@ -718,15 +718,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %B2.Greater: %B2.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %B2.GreaterOrEquivalent.type: type = fn_type @B2.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %B2.GreaterOrEquivalent: %B2.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.601: = custom_witness (%B2.Less, %B2.LessOrEquivalent, %B2.Greater, %B2.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A2) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.a99: %OrderedWith.type.077 = facet_value %B2, (%custom_witness.601) [concrete] -// CHECK:STDOUT: %pattern_type.1fac: type = pattern_type %OrderedWith.type.077 [concrete] -// CHECK:STDOUT: %OrderedWith.type.bb7: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B3)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.8e0: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B3) [concrete] -// CHECK:STDOUT: %assoc0.8b3: %OrderedWith.assoc_type.8e0 = assoc_entity element0, imports.%Core.import_ref.250 [concrete] -// CHECK:STDOUT: %assoc1.627: %OrderedWith.assoc_type.8e0 = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] -// CHECK:STDOUT: %assoc2.00e: %OrderedWith.assoc_type.8e0 = assoc_entity element2, imports.%Core.import_ref.ece [concrete] -// CHECK:STDOUT: %assoc3.b0d: %OrderedWith.assoc_type.8e0 = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] +// CHECK:STDOUT: %custom_witness.a76: = custom_witness (%B2.Less, %B2.LessOrEquivalent, %B2.Greater, %B2.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A2) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.f05: %OrderedWith.type.b2b = facet_value %B2, (%custom_witness.a76) [concrete] +// CHECK:STDOUT: %pattern_type.c18: type = pattern_type %OrderedWith.type.b2b [concrete] +// CHECK:STDOUT: %OrderedWith.type.3b2: type = facet_type <@OrderedWith.1, @OrderedWith.1(%B3)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.b1f: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%B3) [concrete] +// CHECK:STDOUT: %assoc0.635: %OrderedWith.assoc_type.b1f = assoc_entity element0, imports.%Core.import_ref.250 [concrete] +// CHECK:STDOUT: %assoc1.e4a: %OrderedWith.assoc_type.b1f = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] +// CHECK:STDOUT: %assoc2.21a: %OrderedWith.assoc_type.b1f = assoc_entity element2, imports.%Core.import_ref.ece [concrete] +// CHECK:STDOUT: %assoc3.1bb: %OrderedWith.assoc_type.b1f = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] // CHECK:STDOUT: %A3.Less.type: type = fn_type @A3.Less [concrete] // CHECK:STDOUT: %A3.Less: %A3.Less.type = struct_value () [concrete] // CHECK:STDOUT: %LessOrEquivalent.type: type = fn_type @LessOrEquivalent [concrete] @@ -735,15 +735,15 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %A3.Greater: %A3.Greater.type = struct_value () [concrete] // CHECK:STDOUT: %GreaterOrEquivalent.type: type = fn_type @GreaterOrEquivalent [concrete] // CHECK:STDOUT: %GreaterOrEquivalent: %GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.4f9: = custom_witness (%A3.Less, %LessOrEquivalent, %A3.Greater, %GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B3) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.e01: %OrderedWith.type.bb7 = facet_value %A3, (%custom_witness.4f9) [concrete] -// CHECK:STDOUT: %pattern_type.50d: type = pattern_type %OrderedWith.type.bb7 [concrete] -// CHECK:STDOUT: %OrderedWith.type.852: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A3)> [concrete] -// CHECK:STDOUT: %OrderedWith.assoc_type.9b5: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A3) [concrete] -// CHECK:STDOUT: %assoc0.5fc: %OrderedWith.assoc_type.9b5 = assoc_entity element0, imports.%Core.import_ref.250 [concrete] -// CHECK:STDOUT: %assoc1.c88: %OrderedWith.assoc_type.9b5 = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] -// CHECK:STDOUT: %assoc2.af5: %OrderedWith.assoc_type.9b5 = assoc_entity element2, imports.%Core.import_ref.ece [concrete] -// CHECK:STDOUT: %assoc3.d90: %OrderedWith.assoc_type.9b5 = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] +// CHECK:STDOUT: %custom_witness.223: = custom_witness (%A3.Less, %LessOrEquivalent, %A3.Greater, %GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%B3) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.9e9: %OrderedWith.type.3b2 = facet_value %A3, (%custom_witness.223) [concrete] +// CHECK:STDOUT: %pattern_type.448: type = pattern_type %OrderedWith.type.3b2 [concrete] +// CHECK:STDOUT: %OrderedWith.type.708: type = facet_type <@OrderedWith.1, @OrderedWith.1(%A3)> [concrete] +// CHECK:STDOUT: %OrderedWith.assoc_type.2d1: type = assoc_entity_type @OrderedWith.1, @OrderedWith.1(%A3) [concrete] +// CHECK:STDOUT: %assoc0.cb0: %OrderedWith.assoc_type.2d1 = assoc_entity element0, imports.%Core.import_ref.250 [concrete] +// CHECK:STDOUT: %assoc1.aa4: %OrderedWith.assoc_type.2d1 = assoc_entity element1, imports.%Core.import_ref.af2 [concrete] +// CHECK:STDOUT: %assoc2.ec4: %OrderedWith.assoc_type.2d1 = assoc_entity element2, imports.%Core.import_ref.ece [concrete] +// CHECK:STDOUT: %assoc3.781: %OrderedWith.assoc_type.2d1 = assoc_entity element3, imports.%Core.import_ref.bcf [concrete] // CHECK:STDOUT: %Less.type: type = fn_type @Less [concrete] // CHECK:STDOUT: %Less: %Less.type = struct_value () [concrete] // CHECK:STDOUT: %B3.LessOrEquivalent.type: type = fn_type @B3.LessOrEquivalent [concrete] @@ -752,54 +752,54 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %Greater: %Greater.type = struct_value () [concrete] // CHECK:STDOUT: %B3.GreaterOrEquivalent.type: type = fn_type @B3.GreaterOrEquivalent [concrete] // CHECK:STDOUT: %B3.GreaterOrEquivalent: %B3.GreaterOrEquivalent.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.858: = custom_witness (%Less, %B3.LessOrEquivalent, %Greater, %B3.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A3) [concrete] -// CHECK:STDOUT: %OrderedWith.facet.8d9: %OrderedWith.type.852 = facet_value %B3, (%custom_witness.858) [concrete] -// CHECK:STDOUT: %pattern_type.1fab: type = pattern_type %OrderedWith.type.852 [concrete] -// CHECK:STDOUT: %complete_type.4f4: = complete_type_witness %OrderedWith.type.848 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.12b: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.0b6) [concrete] -// CHECK:STDOUT: %.f93: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.12b, %OrderedWith.facet.0b6 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.448: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.0b6) [concrete] -// CHECK:STDOUT: %.78f: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.448, %OrderedWith.facet.0b6 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.670: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.0b6) [concrete] -// CHECK:STDOUT: %.183: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.670, %OrderedWith.facet.0b6 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.5f2: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.0b6) [concrete] -// CHECK:STDOUT: %.846: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.5f2, %OrderedWith.facet.0b6 [concrete] -// CHECK:STDOUT: %complete_type.213: = complete_type_witness %OrderedWith.type.3fd [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.d18: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.b58) [concrete] -// CHECK:STDOUT: %.343: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.d18, %OrderedWith.facet.b58 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.e77: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.b58) [concrete] -// CHECK:STDOUT: %.8cf: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.e77, %OrderedWith.facet.b58 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.dd9: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.b58) [concrete] -// CHECK:STDOUT: %.208: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.dd9, %OrderedWith.facet.b58 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.628: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.b58) [concrete] -// CHECK:STDOUT: %.5aa: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.628, %OrderedWith.facet.b58 [concrete] -// CHECK:STDOUT: %complete_type.e9c: = complete_type_witness %OrderedWith.type.077 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.9b6: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.a99) [concrete] -// CHECK:STDOUT: %.4c2: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.9b6, %OrderedWith.facet.a99 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.920: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.a99) [concrete] -// CHECK:STDOUT: %.712: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.920, %OrderedWith.facet.a99 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.f32: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.a99) [concrete] -// CHECK:STDOUT: %.358: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.f32, %OrderedWith.facet.a99 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.fc7: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.a99) [concrete] -// CHECK:STDOUT: %.c0e: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.fc7, %OrderedWith.facet.a99 [concrete] -// CHECK:STDOUT: %complete_type.c99: = complete_type_witness %OrderedWith.type.bb7 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.0dc: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.e01) [concrete] -// CHECK:STDOUT: %.894: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.0dc, %OrderedWith.facet.e01 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.713: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.e01) [concrete] -// CHECK:STDOUT: %.c8d: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.713, %OrderedWith.facet.e01 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.f35: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.e01) [concrete] -// CHECK:STDOUT: %.01d: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.f35, %OrderedWith.facet.e01 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.965: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.e01) [concrete] -// CHECK:STDOUT: %.672: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.965, %OrderedWith.facet.e01 [concrete] -// CHECK:STDOUT: %complete_type.50b: = complete_type_witness %OrderedWith.type.852 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.9da: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.8d9) [concrete] -// CHECK:STDOUT: %.393: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.9da, %OrderedWith.facet.8d9 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.34f: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.8d9) [concrete] -// CHECK:STDOUT: %.8ce: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.34f, %OrderedWith.facet.8d9 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.87e: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.8d9) [concrete] -// CHECK:STDOUT: %.59a: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.87e, %OrderedWith.facet.8d9 [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.d85: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.8d9) [concrete] -// CHECK:STDOUT: %.e0e: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.d85, %OrderedWith.facet.8d9 [concrete] +// CHECK:STDOUT: %custom_witness.0c0: = custom_witness (%Less, %B3.LessOrEquivalent, %Greater, %B3.GreaterOrEquivalent), @OrderedWith.1, @OrderedWith.1(%A3) [concrete] +// CHECK:STDOUT: %OrderedWith.facet.725: %OrderedWith.type.708 = facet_value %B3, (%custom_witness.0c0) [concrete] +// CHECK:STDOUT: %pattern_type.2c5: type = pattern_type %OrderedWith.type.708 [concrete] +// CHECK:STDOUT: %complete_type.979: = complete_type_witness %OrderedWith.type.e85 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.bd5: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.97c) [concrete] +// CHECK:STDOUT: %.2ff: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.bd5, %OrderedWith.facet.97c [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.651: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.97c) [concrete] +// CHECK:STDOUT: %.b55: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.651, %OrderedWith.facet.97c [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.d8f: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.97c) [concrete] +// CHECK:STDOUT: %.68a: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.d8f, %OrderedWith.facet.97c [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.d67: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B1, %OrderedWith.facet.97c) [concrete] +// CHECK:STDOUT: %.a97: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.d67, %OrderedWith.facet.97c [concrete] +// CHECK:STDOUT: %complete_type.409: = complete_type_witness %OrderedWith.type.de5 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.6e7: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.53d) [concrete] +// CHECK:STDOUT: %.866: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.6e7, %OrderedWith.facet.53d [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.03c: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.53d) [concrete] +// CHECK:STDOUT: %.87e: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.03c, %OrderedWith.facet.53d [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.829: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.53d) [concrete] +// CHECK:STDOUT: %.bb6: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.829, %OrderedWith.facet.53d [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.328: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A1, %OrderedWith.facet.53d) [concrete] +// CHECK:STDOUT: %.d08: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.328, %OrderedWith.facet.53d [concrete] +// CHECK:STDOUT: %complete_type.65d: = complete_type_witness %OrderedWith.type.b2b [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.c19: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.f05) [concrete] +// CHECK:STDOUT: %.4b8: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.c19, %OrderedWith.facet.f05 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.3f7: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.f05) [concrete] +// CHECK:STDOUT: %.12b: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.3f7, %OrderedWith.facet.f05 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.0a3: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.f05) [concrete] +// CHECK:STDOUT: %.3c2: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.0a3, %OrderedWith.facet.f05 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.04f: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A2, %OrderedWith.facet.f05) [concrete] +// CHECK:STDOUT: %.ec8: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.04f, %OrderedWith.facet.f05 [concrete] +// CHECK:STDOUT: %complete_type.0be: = complete_type_witness %OrderedWith.type.3b2 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.cb6: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.9e9) [concrete] +// CHECK:STDOUT: %.74c: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.cb6, %OrderedWith.facet.9e9 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.96c: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.9e9) [concrete] +// CHECK:STDOUT: %.4c8: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.96c, %OrderedWith.facet.9e9 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.6e1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.9e9) [concrete] +// CHECK:STDOUT: %.685: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.6e1, %OrderedWith.facet.9e9 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.886: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%B3, %OrderedWith.facet.9e9) [concrete] +// CHECK:STDOUT: %.d61: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.886, %OrderedWith.facet.9e9 [concrete] +// CHECK:STDOUT: %complete_type.9fb: = complete_type_witness %OrderedWith.type.708 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.c16: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.725) [concrete] +// CHECK:STDOUT: %.4d3: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.c16, %OrderedWith.facet.725 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.c04: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.725) [concrete] +// CHECK:STDOUT: %.019: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.c04, %OrderedWith.facet.725 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.112: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.725) [concrete] +// CHECK:STDOUT: %.d65: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.112, %OrderedWith.facet.725 [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.566: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%A3, %OrderedWith.facet.725) [concrete] +// CHECK:STDOUT: %.9d0: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.566, %OrderedWith.facet.725 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -902,187 +902,187 @@ fn Test(missing_less: Cpp.MissingLess, // CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B1, constants.%OrderedWith.facet.0b6) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B1, constants.%OrderedWith.facet.97c) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%B1 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.848 -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.0b6 -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.b8e +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.e85 +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.97c +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.187 // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%A1 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.489 -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.278 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.c8a +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.e62 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.4f4 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.d2f -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5f5 -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.12b -// CHECK:STDOUT: %.loc56_5.2 => constants.%.f93 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.61b +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.979 +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.46d +// CHECK:STDOUT: %assoc0 => constants.%assoc0.074 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.bd5 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.2ff +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.ca6 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%A1.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%A1.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.dd5 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.448 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.78f +// CHECK:STDOUT: %assoc1 => constants.%assoc1.b94 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.651 +// CHECK:STDOUT: %.loc57_5.2 => constants.%.b55 // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%A1.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%A1.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.198 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.670 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.183 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.085 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.d8f +// CHECK:STDOUT: %.loc58_5.2 => constants.%.68a // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%A1.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%A1.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.40e -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.5f2 -// CHECK:STDOUT: %.loc59_5.2 => constants.%.846 +// CHECK:STDOUT: %assoc3 => constants.%assoc3.426 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.d67 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.a97 // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%A1.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%A1.GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A1, constants.%OrderedWith.facet.b58) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A1, constants.%OrderedWith.facet.53d) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%A1 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.3fd -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.b58 -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.e33 +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.de5 +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.53d +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.18c // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B1 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.278 -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.489 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.e62 +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.c8a // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.213 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.753 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.48a -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.d18 -// CHECK:STDOUT: %.loc56_5.2 => constants.%.343 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.831 +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.409 +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.6f1 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.5e4 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.6e7 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.866 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.998 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%B1.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%B1.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.af7 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.e77 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.8cf +// CHECK:STDOUT: %assoc1 => constants.%assoc1.547 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.03c +// CHECK:STDOUT: %.loc57_5.2 => constants.%.87e // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%B1.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%B1.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.b59 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.dd9 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.208 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.e9f +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.829 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.bb6 // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%B1.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%B1.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.859 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.628 -// CHECK:STDOUT: %.loc59_5.2 => constants.%.5aa +// CHECK:STDOUT: %assoc3 => constants.%assoc3.c50 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.328 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.d08 // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%B1.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%B1.GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A2, constants.%OrderedWith.facet.a99) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A2, constants.%OrderedWith.facet.f05) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%A2 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.077 -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.a99 -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.1fac +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.b2b +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.f05 +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.c18 // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B2 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.6a4 -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.914 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.fab +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.1e3 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.e9c -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.893 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.c31 -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.9b6 -// CHECK:STDOUT: %.loc56_5.2 => constants.%.4c2 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.601 +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.65d +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.ede +// CHECK:STDOUT: %assoc0 => constants.%assoc0.ae2 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.c19 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.4b8 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.a76 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%B2.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%B2.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.1c3 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.920 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.712 +// CHECK:STDOUT: %assoc1 => constants.%assoc1.a64 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.3f7 +// CHECK:STDOUT: %.loc57_5.2 => constants.%.12b // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%B2.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%B2.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.dc0 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.f32 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.358 +// CHECK:STDOUT: %assoc2 => constants.%assoc2.24c +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.0a3 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.3c2 // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%B2.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%B2.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.20d -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.fc7 -// CHECK:STDOUT: %.loc59_5.2 => constants.%.c0e +// CHECK:STDOUT: %assoc3 => constants.%assoc3.f57 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.04f +// CHECK:STDOUT: %.loc59_5.2 => constants.%.ec8 // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%B2.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%B2.GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B3, constants.%OrderedWith.facet.e01) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%B3, constants.%OrderedWith.facet.9e9) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%B3 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.bb7 -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.e01 -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.50d +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.3b2 +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.9e9 +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.448 // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%A3 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.e08 -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.18a +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.ada +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.a20 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.c99 -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.8e0 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.8b3 -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.0dc -// CHECK:STDOUT: %.loc56_5.2 => constants.%.894 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.4f9 +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.0be +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.b1f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.635 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.cb6 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.74c +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.223 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%A3.Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%A3.Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.627 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.713 -// CHECK:STDOUT: %.loc57_5.2 => constants.%.c8d +// CHECK:STDOUT: %assoc1 => constants.%assoc1.e4a +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.96c +// CHECK:STDOUT: %.loc57_5.2 => constants.%.4c8 // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.00e -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.f35 -// CHECK:STDOUT: %.loc58_5.2 => constants.%.01d +// CHECK:STDOUT: %assoc2 => constants.%assoc2.21a +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.6e1 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.685 // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%A3.Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%A3.Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.b0d -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.965 -// CHECK:STDOUT: %.loc59_5.2 => constants.%.672 +// CHECK:STDOUT: %assoc3 => constants.%assoc3.1bb +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.886 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.d61 // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%GreaterOrEquivalent // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A3, constants.%OrderedWith.facet.8d9) { +// CHECK:STDOUT: specific @OrderedWith.loc54(constants.%A3, constants.%OrderedWith.facet.725) { // CHECK:STDOUT: %U.loc54_17.1 => constants.%A3 -// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.852 -// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.8d9 -// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.1fab +// CHECK:STDOUT: %OrderedWith.type.loc54_48.1 => constants.%OrderedWith.type.708 +// CHECK:STDOUT: %T.loc54_27.1 => constants.%OrderedWith.facet.725 +// CHECK:STDOUT: %pattern_type.loc54_27 => constants.%pattern_type.2c5 // CHECK:STDOUT: %T.as_type.loc54_54.1 => constants.%B3 -// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.18a -// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.e08 +// CHECK:STDOUT: %pattern_type.loc54_52 => constants.%pattern_type.a20 +// CHECK:STDOUT: %pattern_type.loc54_58 => constants.%pattern_type.ada // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc54_52 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc54_58 => constants.%complete_type.357 -// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.50b -// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.9b5 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.5fc -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.9da -// CHECK:STDOUT: %.loc56_5.2 => constants.%.393 -// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.858 +// CHECK:STDOUT: %require_complete.loc56 => constants.%complete_type.9fb +// CHECK:STDOUT: %OrderedWith.assoc_type => constants.%OrderedWith.assoc_type.2d1 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.cb0 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type => constants.%OrderedWith.WithSelf.Less.type.c16 +// CHECK:STDOUT: %.loc56_5.2 => constants.%.4d3 +// CHECK:STDOUT: %OrderedWith.lookup_impl_witness => constants.%custom_witness.0c0 // CHECK:STDOUT: %impl.elem0.loc56_5.2 => constants.%Less // CHECK:STDOUT: %specific_impl_fn.loc56_5.2 => constants.%Less -// CHECK:STDOUT: %assoc1 => constants.%assoc1.c88 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.34f -// CHECK:STDOUT: %.loc57_5.2 => constants.%.8ce +// CHECK:STDOUT: %assoc1 => constants.%assoc1.aa4 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type => constants.%OrderedWith.WithSelf.LessOrEquivalent.type.c04 +// CHECK:STDOUT: %.loc57_5.2 => constants.%.019 // CHECK:STDOUT: %impl.elem1.loc57_5.2 => constants.%B3.LessOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc57_5.2 => constants.%B3.LessOrEquivalent -// CHECK:STDOUT: %assoc2 => constants.%assoc2.af5 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.87e -// CHECK:STDOUT: %.loc58_5.2 => constants.%.59a +// CHECK:STDOUT: %assoc2 => constants.%assoc2.ec4 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type => constants.%OrderedWith.WithSelf.Greater.type.112 +// CHECK:STDOUT: %.loc58_5.2 => constants.%.d65 // CHECK:STDOUT: %impl.elem2.loc58_5.2 => constants.%Greater // CHECK:STDOUT: %specific_impl_fn.loc58_5.2 => constants.%Greater -// CHECK:STDOUT: %assoc3 => constants.%assoc3.d90 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.d85 -// CHECK:STDOUT: %.loc59_5.2 => constants.%.e0e +// CHECK:STDOUT: %assoc3 => constants.%assoc3.781 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type => constants.%OrderedWith.WithSelf.GreaterOrEquivalent.type.566 +// CHECK:STDOUT: %.loc59_5.2 => constants.%.9d0 // CHECK:STDOUT: %impl.elem3.loc59_5.2 => constants.%B3.GreaterOrEquivalent // CHECK:STDOUT: %specific_impl_fn.loc59_5.2 => constants.%B3.GreaterOrEquivalent // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon b/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon index b86020141f04..fc7c7e09440f 100644 --- a/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon +++ b/toolchain/check/testdata/interop/cpp/operators/spaceship.carbon @@ -303,27 +303,27 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) { // CHECK:STDOUT: %impl.elem3: %.137 = impl_witness_access %OrderedWith.lookup_impl_witness, element3 [symbolic] // CHECK:STDOUT: %specific_impl_fn.261: = specific_impl_function %impl.elem3, @OrderedWith.WithSelf.GreaterOrEquivalent(%U, %T.589) [symbolic] // CHECK:STDOUT: %DefaultSpaceshipOnly: type = class_type @DefaultSpaceshipOnly [concrete] -// CHECK:STDOUT: %pattern_type.1f3b: type = pattern_type %DefaultSpaceshipOnly [concrete] +// CHECK:STDOUT: %pattern_type.cce: type = pattern_type %DefaultSpaceshipOnly [concrete] // CHECK:STDOUT: %ReturnsStrongOrdering: type = class_type @ReturnsStrongOrdering [concrete] -// CHECK:STDOUT: %pattern_type.87f: type = pattern_type %ReturnsStrongOrdering [concrete] +// CHECK:STDOUT: %pattern_type.a93: type = pattern_type %ReturnsStrongOrdering [concrete] // CHECK:STDOUT: %ReturnsPartialOrdering: type = class_type @ReturnsPartialOrdering [concrete] -// CHECK:STDOUT: %pattern_type.103: type = pattern_type %ReturnsPartialOrdering [concrete] +// CHECK:STDOUT: %pattern_type.dbf: type = pattern_type %ReturnsPartialOrdering [concrete] // CHECK:STDOUT: %CrossTypeLhs: type = class_type @CrossTypeLhs [concrete] -// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %CrossTypeLhs [concrete] +// CHECK:STDOUT: %pattern_type.f3d: type = pattern_type %CrossTypeLhs [concrete] // CHECK:STDOUT: %CrossTypeRhs: type = class_type @CrossTypeRhs [concrete] -// CHECK:STDOUT: %pattern_type.454: type = pattern_type %CrossTypeRhs [concrete] -// CHECK:STDOUT: %EqWith.type.ee6: type = facet_type <@EqWith.1, @EqWith.1(%DefaultSpaceshipOnly)> [concrete] -// CHECK:STDOUT: %pattern_type.f48: type = pattern_type %EqWith.type.ee6 [concrete] -// CHECK:STDOUT: %OrderedWith.type.b43: type = facet_type <@OrderedWith.1, @OrderedWith.1(%DefaultSpaceshipOnly)> [concrete] -// CHECK:STDOUT: %pattern_type.260: type = pattern_type %OrderedWith.type.b43 [concrete] -// CHECK:STDOUT: %OrderedWith.type.dfc: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsStrongOrdering)> [concrete] -// CHECK:STDOUT: %pattern_type.023: type = pattern_type %OrderedWith.type.dfc [concrete] -// CHECK:STDOUT: %OrderedWith.type.928: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsPartialOrdering)> [concrete] -// CHECK:STDOUT: %pattern_type.c26: type = pattern_type %OrderedWith.type.928 [concrete] -// CHECK:STDOUT: %OrderedWith.type.d3b: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeRhs)> [concrete] -// CHECK:STDOUT: %pattern_type.89f: type = pattern_type %OrderedWith.type.d3b [concrete] -// CHECK:STDOUT: %OrderedWith.type.d59: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeLhs)> [concrete] -// CHECK:STDOUT: %pattern_type.912: type = pattern_type %OrderedWith.type.d59 [concrete] +// CHECK:STDOUT: %pattern_type.bd1: type = pattern_type %CrossTypeRhs [concrete] +// CHECK:STDOUT: %EqWith.type.d71: type = facet_type <@EqWith.1, @EqWith.1(%DefaultSpaceshipOnly)> [concrete] +// CHECK:STDOUT: %pattern_type.375: type = pattern_type %EqWith.type.d71 [concrete] +// CHECK:STDOUT: %OrderedWith.type.519: type = facet_type <@OrderedWith.1, @OrderedWith.1(%DefaultSpaceshipOnly)> [concrete] +// CHECK:STDOUT: %pattern_type.0e9: type = pattern_type %OrderedWith.type.519 [concrete] +// CHECK:STDOUT: %OrderedWith.type.62a: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsStrongOrdering)> [concrete] +// CHECK:STDOUT: %pattern_type.453: type = pattern_type %OrderedWith.type.62a [concrete] +// CHECK:STDOUT: %OrderedWith.type.c87: type = facet_type <@OrderedWith.1, @OrderedWith.1(%ReturnsPartialOrdering)> [concrete] +// CHECK:STDOUT: %pattern_type.ac7: type = pattern_type %OrderedWith.type.c87 [concrete] +// CHECK:STDOUT: %OrderedWith.type.079: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeRhs)> [concrete] +// CHECK:STDOUT: %pattern_type.f80: type = pattern_type %OrderedWith.type.079 [concrete] +// CHECK:STDOUT: %OrderedWith.type.ec4: type = facet_type <@OrderedWith.1, @OrderedWith.1(%CrossTypeLhs)> [concrete] +// CHECK:STDOUT: %pattern_type.cee: type = pattern_type %OrderedWith.type.ec4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -489,61 +489,61 @@ fn Test(returns_strong_ordering: Cpp.ReturnsStrongOrdering) { // CHECK:STDOUT: // CHECK:STDOUT: specific @EqWith.loc4(constants.%DefaultSpaceshipOnly, ) { // CHECK:STDOUT: %U.loc4_12.1 => constants.%DefaultSpaceshipOnly -// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.ee6 +// CHECK:STDOUT: %EqWith.type.loc4_38.1 => constants.%EqWith.type.d71 // CHECK:STDOUT: %T.loc4_22.1 => -// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.f48 +// CHECK:STDOUT: %pattern_type.loc4_22 => constants.%pattern_type.375 // CHECK:STDOUT: %T.as_type.loc4_44.1 => // CHECK:STDOUT: %pattern_type.loc4_42 => -// CHECK:STDOUT: %pattern_type.loc4_48 => constants.%pattern_type.1f3b +// CHECK:STDOUT: %pattern_type.loc4_48 => constants.%pattern_type.cce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%DefaultSpaceshipOnly, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%DefaultSpaceshipOnly -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.b43 +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.519 // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.260 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.0e9 // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.1f3b +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.cce // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%ReturnsStrongOrdering, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%ReturnsStrongOrdering -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.dfc +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.62a // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.023 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.453 // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.87f +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.a93 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%ReturnsPartialOrdering, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%ReturnsPartialOrdering -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.928 +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.c87 // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.c26 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.ac7 // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.103 +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.dbf // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%CrossTypeRhs, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%CrossTypeRhs -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.d3b +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.079 // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.89f +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.f80 // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.454 +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.bd1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @OrderedWith.loc11(constants.%CrossTypeLhs, ) { // CHECK:STDOUT: %U.loc11_17.1 => constants.%CrossTypeLhs -// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.d59 +// CHECK:STDOUT: %OrderedWith.type.loc11_48.1 => constants.%OrderedWith.type.ec4 // CHECK:STDOUT: %T.loc11_27.1 => -// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.912 +// CHECK:STDOUT: %pattern_type.loc11_27 => constants.%pattern_type.cee // CHECK:STDOUT: %T.as_type.loc11_54.1 => // CHECK:STDOUT: %pattern_type.loc11_52 => -// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.f57 +// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.f3d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon index 3eb10e39966a..e5b3145c4539 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon @@ -509,7 +509,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %unsigned_int: type = class_type @unsigned_int [concrete] -// CHECK:STDOUT: %pattern_type.1b8: type = pattern_type %unsigned_int [concrete] +// CHECK:STDOUT: %pattern_type.9ac: type = pattern_type %unsigned_int [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -518,9 +518,9 @@ fn F() { // CHECK:STDOUT: %unsigned_int.Op.type: type = fn_type @unsigned_int.Op [concrete] // CHECK:STDOUT: %unsigned_int.Op: %unsigned_int.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%unsigned_int.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.8a1: %Default.type = facet_value %unsigned_int, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.7fc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.8a1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %unsigned_int, (%DefaultOrUnformed.impl_witness.7fc) [concrete] +// CHECK:STDOUT: %Default.facet.81b: %Default.type = facet_value %unsigned_int, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.05d: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.81b) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %unsigned_int, (%DefaultOrUnformed.impl_witness.05d) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.632: type = pattern_type %u32 [concrete] @@ -551,11 +551,11 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %unsigned_int.patt: %pattern_type.1b8 = ref_binding_pattern unsigned_int [concrete] -// CHECK:STDOUT: %unsigned_int.var_patt: %pattern_type.1b8 = var_pattern %unsigned_int.patt [concrete] +// CHECK:STDOUT: %unsigned_int.patt: %pattern_type.9ac = ref_binding_pattern unsigned_int [concrete] +// CHECK:STDOUT: %unsigned_int.var_patt: %pattern_type.9ac = var_pattern %unsigned_int.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %unsigned_int.var: ref %unsigned_int = var %unsigned_int.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%unsigned_int, (constants.%DefaultOrUnformed.impl_witness.7fc) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%unsigned_int, (constants.%DefaultOrUnformed.impl_witness.05d) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc12_38.1: %DefaultOrUnformed.type = converted constants.%unsigned_int, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc12_38.1 [concrete = constants.%unsigned_int] // CHECK:STDOUT: %.loc12_38.2: type = converted %.loc12_38.1, %as_type [concrete = constants.%unsigned_int] diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon index f5fa41787913..b74f8631ce0d 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon @@ -1057,16 +1057,16 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] // CHECK:STDOUT: %int_1.b8e: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %LongResult: type = class_type @LongResult [concrete] -// CHECK:STDOUT: %pattern_type.5f3: type = pattern_type %LongResult [concrete] +// CHECK:STDOUT: %pattern_type.676: type = pattern_type %LongResult [concrete] // CHECK:STDOUT: %PassLong.cpp_overload_set.type: type = cpp_overload_set_type @PassLong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassLong.cpp_overload_set.value: %PassLong.cpp_overload_set.type = cpp_overload_set_value @PassLong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.618: type = ptr_type %LongResult [concrete] +// CHECK:STDOUT: %ptr.c5a: type = ptr_type %LongResult [concrete] // CHECK:STDOUT: %PassLong__carbon_thunk.type.972681.1: type = fn_type @PassLong__carbon_thunk.1 [concrete] // CHECK:STDOUT: %PassLong__carbon_thunk.b57a85.1: %PassLong__carbon_thunk.type.972681.1 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.c6b: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %IntResult: type = class_type @IntResult [concrete] -// CHECK:STDOUT: %pattern_type.e33: type = pattern_type %IntResult [concrete] -// CHECK:STDOUT: %ptr.837: type = ptr_type %IntResult [concrete] +// CHECK:STDOUT: %pattern_type.47e: type = pattern_type %IntResult [concrete] +// CHECK:STDOUT: %ptr.ff0: type = ptr_type %IntResult [concrete] // CHECK:STDOUT: %PassLong__carbon_thunk.type.972681.2: type = fn_type @PassLong__carbon_thunk.2 [concrete] // CHECK:STDOUT: %PassLong__carbon_thunk.b57a85.2: %PassLong__carbon_thunk.type.972681.2 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.c8a: type = pattern_type %i64 [concrete] @@ -1198,13 +1198,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc15_28.2: %Cpp.long = converted %int_1.loc15, %.loc15_28.1 [concrete = constants.%int_1.b8e] // CHECK:STDOUT: %cpp_long: %Cpp.long = value_binding cpp_long, %.loc15_28.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long_result.patt: %pattern_type.5f3 = value_binding_pattern cpp_long_result [concrete] +// CHECK:STDOUT: %cpp_long_result.patt: %pattern_type.676 = value_binding_pattern cpp_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_48: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLong.ref.loc16: %PassLong.cpp_overload_set.type = name_ref PassLong, imports.%PassLong.cpp_overload_set.value [concrete = constants.%PassLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_long.ref.loc16: %Cpp.long = name_ref cpp_long, %cpp_long // CHECK:STDOUT: %.loc16_69.1: ref %LongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.618 = addr_of %.loc16_69.1 +// CHECK:STDOUT: %addr.loc16: %ptr.c5a = addr_of %.loc16_69.1 // CHECK:STDOUT: %PassLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.f47c99.1(%cpp_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_69.2: init %LongResult to %.loc16_69.1 = mark_in_place_init %PassLong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_34: type = splice_block %LongResult.ref.loc16 [concrete = constants.%LongResult] { @@ -1225,13 +1225,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_long: %Cpp.long = value_binding cpp_compat_long, %cpp_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_long_result.patt: %pattern_type.5f3 = value_binding_pattern cpp_compat_long_result [concrete] +// CHECK:STDOUT: %cpp_compat_long_result.patt: %pattern_type.676 = value_binding_pattern cpp_compat_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_55: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLong.ref.loc19: %PassLong.cpp_overload_set.type = name_ref PassLong, imports.%PassLong.cpp_overload_set.value [concrete = constants.%PassLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_long.ref: %Cpp.long = name_ref cpp_compat_long, %cpp_compat_long // CHECK:STDOUT: %.loc19_83.1: ref %LongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.618 = addr_of %.loc19_83.1 +// CHECK:STDOUT: %addr.loc19: %ptr.c5a = addr_of %.loc19_83.1 // CHECK:STDOUT: %PassLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.f47c99.1(%cpp_compat_long.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_83.2: init %LongResult to %.loc19_83.1 = mark_in_place_init %PassLong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_41: type = splice_block %LongResult.ref.loc19 [concrete = constants.%LongResult] { @@ -1251,13 +1251,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %i32.loc21_19: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %carbon_i32: %i32 = value_binding carbon_i32, %.loc21_34.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_i32_result.patt: %pattern_type.e33 = value_binding_pattern carbon_i32_result [concrete] +// CHECK:STDOUT: %carbon_i32_result.patt: %pattern_type.47e = value_binding_pattern carbon_i32_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_49: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLong.ref.loc22: %PassLong.cpp_overload_set.type = name_ref PassLong, imports.%PassLong.cpp_overload_set.value [concrete = constants.%PassLong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_i32.ref: %i32 = name_ref carbon_i32, %carbon_i32 // CHECK:STDOUT: %.loc22_72.1: ref %IntResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.837 = addr_of %.loc22_72.1 +// CHECK:STDOUT: %addr.loc22: %ptr.ff0 = addr_of %.loc22_72.1 // CHECK:STDOUT: %PassLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassLong__carbon_thunk.decl.f47c99.2(%carbon_i32.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_72.2: init %IntResult to %.loc22_72.1 = mark_in_place_init %PassLong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %IntResult.ref [concrete = constants.%IntResult] { @@ -3836,10 +3836,10 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] // CHECK:STDOUT: %int_1.291: %Cpp.unsigned_long = int_value 1 [concrete] // CHECK:STDOUT: %ULongResult: type = class_type @ULongResult [concrete] -// CHECK:STDOUT: %pattern_type.423: type = pattern_type %ULongResult [concrete] +// CHECK:STDOUT: %pattern_type.38e: type = pattern_type %ULongResult [concrete] // CHECK:STDOUT: %PassULong.cpp_overload_set.type: type = cpp_overload_set_type @PassULong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassULong.cpp_overload_set.value: %PassULong.cpp_overload_set.type = cpp_overload_set_value @PassULong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.cd3: type = ptr_type %ULongResult [concrete] +// CHECK:STDOUT: %ptr.54a: type = ptr_type %ULongResult [concrete] // CHECK:STDOUT: %PassULong__carbon_thunk.type.f4cf84.1: type = fn_type @PassULong__carbon_thunk.1 [concrete] // CHECK:STDOUT: %PassULong__carbon_thunk.8dc497.1: %PassULong__carbon_thunk.type.f4cf84.1 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.632: type = pattern_type %u32 [concrete] @@ -3858,8 +3858,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %bound_method.1f9: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.fbc: %u32 = int_value 1 [concrete] // CHECK:STDOUT: %UIntResult: type = class_type @UIntResult [concrete] -// CHECK:STDOUT: %pattern_type.d4a: type = pattern_type %UIntResult [concrete] -// CHECK:STDOUT: %ptr.c6b: type = ptr_type %UIntResult [concrete] +// CHECK:STDOUT: %pattern_type.5a5: type = pattern_type %UIntResult [concrete] +// CHECK:STDOUT: %ptr.c09: type = ptr_type %UIntResult [concrete] // CHECK:STDOUT: %PassULong__carbon_thunk.type.f4cf84.2: type = fn_type @PassULong__carbon_thunk.2 [concrete] // CHECK:STDOUT: %PassULong__carbon_thunk.8dc497.2: %PassULong__carbon_thunk.type.f4cf84.2 = struct_value () [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] @@ -3984,13 +3984,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc15_46.2: %Cpp.unsigned_long = converted %int_1.loc15, %.loc15_46.1 [concrete = constants.%int_1.291] // CHECK:STDOUT: %cpp_unsigned_long: %Cpp.unsigned_long = value_binding cpp_unsigned_long, %.loc15_46.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long_result.patt: %pattern_type.423 = value_binding_pattern cpp_unsigned_long_result [concrete] +// CHECK:STDOUT: %cpp_unsigned_long_result.patt: %pattern_type.38e = value_binding_pattern cpp_unsigned_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_58: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULong.ref.loc16: %PassULong.cpp_overload_set.type = name_ref PassULong, imports.%PassULong.cpp_overload_set.value [concrete = constants.%PassULong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_unsigned_long.ref.loc16: %Cpp.unsigned_long = name_ref cpp_unsigned_long, %cpp_unsigned_long // CHECK:STDOUT: %.loc16_89.1: ref %ULongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.cd3 = addr_of %.loc16_89.1 +// CHECK:STDOUT: %addr.loc16: %ptr.54a = addr_of %.loc16_89.1 // CHECK:STDOUT: %PassULong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.43aa98.1(%cpp_unsigned_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_89.2: init %ULongResult to %.loc16_89.1 = mark_in_place_init %PassULong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_43: type = splice_block %ULongResult.ref.loc16 [concrete = constants.%ULongResult] { @@ -4011,13 +4011,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_ulong: %Cpp.unsigned_long = value_binding cpp_compat_ulong, %cpp_unsigned_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_ulong_result.patt: %pattern_type.423 = value_binding_pattern cpp_compat_ulong_result [concrete] +// CHECK:STDOUT: %cpp_compat_ulong_result.patt: %pattern_type.38e = value_binding_pattern cpp_compat_ulong_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_57: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULong.ref.loc19: %PassULong.cpp_overload_set.type = name_ref PassULong, imports.%PassULong.cpp_overload_set.value [concrete = constants.%PassULong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_ulong.ref: %Cpp.unsigned_long = name_ref cpp_compat_ulong, %cpp_compat_ulong // CHECK:STDOUT: %.loc19_87.1: ref %ULongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.cd3 = addr_of %.loc19_87.1 +// CHECK:STDOUT: %addr.loc19: %ptr.54a = addr_of %.loc19_87.1 // CHECK:STDOUT: %PassULong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.43aa98.1(%cpp_compat_ulong.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_87.2: init %ULongResult to %.loc19_87.1 = mark_in_place_init %PassULong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_42: type = splice_block %ULongResult.ref.loc19 [concrete = constants.%ULongResult] { @@ -4041,13 +4041,13 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %.loc21_25.2: %u32 = converted %int_1.loc21, %.loc21_25.1 [concrete = constants.%int_1.fbc] // CHECK:STDOUT: %carbon_u32: %u32 = value_binding carbon_u32, %.loc21_25.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_u32_result.patt: %pattern_type.d4a = value_binding_pattern carbon_u32_result [concrete] +// CHECK:STDOUT: %carbon_u32_result.patt: %pattern_type.5a5 = value_binding_pattern carbon_u32_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_50: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULong.ref.loc22: %PassULong.cpp_overload_set.type = name_ref PassULong, imports.%PassULong.cpp_overload_set.value [concrete = constants.%PassULong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_u32.ref: %u32 = name_ref carbon_u32, %carbon_u32 // CHECK:STDOUT: %.loc22_74.1: ref %UIntResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.c6b = addr_of %.loc22_74.1 +// CHECK:STDOUT: %addr.loc22: %ptr.c09 = addr_of %.loc22_74.1 // CHECK:STDOUT: %PassULong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassULong__carbon_thunk.decl.43aa98.2(%carbon_u32.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_74.2: init %UIntResult to %.loc22_74.1 = mark_in_place_init %PassULong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %UIntResult.ref [concrete = constants.%UIntResult] { diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon index c7fb5787868b..d16c67f883d0 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon @@ -1003,16 +1003,16 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_1.526: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %LongLongResult: type = class_type @LongLongResult [concrete] -// CHECK:STDOUT: %pattern_type.a44: type = pattern_type %LongLongResult [concrete] +// CHECK:STDOUT: %pattern_type.f75: type = pattern_type %LongLongResult [concrete] // CHECK:STDOUT: %PassLongLong.cpp_overload_set.type: type = cpp_overload_set_type @PassLongLong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassLongLong.cpp_overload_set.value: %PassLongLong.cpp_overload_set.type = cpp_overload_set_value @PassLongLong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.a89: type = ptr_type %LongLongResult [concrete] +// CHECK:STDOUT: %ptr.d67: type = ptr_type %LongLongResult [concrete] // CHECK:STDOUT: %PassLongLong__carbon_thunk.type.322742.1: type = fn_type @PassLongLong__carbon_thunk.1 [concrete] // CHECK:STDOUT: %PassLongLong__carbon_thunk.ad287c.1: %PassLongLong__carbon_thunk.type.322742.1 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.c8a: type = pattern_type %i64 [concrete] // CHECK:STDOUT: %LongResult: type = class_type @LongResult [concrete] -// CHECK:STDOUT: %pattern_type.5f3: type = pattern_type %LongResult [concrete] -// CHECK:STDOUT: %ptr.618: type = ptr_type %LongResult [concrete] +// CHECK:STDOUT: %pattern_type.32c: type = pattern_type %LongResult [concrete] +// CHECK:STDOUT: %ptr.70a: type = ptr_type %LongResult [concrete] // CHECK:STDOUT: %PassLongLong__carbon_thunk.type.322742.2: type = fn_type @PassLongLong__carbon_thunk.2 [concrete] // CHECK:STDOUT: %PassLongLong__carbon_thunk.ad287c.2: %PassLongLong__carbon_thunk.type.322742.2 = struct_value () [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] @@ -1135,13 +1135,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc15_38.2: %Cpp.long_long = converted %int_1.loc15, %.loc15_38.1 [concrete = constants.%int_1.526] // CHECK:STDOUT: %cpp_long_long: %Cpp.long_long = value_binding cpp_long_long, %.loc15_38.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_long_long_result.patt: %pattern_type.a44 = value_binding_pattern cpp_long_long_result [concrete] +// CHECK:STDOUT: %cpp_long_long_result.patt: %pattern_type.f75 = value_binding_pattern cpp_long_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_57: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLongLong.ref.loc16: %PassLongLong.cpp_overload_set.type = name_ref PassLongLong, imports.%PassLongLong.cpp_overload_set.value [concrete = constants.%PassLongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_long_long.ref.loc16: %Cpp.long_long = name_ref cpp_long_long, %cpp_long_long // CHECK:STDOUT: %.loc16_87.1: ref %LongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.a89 = addr_of %.loc16_87.1 +// CHECK:STDOUT: %addr.loc16: %ptr.d67 = addr_of %.loc16_87.1 // CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.c1f2e9.1(%cpp_long_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_87.2: init %LongLongResult to %.loc16_87.1 = mark_in_place_init %PassLongLong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_39: type = splice_block %LongLongResult.ref.loc16 [concrete = constants.%LongLongResult] { @@ -1162,13 +1162,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_long_long: %Cpp.long_long = value_binding cpp_compat_long_long, %cpp_long_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_long_long_result.patt: %pattern_type.a44 = value_binding_pattern cpp_compat_long_long_result [concrete] +// CHECK:STDOUT: %cpp_compat_long_long_result.patt: %pattern_type.f75 = value_binding_pattern cpp_compat_long_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_64: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLongLong.ref.loc19: %PassLongLong.cpp_overload_set.type = name_ref PassLongLong, imports.%PassLongLong.cpp_overload_set.value [concrete = constants.%PassLongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_long_long.ref: %Cpp.long_long = name_ref cpp_compat_long_long, %cpp_compat_long_long // CHECK:STDOUT: %.loc19_101.1: ref %LongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.a89 = addr_of %.loc19_101.1 +// CHECK:STDOUT: %addr.loc19: %ptr.d67 = addr_of %.loc19_101.1 // CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.c1f2e9.1(%cpp_compat_long_long.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_101.2: init %LongLongResult to %.loc19_101.1 = mark_in_place_init %PassLongLong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_46: type = splice_block %LongLongResult.ref.loc19 [concrete = constants.%LongLongResult] { @@ -1188,13 +1188,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %i64.loc21_19: type = type_literal constants.%i64 [concrete = constants.%i64] // CHECK:STDOUT: %carbon_i64: %i64 = value_binding carbon_i64, %.loc21_39.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_i64_result.patt: %pattern_type.5f3 = value_binding_pattern carbon_i64_result [concrete] +// CHECK:STDOUT: %carbon_i64_result.patt: %pattern_type.32c = value_binding_pattern carbon_i64_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_50: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassLongLong.ref.loc22: %PassLongLong.cpp_overload_set.type = name_ref PassLongLong, imports.%PassLongLong.cpp_overload_set.value [concrete = constants.%PassLongLong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_i64.ref: %i64 = name_ref carbon_i64, %carbon_i64 // CHECK:STDOUT: %.loc22_77.1: ref %LongResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.618 = addr_of %.loc22_77.1 +// CHECK:STDOUT: %addr.loc22: %ptr.70a = addr_of %.loc22_77.1 // CHECK:STDOUT: %PassLongLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassLongLong__carbon_thunk.decl.c1f2e9.2(%carbon_i64.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_77.2: init %LongResult to %.loc22_77.1 = mark_in_place_init %PassLongLong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %LongResult.ref [concrete = constants.%LongResult] { @@ -3556,10 +3556,10 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce [concrete] // CHECK:STDOUT: %int_1.c4d: %Cpp.unsigned_long_long = int_value 1 [concrete] // CHECK:STDOUT: %ULongLongResult: type = class_type @ULongLongResult [concrete] -// CHECK:STDOUT: %pattern_type.30b: type = pattern_type %ULongLongResult [concrete] +// CHECK:STDOUT: %pattern_type.b26: type = pattern_type %ULongLongResult [concrete] // CHECK:STDOUT: %PassULongLong.cpp_overload_set.type: type = cpp_overload_set_type @PassULongLong.cpp_overload_set [concrete] // CHECK:STDOUT: %PassULongLong.cpp_overload_set.value: %PassULongLong.cpp_overload_set.type = cpp_overload_set_value @PassULongLong.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.089: type = ptr_type %ULongLongResult [concrete] +// CHECK:STDOUT: %ptr.040: type = ptr_type %ULongLongResult [concrete] // CHECK:STDOUT: %PassULongLong__carbon_thunk.type.5cbe77.1: type = fn_type @PassULongLong__carbon_thunk.1 [concrete] // CHECK:STDOUT: %PassULongLong__carbon_thunk.fb9213.1: %PassULongLong__carbon_thunk.type.5cbe77.1 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.bb8: type = pattern_type %u64 [concrete] @@ -3577,8 +3577,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %bound_method.818: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_1.21a: %u64 = int_value 1 [concrete] // CHECK:STDOUT: %ULongResult: type = class_type @ULongResult [concrete] -// CHECK:STDOUT: %pattern_type.423: type = pattern_type %ULongResult [concrete] -// CHECK:STDOUT: %ptr.cd3: type = ptr_type %ULongResult [concrete] +// CHECK:STDOUT: %pattern_type.66d: type = pattern_type %ULongResult [concrete] +// CHECK:STDOUT: %ptr.175: type = ptr_type %ULongResult [concrete] // CHECK:STDOUT: %PassULongLong__carbon_thunk.type.5cbe77.2: type = fn_type @PassULongLong__carbon_thunk.2 [concrete] // CHECK:STDOUT: %PassULongLong__carbon_thunk.fb9213.2: %PassULongLong__carbon_thunk.type.5cbe77.2 = struct_value () [concrete] // CHECK:STDOUT: %Float.type: type = generic_class_type @Float [concrete] @@ -3703,13 +3703,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc15_56.2: %Cpp.unsigned_long_long = converted %int_1.loc15, %.loc15_56.1 [concrete = constants.%int_1.c4d] // CHECK:STDOUT: %cpp_unsigned_long_long: %Cpp.unsigned_long_long = value_binding cpp_unsigned_long_long, %.loc15_56.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_unsigned_long_long_result.patt: %pattern_type.30b = value_binding_pattern cpp_unsigned_long_long_result [concrete] +// CHECK:STDOUT: %cpp_unsigned_long_long_result.patt: %pattern_type.b26 = value_binding_pattern cpp_unsigned_long_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc16_67: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULongLong.ref.loc16: %PassULongLong.cpp_overload_set.type = name_ref PassULongLong, imports.%PassULongLong.cpp_overload_set.value [concrete = constants.%PassULongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_unsigned_long_long.ref.loc16: %Cpp.unsigned_long_long = name_ref cpp_unsigned_long_long, %cpp_unsigned_long_long // CHECK:STDOUT: %.loc16_107.1: ref %ULongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc16: %ptr.089 = addr_of %.loc16_107.1 +// CHECK:STDOUT: %addr.loc16: %ptr.040 = addr_of %.loc16_107.1 // CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc16: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.1b9bd8.1(%cpp_unsigned_long_long.ref.loc16, %addr.loc16) // CHECK:STDOUT: %.loc16_107.2: init %ULongLongResult to %.loc16_107.1 = mark_in_place_init %PassULongLong__carbon_thunk.call.loc16 // CHECK:STDOUT: %.loc16_48: type = splice_block %ULongLongResult.ref.loc16 [concrete = constants.%ULongLongResult] { @@ -3730,13 +3730,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %cpp_compat_ulong_long: %Cpp.unsigned_long_long = value_binding cpp_compat_ulong_long, %cpp_unsigned_long_long.ref.loc18 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %cpp_compat_ulong_long_result.patt: %pattern_type.30b = value_binding_pattern cpp_compat_ulong_long_result [concrete] +// CHECK:STDOUT: %cpp_compat_ulong_long_result.patt: %pattern_type.b26 = value_binding_pattern cpp_compat_ulong_long_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc19_66: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULongLong.ref.loc19: %PassULongLong.cpp_overload_set.type = name_ref PassULongLong, imports.%PassULongLong.cpp_overload_set.value [concrete = constants.%PassULongLong.cpp_overload_set.value] // CHECK:STDOUT: %cpp_compat_ulong_long.ref: %Cpp.unsigned_long_long = name_ref cpp_compat_ulong_long, %cpp_compat_ulong_long // CHECK:STDOUT: %.loc19_105.1: ref %ULongLongResult = temporary_storage -// CHECK:STDOUT: %addr.loc19: %ptr.089 = addr_of %.loc19_105.1 +// CHECK:STDOUT: %addr.loc19: %ptr.040 = addr_of %.loc19_105.1 // CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc19: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.1b9bd8.1(%cpp_compat_ulong_long.ref, %addr.loc19) // CHECK:STDOUT: %.loc19_105.2: init %ULongLongResult to %.loc19_105.1 = mark_in_place_init %PassULongLong__carbon_thunk.call.loc19 // CHECK:STDOUT: %.loc19_47: type = splice_block %ULongLongResult.ref.loc19 [concrete = constants.%ULongLongResult] { @@ -3760,13 +3760,13 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %.loc21_25.2: %u64 = converted %int_1.loc21, %.loc21_25.1 [concrete = constants.%int_1.21a] // CHECK:STDOUT: %carbon_u64: %u64 = value_binding carbon_u64, %.loc21_25.2 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %carbon_u64_result.patt: %pattern_type.423 = value_binding_pattern carbon_u64_result [concrete] +// CHECK:STDOUT: %carbon_u64_result.patt: %pattern_type.66d = value_binding_pattern carbon_u64_result [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc22_51: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %PassULongLong.ref.loc22: %PassULongLong.cpp_overload_set.type = name_ref PassULongLong, imports.%PassULongLong.cpp_overload_set.value [concrete = constants.%PassULongLong.cpp_overload_set.value] // CHECK:STDOUT: %carbon_u64.ref: %u64 = name_ref carbon_u64, %carbon_u64 // CHECK:STDOUT: %.loc22_79.1: ref %ULongResult = temporary_storage -// CHECK:STDOUT: %addr.loc22: %ptr.cd3 = addr_of %.loc22_79.1 +// CHECK:STDOUT: %addr.loc22: %ptr.175 = addr_of %.loc22_79.1 // CHECK:STDOUT: %PassULongLong__carbon_thunk.call.loc22: init %empty_tuple.type = call imports.%PassULongLong__carbon_thunk.decl.1b9bd8.2(%carbon_u64.ref, %addr.loc22) // CHECK:STDOUT: %.loc22_79.2: init %ULongResult to %.loc22_79.1 = mark_in_place_init %PassULongLong__carbon_thunk.call.loc22 // CHECK:STDOUT: %.loc22_36: type = splice_block %ULongResult.ref [concrete = constants.%ULongResult] { diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon index 7fc0f996b446..46c1fb467dd2 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon @@ -140,7 +140,7 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] // CHECK:STDOUT: %ptr.838: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %pattern_type.c0f: type = pattern_type %ptr.838 [concrete] @@ -148,13 +148,13 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.bdb: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.984(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.7e2: %ptr.as.ImplicitAs.impl.Convert.type.bdb = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e3b: = impl_witness imports.%ImplicitAs.impl_witness_table.bfc, @ptr.as.ImplicitAs.impl.984(%S) [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.5da: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.984(%S) [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.9d2: %ptr.as.ImplicitAs.impl.Convert.type.5da = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1d5: %ImplicitAs.type.919 = facet_value %ptr.9e9, (%ImplicitAs.impl_witness.e3b) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.076: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%ptr.838, %ImplicitAs.facet.1d5) [concrete] -// CHECK:STDOUT: %.d01: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.076, %ImplicitAs.facet.1d5 [concrete] -// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.specific_fn.222: = specific_function %ptr.as.ImplicitAs.impl.Convert.9d2, @ptr.as.ImplicitAs.impl.Convert.1(%S) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.ffe: = impl_witness imports.%ImplicitAs.impl_witness_table.bfc, @ptr.as.ImplicitAs.impl.984(%S) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.734: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.984(%S) [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.5ce: %ptr.as.ImplicitAs.impl.Convert.type.734 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.82f: %ImplicitAs.type.919 = facet_value %ptr.055, (%ImplicitAs.impl_witness.ffe) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f9b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%ptr.838, %ImplicitAs.facet.82f) [concrete] +// CHECK:STDOUT: %.dd7: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.f9b, %ImplicitAs.facet.82f [concrete] +// CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.specific_fn.ff6: = specific_function %ptr.as.ImplicitAs.impl.Convert.5ce, @ptr.as.ImplicitAs.impl.Convert.1(%S) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -168,20 +168,20 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %ImplicitAs.impl_witness_table.bfc = impl_witness_table (%Core.import_ref.a68), @ptr.as.ImplicitAs.impl.984 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.9e9) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.055) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %p.patt: %pattern_type.c0f = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.9e9 = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.055 = name_ref input, %input // CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10 [concrete = constants.%ptr.838] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] // CHECK:STDOUT: %ptr.loc10: type = ptr_type %void.ref [concrete = constants.%ptr.838] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.d01 = impl_witness_access constants.%ImplicitAs.impl_witness.e3b, element0 [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.9d2] +// CHECK:STDOUT: %impl.elem0: %.dd7 = impl_witness_access constants.%ImplicitAs.impl_witness.ffe, element0 [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.5ce] // CHECK:STDOUT: %bound_method.loc10_29.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.ImplicitAs.impl.Convert.1(constants.%S) [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.specific_fn.222] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.ImplicitAs.impl.Convert.1(constants.%S) [concrete = constants.%ptr.as.ImplicitAs.impl.Convert.specific_fn.ff6] // CHECK:STDOUT: %bound_method.loc10_29.2: = bound_method %input.ref, %specific_fn // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.call: init %ptr.838 = call %bound_method.loc10_29.2(%input.ref) // CHECK:STDOUT: %.loc10_29.1: %ptr.838 = value_of_initializer %ptr.as.ImplicitAs.impl.Convert.call @@ -246,7 +246,7 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] // CHECK:STDOUT: %ptr.838: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %pattern_type.c0f: type = pattern_type %ptr.838 [concrete] @@ -260,15 +260,15 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %ImplicitAs.type.919: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.838)> [concrete] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.bdb: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.984(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.7e2: %ptr.as.ImplicitAs.impl.Convert.type.bdb = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.e3b: = impl_witness imports.%ImplicitAs.impl_witness_table.bfc, @ptr.as.ImplicitAs.impl.984(%S) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1d5: %ImplicitAs.type.919 = facet_value %ptr.9e9, (%ImplicitAs.impl_witness.e3b) [concrete] -// CHECK:STDOUT: %As.impl_witness.72f: = impl_witness imports.%As.impl_witness_table.dad, @T.as_type.as.As.impl(%ptr.838, %ImplicitAs.facet.1d5) [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.db3: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.838, %ImplicitAs.facet.1d5) [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.35b: %T.as_type.as.As.impl.Convert.type.db3 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.8e0 = facet_value %ptr.9e9, (%As.impl_witness.72f) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.b23: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.838, %As.facet) [concrete] -// CHECK:STDOUT: %.b17: type = fn_type_with_self_type %As.WithSelf.Convert.type.b23, %As.facet [concrete] -// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.35b, @T.as_type.as.As.impl.Convert(%ptr.838, %ImplicitAs.facet.1d5) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.ffe: = impl_witness imports.%ImplicitAs.impl_witness_table.bfc, @ptr.as.ImplicitAs.impl.984(%S) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.82f: %ImplicitAs.type.919 = facet_value %ptr.055, (%ImplicitAs.impl_witness.ffe) [concrete] +// CHECK:STDOUT: %As.impl_witness.3f8: = impl_witness imports.%As.impl_witness_table.dad, @T.as_type.as.As.impl(%ptr.838, %ImplicitAs.facet.82f) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.38e: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.838, %ImplicitAs.facet.82f) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.984: %T.as_type.as.As.impl.Convert.type.38e = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.8e0 = facet_value %ptr.055, (%As.impl_witness.3f8) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.ee0: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.838, %As.facet) [concrete] +// CHECK:STDOUT: %.8d1: type = fn_type_with_self_type %As.WithSelf.Convert.type.ee0, %As.facet [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.984, @T.as_type.as.As.impl.Convert(%ptr.838, %ImplicitAs.facet.82f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -284,18 +284,18 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %ImplicitAs.impl_witness_table.bfc = impl_witness_table (%Core.import_ref.a68), @ptr.as.ImplicitAs.impl.984 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.9e9) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.055) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %p.patt: %pattern_type.c0f = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.9e9 = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.055 = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc10_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref.loc10_41: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] // CHECK:STDOUT: %ptr.loc10_46: type = ptr_type %void.ref.loc10_41 [concrete = constants.%ptr.838] -// CHECK:STDOUT: %impl.elem0: %.b17 = impl_witness_access constants.%As.impl_witness.72f, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.35b] +// CHECK:STDOUT: %impl.elem0: %.8d1 = impl_witness_access constants.%As.impl_witness.3f8, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.984] // CHECK:STDOUT: %bound_method.loc10_35.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.838, constants.%ImplicitAs.facet.1d5) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.838, constants.%ImplicitAs.facet.82f) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_35.2: = bound_method %input.ref, %specific_fn // CHECK:STDOUT: %T.as_type.as.As.impl.Convert.call: init %ptr.838 = call %bound_method.loc10_35.2(%input.ref) // CHECK:STDOUT: %.loc10_35.1: %ptr.838 = value_of_initializer %T.as_type.as.As.impl.Convert.call @@ -380,8 +380,8 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] // CHECK:STDOUT: %ptr.838: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.761: type = pattern_type %ptr.9e9 [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -396,19 +396,19 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: fn @F(%input.param: %ptr.838) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.761 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f1e = value_binding_pattern p [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %input.ref: %ptr.838 = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc17_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc17_38: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc17_40: type = ptr_type %S.ref.loc17_38 [concrete = constants.%ptr.9e9] -// CHECK:STDOUT: %.loc17_32: %ptr.9e9 = converted %input.ref, [concrete = ] -// CHECK:STDOUT: %.loc17_22: type = splice_block %ptr.loc17_22 [concrete = constants.%ptr.9e9] { +// CHECK:STDOUT: %ptr.loc17_40: type = ptr_type %S.ref.loc17_38 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %.loc17_32: %ptr.055 = converted %input.ref, [concrete = ] +// CHECK:STDOUT: %.loc17_22: type = splice_block %ptr.loc17_22 [concrete = constants.%ptr.055] { // CHECK:STDOUT: %Cpp.ref.loc17_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc17_20: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc17_22: type = ptr_type %S.ref.loc17_20 [concrete = constants.%ptr.9e9] +// CHECK:STDOUT: %ptr.loc17_22: type = ptr_type %S.ref.loc17_20 [concrete = constants.%ptr.055] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.9e9 = value_binding p, [concrete = ] +// CHECK:STDOUT: %p: %ptr.055 = value_binding p, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -445,20 +445,20 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] // CHECK:STDOUT: %ptr.838: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] -// CHECK:STDOUT: %ptr.9e9: type = ptr_type %S [concrete] -// CHECK:STDOUT: %pattern_type.761: type = pattern_type %ptr.9e9 [concrete] -// CHECK:STDOUT: %UnsafeAs.type.e37: type = facet_type <@UnsafeAs, @UnsafeAs(%ptr.9e9)> [concrete] +// CHECK:STDOUT: %ptr.055: type = ptr_type %S [concrete] +// CHECK:STDOUT: %pattern_type.f1e: type = pattern_type %ptr.055 [concrete] +// CHECK:STDOUT: %UnsafeAs.type.6c9: type = facet_type <@UnsafeAs, @UnsafeAs(%ptr.055)> [concrete] // CHECK:STDOUT: %U.091: type = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.ed0: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%T.67d, %U.091) [symbolic] // CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.8b4: %ptr.as.UnsafeAs.impl.Convert.type.ed0 = struct_value () [symbolic] -// CHECK:STDOUT: %UnsafeAs.impl_witness.4bb: = impl_witness imports.%UnsafeAs.impl_witness_table.546, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.83e: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.a6b: %ptr.as.UnsafeAs.impl.Convert.type.83e = struct_value () [concrete] -// CHECK:STDOUT: %UnsafeAs.facet: %UnsafeAs.type.e37 = facet_value %ptr.838, (%UnsafeAs.impl_witness.4bb) [concrete] -// CHECK:STDOUT: %UnsafeAs.WithSelf.Convert.type.96c: type = fn_type @UnsafeAs.WithSelf.Convert, @UnsafeAs.WithSelf(%ptr.9e9, %UnsafeAs.facet) [concrete] -// CHECK:STDOUT: %.7a8: type = fn_type_with_self_type %UnsafeAs.WithSelf.Convert.type.96c, %UnsafeAs.facet [concrete] -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.specific_fn: = specific_function %ptr.as.UnsafeAs.impl.Convert.a6b, @ptr.as.UnsafeAs.impl.Convert(%Cpp.void, %S) [concrete] +// CHECK:STDOUT: %UnsafeAs.impl_witness.b35: = impl_witness imports.%UnsafeAs.impl_witness_table.546, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.type.484: type = fn_type @ptr.as.UnsafeAs.impl.Convert, @ptr.as.UnsafeAs.impl(%Cpp.void, %S) [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.444: %ptr.as.UnsafeAs.impl.Convert.type.484 = struct_value () [concrete] +// CHECK:STDOUT: %UnsafeAs.facet: %UnsafeAs.type.6c9 = facet_value %ptr.838, (%UnsafeAs.impl_witness.b35) [concrete] +// CHECK:STDOUT: %UnsafeAs.WithSelf.Convert.type.169: type = fn_type @UnsafeAs.WithSelf.Convert, @UnsafeAs.WithSelf(%ptr.055, %UnsafeAs.facet) [concrete] +// CHECK:STDOUT: %.8a4: type = fn_type_with_self_type %UnsafeAs.WithSelf.Convert.type.169, %UnsafeAs.facet [concrete] +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.specific_fn: = specific_function %ptr.as.UnsafeAs.impl.Convert.444, @ptr.as.UnsafeAs.impl.Convert(%Cpp.void, %S) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -475,25 +475,25 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: fn @F(%input.param: %ptr.838) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.761 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.f1e = value_binding_pattern p [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %input.ref: %ptr.838 = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc10_42: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc10_45: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc10_47: type = ptr_type %S.ref.loc10_45 [concrete = constants.%ptr.9e9] -// CHECK:STDOUT: %impl.elem0: %.7a8 = impl_witness_access constants.%UnsafeAs.impl_witness.4bb, element0 [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.a6b] +// CHECK:STDOUT: %ptr.loc10_47: type = ptr_type %S.ref.loc10_45 [concrete = constants.%ptr.055] +// CHECK:STDOUT: %impl.elem0: %.8a4 = impl_witness_access constants.%UnsafeAs.impl_witness.b35, element0 [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.444] // CHECK:STDOUT: %bound_method.loc10_39.1: = bound_method %input.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @ptr.as.UnsafeAs.impl.Convert(constants.%Cpp.void, constants.%S) [concrete = constants.%ptr.as.UnsafeAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_39.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.call: init %ptr.9e9 = call %bound_method.loc10_39.2(%input.ref) -// CHECK:STDOUT: %.loc10_39.1: %ptr.9e9 = value_of_initializer %ptr.as.UnsafeAs.impl.Convert.call -// CHECK:STDOUT: %.loc10_39.2: %ptr.9e9 = converted %input.ref, %.loc10_39.1 -// CHECK:STDOUT: %.loc10_22: type = splice_block %ptr.loc10_22 [concrete = constants.%ptr.9e9] { +// CHECK:STDOUT: %ptr.as.UnsafeAs.impl.Convert.call: init %ptr.055 = call %bound_method.loc10_39.2(%input.ref) +// CHECK:STDOUT: %.loc10_39.1: %ptr.055 = value_of_initializer %ptr.as.UnsafeAs.impl.Convert.call +// CHECK:STDOUT: %.loc10_39.2: %ptr.055 = converted %input.ref, %.loc10_39.1 +// CHECK:STDOUT: %.loc10_22: type = splice_block %ptr.loc10_22 [concrete = constants.%ptr.055] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc10_20: type = name_ref S, imports.%S.decl [concrete = constants.%S] -// CHECK:STDOUT: %ptr.loc10_22: type = ptr_type %S.ref.loc10_20 [concrete = constants.%ptr.9e9] +// CHECK:STDOUT: %ptr.loc10_22: type = ptr_type %S.ref.loc10_20 [concrete = constants.%ptr.055] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: %ptr.9e9 = value_binding p, %.loc10_39.2 +// CHECK:STDOUT: %p: %ptr.055 = value_binding p, %.loc10_39.2 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/range_for.carbon b/toolchain/check/testdata/interop/cpp/range_for.carbon index 37bed9df2e1d..aacced841714 100644 --- a/toolchain/check/testdata/interop/cpp/range_for.carbon +++ b/toolchain/check/testdata/interop/cpp/range_for.carbon @@ -509,47 +509,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %impl.elem0.d1d: %.d5a = impl_witness_access %Destroy.lookup_impl_witness.e97, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.a5c: = specific_impl_function %impl.elem0.d1d, @Destroy.WithSelf.Op(%Destroy.facet.503) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] -// CHECK:STDOUT: %pattern_type.607: type = pattern_type %MutableRange [concrete] +// CHECK:STDOUT: %pattern_type.b76: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.03c: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %pattern_type.631: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Iterator.a7566c.1: type = class_type @Iterator.1 [concrete] +// CHECK:STDOUT: %Iterator.826: type = class_type @Iterator.1 [concrete] // CHECK:STDOUT: %MutableRange.Begin.type: type = fn_type @MutableRange.Begin [concrete] // CHECK:STDOUT: %MutableRange.Begin: %MutableRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %MutableRange.End.type: type = fn_type @MutableRange.End [concrete] // CHECK:STDOUT: %MutableRange.End: %MutableRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7e3fb2.1: = custom_witness (%Iterator.a7566c.1, %Iterator.a7566c.1, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.d24: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.7e3fb2.1) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.f11: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.78e: %Iterator.Op.type.f11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b91: = custom_witness (%Iterator.Op.78e), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.665: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.7e3fb2.1, %custom_witness.b91) [concrete] -// CHECK:STDOUT: %Iterator.a7566c.2: type = class_type @Iterator.2 [concrete] +// CHECK:STDOUT: %custom_witness.ea2: = custom_witness (%Iterator.826, %Iterator.826, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.9d3: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.ea2) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.134: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.f05: %Iterator.Op.type.134 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a97: = custom_witness (%Iterator.Op.f05), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.a96: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.ea2, %custom_witness.a97) [concrete] +// CHECK:STDOUT: %Iterator.4f0: type = class_type @Iterator.2 [concrete] // CHECK:STDOUT: %ConstRange.Begin.type: type = fn_type @ConstRange.Begin [concrete] // CHECK:STDOUT: %ConstRange.Begin: %ConstRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %ConstRange.End.type: type = fn_type @ConstRange.End [concrete] // CHECK:STDOUT: %ConstRange.End: %ConstRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.7e3fb2.2: = custom_witness (%Iterator.a7566c.2, %Iterator.a7566c.2, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.9f1: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.7e3fb2.2) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.798: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.250: %Iterator.Op.type.798 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.018: = custom_witness (%Iterator.Op.250), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.57a: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.7e3fb2.2, %custom_witness.018) [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.a13: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.d24) [concrete] -// CHECK:STDOUT: %.a34: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.a13, %CppRangeForIterate.facet.d24 [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.e9f: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.d24) [concrete] -// CHECK:STDOUT: %.2ee: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.e9f, %CppRangeForIterate.facet.d24 [concrete] -// CHECK:STDOUT: %Destroy.facet.fb8: %Destroy.type = facet_value %Iterator.a7566c.1, (%custom_witness.b91) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.223: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.fb8) [concrete] -// CHECK:STDOUT: %.438: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.223, %Destroy.facet.fb8 [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.70e: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.9f1) [concrete] -// CHECK:STDOUT: %.a48: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.70e, %CppRangeForIterate.facet.9f1 [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.870: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.9f1) [concrete] -// CHECK:STDOUT: %.6d4: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.870, %CppRangeForIterate.facet.9f1 [concrete] -// CHECK:STDOUT: %Destroy.facet.10b: %Destroy.type = facet_value %Iterator.a7566c.2, (%custom_witness.018) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.7f7: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.10b) [concrete] -// CHECK:STDOUT: %.cac: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.7f7, %Destroy.facet.10b [concrete] +// CHECK:STDOUT: %custom_witness.e4e: = custom_witness (%Iterator.4f0, %Iterator.4f0, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.0b1: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.e4e) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.9f2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.7b7: %Iterator.Op.type.9f2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.569: = custom_witness (%Iterator.Op.7b7), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.bc0: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.e4e, %custom_witness.569) [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.5c8: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.9d3) [concrete] +// CHECK:STDOUT: %.a3d: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.5c8, %CppRangeForIterate.facet.9d3 [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.a6b: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.9d3) [concrete] +// CHECK:STDOUT: %.cf9: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.a6b, %CppRangeForIterate.facet.9d3 [concrete] +// CHECK:STDOUT: %Destroy.facet.41d: %Destroy.type = facet_value %Iterator.826, (%custom_witness.a97) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.323: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.41d) [concrete] +// CHECK:STDOUT: %.458: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.323, %Destroy.facet.41d [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.9a2: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.0b1) [concrete] +// CHECK:STDOUT: %.ce0: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.9a2, %CppRangeForIterate.facet.0b1 [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.1ba: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.0b1) [concrete] +// CHECK:STDOUT: %.3fc: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.1ba, %CppRangeForIterate.facet.0b1 [concrete] +// CHECK:STDOUT: %Destroy.facet.b0c: %Destroy.type = facet_value %Iterator.4f0, (%custom_witness.569) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.656: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.b0c) [concrete] +// CHECK:STDOUT: %.80f: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.656, %Destroy.facet.b0c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -629,74 +629,74 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ff859f.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.665) { -// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.665 +// CHECK:STDOUT: specific @Test(constants.%facet_value.a96) { +// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.a96 // CHECK:STDOUT: %R.as_type.loc30_113.1 => constants.%MutableRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.607 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b76 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc30 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.7e3fb2.1 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.d24 -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.a13 -// CHECK:STDOUT: %.loc32_4 => constants.%.a34 +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.ea2 +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.9d3 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.5c8 +// CHECK:STDOUT: %.loc32_4 => constants.%.a3d // CHECK:STDOUT: %impl.elem2.loc32_4.2 => constants.%MutableRange.Begin // CHECK:STDOUT: %specific_impl_fn.loc32_4.2 => constants.%MutableRange.Begin -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.a7566c.1 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.826 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.e9f -// CHECK:STDOUT: %.loc33_4 => constants.%.2ee +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.a6b +// CHECK:STDOUT: %.loc33_4 => constants.%.cf9 // CHECK:STDOUT: %impl.elem3.loc33_4.2 => constants.%MutableRange.End // CHECK:STDOUT: %specific_impl_fn.loc33_4.2 => constants.%MutableRange.End -// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.a7566c.1 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.826 // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc33 => constants.%custom_witness.b91 -// CHECK:STDOUT: %Destroy.facet.loc33 => constants.%Destroy.facet.fb8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc33 => constants.%Destroy.WithSelf.Op.type.223 -// CHECK:STDOUT: %.loc33_9.3 => constants.%.438 -// CHECK:STDOUT: %impl.elem0.loc33_9.2 => constants.%Iterator.Op.78e -// CHECK:STDOUT: %specific_impl_fn.loc33_9.2 => constants.%Iterator.Op.78e -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc32 => constants.%custom_witness.b91 -// CHECK:STDOUT: %Destroy.facet.loc32 => constants.%Destroy.facet.fb8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc32 => constants.%Destroy.WithSelf.Op.type.223 -// CHECK:STDOUT: %.loc32_11.3 => constants.%.438 -// CHECK:STDOUT: %impl.elem0.loc32_11.2 => constants.%Iterator.Op.78e -// CHECK:STDOUT: %specific_impl_fn.loc32_11.2 => constants.%Iterator.Op.78e +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc33 => constants.%custom_witness.a97 +// CHECK:STDOUT: %Destroy.facet.loc33 => constants.%Destroy.facet.41d +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc33 => constants.%Destroy.WithSelf.Op.type.323 +// CHECK:STDOUT: %.loc33_9.3 => constants.%.458 +// CHECK:STDOUT: %impl.elem0.loc33_9.2 => constants.%Iterator.Op.f05 +// CHECK:STDOUT: %specific_impl_fn.loc33_9.2 => constants.%Iterator.Op.f05 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc32 => constants.%custom_witness.a97 +// CHECK:STDOUT: %Destroy.facet.loc32 => constants.%Destroy.facet.41d +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc32 => constants.%Destroy.WithSelf.Op.type.323 +// CHECK:STDOUT: %.loc32_11.3 => constants.%.458 +// CHECK:STDOUT: %impl.elem0.loc32_11.2 => constants.%Iterator.Op.f05 +// CHECK:STDOUT: %specific_impl_fn.loc32_11.2 => constants.%Iterator.Op.f05 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.57a) { -// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.57a +// CHECK:STDOUT: specific @Test(constants.%facet_value.bc0) { +// CHECK:STDOUT: %R.loc30_10.1 => constants.%facet_value.bc0 // CHECK:STDOUT: %R.as_type.loc30_113.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.03c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.631 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc30 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.7e3fb2.2 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.9f1 -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.70e -// CHECK:STDOUT: %.loc32_4 => constants.%.a48 +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.e4e +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.0b1 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.9a2 +// CHECK:STDOUT: %.loc32_4 => constants.%.ce0 // CHECK:STDOUT: %impl.elem2.loc32_4.2 => constants.%ConstRange.Begin // CHECK:STDOUT: %specific_impl_fn.loc32_4.2 => constants.%ConstRange.Begin -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.a7566c.2 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.4f0 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.870 -// CHECK:STDOUT: %.loc33_4 => constants.%.6d4 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.1ba +// CHECK:STDOUT: %.loc33_4 => constants.%.3fc // CHECK:STDOUT: %impl.elem3.loc33_4.2 => constants.%ConstRange.End // CHECK:STDOUT: %specific_impl_fn.loc33_4.2 => constants.%ConstRange.End -// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.a7566c.2 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.4f0 // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc33 => constants.%custom_witness.018 -// CHECK:STDOUT: %Destroy.facet.loc33 => constants.%Destroy.facet.10b -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc33 => constants.%Destroy.WithSelf.Op.type.7f7 -// CHECK:STDOUT: %.loc33_9.3 => constants.%.cac -// CHECK:STDOUT: %impl.elem0.loc33_9.2 => constants.%Iterator.Op.250 -// CHECK:STDOUT: %specific_impl_fn.loc33_9.2 => constants.%Iterator.Op.250 -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc32 => constants.%custom_witness.018 -// CHECK:STDOUT: %Destroy.facet.loc32 => constants.%Destroy.facet.10b -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc32 => constants.%Destroy.WithSelf.Op.type.7f7 -// CHECK:STDOUT: %.loc32_11.3 => constants.%.cac -// CHECK:STDOUT: %impl.elem0.loc32_11.2 => constants.%Iterator.Op.250 -// CHECK:STDOUT: %specific_impl_fn.loc32_11.2 => constants.%Iterator.Op.250 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc33 => constants.%custom_witness.569 +// CHECK:STDOUT: %Destroy.facet.loc33 => constants.%Destroy.facet.b0c +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc33 => constants.%Destroy.WithSelf.Op.type.656 +// CHECK:STDOUT: %.loc33_9.3 => constants.%.80f +// CHECK:STDOUT: %impl.elem0.loc33_9.2 => constants.%Iterator.Op.7b7 +// CHECK:STDOUT: %specific_impl_fn.loc33_9.2 => constants.%Iterator.Op.7b7 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc32 => constants.%custom_witness.569 +// CHECK:STDOUT: %Destroy.facet.loc32 => constants.%Destroy.facet.b0c +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc32 => constants.%Destroy.WithSelf.Op.type.656 +// CHECK:STDOUT: %.loc32_11.3 => constants.%.80f +// CHECK:STDOUT: %impl.elem0.loc32_11.2 => constants.%Iterator.Op.7b7 +// CHECK:STDOUT: %specific_impl_fn.loc32_11.2 => constants.%Iterator.Op.7b7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- methods_return_different_types.carbon @@ -746,61 +746,61 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %impl.elem0.d1d: %.d5a = impl_witness_access %Destroy.lookup_impl_witness.e97, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.a5c: = specific_impl_function %impl.elem0.d1d, @Destroy.WithSelf.Op(%Destroy.facet.503) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] -// CHECK:STDOUT: %pattern_type.607: type = pattern_type %MutableRange [concrete] +// CHECK:STDOUT: %pattern_type.b76: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.03c: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %pattern_type.631: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Iterator.a7566c.1: type = class_type @Iterator.1 [concrete] -// CHECK:STDOUT: %Sentinel.885798.1: type = class_type @Sentinel.1 [concrete] +// CHECK:STDOUT: %Iterator.826: type = class_type @Iterator.1 [concrete] +// CHECK:STDOUT: %Sentinel.6eb: type = class_type @Sentinel.1 [concrete] // CHECK:STDOUT: %MutableRange.Begin.type: type = fn_type @MutableRange.Begin [concrete] // CHECK:STDOUT: %MutableRange.Begin: %MutableRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %MutableRange.End.type: type = fn_type @MutableRange.End [concrete] // CHECK:STDOUT: %MutableRange.End: %MutableRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.607036.1: = custom_witness (%Iterator.a7566c.1, %Sentinel.885798.1, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.5b8: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.607036.1) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.f11: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.78e: %Iterator.Op.type.f11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b916b4.1: = custom_witness (%Iterator.Op.78e), @Destroy [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.f11: type = fn_type @Sentinel.Op.1 [concrete] -// CHECK:STDOUT: %Sentinel.Op.78e: %Sentinel.Op.type.f11 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.b916b4.2: = custom_witness (%Sentinel.Op.78e), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.8f5: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.607036.1, %custom_witness.b916b4.1, %custom_witness.b916b4.2) [concrete] -// CHECK:STDOUT: %Iterator.a7566c.2: type = class_type @Iterator.2 [concrete] -// CHECK:STDOUT: %Sentinel.885798.2: type = class_type @Sentinel.2 [concrete] +// CHECK:STDOUT: %custom_witness.556: = custom_witness (%Iterator.826, %Sentinel.6eb, %MutableRange.Begin, %MutableRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.aae: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.556) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.134: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.f05: %Iterator.Op.type.134 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a9753d.1: = custom_witness (%Iterator.Op.f05), @Destroy [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.134: type = fn_type @Sentinel.Op.1 [concrete] +// CHECK:STDOUT: %Sentinel.Op.f05: %Sentinel.Op.type.134 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.a9753d.2: = custom_witness (%Sentinel.Op.f05), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.d71: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.556, %custom_witness.a9753d.1, %custom_witness.a9753d.2) [concrete] +// CHECK:STDOUT: %Iterator.4f0: type = class_type @Iterator.2 [concrete] +// CHECK:STDOUT: %Sentinel.45e: type = class_type @Sentinel.2 [concrete] // CHECK:STDOUT: %ConstRange.Begin.type: type = fn_type @ConstRange.Begin [concrete] // CHECK:STDOUT: %ConstRange.Begin: %ConstRange.Begin.type = struct_value () [concrete] // CHECK:STDOUT: %ConstRange.End.type: type = fn_type @ConstRange.End [concrete] // CHECK:STDOUT: %ConstRange.End: %ConstRange.End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.607036.2: = custom_witness (%Iterator.a7566c.2, %Sentinel.885798.2, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.3d4: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.607036.2) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.798: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.250: %Iterator.Op.type.798 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.0183d1.1: = custom_witness (%Iterator.Op.250), @Destroy [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.798: type = fn_type @Sentinel.Op.2 [concrete] -// CHECK:STDOUT: %Sentinel.Op.250: %Sentinel.Op.type.798 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.0183d1.2: = custom_witness (%Sentinel.Op.250), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.058: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.607036.2, %custom_witness.0183d1.1, %custom_witness.0183d1.2) [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.dc4: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.5b8) [concrete] -// CHECK:STDOUT: %.314: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.dc4, %CppRangeForIterate.facet.5b8 [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.143: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.5b8) [concrete] -// CHECK:STDOUT: %.0e0: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.143, %CppRangeForIterate.facet.5b8 [concrete] -// CHECK:STDOUT: %Destroy.facet.7db: %Destroy.type = facet_value %Sentinel.885798.1, (%custom_witness.b916b4.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.9c0: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.7db) [concrete] -// CHECK:STDOUT: %.d81: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.9c0, %Destroy.facet.7db [concrete] -// CHECK:STDOUT: %Destroy.facet.fb8: %Destroy.type = facet_value %Iterator.a7566c.1, (%custom_witness.b916b4.1) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.223: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.fb8) [concrete] -// CHECK:STDOUT: %.438: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.223, %Destroy.facet.fb8 [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.c94: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.3d4) [concrete] -// CHECK:STDOUT: %.6f0: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.c94, %CppRangeForIterate.facet.3d4 [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.e75: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.3d4) [concrete] -// CHECK:STDOUT: %.c37: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.e75, %CppRangeForIterate.facet.3d4 [concrete] -// CHECK:STDOUT: %Destroy.facet.e7c: %Destroy.type = facet_value %Sentinel.885798.2, (%custom_witness.0183d1.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.b01: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e7c) [concrete] -// CHECK:STDOUT: %.c9b: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.b01, %Destroy.facet.e7c [concrete] -// CHECK:STDOUT: %Destroy.facet.10b: %Destroy.type = facet_value %Iterator.a7566c.2, (%custom_witness.0183d1.1) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.7f7: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.10b) [concrete] -// CHECK:STDOUT: %.cac: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.7f7, %Destroy.facet.10b [concrete] +// CHECK:STDOUT: %custom_witness.d7a: = custom_witness (%Iterator.4f0, %Sentinel.45e, %ConstRange.Begin, %ConstRange.End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.77a: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.d7a) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.9f2: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.7b7: %Iterator.Op.type.9f2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.569415.1: = custom_witness (%Iterator.Op.7b7), @Destroy [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.9f2: type = fn_type @Sentinel.Op.2 [concrete] +// CHECK:STDOUT: %Sentinel.Op.7b7: %Sentinel.Op.type.9f2 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.569415.2: = custom_witness (%Sentinel.Op.7b7), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.2eb: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.d7a, %custom_witness.569415.1, %custom_witness.569415.2) [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.1ae: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.aae) [concrete] +// CHECK:STDOUT: %.f5c: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.1ae, %CppRangeForIterate.facet.aae [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.16f: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.aae) [concrete] +// CHECK:STDOUT: %.f3e: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.16f, %CppRangeForIterate.facet.aae [concrete] +// CHECK:STDOUT: %Destroy.facet.ee2: %Destroy.type = facet_value %Sentinel.6eb, (%custom_witness.a9753d.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.ef7: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.ee2) [concrete] +// CHECK:STDOUT: %.bef: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.ef7, %Destroy.facet.ee2 [concrete] +// CHECK:STDOUT: %Destroy.facet.41d: %Destroy.type = facet_value %Iterator.826, (%custom_witness.a9753d.1) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.323: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.41d) [concrete] +// CHECK:STDOUT: %.458: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.323, %Destroy.facet.41d [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.7ad: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.77a) [concrete] +// CHECK:STDOUT: %.421: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.7ad, %CppRangeForIterate.facet.77a [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.79b: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.77a) [concrete] +// CHECK:STDOUT: %.b91: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.79b, %CppRangeForIterate.facet.77a [concrete] +// CHECK:STDOUT: %Destroy.facet.a41: %Destroy.type = facet_value %Sentinel.45e, (%custom_witness.569415.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.0c6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.a41) [concrete] +// CHECK:STDOUT: %.df3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.0c6, %Destroy.facet.a41 [concrete] +// CHECK:STDOUT: %Destroy.facet.b0c: %Destroy.type = facet_value %Iterator.4f0, (%custom_witness.569415.1) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.656: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.b0c) [concrete] +// CHECK:STDOUT: %.80f: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.656, %Destroy.facet.b0c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -880,74 +880,74 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ff859f.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.8f5) { -// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.8f5 +// CHECK:STDOUT: specific @Test(constants.%facet_value.d71) { +// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.d71 // CHECK:STDOUT: %R.as_type.loc40_113.1 => constants.%MutableRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.607 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b76 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc40 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.607036.1 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.5b8 -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.dc4 -// CHECK:STDOUT: %.loc42_4 => constants.%.314 +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.556 +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.aae +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.1ae +// CHECK:STDOUT: %.loc42_4 => constants.%.f5c // CHECK:STDOUT: %impl.elem2.loc42_4.2 => constants.%MutableRange.Begin // CHECK:STDOUT: %specific_impl_fn.loc42_4.2 => constants.%MutableRange.Begin -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.a7566c.1 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.826 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.143 -// CHECK:STDOUT: %.loc43_4 => constants.%.0e0 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.16f +// CHECK:STDOUT: %.loc43_4 => constants.%.f3e // CHECK:STDOUT: %impl.elem3.loc43_4.2 => constants.%MutableRange.End // CHECK:STDOUT: %specific_impl_fn.loc43_4.2 => constants.%MutableRange.End -// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.885798.1 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.6eb // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc43 => constants.%custom_witness.b916b4.2 -// CHECK:STDOUT: %Destroy.facet.loc43 => constants.%Destroy.facet.7db -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc43 => constants.%Destroy.WithSelf.Op.type.9c0 -// CHECK:STDOUT: %.loc43_9.3 => constants.%.d81 -// CHECK:STDOUT: %impl.elem0.loc43_9.2 => constants.%Sentinel.Op.78e -// CHECK:STDOUT: %specific_impl_fn.loc43_9.2 => constants.%Sentinel.Op.78e -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc42 => constants.%custom_witness.b916b4.1 -// CHECK:STDOUT: %Destroy.facet.loc42 => constants.%Destroy.facet.fb8 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc42 => constants.%Destroy.WithSelf.Op.type.223 -// CHECK:STDOUT: %.loc42_11.3 => constants.%.438 -// CHECK:STDOUT: %impl.elem0.loc42_11.2 => constants.%Iterator.Op.78e -// CHECK:STDOUT: %specific_impl_fn.loc42_11.2 => constants.%Iterator.Op.78e +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc43 => constants.%custom_witness.a9753d.2 +// CHECK:STDOUT: %Destroy.facet.loc43 => constants.%Destroy.facet.ee2 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc43 => constants.%Destroy.WithSelf.Op.type.ef7 +// CHECK:STDOUT: %.loc43_9.3 => constants.%.bef +// CHECK:STDOUT: %impl.elem0.loc43_9.2 => constants.%Sentinel.Op.f05 +// CHECK:STDOUT: %specific_impl_fn.loc43_9.2 => constants.%Sentinel.Op.f05 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc42 => constants.%custom_witness.a9753d.1 +// CHECK:STDOUT: %Destroy.facet.loc42 => constants.%Destroy.facet.41d +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc42 => constants.%Destroy.WithSelf.Op.type.323 +// CHECK:STDOUT: %.loc42_11.3 => constants.%.458 +// CHECK:STDOUT: %impl.elem0.loc42_11.2 => constants.%Iterator.Op.f05 +// CHECK:STDOUT: %specific_impl_fn.loc42_11.2 => constants.%Iterator.Op.f05 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.058) { -// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.058 +// CHECK:STDOUT: specific @Test(constants.%facet_value.2eb) { +// CHECK:STDOUT: %R.loc40_10.1 => constants.%facet_value.2eb // CHECK:STDOUT: %R.as_type.loc40_113.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.03c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.631 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc40 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.607036.2 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.3d4 -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.c94 -// CHECK:STDOUT: %.loc42_4 => constants.%.6f0 +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.d7a +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.77a +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.7ad +// CHECK:STDOUT: %.loc42_4 => constants.%.421 // CHECK:STDOUT: %impl.elem2.loc42_4.2 => constants.%ConstRange.Begin // CHECK:STDOUT: %specific_impl_fn.loc42_4.2 => constants.%ConstRange.Begin -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.a7566c.2 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.4f0 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.e75 -// CHECK:STDOUT: %.loc43_4 => constants.%.c37 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.79b +// CHECK:STDOUT: %.loc43_4 => constants.%.b91 // CHECK:STDOUT: %impl.elem3.loc43_4.2 => constants.%ConstRange.End // CHECK:STDOUT: %specific_impl_fn.loc43_4.2 => constants.%ConstRange.End -// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.885798.2 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.45e // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc43 => constants.%custom_witness.0183d1.2 -// CHECK:STDOUT: %Destroy.facet.loc43 => constants.%Destroy.facet.e7c -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc43 => constants.%Destroy.WithSelf.Op.type.b01 -// CHECK:STDOUT: %.loc43_9.3 => constants.%.c9b -// CHECK:STDOUT: %impl.elem0.loc43_9.2 => constants.%Sentinel.Op.250 -// CHECK:STDOUT: %specific_impl_fn.loc43_9.2 => constants.%Sentinel.Op.250 -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc42 => constants.%custom_witness.0183d1.1 -// CHECK:STDOUT: %Destroy.facet.loc42 => constants.%Destroy.facet.10b -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc42 => constants.%Destroy.WithSelf.Op.type.7f7 -// CHECK:STDOUT: %.loc42_11.3 => constants.%.cac -// CHECK:STDOUT: %impl.elem0.loc42_11.2 => constants.%Iterator.Op.250 -// CHECK:STDOUT: %specific_impl_fn.loc42_11.2 => constants.%Iterator.Op.250 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc43 => constants.%custom_witness.569415.2 +// CHECK:STDOUT: %Destroy.facet.loc43 => constants.%Destroy.facet.a41 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc43 => constants.%Destroy.WithSelf.Op.type.0c6 +// CHECK:STDOUT: %.loc43_9.3 => constants.%.df3 +// CHECK:STDOUT: %impl.elem0.loc43_9.2 => constants.%Sentinel.Op.7b7 +// CHECK:STDOUT: %specific_impl_fn.loc43_9.2 => constants.%Sentinel.Op.7b7 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc42 => constants.%custom_witness.569415.1 +// CHECK:STDOUT: %Destroy.facet.loc42 => constants.%Destroy.facet.b0c +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc42 => constants.%Destroy.WithSelf.Op.type.656 +// CHECK:STDOUT: %.loc42_11.3 => constants.%.80f +// CHECK:STDOUT: %impl.elem0.loc42_11.2 => constants.%Iterator.Op.7b7 +// CHECK:STDOUT: %specific_impl_fn.loc42_11.2 => constants.%Iterator.Op.7b7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adl_return_same_types.carbon @@ -997,47 +997,47 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %impl.elem0.d1d: %.d5a = impl_witness_access %Destroy.lookup_impl_witness.e97, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.a5c: = specific_impl_function %impl.elem0.d1d, @Destroy.WithSelf.Op(%Destroy.facet.503) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] -// CHECK:STDOUT: %pattern_type.f4c: type = pattern_type %MutableRange [concrete] +// CHECK:STDOUT: %pattern_type.80f: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.e01: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %pattern_type.88d: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Iterator.b6bc8f.1: type = class_type @Iterator.1 [concrete] +// CHECK:STDOUT: %Iterator.b8c: type = class_type @Iterator.1 [concrete] // CHECK:STDOUT: %Begin.type.793876.1: type = fn_type @Begin.1 [concrete] // CHECK:STDOUT: %Begin.1544bb.1: %Begin.type.793876.1 = struct_value () [concrete] // CHECK:STDOUT: %End.type.16398b.1: type = fn_type @End.1 [concrete] // CHECK:STDOUT: %End.be76e1.1: %End.type.16398b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.827774.1: = custom_witness (%Iterator.b6bc8f.1, %Iterator.b6bc8f.1, %Begin.1544bb.1, %End.be76e1.1), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.a7f: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.827774.1) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.37d: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.26b: %Iterator.Op.type.37d = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.415: = custom_witness (%Iterator.Op.26b), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.c35: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.827774.1, %custom_witness.415) [concrete] -// CHECK:STDOUT: %Iterator.b6bc8f.2: type = class_type @Iterator.2 [concrete] +// CHECK:STDOUT: %custom_witness.92f: = custom_witness (%Iterator.b8c, %Iterator.b8c, %Begin.1544bb.1, %End.be76e1.1), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.068: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.92f) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.910: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.cbb: %Iterator.Op.type.910 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.d6a: = custom_witness (%Iterator.Op.cbb), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.eb2: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.92f, %custom_witness.d6a) [concrete] +// CHECK:STDOUT: %Iterator.080: type = class_type @Iterator.2 [concrete] // CHECK:STDOUT: %Begin.type.793876.2: type = fn_type @Begin.2 [concrete] // CHECK:STDOUT: %Begin.1544bb.2: %Begin.type.793876.2 = struct_value () [concrete] // CHECK:STDOUT: %End.type.16398b.2: type = fn_type @End.2 [concrete] // CHECK:STDOUT: %End.be76e1.2: %End.type.16398b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.827774.2: = custom_witness (%Iterator.b6bc8f.2, %Iterator.b6bc8f.2, %Begin.1544bb.2, %End.be76e1.2), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.5e6: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.827774.2) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.152: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.84b: %Iterator.Op.type.152 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.0d3: = custom_witness (%Iterator.Op.84b), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.057: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.827774.2, %custom_witness.0d3) [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.bfa: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.a7f) [concrete] -// CHECK:STDOUT: %.73f: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.bfa, %CppRangeForIterate.facet.a7f [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.c37: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.a7f) [concrete] -// CHECK:STDOUT: %.03b: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.c37, %CppRangeForIterate.facet.a7f [concrete] -// CHECK:STDOUT: %Destroy.facet.bcd: %Destroy.type = facet_value %Iterator.b6bc8f.1, (%custom_witness.415) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.92e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.bcd) [concrete] -// CHECK:STDOUT: %.c1a: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.92e, %Destroy.facet.bcd [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.532: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.5e6) [concrete] -// CHECK:STDOUT: %.bca: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.532, %CppRangeForIterate.facet.5e6 [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.87b: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.5e6) [concrete] -// CHECK:STDOUT: %.83b: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.87b, %CppRangeForIterate.facet.5e6 [concrete] -// CHECK:STDOUT: %Destroy.facet.e71: %Destroy.type = facet_value %Iterator.b6bc8f.2, (%custom_witness.0d3) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.1d5: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e71) [concrete] -// CHECK:STDOUT: %.bef: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.1d5, %Destroy.facet.e71 [concrete] +// CHECK:STDOUT: %custom_witness.532: = custom_witness (%Iterator.080, %Iterator.080, %Begin.1544bb.2, %End.be76e1.2), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.984: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.532) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.587: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.dc6: %Iterator.Op.type.587 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.b57: = custom_witness (%Iterator.Op.dc6), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.5d5: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.532, %custom_witness.b57) [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.949: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.068) [concrete] +// CHECK:STDOUT: %.b32: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.949, %CppRangeForIterate.facet.068 [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.e7a: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.068) [concrete] +// CHECK:STDOUT: %.3d5: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.e7a, %CppRangeForIterate.facet.068 [concrete] +// CHECK:STDOUT: %Destroy.facet.44a: %Destroy.type = facet_value %Iterator.b8c, (%custom_witness.d6a) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.360: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.44a) [concrete] +// CHECK:STDOUT: %.da3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.360, %Destroy.facet.44a [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.973: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.984) [concrete] +// CHECK:STDOUT: %.b08: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.973, %CppRangeForIterate.facet.984 [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.4f9: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.984) [concrete] +// CHECK:STDOUT: %.bf2: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.4f9, %CppRangeForIterate.facet.984 [concrete] +// CHECK:STDOUT: %Destroy.facet.eb0: %Destroy.type = facet_value %Iterator.080, (%custom_witness.b57) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.bbe: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.eb0) [concrete] +// CHECK:STDOUT: %.cdf: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.bbe, %Destroy.facet.eb0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1117,74 +1117,74 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ff859f.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.c35) { -// CHECK:STDOUT: %R.loc32_10.1 => constants.%facet_value.c35 +// CHECK:STDOUT: specific @Test(constants.%facet_value.eb2) { +// CHECK:STDOUT: %R.loc32_10.1 => constants.%facet_value.eb2 // CHECK:STDOUT: %R.as_type.loc32_113.1 => constants.%MutableRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.80f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc32 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.827774.1 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.a7f -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.bfa -// CHECK:STDOUT: %.loc34_4 => constants.%.73f +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.92f +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.068 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.949 +// CHECK:STDOUT: %.loc34_4 => constants.%.b32 // CHECK:STDOUT: %impl.elem2.loc34_4.2 => constants.%Begin.1544bb.1 // CHECK:STDOUT: %specific_impl_fn.loc34_4.2 => constants.%Begin.1544bb.1 -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.b6bc8f.1 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.b8c // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.c37 -// CHECK:STDOUT: %.loc35_4 => constants.%.03b +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.e7a +// CHECK:STDOUT: %.loc35_4 => constants.%.3d5 // CHECK:STDOUT: %impl.elem3.loc35_4.2 => constants.%End.be76e1.1 // CHECK:STDOUT: %specific_impl_fn.loc35_4.2 => constants.%End.be76e1.1 -// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.b6bc8f.1 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.b8c // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc35 => constants.%custom_witness.415 -// CHECK:STDOUT: %Destroy.facet.loc35 => constants.%Destroy.facet.bcd -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc35 => constants.%Destroy.WithSelf.Op.type.92e -// CHECK:STDOUT: %.loc35_9.3 => constants.%.c1a -// CHECK:STDOUT: %impl.elem0.loc35_9.2 => constants.%Iterator.Op.26b -// CHECK:STDOUT: %specific_impl_fn.loc35_9.2 => constants.%Iterator.Op.26b -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc34 => constants.%custom_witness.415 -// CHECK:STDOUT: %Destroy.facet.loc34 => constants.%Destroy.facet.bcd -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc34 => constants.%Destroy.WithSelf.Op.type.92e -// CHECK:STDOUT: %.loc34_11.3 => constants.%.c1a -// CHECK:STDOUT: %impl.elem0.loc34_11.2 => constants.%Iterator.Op.26b -// CHECK:STDOUT: %specific_impl_fn.loc34_11.2 => constants.%Iterator.Op.26b +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc35 => constants.%custom_witness.d6a +// CHECK:STDOUT: %Destroy.facet.loc35 => constants.%Destroy.facet.44a +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc35 => constants.%Destroy.WithSelf.Op.type.360 +// CHECK:STDOUT: %.loc35_9.3 => constants.%.da3 +// CHECK:STDOUT: %impl.elem0.loc35_9.2 => constants.%Iterator.Op.cbb +// CHECK:STDOUT: %specific_impl_fn.loc35_9.2 => constants.%Iterator.Op.cbb +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc34 => constants.%custom_witness.d6a +// CHECK:STDOUT: %Destroy.facet.loc34 => constants.%Destroy.facet.44a +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc34 => constants.%Destroy.WithSelf.Op.type.360 +// CHECK:STDOUT: %.loc34_11.3 => constants.%.da3 +// CHECK:STDOUT: %impl.elem0.loc34_11.2 => constants.%Iterator.Op.cbb +// CHECK:STDOUT: %specific_impl_fn.loc34_11.2 => constants.%Iterator.Op.cbb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.057) { -// CHECK:STDOUT: %R.loc32_10.1 => constants.%facet_value.057 +// CHECK:STDOUT: specific @Test(constants.%facet_value.5d5) { +// CHECK:STDOUT: %R.loc32_10.1 => constants.%facet_value.5d5 // CHECK:STDOUT: %R.as_type.loc32_113.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e01 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.88d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc32 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.827774.2 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.5e6 -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.532 -// CHECK:STDOUT: %.loc34_4 => constants.%.bca +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.532 +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.984 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.973 +// CHECK:STDOUT: %.loc34_4 => constants.%.b08 // CHECK:STDOUT: %impl.elem2.loc34_4.2 => constants.%Begin.1544bb.2 // CHECK:STDOUT: %specific_impl_fn.loc34_4.2 => constants.%Begin.1544bb.2 -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.b6bc8f.2 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.080 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.87b -// CHECK:STDOUT: %.loc35_4 => constants.%.83b +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.4f9 +// CHECK:STDOUT: %.loc35_4 => constants.%.bf2 // CHECK:STDOUT: %impl.elem3.loc35_4.2 => constants.%End.be76e1.2 // CHECK:STDOUT: %specific_impl_fn.loc35_4.2 => constants.%End.be76e1.2 -// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.b6bc8f.2 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator.080 // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc35 => constants.%custom_witness.0d3 -// CHECK:STDOUT: %Destroy.facet.loc35 => constants.%Destroy.facet.e71 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc35 => constants.%Destroy.WithSelf.Op.type.1d5 -// CHECK:STDOUT: %.loc35_9.3 => constants.%.bef -// CHECK:STDOUT: %impl.elem0.loc35_9.2 => constants.%Iterator.Op.84b -// CHECK:STDOUT: %specific_impl_fn.loc35_9.2 => constants.%Iterator.Op.84b -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc34 => constants.%custom_witness.0d3 -// CHECK:STDOUT: %Destroy.facet.loc34 => constants.%Destroy.facet.e71 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc34 => constants.%Destroy.WithSelf.Op.type.1d5 -// CHECK:STDOUT: %.loc34_11.3 => constants.%.bef -// CHECK:STDOUT: %impl.elem0.loc34_11.2 => constants.%Iterator.Op.84b -// CHECK:STDOUT: %specific_impl_fn.loc34_11.2 => constants.%Iterator.Op.84b +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc35 => constants.%custom_witness.b57 +// CHECK:STDOUT: %Destroy.facet.loc35 => constants.%Destroy.facet.eb0 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc35 => constants.%Destroy.WithSelf.Op.type.bbe +// CHECK:STDOUT: %.loc35_9.3 => constants.%.cdf +// CHECK:STDOUT: %impl.elem0.loc35_9.2 => constants.%Iterator.Op.dc6 +// CHECK:STDOUT: %specific_impl_fn.loc35_9.2 => constants.%Iterator.Op.dc6 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc34 => constants.%custom_witness.b57 +// CHECK:STDOUT: %Destroy.facet.loc34 => constants.%Destroy.facet.eb0 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc34 => constants.%Destroy.WithSelf.Op.type.bbe +// CHECK:STDOUT: %.loc34_11.3 => constants.%.cdf +// CHECK:STDOUT: %impl.elem0.loc34_11.2 => constants.%Iterator.Op.dc6 +// CHECK:STDOUT: %specific_impl_fn.loc34_11.2 => constants.%Iterator.Op.dc6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adl_returns_different_types.carbon @@ -1234,61 +1234,61 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %impl.elem0.d1d: %.d5a = impl_witness_access %Destroy.lookup_impl_witness.e97, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.a5c: = specific_impl_function %impl.elem0.d1d, @Destroy.WithSelf.Op(%Destroy.facet.503) [symbolic] // CHECK:STDOUT: %MutableRange: type = class_type @MutableRange [concrete] -// CHECK:STDOUT: %pattern_type.f4c: type = pattern_type %MutableRange [concrete] +// CHECK:STDOUT: %pattern_type.80f: type = pattern_type %MutableRange [concrete] // CHECK:STDOUT: %ConstRange: type = class_type @ConstRange [concrete] -// CHECK:STDOUT: %pattern_type.e01: type = pattern_type %ConstRange [concrete] +// CHECK:STDOUT: %pattern_type.88d: type = pattern_type %ConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %Iterator.b6bc8f.1: type = class_type @Iterator.1 [concrete] -// CHECK:STDOUT: %Sentinel.50a788.1: type = class_type @Sentinel.1 [concrete] +// CHECK:STDOUT: %Iterator.b8c: type = class_type @Iterator.1 [concrete] +// CHECK:STDOUT: %Sentinel.501: type = class_type @Sentinel.1 [concrete] // CHECK:STDOUT: %Begin.type.793876.1: type = fn_type @Begin.1 [concrete] // CHECK:STDOUT: %Begin.1544bb.1: %Begin.type.793876.1 = struct_value () [concrete] // CHECK:STDOUT: %End.type.16398b.1: type = fn_type @End.1 [concrete] // CHECK:STDOUT: %End.be76e1.1: %End.type.16398b.1 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.1bf5e5.1: = custom_witness (%Iterator.b6bc8f.1, %Sentinel.50a788.1, %Begin.1544bb.1, %End.be76e1.1), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.d1e: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.1bf5e5.1) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.37d: type = fn_type @Iterator.Op.1 [concrete] -// CHECK:STDOUT: %Iterator.Op.26b: %Iterator.Op.type.37d = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.415faa.1: = custom_witness (%Iterator.Op.26b), @Destroy [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.37d: type = fn_type @Sentinel.Op.1 [concrete] -// CHECK:STDOUT: %Sentinel.Op.26b: %Sentinel.Op.type.37d = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.415faa.2: = custom_witness (%Sentinel.Op.26b), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.b34: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.1bf5e5.1, %custom_witness.415faa.1, %custom_witness.415faa.2) [concrete] -// CHECK:STDOUT: %Iterator.b6bc8f.2: type = class_type @Iterator.2 [concrete] -// CHECK:STDOUT: %Sentinel.50a788.2: type = class_type @Sentinel.2 [concrete] +// CHECK:STDOUT: %custom_witness.480: = custom_witness (%Iterator.b8c, %Sentinel.501, %Begin.1544bb.1, %End.be76e1.1), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.1f7: %CppRangeForIterate.type = facet_value %MutableRange, (%custom_witness.480) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.910: type = fn_type @Iterator.Op.1 [concrete] +// CHECK:STDOUT: %Iterator.Op.cbb: %Iterator.Op.type.910 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.d6afef.1: = custom_witness (%Iterator.Op.cbb), @Destroy [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.910: type = fn_type @Sentinel.Op.1 [concrete] +// CHECK:STDOUT: %Sentinel.Op.cbb: %Sentinel.Op.type.910 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.d6afef.2: = custom_witness (%Sentinel.Op.cbb), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.388: %CppRangeForIterate_where.type = facet_value %MutableRange, (%custom_witness.480, %custom_witness.d6afef.1, %custom_witness.d6afef.2) [concrete] +// CHECK:STDOUT: %Iterator.080: type = class_type @Iterator.2 [concrete] +// CHECK:STDOUT: %Sentinel.a47: type = class_type @Sentinel.2 [concrete] // CHECK:STDOUT: %Begin.type.793876.2: type = fn_type @Begin.2 [concrete] // CHECK:STDOUT: %Begin.1544bb.2: %Begin.type.793876.2 = struct_value () [concrete] // CHECK:STDOUT: %End.type.16398b.2: type = fn_type @End.2 [concrete] // CHECK:STDOUT: %End.be76e1.2: %End.type.16398b.2 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.1bf5e5.2: = custom_witness (%Iterator.b6bc8f.2, %Sentinel.50a788.2, %Begin.1544bb.2, %End.be76e1.2), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.18f: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.1bf5e5.2) [concrete] -// CHECK:STDOUT: %Iterator.Op.type.152: type = fn_type @Iterator.Op.2 [concrete] -// CHECK:STDOUT: %Iterator.Op.84b: %Iterator.Op.type.152 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.0d3cfa.1: = custom_witness (%Iterator.Op.84b), @Destroy [concrete] -// CHECK:STDOUT: %Sentinel.Op.type.152: type = fn_type @Sentinel.Op.2 [concrete] -// CHECK:STDOUT: %Sentinel.Op.84b: %Sentinel.Op.type.152 = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.0d3cfa.2: = custom_witness (%Sentinel.Op.84b), @Destroy [concrete] -// CHECK:STDOUT: %facet_value.11c: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.1bf5e5.2, %custom_witness.0d3cfa.1, %custom_witness.0d3cfa.2) [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.bf8: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.d1e) [concrete] -// CHECK:STDOUT: %.504: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.bf8, %CppRangeForIterate.facet.d1e [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.580: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.d1e) [concrete] -// CHECK:STDOUT: %.1e1: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.580, %CppRangeForIterate.facet.d1e [concrete] -// CHECK:STDOUT: %Destroy.facet.eb0: %Destroy.type = facet_value %Sentinel.50a788.1, (%custom_witness.415faa.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.552: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.eb0) [concrete] -// CHECK:STDOUT: %.9ca: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.552, %Destroy.facet.eb0 [concrete] -// CHECK:STDOUT: %Destroy.facet.bcd: %Destroy.type = facet_value %Iterator.b6bc8f.1, (%custom_witness.415faa.1) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.92e: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.bcd) [concrete] -// CHECK:STDOUT: %.c1a: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.92e, %Destroy.facet.bcd [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.a30: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.18f) [concrete] -// CHECK:STDOUT: %.e4b: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.a30, %CppRangeForIterate.facet.18f [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.aba: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.18f) [concrete] -// CHECK:STDOUT: %.d10: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.aba, %CppRangeForIterate.facet.18f [concrete] -// CHECK:STDOUT: %Destroy.facet.a2a: %Destroy.type = facet_value %Sentinel.50a788.2, (%custom_witness.0d3cfa.2) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.1fe: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.a2a) [concrete] -// CHECK:STDOUT: %.f48: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.1fe, %Destroy.facet.a2a [concrete] -// CHECK:STDOUT: %Destroy.facet.e71: %Destroy.type = facet_value %Iterator.b6bc8f.2, (%custom_witness.0d3cfa.1) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.1d5: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e71) [concrete] -// CHECK:STDOUT: %.bef: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.1d5, %Destroy.facet.e71 [concrete] +// CHECK:STDOUT: %custom_witness.7a2: = custom_witness (%Iterator.080, %Sentinel.a47, %Begin.1544bb.2, %End.be76e1.2), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.48c: %CppRangeForIterate.type = facet_value %ConstRange, (%custom_witness.7a2) [concrete] +// CHECK:STDOUT: %Iterator.Op.type.587: type = fn_type @Iterator.Op.2 [concrete] +// CHECK:STDOUT: %Iterator.Op.dc6: %Iterator.Op.type.587 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.b57f0b.1: = custom_witness (%Iterator.Op.dc6), @Destroy [concrete] +// CHECK:STDOUT: %Sentinel.Op.type.587: type = fn_type @Sentinel.Op.2 [concrete] +// CHECK:STDOUT: %Sentinel.Op.dc6: %Sentinel.Op.type.587 = struct_value () [concrete] +// CHECK:STDOUT: %custom_witness.b57f0b.2: = custom_witness (%Sentinel.Op.dc6), @Destroy [concrete] +// CHECK:STDOUT: %facet_value.38d: %CppRangeForIterate_where.type = facet_value %ConstRange, (%custom_witness.7a2, %custom_witness.b57f0b.1, %custom_witness.b57f0b.2) [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.c44: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.1f7) [concrete] +// CHECK:STDOUT: %.a44: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.c44, %CppRangeForIterate.facet.1f7 [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.d16: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.1f7) [concrete] +// CHECK:STDOUT: %.994: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.d16, %CppRangeForIterate.facet.1f7 [concrete] +// CHECK:STDOUT: %Destroy.facet.4b0: %Destroy.type = facet_value %Sentinel.501, (%custom_witness.d6afef.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.5e0: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.4b0) [concrete] +// CHECK:STDOUT: %.132: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.5e0, %Destroy.facet.4b0 [concrete] +// CHECK:STDOUT: %Destroy.facet.44a: %Destroy.type = facet_value %Iterator.b8c, (%custom_witness.d6afef.1) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.360: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.44a) [concrete] +// CHECK:STDOUT: %.da3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.360, %Destroy.facet.44a [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.6b1: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.48c) [concrete] +// CHECK:STDOUT: %.2e1: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.6b1, %CppRangeForIterate.facet.48c [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.4c6: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.48c) [concrete] +// CHECK:STDOUT: %.94a: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.4c6, %CppRangeForIterate.facet.48c [concrete] +// CHECK:STDOUT: %Destroy.facet.7e7: %Destroy.type = facet_value %Sentinel.a47, (%custom_witness.b57f0b.2) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.04c: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.7e7) [concrete] +// CHECK:STDOUT: %.bdc: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.04c, %Destroy.facet.7e7 [concrete] +// CHECK:STDOUT: %Destroy.facet.eb0: %Destroy.type = facet_value %Iterator.080, (%custom_witness.b57f0b.1) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.bbe: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.eb0) [concrete] +// CHECK:STDOUT: %.cdf: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.bbe, %Destroy.facet.eb0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1368,74 +1368,74 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ff859f.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.b34) { -// CHECK:STDOUT: %R.loc42_10.1 => constants.%facet_value.b34 +// CHECK:STDOUT: specific @Test(constants.%facet_value.388) { +// CHECK:STDOUT: %R.loc42_10.1 => constants.%facet_value.388 // CHECK:STDOUT: %R.as_type.loc42_113.1 => constants.%MutableRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.80f // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc42 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.1bf5e5.1 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.d1e -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.bf8 -// CHECK:STDOUT: %.loc44_4 => constants.%.504 +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.480 +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.1f7 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.c44 +// CHECK:STDOUT: %.loc44_4 => constants.%.a44 // CHECK:STDOUT: %impl.elem2.loc44_4.2 => constants.%Begin.1544bb.1 // CHECK:STDOUT: %specific_impl_fn.loc44_4.2 => constants.%Begin.1544bb.1 -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.b6bc8f.1 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.b8c // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.580 -// CHECK:STDOUT: %.loc45_4 => constants.%.1e1 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.d16 +// CHECK:STDOUT: %.loc45_4 => constants.%.994 // CHECK:STDOUT: %impl.elem3.loc45_4.2 => constants.%End.be76e1.1 // CHECK:STDOUT: %specific_impl_fn.loc45_4.2 => constants.%End.be76e1.1 -// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.50a788.1 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.501 // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc45 => constants.%custom_witness.415faa.2 -// CHECK:STDOUT: %Destroy.facet.loc45 => constants.%Destroy.facet.eb0 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc45 => constants.%Destroy.WithSelf.Op.type.552 -// CHECK:STDOUT: %.loc45_9.3 => constants.%.9ca -// CHECK:STDOUT: %impl.elem0.loc45_9.2 => constants.%Sentinel.Op.26b -// CHECK:STDOUT: %specific_impl_fn.loc45_9.2 => constants.%Sentinel.Op.26b -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc44 => constants.%custom_witness.415faa.1 -// CHECK:STDOUT: %Destroy.facet.loc44 => constants.%Destroy.facet.bcd -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc44 => constants.%Destroy.WithSelf.Op.type.92e -// CHECK:STDOUT: %.loc44_11.3 => constants.%.c1a -// CHECK:STDOUT: %impl.elem0.loc44_11.2 => constants.%Iterator.Op.26b -// CHECK:STDOUT: %specific_impl_fn.loc44_11.2 => constants.%Iterator.Op.26b +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc45 => constants.%custom_witness.d6afef.2 +// CHECK:STDOUT: %Destroy.facet.loc45 => constants.%Destroy.facet.4b0 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc45 => constants.%Destroy.WithSelf.Op.type.5e0 +// CHECK:STDOUT: %.loc45_9.3 => constants.%.132 +// CHECK:STDOUT: %impl.elem0.loc45_9.2 => constants.%Sentinel.Op.cbb +// CHECK:STDOUT: %specific_impl_fn.loc45_9.2 => constants.%Sentinel.Op.cbb +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc44 => constants.%custom_witness.d6afef.1 +// CHECK:STDOUT: %Destroy.facet.loc44 => constants.%Destroy.facet.44a +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc44 => constants.%Destroy.WithSelf.Op.type.360 +// CHECK:STDOUT: %.loc44_11.3 => constants.%.da3 +// CHECK:STDOUT: %impl.elem0.loc44_11.2 => constants.%Iterator.Op.cbb +// CHECK:STDOUT: %specific_impl_fn.loc44_11.2 => constants.%Iterator.Op.cbb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Test(constants.%facet_value.11c) { -// CHECK:STDOUT: %R.loc42_10.1 => constants.%facet_value.11c +// CHECK:STDOUT: specific @Test(constants.%facet_value.38d) { +// CHECK:STDOUT: %R.loc42_10.1 => constants.%facet_value.38d // CHECK:STDOUT: %R.as_type.loc42_113.1 => constants.%ConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e01 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.88d // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc42 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.1bf5e5.2 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.18f -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.a30 -// CHECK:STDOUT: %.loc44_4 => constants.%.e4b +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.7a2 +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.48c +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.6b1 +// CHECK:STDOUT: %.loc44_4 => constants.%.2e1 // CHECK:STDOUT: %impl.elem2.loc44_4.2 => constants.%Begin.1544bb.2 // CHECK:STDOUT: %specific_impl_fn.loc44_4.2 => constants.%Begin.1544bb.2 -// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.b6bc8f.2 +// CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator.080 // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.aba -// CHECK:STDOUT: %.loc45_4 => constants.%.d10 +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.4c6 +// CHECK:STDOUT: %.loc45_4 => constants.%.94a // CHECK:STDOUT: %impl.elem3.loc45_4.2 => constants.%End.be76e1.2 // CHECK:STDOUT: %specific_impl_fn.loc45_4.2 => constants.%End.be76e1.2 -// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.50a788.2 +// CHECK:STDOUT: %impl.elem1.1 => constants.%Sentinel.a47 // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc45 => constants.%custom_witness.0d3cfa.2 -// CHECK:STDOUT: %Destroy.facet.loc45 => constants.%Destroy.facet.a2a -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc45 => constants.%Destroy.WithSelf.Op.type.1fe -// CHECK:STDOUT: %.loc45_9.3 => constants.%.f48 -// CHECK:STDOUT: %impl.elem0.loc45_9.2 => constants.%Sentinel.Op.84b -// CHECK:STDOUT: %specific_impl_fn.loc45_9.2 => constants.%Sentinel.Op.84b -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc44 => constants.%custom_witness.0d3cfa.1 -// CHECK:STDOUT: %Destroy.facet.loc44 => constants.%Destroy.facet.e71 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc44 => constants.%Destroy.WithSelf.Op.type.1d5 -// CHECK:STDOUT: %.loc44_11.3 => constants.%.bef -// CHECK:STDOUT: %impl.elem0.loc44_11.2 => constants.%Iterator.Op.84b -// CHECK:STDOUT: %specific_impl_fn.loc44_11.2 => constants.%Iterator.Op.84b +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc45 => constants.%custom_witness.b57f0b.2 +// CHECK:STDOUT: %Destroy.facet.loc45 => constants.%Destroy.facet.7e7 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc45 => constants.%Destroy.WithSelf.Op.type.04c +// CHECK:STDOUT: %.loc45_9.3 => constants.%.bdc +// CHECK:STDOUT: %impl.elem0.loc45_9.2 => constants.%Sentinel.Op.dc6 +// CHECK:STDOUT: %specific_impl_fn.loc45_9.2 => constants.%Sentinel.Op.dc6 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc44 => constants.%custom_witness.b57f0b.1 +// CHECK:STDOUT: %Destroy.facet.loc44 => constants.%Destroy.facet.eb0 +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc44 => constants.%Destroy.WithSelf.Op.type.bbe +// CHECK:STDOUT: %.loc44_11.3 => constants.%.cdf +// CHECK:STDOUT: %impl.elem0.loc44_11.2 => constants.%Iterator.Op.dc6 +// CHECK:STDOUT: %specific_impl_fn.loc44_11.2 => constants.%Iterator.Op.dc6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adl_overloads.carbon @@ -1485,7 +1485,7 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %impl.elem0.d1d: %.d5a = impl_witness_access %Destroy.lookup_impl_witness.e97, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.a5c: = specific_impl_function %impl.elem0.d1d, @Destroy.WithSelf.Op(%Destroy.facet.503) [symbolic] // CHECK:STDOUT: %MutableAndConstRange: type = class_type @MutableAndConstRange [concrete] -// CHECK:STDOUT: %pattern_type.d8b: type = pattern_type %MutableAndConstRange [concrete] +// CHECK:STDOUT: %pattern_type.e6c: type = pattern_type %MutableAndConstRange [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Iterator: type = class_type @Iterator.1 [concrete] @@ -1493,19 +1493,19 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: %Begin: %Begin.type = struct_value () [concrete] // CHECK:STDOUT: %End.type: type = fn_type @End [concrete] // CHECK:STDOUT: %End: %End.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.827: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] -// CHECK:STDOUT: %CppRangeForIterate.facet.98b: %CppRangeForIterate.type = facet_value %MutableAndConstRange, (%custom_witness.827) [concrete] +// CHECK:STDOUT: %custom_witness.0f5: = custom_witness (%Iterator, %Iterator, %Begin, %End), @CppRangeForIterate [concrete] +// CHECK:STDOUT: %CppRangeForIterate.facet.4ed: %CppRangeForIterate.type = facet_value %MutableAndConstRange, (%custom_witness.0f5) [concrete] // CHECK:STDOUT: %Iterator.Op.type: type = fn_type @Iterator.Op [concrete] // CHECK:STDOUT: %Iterator.Op: %Iterator.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %custom_witness.2d3: = custom_witness (%Iterator.Op), @Destroy [concrete] -// CHECK:STDOUT: %facet_value: %CppRangeForIterate_where.type = facet_value %MutableAndConstRange, (%custom_witness.827, %custom_witness.2d3) [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.706: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.98b) [concrete] -// CHECK:STDOUT: %.ff3: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.706, %CppRangeForIterate.facet.98b [concrete] -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.5f8: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.98b) [concrete] -// CHECK:STDOUT: %.c8e: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.5f8, %CppRangeForIterate.facet.98b [concrete] -// CHECK:STDOUT: %Destroy.facet.611: %Destroy.type = facet_value %Iterator, (%custom_witness.2d3) [concrete] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.67f: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.611) [concrete] -// CHECK:STDOUT: %.f62: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.67f, %Destroy.facet.611 [concrete] +// CHECK:STDOUT: %custom_witness.b15: = custom_witness (%Iterator.Op), @Destroy [concrete] +// CHECK:STDOUT: %facet_value: %CppRangeForIterate_where.type = facet_value %MutableAndConstRange, (%custom_witness.0f5, %custom_witness.b15) [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type.92e: type = fn_type @CppRangeForIterate.WithSelf.Begin, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.4ed) [concrete] +// CHECK:STDOUT: %.da6: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.Begin.type.92e, %CppRangeForIterate.facet.4ed [concrete] +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type.576: type = fn_type @CppRangeForIterate.WithSelf.End, @CppRangeForIterate.WithSelf(%CppRangeForIterate.facet.4ed) [concrete] +// CHECK:STDOUT: %.685: type = fn_type_with_self_type %CppRangeForIterate.WithSelf.End.type.576, %CppRangeForIterate.facet.4ed [concrete] +// CHECK:STDOUT: %Destroy.facet.f9a: %Destroy.type = facet_value %Iterator, (%custom_witness.b15) [concrete] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.343: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.f9a) [concrete] +// CHECK:STDOUT: %.e83: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.343, %Destroy.facet.f9a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1588,34 +1588,34 @@ fn TestDriver(var no_begin_end: Cpp.NoBeginEnd, // CHECK:STDOUT: specific @Test(constants.%facet_value) { // CHECK:STDOUT: %R.loc32_10.1 => constants.%facet_value // CHECK:STDOUT: %R.as_type.loc32_113.1 => constants.%MutableAndConstRange -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d8b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e6c // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc32 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.827 -// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.98b -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.706 -// CHECK:STDOUT: %.loc34_4 => constants.%.ff3 +// CHECK:STDOUT: %CppRangeForIterate.lookup_impl_witness => constants.%custom_witness.0f5 +// CHECK:STDOUT: %CppRangeForIterate.facet => constants.%CppRangeForIterate.facet.4ed +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.Begin.type => constants.%CppRangeForIterate.WithSelf.Begin.type.92e +// CHECK:STDOUT: %.loc34_4 => constants.%.da6 // CHECK:STDOUT: %impl.elem2.loc34_4.2 => constants.%Begin // CHECK:STDOUT: %specific_impl_fn.loc34_4.2 => constants.%Begin // CHECK:STDOUT: %impl.elem0.1 => constants.%Iterator // CHECK:STDOUT: %require_complete.1 => constants.%complete_type -// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.5f8 -// CHECK:STDOUT: %.loc35_4 => constants.%.c8e +// CHECK:STDOUT: %CppRangeForIterate.WithSelf.End.type => constants.%CppRangeForIterate.WithSelf.End.type.576 +// CHECK:STDOUT: %.loc35_4 => constants.%.685 // CHECK:STDOUT: %impl.elem3.loc35_4.2 => constants.%End // CHECK:STDOUT: %specific_impl_fn.loc35_4.2 => constants.%End // CHECK:STDOUT: %impl.elem1.1 => constants.%Iterator // CHECK:STDOUT: %require_complete.2 => constants.%complete_type -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc35 => constants.%custom_witness.2d3 -// CHECK:STDOUT: %Destroy.facet.loc35 => constants.%Destroy.facet.611 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc35 => constants.%Destroy.WithSelf.Op.type.67f -// CHECK:STDOUT: %.loc35_9.3 => constants.%.f62 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc35 => constants.%custom_witness.b15 +// CHECK:STDOUT: %Destroy.facet.loc35 => constants.%Destroy.facet.f9a +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc35 => constants.%Destroy.WithSelf.Op.type.343 +// CHECK:STDOUT: %.loc35_9.3 => constants.%.e83 // CHECK:STDOUT: %impl.elem0.loc35_9.2 => constants.%Iterator.Op // CHECK:STDOUT: %specific_impl_fn.loc35_9.2 => constants.%Iterator.Op -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc34 => constants.%custom_witness.2d3 -// CHECK:STDOUT: %Destroy.facet.loc34 => constants.%Destroy.facet.611 -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc34 => constants.%Destroy.WithSelf.Op.type.67f -// CHECK:STDOUT: %.loc34_11.3 => constants.%.f62 +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc34 => constants.%custom_witness.b15 +// CHECK:STDOUT: %Destroy.facet.loc34 => constants.%Destroy.facet.f9a +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc34 => constants.%Destroy.WithSelf.Op.type.343 +// CHECK:STDOUT: %.loc34_11.3 => constants.%.e83 // CHECK:STDOUT: %impl.elem0.loc34_11.2 => constants.%Iterator.Op // CHECK:STDOUT: %specific_impl_fn.loc34_11.2 => constants.%Iterator.Op // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon b/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon index e63966b20e09..f5a0a5b34808 100644 --- a/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon +++ b/toolchain/check/testdata/interop/cpp/stdlib/initializer_list.carbon @@ -62,7 +62,7 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %initializer_list: type = class_type @initializer_list [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %pattern_type.10f: type = pattern_type %initializer_list [concrete] +// CHECK:STDOUT: %pattern_type.ef1: type = pattern_type %initializer_list [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] @@ -70,7 +70,7 @@ fn F() { // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%int_1.5b8, %int_2.ecc, %int_3.1ba) [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32 [concrete] // CHECK:STDOUT: %pattern_type.215: type = pattern_type %array_type [concrete] -// CHECK:STDOUT: %.68f: Core.Form = init_form %initializer_list [concrete] +// CHECK:STDOUT: %.689: Core.Form = init_form %initializer_list [concrete] // CHECK:STDOUT: %initializer_list.initializer_list.type.b3aef3.1: type = fn_type @initializer_list.initializer_list.loc8 [concrete] // CHECK:STDOUT: %initializer_list.initializer_list.ba6adf.1: %initializer_list.initializer_list.type.b3aef3.1 = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] @@ -98,14 +98,14 @@ fn F() { // CHECK:STDOUT: %.753: ref %array_type = temporary invalid, %array [concrete] // CHECK:STDOUT: %Consume.cpp_overload_set.type: type = cpp_overload_set_type @Consume.cpp_overload_set [concrete] // CHECK:STDOUT: %Consume.cpp_overload_set.value: %Consume.cpp_overload_set.type = cpp_overload_set_value @Consume.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.a38: type = ptr_type %initializer_list [concrete] +// CHECK:STDOUT: %ptr.b24: type = ptr_type %initializer_list [concrete] // CHECK:STDOUT: %Consume__carbon_thunk.type: type = fn_type @Consume__carbon_thunk [concrete] // CHECK:STDOUT: %Consume__carbon_thunk: %Consume__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %initializer_list.initializer_list.type.b3aef3.2: type = fn_type @initializer_list.initializer_list.loc10 [concrete] // CHECK:STDOUT: %initializer_list.initializer_list.ba6adf.2: %initializer_list.initializer_list.type.b3aef3.2 = struct_value () [concrete] // CHECK:STDOUT: %InitListConstructor: type = class_type @InitListConstructor [concrete] -// CHECK:STDOUT: %pattern_type.643: type = pattern_type %InitListConstructor [concrete] -// CHECK:STDOUT: %ptr.a1a: type = ptr_type %InitListConstructor [concrete] +// CHECK:STDOUT: %pattern_type.a38: type = pattern_type %InitListConstructor [concrete] +// CHECK:STDOUT: %ptr.6ec: type = ptr_type %InitListConstructor [concrete] // CHECK:STDOUT: %InitListConstructor__carbon_thunk.type: type = fn_type @InitListConstructor__carbon_thunk [concrete] // CHECK:STDOUT: %InitListConstructor__carbon_thunk: %InitListConstructor__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %initializer_list.initializer_list.type.b3aef3.3: type = fn_type @initializer_list.initializer_list.loc12 [concrete] @@ -151,10 +151,10 @@ fn F() { // CHECK:STDOUT: %initializer_list.initializer_list.decl.8e656c.1: %initializer_list.initializer_list.type.b3aef3.1 = fn_decl @initializer_list.initializer_list.loc8 [concrete = constants.%initializer_list.initializer_list.ba6adf.1] { // CHECK:STDOUT: %_.param_patt: %pattern_type.215 = value_param_pattern [concrete] // CHECK:STDOUT: %_.patt: %pattern_type.215 = at_binding_pattern _, %_.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.10f = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.10f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ef1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ef1 = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc8: Core.Form = init_form constants.%initializer_list [concrete = constants.%.68f] +// CHECK:STDOUT: %.loc8: Core.Form = init_form constants.%initializer_list [concrete = constants.%.689] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 // CHECK:STDOUT: %_: %array_type = value_binding _, %_.param // CHECK:STDOUT: %return.param: ref %initializer_list = out_param call_param1 @@ -163,10 +163,10 @@ fn F() { // CHECK:STDOUT: %initializer_list.initializer_list.decl.8e656c.2: %initializer_list.initializer_list.type.b3aef3.2 = fn_decl @initializer_list.initializer_list.loc10 [concrete = constants.%initializer_list.initializer_list.ba6adf.2] { // CHECK:STDOUT: %_.param_patt: %pattern_type.215 = value_param_pattern [concrete] // CHECK:STDOUT: %_.patt: %pattern_type.215 = at_binding_pattern _, %_.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.10f = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.10f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ef1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ef1 = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc10: Core.Form = init_form constants.%initializer_list [concrete = constants.%.68f] +// CHECK:STDOUT: %.loc10: Core.Form = init_form constants.%initializer_list [concrete = constants.%.689] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 // CHECK:STDOUT: %_: %array_type = value_binding _, %_.param // CHECK:STDOUT: %return.param: ref %initializer_list = out_param call_param1 @@ -175,10 +175,10 @@ fn F() { // CHECK:STDOUT: %initializer_list.initializer_list.decl.8e656c.3: %initializer_list.initializer_list.type.b3aef3.3 = fn_decl @initializer_list.initializer_list.loc12 [concrete = constants.%initializer_list.initializer_list.ba6adf.3] { // CHECK:STDOUT: %_.param_patt: %pattern_type.215 = value_param_pattern [concrete] // CHECK:STDOUT: %_.patt: %pattern_type.215 = at_binding_pattern _, %_.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: %pattern_type.10f = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: %pattern_type.10f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] +// CHECK:STDOUT: %return.param_patt: %pattern_type.ef1 = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: %pattern_type.ef1 = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc12: Core.Form = init_form constants.%initializer_list [concrete = constants.%.68f] +// CHECK:STDOUT: %.loc12: Core.Form = init_form constants.%initializer_list [concrete = constants.%.689] // CHECK:STDOUT: %_.param: %array_type = value_param call_param0 // CHECK:STDOUT: %_: %array_type = value_binding _, %_.param // CHECK:STDOUT: %return.param: ref %initializer_list = out_param call_param1 @@ -193,7 +193,7 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc8: %pattern_type.10f = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc8: %pattern_type.ef1 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc8_43: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc8_46: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -287,10 +287,10 @@ fn F() { // CHECK:STDOUT: %.loc10_23.18: ref %initializer_list = temporary %.loc10_23.2, %.loc10_23.17 // CHECK:STDOUT: %.loc10_23.19: %initializer_list = acquire_value %.loc10_23.18 // CHECK:STDOUT: %.loc10_23.20: ref %initializer_list = value_as_ref %.loc10_23.19 -// CHECK:STDOUT: %addr.loc10: %ptr.a38 = addr_of %.loc10_23.20 +// CHECK:STDOUT: %addr.loc10: %ptr.b24 = addr_of %.loc10_23.20 // CHECK:STDOUT: %Consume__carbon_thunk.call: init %empty_tuple.type = call imports.%Consume__carbon_thunk.decl(%addr.loc10) // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %_.patt.loc12: %pattern_type.643 = value_binding_pattern _ [concrete] +// CHECK:STDOUT: %_.patt.loc12: %pattern_type.a38 = value_binding_pattern _ [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %int_1.loc12_37: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12_40: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -342,8 +342,8 @@ fn F() { // CHECK:STDOUT: %.loc12_44.19: ref %initializer_list = temporary %.loc12_44.3, %.loc12_44.18 // CHECK:STDOUT: %.loc12_44.20: %initializer_list = acquire_value %.loc12_44.19 // CHECK:STDOUT: %.loc12_44.21: ref %initializer_list = value_as_ref %.loc12_44.20 -// CHECK:STDOUT: %addr.loc12_44.1: %ptr.a38 = addr_of %.loc12_44.21 -// CHECK:STDOUT: %addr.loc12_44.2: %ptr.a1a = addr_of %.loc12_44.2 +// CHECK:STDOUT: %addr.loc12_44.1: %ptr.b24 = addr_of %.loc12_44.21 +// CHECK:STDOUT: %addr.loc12_44.2: %ptr.6ec = addr_of %.loc12_44.2 // CHECK:STDOUT: %InitListConstructor__carbon_thunk.call: init %empty_tuple.type = call imports.%InitListConstructor__carbon_thunk.decl(%addr.loc12_44.1, %addr.loc12_44.2) // CHECK:STDOUT: %.loc12_44.22: init %InitListConstructor to %.loc12_44.2 = mark_in_place_init %InitListConstructor__carbon_thunk.call // CHECK:STDOUT: %.loc12_44.23: init %InitListConstructor = converted %.loc12_44.1, %.loc12_44.22 diff --git a/toolchain/check/testdata/interop/cpp/template/alias_template.carbon b/toolchain/check/testdata/interop/cpp/template/alias_template.carbon index ba2db2a648cc..28ba86206705 100644 --- a/toolchain/check/testdata/interop/cpp/template/alias_template.carbon +++ b/toolchain/check/testdata/interop/cpp/template/alias_template.carbon @@ -39,16 +39,16 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %First.template: %First.type = struct_value () [concrete] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %pattern_type.b54: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] // CHECK:STDOUT: %A.A.cpp_overload_set.type: type = cpp_overload_set_type @A.A.cpp_overload_set [concrete] // CHECK:STDOUT: %A.A.cpp_overload_set.value: %A.A.cpp_overload_set.type = cpp_overload_set_value @A.A.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.bce: type = ptr_type %A [concrete] +// CHECK:STDOUT: %ptr.9f7: type = ptr_type %A [concrete] // CHECK:STDOUT: %A__carbon_thunk.type: type = fn_type @A__carbon_thunk [concrete] // CHECK:STDOUT: %A__carbon_thunk: %A__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.676: type = pattern_type %B [concrete] +// CHECK:STDOUT: %pattern_type.bbe: type = pattern_type %B [concrete] // CHECK:STDOUT: %B.B.cpp_overload_set.type: type = cpp_overload_set_type @B.B.cpp_overload_set [concrete] // CHECK:STDOUT: %B.B.cpp_overload_set.value: %B.B.cpp_overload_set.type = cpp_overload_set_value @B.B.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.13d: type = ptr_type %B [concrete] +// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] // CHECK:STDOUT: %B__carbon_thunk.type: type = fn_type @B__carbon_thunk [concrete] // CHECK:STDOUT: %B__carbon_thunk: %B__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %Second.type: type = cpp_type_template_type Second [concrete] @@ -83,26 +83,26 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a1.patt: %pattern_type.b54 = ref_binding_pattern a1 [concrete] -// CHECK:STDOUT: %a1.var_patt: %pattern_type.b54 = var_pattern %a1.patt [concrete] +// CHECK:STDOUT: %a1.patt: %pattern_type.aa6 = ref_binding_pattern a1 [concrete] +// CHECK:STDOUT: %a1.var_patt: %pattern_type.aa6 = var_pattern %a1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a1.var: ref %A = var %a1.var_patt [concrete] // CHECK:STDOUT: %a1: ref %A = ref_binding a1, %a1.var [concrete = %a1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b1.patt: %pattern_type.676 = ref_binding_pattern b1 [concrete] -// CHECK:STDOUT: %b1.var_patt: %pattern_type.676 = var_pattern %b1.patt [concrete] +// CHECK:STDOUT: %b1.patt: %pattern_type.bbe = ref_binding_pattern b1 [concrete] +// CHECK:STDOUT: %b1.var_patt: %pattern_type.bbe = var_pattern %b1.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b1.var: ref %B = var %b1.var_patt [concrete] // CHECK:STDOUT: %b1: ref %B = ref_binding b1, %b1.var [concrete = %b1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b2.patt: %pattern_type.676 = ref_binding_pattern b2 [concrete] -// CHECK:STDOUT: %b2.var_patt: %pattern_type.676 = var_pattern %b2.patt [concrete] +// CHECK:STDOUT: %b2.patt: %pattern_type.bbe = ref_binding_pattern b2 [concrete] +// CHECK:STDOUT: %b2.var_patt: %pattern_type.bbe = var_pattern %b2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b2.var: ref %B = var %b2.var_patt [concrete] // CHECK:STDOUT: %b2: ref %B = ref_binding b2, %b2.var [concrete = %b2.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a2.patt: %pattern_type.b54 = ref_binding_pattern a2 [concrete] -// CHECK:STDOUT: %a2.var_patt: %pattern_type.b54 = var_pattern %a2.patt [concrete] +// CHECK:STDOUT: %a2.patt: %pattern_type.aa6 = ref_binding_pattern a2 [concrete] +// CHECK:STDOUT: %a2.var_patt: %pattern_type.aa6 = var_pattern %a2.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a2.var: ref %A = var %a2.var_patt [concrete] // CHECK:STDOUT: %a2: ref %A = ref_binding a2, %a2.var [concrete = %a2.var] @@ -114,7 +114,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %A.ref.loc7_38: type = name_ref A, imports.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %A.ref.loc7_40: %A.A.cpp_overload_set.type = name_ref A, imports.%A.A.cpp_overload_set.value [concrete = constants.%A.A.cpp_overload_set.value] // CHECK:STDOUT: %.loc7_1: ref %A = splice_block file.%a1.var [concrete = file.%a1.var] {} -// CHECK:STDOUT: %addr.loc7: %ptr.bce = addr_of %.loc7_1 +// CHECK:STDOUT: %addr.loc7: %ptr.9f7 = addr_of %.loc7_1 // CHECK:STDOUT: %A__carbon_thunk.call.loc7: init %empty_tuple.type = call imports.%A__carbon_thunk.decl(%addr.loc7) // CHECK:STDOUT: %.loc7_43: init %A to %.loc7_1 = mark_in_place_init %A__carbon_thunk.call.loc7 // CHECK:STDOUT: assign file.%a1.var, %.loc7_43 @@ -122,7 +122,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %B.ref.loc8_38: type = name_ref B, imports.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %B.ref.loc8_40: %B.B.cpp_overload_set.type = name_ref B, imports.%B.B.cpp_overload_set.value [concrete = constants.%B.B.cpp_overload_set.value] // CHECK:STDOUT: %.loc8_1: ref %B = splice_block file.%b1.var [concrete = file.%b1.var] {} -// CHECK:STDOUT: %addr.loc8: %ptr.13d = addr_of %.loc8_1 +// CHECK:STDOUT: %addr.loc8: %ptr.fab = addr_of %.loc8_1 // CHECK:STDOUT: %B__carbon_thunk.call.loc8: init %empty_tuple.type = call imports.%B__carbon_thunk.decl(%addr.loc8) // CHECK:STDOUT: %.loc8_43: init %B to %.loc8_1 = mark_in_place_init %B__carbon_thunk.call.loc8 // CHECK:STDOUT: assign file.%b1.var, %.loc8_43 @@ -130,7 +130,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %B.ref.loc9_39: type = name_ref B, imports.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %B.ref.loc9_41: %B.B.cpp_overload_set.type = name_ref B, imports.%B.B.cpp_overload_set.value [concrete = constants.%B.B.cpp_overload_set.value] // CHECK:STDOUT: %.loc9_1: ref %B = splice_block file.%b2.var [concrete = file.%b2.var] {} -// CHECK:STDOUT: %addr.loc9: %ptr.13d = addr_of %.loc9_1 +// CHECK:STDOUT: %addr.loc9: %ptr.fab = addr_of %.loc9_1 // CHECK:STDOUT: %B__carbon_thunk.call.loc9: init %empty_tuple.type = call imports.%B__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %.loc9_44: init %B to %.loc9_1 = mark_in_place_init %B__carbon_thunk.call.loc9 // CHECK:STDOUT: assign file.%b2.var, %.loc9_44 @@ -138,7 +138,7 @@ var a2: Cpp.Second(Cpp.B, Cpp.A) = Cpp.A.A(); // CHECK:STDOUT: %A.ref.loc10_39: type = name_ref A, imports.%A.decl [concrete = constants.%A] // CHECK:STDOUT: %A.ref.loc10_41: %A.A.cpp_overload_set.type = name_ref A, imports.%A.A.cpp_overload_set.value [concrete = constants.%A.A.cpp_overload_set.value] // CHECK:STDOUT: %.loc10_1: ref %A = splice_block file.%a2.var [concrete = file.%a2.var] {} -// CHECK:STDOUT: %addr.loc10: %ptr.bce = addr_of %.loc10_1 +// CHECK:STDOUT: %addr.loc10: %ptr.9f7 = addr_of %.loc10_1 // CHECK:STDOUT: %A__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%A__carbon_thunk.decl(%addr.loc10) // CHECK:STDOUT: %.loc10_44: init %A to %.loc10_1 = mark_in_place_init %A__carbon_thunk.call.loc10 // CHECK:STDOUT: assign file.%a2.var, %.loc10_44 diff --git a/toolchain/check/testdata/interop/cpp/template/argument_count.carbon b/toolchain/check/testdata/interop/cpp/template/argument_count.carbon index 71e10bc5ec2b..f9805b9501bb 100644 --- a/toolchain/check/testdata/interop/cpp/template/argument_count.carbon +++ b/toolchain/check/testdata/interop/cpp/template/argument_count.carbon @@ -122,7 +122,7 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTypes: type = class_type @TwoTypes [concrete] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %TwoTypes [concrete] +// CHECK:STDOUT: %pattern_type.bc0: type = pattern_type %TwoTypes [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -131,9 +131,9 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%TwoTypes.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.ba6: %Default.type = facet_value %TwoTypes, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.462: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.ba6) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.462) [concrete] +// CHECK:STDOUT: %Default.facet.f94: %Default.type = facet_value %TwoTypes, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b65: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f94) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.b65) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -143,8 +143,8 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.3df = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.3df = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.bc0 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.bc0 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTypes = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTypes = ref_binding x, %x.var [concrete = %x.var] @@ -152,7 +152,7 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.462) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.b65) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_34.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_34.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_34.2: type = converted %.loc7_34.1, %as_type [concrete = constants.%TwoTypes] @@ -166,8 +166,8 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: --- pack.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %TypePack.ef9a30.1: type = class_type @TypePack.1 [concrete] -// CHECK:STDOUT: %pattern_type.9115dc.1: type = pattern_type %TypePack.ef9a30.1 [concrete] +// CHECK:STDOUT: %TypePack.894: type = class_type @TypePack.1 [concrete] +// CHECK:STDOUT: %pattern_type.c42: type = pattern_type %TypePack.894 [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -176,33 +176,33 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: %TypePack.Op.type.43d658.1: type = fn_type @TypePack.Op.1 [concrete] // CHECK:STDOUT: %TypePack.Op.cc70d5.1: %TypePack.Op.type.43d658.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.1: = custom_witness (%TypePack.Op.cc70d5.1), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5ed9a2.1: %Default.type = facet_value %TypePack.ef9a30.1, (%custom_witness.2132a4.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.bf0e48.1: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5ed9a2.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.86aa39.1: %DefaultOrUnformed.type = facet_value %TypePack.ef9a30.1, (%DefaultOrUnformed.impl_witness.bf0e48.1) [concrete] -// CHECK:STDOUT: %TypePack.ef9a30.2: type = class_type @TypePack.2 [concrete] -// CHECK:STDOUT: %pattern_type.9115dc.2: type = pattern_type %TypePack.ef9a30.2 [concrete] +// CHECK:STDOUT: %Default.facet.bef: %Default.type = facet_value %TypePack.894, (%custom_witness.2132a4.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.967: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.bef) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.dc4: %DefaultOrUnformed.type = facet_value %TypePack.894, (%DefaultOrUnformed.impl_witness.967) [concrete] +// CHECK:STDOUT: %TypePack.5b2: type = class_type @TypePack.2 [concrete] +// CHECK:STDOUT: %pattern_type.891: type = pattern_type %TypePack.5b2 [concrete] // CHECK:STDOUT: %TypePack.Op.type.43d658.2: type = fn_type @TypePack.Op.2 [concrete] // CHECK:STDOUT: %TypePack.Op.cc70d5.2: %TypePack.Op.type.43d658.2 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.2: = custom_witness (%TypePack.Op.cc70d5.2), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5ed9a2.2: %Default.type = facet_value %TypePack.ef9a30.2, (%custom_witness.2132a4.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.bf0e48.2: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5ed9a2.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.86aa39.2: %DefaultOrUnformed.type = facet_value %TypePack.ef9a30.2, (%DefaultOrUnformed.impl_witness.bf0e48.2) [concrete] -// CHECK:STDOUT: %TypePack.ef9a30.3: type = class_type @TypePack.3 [concrete] -// CHECK:STDOUT: %pattern_type.9115dc.3: type = pattern_type %TypePack.ef9a30.3 [concrete] +// CHECK:STDOUT: %Default.facet.598: %Default.type = facet_value %TypePack.5b2, (%custom_witness.2132a4.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f8d: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.598) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.28c: %DefaultOrUnformed.type = facet_value %TypePack.5b2, (%DefaultOrUnformed.impl_witness.f8d) [concrete] +// CHECK:STDOUT: %TypePack.93d: type = class_type @TypePack.3 [concrete] +// CHECK:STDOUT: %pattern_type.fce: type = pattern_type %TypePack.93d [concrete] // CHECK:STDOUT: %TypePack.Op.type.43d658.3: type = fn_type @TypePack.Op.3 [concrete] // CHECK:STDOUT: %TypePack.Op.cc70d5.3: %TypePack.Op.type.43d658.3 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.3: = custom_witness (%TypePack.Op.cc70d5.3), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5ed9a2.3: %Default.type = facet_value %TypePack.ef9a30.3, (%custom_witness.2132a4.3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.bf0e48.3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5ed9a2.3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.86aa39.3: %DefaultOrUnformed.type = facet_value %TypePack.ef9a30.3, (%DefaultOrUnformed.impl_witness.bf0e48.3) [concrete] -// CHECK:STDOUT: %TypePack.ef9a30.4: type = class_type @TypePack.4 [concrete] -// CHECK:STDOUT: %pattern_type.9115dc.4: type = pattern_type %TypePack.ef9a30.4 [concrete] +// CHECK:STDOUT: %Default.facet.37a: %Default.type = facet_value %TypePack.93d, (%custom_witness.2132a4.3) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.d66: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.37a) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.092: %DefaultOrUnformed.type = facet_value %TypePack.93d, (%DefaultOrUnformed.impl_witness.d66) [concrete] +// CHECK:STDOUT: %TypePack.51e: type = class_type @TypePack.4 [concrete] +// CHECK:STDOUT: %pattern_type.f1d: type = pattern_type %TypePack.51e [concrete] // CHECK:STDOUT: %TypePack.Op.type.43d658.4: type = fn_type @TypePack.Op.4 [concrete] // CHECK:STDOUT: %TypePack.Op.cc70d5.4: %TypePack.Op.type.43d658.4 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2132a4.4: = custom_witness (%TypePack.Op.cc70d5.4), @Default [concrete] -// CHECK:STDOUT: %Default.facet.5ed9a2.4: %Default.type = facet_value %TypePack.ef9a30.4, (%custom_witness.2132a4.4) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.bf0e48.4: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.5ed9a2.4) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.86aa39.4: %DefaultOrUnformed.type = facet_value %TypePack.ef9a30.4, (%DefaultOrUnformed.impl_witness.bf0e48.4) [concrete] +// CHECK:STDOUT: %Default.facet.fb9: %Default.type = facet_value %TypePack.51e, (%custom_witness.2132a4.4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.dd3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.fb9) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.1d3: %DefaultOrUnformed.type = facet_value %TypePack.51e, (%DefaultOrUnformed.impl_witness.dd3) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -212,64 +212,64 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a0.patt: %pattern_type.9115dc.1 = ref_binding_pattern a0 [concrete] -// CHECK:STDOUT: %a0.var_patt: %pattern_type.9115dc.1 = var_pattern %a0.patt [concrete] +// CHECK:STDOUT: %a0.patt: %pattern_type.c42 = ref_binding_pattern a0 [concrete] +// CHECK:STDOUT: %a0.var_patt: %pattern_type.c42 = var_pattern %a0.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a0.var: ref %TypePack.ef9a30.1 = var %a0.var_patt [concrete] -// CHECK:STDOUT: %a0: ref %TypePack.ef9a30.1 = ref_binding a0, %a0.var [concrete = %a0.var] +// CHECK:STDOUT: %a0.var: ref %TypePack.894 = var %a0.var_patt [concrete] +// CHECK:STDOUT: %a0: ref %TypePack.894 = ref_binding a0, %a0.var [concrete = %a0.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a1.patt: %pattern_type.9115dc.2 = ref_binding_pattern a1 [concrete] -// CHECK:STDOUT: %a1.var_patt: %pattern_type.9115dc.2 = var_pattern %a1.patt [concrete] +// CHECK:STDOUT: %a1.patt: %pattern_type.891 = ref_binding_pattern a1 [concrete] +// CHECK:STDOUT: %a1.var_patt: %pattern_type.891 = var_pattern %a1.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a1.var: ref %TypePack.ef9a30.2 = var %a1.var_patt [concrete] -// CHECK:STDOUT: %a1: ref %TypePack.ef9a30.2 = ref_binding a1, %a1.var [concrete = %a1.var] +// CHECK:STDOUT: %a1.var: ref %TypePack.5b2 = var %a1.var_patt [concrete] +// CHECK:STDOUT: %a1: ref %TypePack.5b2 = ref_binding a1, %a1.var [concrete = %a1.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a2.patt: %pattern_type.9115dc.3 = ref_binding_pattern a2 [concrete] -// CHECK:STDOUT: %a2.var_patt: %pattern_type.9115dc.3 = var_pattern %a2.patt [concrete] +// CHECK:STDOUT: %a2.patt: %pattern_type.fce = ref_binding_pattern a2 [concrete] +// CHECK:STDOUT: %a2.var_patt: %pattern_type.fce = var_pattern %a2.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a2.var: ref %TypePack.ef9a30.3 = var %a2.var_patt [concrete] -// CHECK:STDOUT: %a2: ref %TypePack.ef9a30.3 = ref_binding a2, %a2.var [concrete = %a2.var] +// CHECK:STDOUT: %a2.var: ref %TypePack.93d = var %a2.var_patt [concrete] +// CHECK:STDOUT: %a2: ref %TypePack.93d = ref_binding a2, %a2.var [concrete = %a2.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a3.patt: %pattern_type.9115dc.4 = ref_binding_pattern a3 [concrete] -// CHECK:STDOUT: %a3.var_patt: %pattern_type.9115dc.4 = var_pattern %a3.patt [concrete] +// CHECK:STDOUT: %a3.patt: %pattern_type.f1d = ref_binding_pattern a3 [concrete] +// CHECK:STDOUT: %a3.var_patt: %pattern_type.f1d = var_pattern %a3.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %a3.var: ref %TypePack.ef9a30.4 = var %a3.var_patt [concrete] -// CHECK:STDOUT: %a3: ref %TypePack.ef9a30.4 = ref_binding a3, %a3.var [concrete = %a3.var] +// CHECK:STDOUT: %a3.var: ref %TypePack.51e = var %a3.var_patt [concrete] +// CHECK:STDOUT: %a3: ref %TypePack.51e = ref_binding a3, %a3.var [concrete = %a3.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%TypePack.ef9a30.1, (constants.%DefaultOrUnformed.impl_witness.bf0e48.1) [concrete = constants.%DefaultOrUnformed.facet.86aa39.1] -// CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%TypePack.ef9a30.1, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.86aa39.1] -// CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_23.1 [concrete = constants.%TypePack.ef9a30.1] -// CHECK:STDOUT: %.loc7_23.2: type = converted %.loc7_23.1, %as_type.loc7 [concrete = constants.%TypePack.ef9a30.1] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%TypePack.894, (constants.%DefaultOrUnformed.impl_witness.967) [concrete = constants.%DefaultOrUnformed.facet.dc4] +// CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%TypePack.894, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.dc4] +// CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_23.1 [concrete = constants.%TypePack.894] +// CHECK:STDOUT: %.loc7_23.2: type = converted %.loc7_23.1, %as_type.loc7 [concrete = constants.%TypePack.894] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc7_1: ref %TypePack.ef9a30.1 = splice_block file.%a0.var [concrete = file.%a0.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7: init %TypePack.ef9a30.1 to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() +// CHECK:STDOUT: %.loc7_1: ref %TypePack.894 = splice_block file.%a0.var [concrete = file.%a0.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7: init %TypePack.894 to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() // CHECK:STDOUT: assign file.%a0.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%TypePack.ef9a30.2, (constants.%DefaultOrUnformed.impl_witness.bf0e48.2) [concrete = constants.%DefaultOrUnformed.facet.86aa39.2] -// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%TypePack.ef9a30.2, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.86aa39.2] -// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [concrete = constants.%TypePack.ef9a30.2] -// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [concrete = constants.%TypePack.ef9a30.2] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%TypePack.5b2, (constants.%DefaultOrUnformed.impl_witness.f8d) [concrete = constants.%DefaultOrUnformed.facet.28c] +// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%TypePack.5b2, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.28c] +// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [concrete = constants.%TypePack.5b2] +// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [concrete = constants.%TypePack.5b2] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc8_1: ref %TypePack.ef9a30.2 = splice_block file.%a1.var [concrete = file.%a1.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %TypePack.ef9a30.2 to %.loc8_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: %.loc8_1: ref %TypePack.5b2 = splice_block file.%a1.var [concrete = file.%a1.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %TypePack.5b2 to %.loc8_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() // CHECK:STDOUT: assign file.%a1.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%TypePack.ef9a30.3, (constants.%DefaultOrUnformed.impl_witness.bf0e48.3) [concrete = constants.%DefaultOrUnformed.facet.86aa39.3] -// CHECK:STDOUT: %.loc9_35.1: %DefaultOrUnformed.type = converted constants.%TypePack.ef9a30.3, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.86aa39.3] -// CHECK:STDOUT: %as_type.loc9: type = facet_access_type %.loc9_35.1 [concrete = constants.%TypePack.ef9a30.3] -// CHECK:STDOUT: %.loc9_35.2: type = converted %.loc9_35.1, %as_type.loc9 [concrete = constants.%TypePack.ef9a30.3] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%TypePack.93d, (constants.%DefaultOrUnformed.impl_witness.d66) [concrete = constants.%DefaultOrUnformed.facet.092] +// CHECK:STDOUT: %.loc9_35.1: %DefaultOrUnformed.type = converted constants.%TypePack.93d, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.092] +// CHECK:STDOUT: %as_type.loc9: type = facet_access_type %.loc9_35.1 [concrete = constants.%TypePack.93d] +// CHECK:STDOUT: %.loc9_35.2: type = converted %.loc9_35.1, %as_type.loc9 [concrete = constants.%TypePack.93d] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc9_1: ref %TypePack.ef9a30.3 = splice_block file.%a2.var [concrete = file.%a2.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9: init %TypePack.ef9a30.3 to %.loc9_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() +// CHECK:STDOUT: %.loc9_1: ref %TypePack.93d = splice_block file.%a2.var [concrete = file.%a2.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9: init %TypePack.93d to %.loc9_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() // CHECK:STDOUT: assign file.%a2.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc10: %DefaultOrUnformed.type = facet_value constants.%TypePack.ef9a30.4, (constants.%DefaultOrUnformed.impl_witness.bf0e48.4) [concrete = constants.%DefaultOrUnformed.facet.86aa39.4] -// CHECK:STDOUT: %.loc10_42.1: %DefaultOrUnformed.type = converted constants.%TypePack.ef9a30.4, %DefaultOrUnformed.facet.loc10 [concrete = constants.%DefaultOrUnformed.facet.86aa39.4] -// CHECK:STDOUT: %as_type.loc10: type = facet_access_type %.loc10_42.1 [concrete = constants.%TypePack.ef9a30.4] -// CHECK:STDOUT: %.loc10_42.2: type = converted %.loc10_42.1, %as_type.loc10 [concrete = constants.%TypePack.ef9a30.4] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc10: %DefaultOrUnformed.type = facet_value constants.%TypePack.51e, (constants.%DefaultOrUnformed.impl_witness.dd3) [concrete = constants.%DefaultOrUnformed.facet.1d3] +// CHECK:STDOUT: %.loc10_42.1: %DefaultOrUnformed.type = converted constants.%TypePack.51e, %DefaultOrUnformed.facet.loc10 [concrete = constants.%DefaultOrUnformed.facet.1d3] +// CHECK:STDOUT: %as_type.loc10: type = facet_access_type %.loc10_42.1 [concrete = constants.%TypePack.51e] +// CHECK:STDOUT: %.loc10_42.2: type = converted %.loc10_42.1, %as_type.loc10 [concrete = constants.%TypePack.51e] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_1: ref %TypePack.ef9a30.4 = splice_block file.%a3.var [concrete = file.%a3.var] {} -// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10: init %TypePack.ef9a30.4 to %.loc10_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.4() +// CHECK:STDOUT: %.loc10_1: ref %TypePack.51e = splice_block file.%a3.var [concrete = file.%a3.var] {} +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10: init %TypePack.51e to %.loc10_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.4() // CHECK:STDOUT: assign file.%a3.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/template/class_template.carbon b/toolchain/check/testdata/interop/cpp/template/class_template.carbon index 11f43e8b7c2d..5934d03f324e 100644 --- a/toolchain/check/testdata/interop/cpp/template/class_template.carbon +++ b/toolchain/check/testdata/interop/cpp/template/class_template.carbon @@ -36,7 +36,7 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %pattern_type.b54: type = pattern_type %A [concrete] +// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] // CHECK:STDOUT: %X.type: type = cpp_type_template_type X [concrete] // CHECK:STDOUT: %X.template: %X.type = struct_value () [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] @@ -44,11 +44,11 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: %X.f.cpp_overload_set.value: %X.f.cpp_overload_set.type = cpp_overload_set_value @X.f.cpp_overload_set [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %B.val: %B = struct_value () [concrete] -// CHECK:STDOUT: %ptr.13d: type = ptr_type %B [concrete] -// CHECK:STDOUT: %ptr.bce: type = ptr_type %A [concrete] +// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] +// CHECK:STDOUT: %ptr.9f7: type = ptr_type %A [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: %.dae: ref %B = temporary invalid, %B.val [concrete] +// CHECK:STDOUT: %.f11: ref %B = temporary invalid, %B.val [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,8 +71,8 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.b54 = ref_binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.b54 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.aa6 = ref_binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.aa6 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %A = var %a.var_patt [concrete] // CHECK:STDOUT: %.loc7: type = splice_block %A.ref [concrete = constants.%A] { @@ -98,11 +98,11 @@ var a: Cpp.A = Cpp.X(Cpp.A, Cpp.B).f({} as Cpp.B); // CHECK:STDOUT: %.loc7_39.3: init %B to %.loc7_39.2 = class_init () [concrete = constants.%B.val] // CHECK:STDOUT: %.loc7_41.1: init %B = converted %.loc7_39.1, %.loc7_39.3 [concrete = constants.%B.val] // CHECK:STDOUT: %.loc7_1: ref %A = splice_block file.%a.var [concrete = file.%a.var] {} -// CHECK:STDOUT: %.loc7_41.2: ref %B = temporary %.loc7_39.2, %.loc7_41.1 [concrete = constants.%.dae] +// CHECK:STDOUT: %.loc7_41.2: ref %B = temporary %.loc7_39.2, %.loc7_41.1 [concrete = constants.%.f11] // CHECK:STDOUT: %.loc7_41.3: %B = acquire_value %.loc7_41.2 [concrete = constants.%B.val] // CHECK:STDOUT: %.loc7_41.4: ref %B = value_as_ref %.loc7_41.3 -// CHECK:STDOUT: %addr.loc7_49.1: %ptr.13d = addr_of %.loc7_41.4 -// CHECK:STDOUT: %addr.loc7_49.2: %ptr.bce = addr_of %.loc7_1 +// CHECK:STDOUT: %addr.loc7_49.1: %ptr.fab = addr_of %.loc7_41.4 +// CHECK:STDOUT: %addr.loc7_49.2: %ptr.9f7 = addr_of %.loc7_1 // CHECK:STDOUT: %f__carbon_thunk.call: init %empty_tuple.type = call imports.%f__carbon_thunk.decl(%addr.loc7_49.1, %addr.loc7_49.2) // CHECK:STDOUT: %.loc7_49: init %A to %.loc7_1 = mark_in_place_init %f__carbon_thunk.call // CHECK:STDOUT: assign file.%a.var, %.loc7_49 diff --git a/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon b/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon index 7a2ef3f8c596..b35afcfa0523 100644 --- a/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/non_type_param.carbon @@ -183,15 +183,15 @@ fn G() -> i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoNonType: type = class_type @TwoNonType [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.7f0: type = pattern_type %TwoNonType [concrete] +// CHECK:STDOUT: %pattern_type.69d: type = pattern_type %TwoNonType [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %TwoNonType.val: %TwoNonType = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.7f0 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.7f0 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.69d = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.69d = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoNonType = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoNonType = ref_binding x, %x.var [concrete = %x.var] @@ -215,18 +215,18 @@ fn G() -> i32 { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.c6b: type = pattern_type %i32 [concrete] -// CHECK:STDOUT: %DependentNonType.f1e65a.1: type = class_type @DependentNonType.1 [concrete] +// CHECK:STDOUT: %DependentNonType.c38: type = class_type @DependentNonType.1 [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %pattern_type.844c90.1: type = pattern_type %DependentNonType.f1e65a.1 [concrete] +// CHECK:STDOUT: %pattern_type.b08: type = pattern_type %DependentNonType.c38 [concrete] // CHECK:STDOUT: %MakeDependentNonType123.cpp_overload_set.type: type = cpp_overload_set_type @MakeDependentNonType123.cpp_overload_set [concrete] // CHECK:STDOUT: %MakeDependentNonType123.cpp_overload_set.value: %MakeDependentNonType123.cpp_overload_set.type = cpp_overload_set_value @MakeDependentNonType123.cpp_overload_set [concrete] -// CHECK:STDOUT: %ptr.89d: type = ptr_type %DependentNonType.f1e65a.1 [concrete] +// CHECK:STDOUT: %ptr.38c: type = ptr_type %DependentNonType.c38 [concrete] // CHECK:STDOUT: %MakeDependentNonType123__carbon_thunk.type: type = fn_type @MakeDependentNonType123__carbon_thunk [concrete] // CHECK:STDOUT: %MakeDependentNonType123__carbon_thunk: %MakeDependentNonType123__carbon_thunk.type = struct_value () [concrete] -// CHECK:STDOUT: %DependentNonType.f1e65a.2: type = class_type @DependentNonType.2 [concrete] -// CHECK:STDOUT: %pattern_type.844c90.2: type = pattern_type %DependentNonType.f1e65a.2 [concrete] +// CHECK:STDOUT: %DependentNonType.930: type = class_type @DependentNonType.2 [concrete] +// CHECK:STDOUT: %pattern_type.544: type = pattern_type %DependentNonType.930 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %DependentNonType.val: %DependentNonType.f1e65a.2 = struct_value () [concrete] +// CHECK:STDOUT: %DependentNonType.val: %DependentNonType.930 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -250,31 +250,31 @@ fn G() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.844c90.1 = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.844c90.1 = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.b08 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.b08 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref %DependentNonType.f1e65a.1 = var %x.var_patt [concrete] -// CHECK:STDOUT: %x: ref %DependentNonType.f1e65a.1 = ref_binding x, %x.var [concrete = %x.var] +// CHECK:STDOUT: %x.var: ref %DependentNonType.c38 = var %x.var_patt [concrete] +// CHECK:STDOUT: %x: ref %DependentNonType.c38 = ref_binding x, %x.var [concrete = %x.var] // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %y.patt: %pattern_type.844c90.2 = ref_binding_pattern y [concrete] -// CHECK:STDOUT: %y.var_patt: %pattern_type.844c90.2 = var_pattern %y.patt [concrete] +// CHECK:STDOUT: %y.patt: %pattern_type.544 = ref_binding_pattern y [concrete] +// CHECK:STDOUT: %y.var_patt: %pattern_type.544 = var_pattern %y.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %y.var: ref %DependentNonType.f1e65a.2 = var %y.var_patt [concrete] -// CHECK:STDOUT: %y: ref %DependentNonType.f1e65a.2 = ref_binding y, %y.var [concrete = %y.var] +// CHECK:STDOUT: %y.var: ref %DependentNonType.930 = var %y.var_patt [concrete] +// CHECK:STDOUT: %y: ref %DependentNonType.930 = ref_binding y, %y.var [concrete = %y.var] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %MakeDependentNonType123.ref: %MakeDependentNonType123.cpp_overload_set.type = name_ref MakeDependentNonType123, imports.%MakeDependentNonType123.cpp_overload_set.value [concrete = constants.%MakeDependentNonType123.cpp_overload_set.value] -// CHECK:STDOUT: %.loc7_1: ref %DependentNonType.f1e65a.1 = splice_block file.%x.var [concrete = file.%x.var] {} -// CHECK:STDOUT: %addr: %ptr.89d = addr_of %.loc7_1 +// CHECK:STDOUT: %.loc7_1: ref %DependentNonType.c38 = splice_block file.%x.var [concrete = file.%x.var] {} +// CHECK:STDOUT: %addr: %ptr.38c = addr_of %.loc7_1 // CHECK:STDOUT: %MakeDependentNonType123__carbon_thunk.call: init %empty_tuple.type = call imports.%MakeDependentNonType123__carbon_thunk.decl(%addr) -// CHECK:STDOUT: %.loc7_69: init %DependentNonType.f1e65a.1 to %.loc7_1 = mark_in_place_init %MakeDependentNonType123__carbon_thunk.call +// CHECK:STDOUT: %.loc7_69: init %DependentNonType.c38 to %.loc7_1 = mark_in_place_init %MakeDependentNonType123__carbon_thunk.call // CHECK:STDOUT: assign file.%x.var, %.loc7_69 // CHECK:STDOUT: %.loc8_54.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc8_54.2: init %DependentNonType.f1e65a.2 to file.%y.var = class_init () [concrete = constants.%DependentNonType.val] -// CHECK:STDOUT: %.loc8_1: init %DependentNonType.f1e65a.2 = converted %.loc8_54.1, %.loc8_54.2 [concrete = constants.%DependentNonType.val] +// CHECK:STDOUT: %.loc8_54.2: init %DependentNonType.930 to file.%y.var = class_init () [concrete = constants.%DependentNonType.val] +// CHECK:STDOUT: %.loc8_1: init %DependentNonType.930 = converted %.loc8_54.1, %.loc8_54.2 [concrete = constants.%DependentNonType.val] // CHECK:STDOUT: assign file.%y.var, %.loc8_1 // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon b/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon index ca525a45d904..60f8df90cbad 100644 --- a/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon @@ -84,7 +84,7 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTemplates: type = class_type @TwoTemplates [concrete] -// CHECK:STDOUT: %pattern_type.4dd: type = pattern_type %TwoTemplates [concrete] +// CHECK:STDOUT: %pattern_type.681: type = pattern_type %TwoTemplates [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -93,9 +93,9 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: %TwoTemplates.Op.type: type = fn_type @TwoTemplates.Op [concrete] // CHECK:STDOUT: %TwoTemplates.Op: %TwoTemplates.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%TwoTemplates.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.335: %Default.type = facet_value %TwoTemplates, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.d13: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.335) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTemplates, (%DefaultOrUnformed.impl_witness.d13) [concrete] +// CHECK:STDOUT: %Default.facet.1b5: %Default.type = facet_value %TwoTemplates, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.36d: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.1b5) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTemplates, (%DefaultOrUnformed.impl_witness.36d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -105,8 +105,8 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.4dd = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.4dd = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.681 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.681 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTemplates = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTemplates = ref_binding x, %x.var [concrete = %x.var] @@ -114,7 +114,7 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTemplates, (constants.%DefaultOrUnformed.impl_witness.d13) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTemplates, (constants.%DefaultOrUnformed.impl_witness.36d) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_38.1: %DefaultOrUnformed.type = converted constants.%TwoTemplates, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_38.1 [concrete = constants.%TwoTemplates] // CHECK:STDOUT: %.loc7_38.2: type = converted %.loc7_38.1, %as_type [concrete = constants.%TwoTemplates] diff --git a/toolchain/check/testdata/interop/cpp/template/type_param.carbon b/toolchain/check/testdata/interop/cpp/template/type_param.carbon index 45f845451c85..52bf69e06a49 100644 --- a/toolchain/check/testdata/interop/cpp/template/type_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/type_param.carbon @@ -68,7 +68,7 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTypes: type = class_type @TwoTypes [concrete] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %TwoTypes [concrete] +// CHECK:STDOUT: %pattern_type.bc0: type = pattern_type %TwoTypes [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -77,9 +77,9 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%TwoTypes.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.ba6: %Default.type = facet_value %TwoTypes, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.462: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.ba6) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.462) [concrete] +// CHECK:STDOUT: %Default.facet.f94: %Default.type = facet_value %TwoTypes, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b65: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f94) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.b65) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -89,8 +89,8 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.3df = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.3df = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.bc0 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.bc0 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTypes = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTypes = ref_binding x, %x.var [concrete = %x.var] @@ -98,7 +98,7 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.462) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.b65) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_34.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_34.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_34.2: type = converted %.loc7_34.1, %as_type [concrete = constants.%TwoTypes] @@ -113,7 +113,7 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %TwoTypes: type = class_type @TwoTypes [concrete] -// CHECK:STDOUT: %pattern_type.3df: type = pattern_type %TwoTypes [concrete] +// CHECK:STDOUT: %pattern_type.6c8: type = pattern_type %TwoTypes [concrete] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.4ca: %Default.type = symbolic_binding T, 0 [symbolic] @@ -122,9 +122,9 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.213: = custom_witness (%TwoTypes.Op), @Default [concrete] -// CHECK:STDOUT: %Default.facet.ba6: %Default.type = facet_value %TwoTypes, (%custom_witness.213) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.462: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.ba6) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.462) [concrete] +// CHECK:STDOUT: %Default.facet.f74: %Default.type = facet_value %TwoTypes, (%custom_witness.213) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.7ac: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.b72, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.f74) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.7ac) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -134,8 +134,8 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: %pattern_type.3df = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: %pattern_type.3df = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: %pattern_type.6c8 = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: %pattern_type.6c8 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %TwoTypes = var %x.var_patt [concrete] // CHECK:STDOUT: %x: ref %TwoTypes = ref_binding x, %x.var [concrete = %x.var] @@ -143,7 +143,7 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.462) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.7ac) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_32.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_32.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_32.2: type = converted %.loc7_32.1, %as_type [concrete = constants.%TwoTypes] diff --git a/toolchain/check/testdata/interop/cpp/template/var_template.carbon b/toolchain/check/testdata/interop/cpp/template/var_template.carbon index 062da06db35a..847ff2c4e914 100644 --- a/toolchain/check/testdata/interop/cpp/template/var_template.carbon +++ b/toolchain/check/testdata/interop/cpp/template/var_template.carbon @@ -38,22 +38,22 @@ let pwb: Cpp.B* = &Cpp.Wrap.r#var(Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %ptr.bce: type = ptr_type %A [concrete] -// CHECK:STDOUT: %pattern_type.d1f: type = pattern_type %ptr.bce [concrete] +// CHECK:STDOUT: %ptr.9f7: type = ptr_type %A [concrete] +// CHECK:STDOUT: %pattern_type.008: type = pattern_type %ptr.9f7 [concrete] // CHECK:STDOUT: %var.type.674: type = cpp_type_template_type r#var [concrete] // CHECK:STDOUT: %var.template.164: %var.type.674 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.b54: type = pattern_type %A [concrete] -// CHECK:STDOUT: %addr.b03: %ptr.bce = addr_of imports.%var.var.389 [concrete] +// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %A [concrete] +// CHECK:STDOUT: %addr.b69: %ptr.9f7 = addr_of imports.%var.var.f74 [concrete] // CHECK:STDOUT: %B: type = class_type @B [concrete] -// CHECK:STDOUT: %ptr.13d: type = ptr_type %B [concrete] -// CHECK:STDOUT: %pattern_type.dd8: type = pattern_type %ptr.13d [concrete] -// CHECK:STDOUT: %pattern_type.676: type = pattern_type %B [concrete] -// CHECK:STDOUT: %addr.dd0: %ptr.13d = addr_of imports.%var.var.c8c [concrete] +// CHECK:STDOUT: %ptr.fab: type = ptr_type %B [concrete] +// CHECK:STDOUT: %pattern_type.857: type = pattern_type %ptr.fab [concrete] +// CHECK:STDOUT: %pattern_type.bbe: type = pattern_type %B [concrete] +// CHECK:STDOUT: %addr.e81: %ptr.fab = addr_of imports.%var.var.15d [concrete] // CHECK:STDOUT: %Wrap: type = class_type @Wrap [concrete] // CHECK:STDOUT: %var.type.726: type = cpp_type_template_type r#var [concrete] // CHECK:STDOUT: %var.template.093: %var.type.726 = struct_value () [concrete] -// CHECK:STDOUT: %addr.9d1: %ptr.bce = addr_of imports.%var.var.71c [concrete] -// CHECK:STDOUT: %addr.03a: %ptr.13d = addr_of imports.%var.var.74b [concrete] +// CHECK:STDOUT: %addr.4d5: %ptr.9f7 = addr_of imports.%var.var.e2c [concrete] +// CHECK:STDOUT: %addr.fa2: %ptr.fab = addr_of imports.%var.var.ded [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -66,60 +66,60 @@ let pwb: Cpp.B* = &Cpp.Wrap.r#var(Cpp.B); // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: type = class_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: %var.template.164: %var.type.674 = struct_value () [concrete = constants.%var.template.164] -// CHECK:STDOUT: %var.patt.d0f: %pattern_type.b54 = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.26b: %pattern_type.b54 = var_pattern %var.patt.d0f [concrete] -// CHECK:STDOUT: %var.var.389: ref %A = var %var.var_patt.26b [concrete] +// CHECK:STDOUT: %var.patt.17e: %pattern_type.aa6 = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.619: %pattern_type.aa6 = var_pattern %var.patt.17e [concrete] +// CHECK:STDOUT: %var.var.f74: ref %A = var %var.var_patt.619 [concrete] // CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {} -// CHECK:STDOUT: %var.patt.d82: %pattern_type.676 = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.857: %pattern_type.676 = var_pattern %var.patt.d82 [concrete] -// CHECK:STDOUT: %var.var.c8c: ref %B = var %var.var_patt.857 [concrete] +// CHECK:STDOUT: %var.patt.ece: %pattern_type.bbe = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.891: %pattern_type.bbe = var_pattern %var.patt.ece [concrete] +// CHECK:STDOUT: %var.var.15d: ref %B = var %var.var_patt.891 [concrete] // CHECK:STDOUT: %Wrap.decl: type = class_decl @Wrap [concrete = constants.%Wrap] {} {} // CHECK:STDOUT: %var.template.093: %var.type.726 = struct_value () [concrete = constants.%var.template.093] -// CHECK:STDOUT: %var.patt.fbd: %pattern_type.b54 = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.4df: %pattern_type.b54 = var_pattern %var.patt.fbd [concrete] -// CHECK:STDOUT: %var.var.71c: ref %A = var %var.var_patt.4df [concrete] -// CHECK:STDOUT: %var.patt.e9b: %pattern_type.676 = ref_binding_pattern r#var [concrete] -// CHECK:STDOUT: %var.var_patt.0e0: %pattern_type.676 = var_pattern %var.patt.e9b [concrete] -// CHECK:STDOUT: %var.var.74b: ref %B = var %var.var_patt.0e0 [concrete] +// CHECK:STDOUT: %var.patt.bf9: %pattern_type.aa6 = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.a11: %pattern_type.aa6 = var_pattern %var.patt.bf9 [concrete] +// CHECK:STDOUT: %var.var.e2c: ref %A = var %var.var_patt.a11 [concrete] +// CHECK:STDOUT: %var.patt.7c6: %pattern_type.bbe = ref_binding_pattern r#var [concrete] +// CHECK:STDOUT: %var.var_patt.005: %pattern_type.bbe = var_pattern %var.patt.7c6 [concrete] +// CHECK:STDOUT: %var.var.ded: ref %B = var %var.var_patt.005 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pa.patt: %pattern_type.d1f = value_binding_pattern pa [concrete] +// CHECK:STDOUT: %pa.patt: %pattern_type.008 = value_binding_pattern pa [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.bce] { +// CHECK:STDOUT: %.loc7: type = splice_block %ptr.loc7 [concrete = constants.%ptr.9f7] { // CHECK:STDOUT: %Cpp.ref.loc7: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc7: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc7: type = ptr_type %A.ref.loc7 [concrete = constants.%ptr.bce] +// CHECK:STDOUT: %ptr.loc7: type = ptr_type %A.ref.loc7 [concrete = constants.%ptr.9f7] // CHECK:STDOUT: } -// CHECK:STDOUT: %pa: %ptr.bce = value_binding pa, @__global_init.%addr.loc7 +// CHECK:STDOUT: %pa: %ptr.9f7 = value_binding pa, @__global_init.%addr.loc7 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pb.patt: %pattern_type.dd8 = value_binding_pattern pb [concrete] +// CHECK:STDOUT: %pb.patt: %pattern_type.857 = value_binding_pattern pb [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8 [concrete = constants.%ptr.13d] { +// CHECK:STDOUT: %.loc8: type = splice_block %ptr.loc8 [concrete = constants.%ptr.fab] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc8: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %B.ref.loc8 [concrete = constants.%ptr.13d] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %B.ref.loc8 [concrete = constants.%ptr.fab] // CHECK:STDOUT: } -// CHECK:STDOUT: %pb: %ptr.13d = value_binding pb, @__global_init.%addr.loc8 +// CHECK:STDOUT: %pb: %ptr.fab = value_binding pb, @__global_init.%addr.loc8 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pwa.patt: %pattern_type.d1f = value_binding_pattern pwa [concrete] +// CHECK:STDOUT: %pwa.patt: %pattern_type.008 = value_binding_pattern pwa [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.bce] { +// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.9f7] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc9: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %ptr.loc9: type = ptr_type %A.ref.loc9 [concrete = constants.%ptr.bce] +// CHECK:STDOUT: %ptr.loc9: type = ptr_type %A.ref.loc9 [concrete = constants.%ptr.9f7] // CHECK:STDOUT: } -// CHECK:STDOUT: %pwa: %ptr.bce = value_binding pwa, @__global_init.%addr.loc9 +// CHECK:STDOUT: %pwa: %ptr.9f7 = value_binding pwa, @__global_init.%addr.loc9 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pwb.patt: %pattern_type.dd8 = value_binding_pattern pwb [concrete] +// CHECK:STDOUT: %pwb.patt: %pattern_type.857 = value_binding_pattern pwb [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.13d] { +// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.fab] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc10: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %ptr.loc10: type = ptr_type %B.ref.loc10 [concrete = constants.%ptr.13d] +// CHECK:STDOUT: %ptr.loc10: type = ptr_type %B.ref.loc10 [concrete = constants.%ptr.fab] // CHECK:STDOUT: } -// CHECK:STDOUT: %pwb: %ptr.13d = value_binding pwb, @__global_init.%addr.loc10 +// CHECK:STDOUT: %pwb: %ptr.fab = value_binding pwb, @__global_init.%addr.loc10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { @@ -128,24 +128,24 @@ let pwb: Cpp.B* = &Cpp.Wrap.r#var(Cpp.B); // CHECK:STDOUT: %var.ref.loc7: %var.type.674 = name_ref r#var, imports.%var.template.164 [concrete = constants.%var.template.164] // CHECK:STDOUT: %Cpp.ref.loc7_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc7: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %addr.loc7: %ptr.bce = addr_of imports.%var.var.389 [concrete = constants.%addr.b03] +// CHECK:STDOUT: %addr.loc7: %ptr.9f7 = addr_of imports.%var.var.f74 [concrete = constants.%addr.b69] // CHECK:STDOUT: %Cpp.ref.loc8_19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %var.ref.loc8: %var.type.674 = name_ref r#var, imports.%var.template.164 [concrete = constants.%var.template.164] // CHECK:STDOUT: %Cpp.ref.loc8_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc8: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %addr.loc8: %ptr.13d = addr_of imports.%var.var.c8c [concrete = constants.%addr.dd0] +// CHECK:STDOUT: %addr.loc8: %ptr.fab = addr_of imports.%var.var.15d [concrete = constants.%addr.e81] // CHECK:STDOUT: %Cpp.ref.loc9_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Wrap.ref.loc9: type = name_ref Wrap, imports.%Wrap.decl [concrete = constants.%Wrap] // CHECK:STDOUT: %var.ref.loc9: %var.type.726 = name_ref r#var, imports.%var.template.093 [concrete = constants.%var.template.093] // CHECK:STDOUT: %Cpp.ref.loc9_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %A.ref.loc9: type = name_ref A, imports.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %addr.loc9: %ptr.bce = addr_of imports.%var.var.71c [concrete = constants.%addr.9d1] +// CHECK:STDOUT: %addr.loc9: %ptr.9f7 = addr_of imports.%var.var.e2c [concrete = constants.%addr.4d5] // CHECK:STDOUT: %Cpp.ref.loc10_20: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Wrap.ref.loc10: type = name_ref Wrap, imports.%Wrap.decl [concrete = constants.%Wrap] // CHECK:STDOUT: %var.ref.loc10: %var.type.726 = name_ref r#var, imports.%var.template.093 [concrete = constants.%var.template.093] // CHECK:STDOUT: %Cpp.ref.loc10_35: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %B.ref.loc10: type = name_ref B, imports.%B.decl [concrete = constants.%B] -// CHECK:STDOUT: %addr.loc10: %ptr.13d = addr_of imports.%var.var.74b [concrete = constants.%addr.03a] +// CHECK:STDOUT: %addr.loc10: %ptr.fab = addr_of imports.%var.var.ded [concrete = constants.%addr.fa2] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/type_alias/import.carbon b/toolchain/check/testdata/interop/cpp/type_alias/import.carbon index ad8e66f6fafc..e49f3e1a0c1b 100644 --- a/toolchain/check/testdata/interop/cpp/type_alias/import.carbon +++ b/toolchain/check/testdata/interop/cpp/type_alias/import.carbon @@ -165,19 +165,19 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.8f3: type = pattern_type %ptr.dbb [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.0d0: type = pattern_type %ptr.3a8 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.b03: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.aed: %ptr.as.Copy.impl.Op.type.b03 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.impl_witness.5ca: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.804: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.b0c: %ptr.as.Copy.impl.Op.type.804 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.dbb, (%Copy.impl_witness.5ca) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.296: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] -// CHECK:STDOUT: %.2df: type = fn_type_with_self_type %Copy.WithSelf.Op.type.296, %Copy.facet [concrete] -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.b0c, @ptr.as.Copy.impl.Op(%C) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.a6b: = impl_witness imports.%Copy.impl_witness_table.760, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.040: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%C) [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.721: %ptr.as.Copy.impl.Op.type.040 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.3a8, (%Copy.impl_witness.a6b) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.85b: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] +// CHECK:STDOUT: %.18e: type = fn_type_with_self_type %Copy.WithSelf.Op.type.85b, %Copy.facet [concrete] +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.721, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -196,43 +196,43 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: fn @H(%c.param: ref %C, %d.param: ref %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pd.patt: %pattern_type.8f3 = ref_binding_pattern pd [concrete] -// CHECK:STDOUT: %pd.var_patt: %pattern_type.8f3 = var_pattern %pd.patt [concrete] +// CHECK:STDOUT: %pd.patt: %pattern_type.0d0 = ref_binding_pattern pd [concrete] +// CHECK:STDOUT: %pd.var_patt: %pattern_type.0d0 = var_pattern %pd.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %pd.var: ref %ptr.dbb = var %pd.var_patt +// CHECK:STDOUT: %pd.var: ref %ptr.3a8 = var %pd.var_patt // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %addr.loc9: %ptr.dbb = addr_of %c.ref -// CHECK:STDOUT: %impl.elem0.loc9: %.2df = impl_witness_access constants.%Copy.impl_witness.5ca, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b0c] +// CHECK:STDOUT: %addr.loc9: %ptr.3a8 = addr_of %c.ref +// CHECK:STDOUT: %impl.elem0.loc9: %.18e = impl_witness_access constants.%Copy.impl_witness.a6b, element0 [concrete = constants.%ptr.as.Copy.impl.Op.721] // CHECK:STDOUT: %bound_method.loc9_27.1: = bound_method %addr.loc9, %impl.elem0.loc9 // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_27.2: = bound_method %addr.loc9, %specific_fn.loc9 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc9: init %ptr.dbb = call %bound_method.loc9_27.2(%addr.loc9) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc9: init %ptr.3a8 = call %bound_method.loc9_27.2(%addr.loc9) // CHECK:STDOUT: assign %pd.var, %ptr.as.Copy.impl.Op.call.loc9 -// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.dbb] { +// CHECK:STDOUT: %.loc9: type = splice_block %ptr.loc9 [concrete = constants.%ptr.3a8] { // 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.dbb] +// CHECK:STDOUT: %ptr.loc9: type = ptr_type %D.ref.loc9 [concrete = constants.%ptr.3a8] // CHECK:STDOUT: } -// CHECK:STDOUT: %pd: ref %ptr.dbb = ref_binding pd, %pd.var +// CHECK:STDOUT: %pd: ref %ptr.3a8 = ref_binding pd, %pd.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %pc.patt: %pattern_type.8f3 = ref_binding_pattern pc [concrete] -// CHECK:STDOUT: %pc.var_patt: %pattern_type.8f3 = var_pattern %pc.patt [concrete] +// CHECK:STDOUT: %pc.patt: %pattern_type.0d0 = ref_binding_pattern pc [concrete] +// CHECK:STDOUT: %pc.var_patt: %pattern_type.0d0 = var_pattern %pc.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %pc.var: ref %ptr.dbb = var %pc.var_patt +// CHECK:STDOUT: %pc.var: ref %ptr.3a8 = var %pc.var_patt // CHECK:STDOUT: %d.ref: ref %C = name_ref d, %d -// CHECK:STDOUT: %addr.loc10: %ptr.dbb = addr_of %d.ref -// CHECK:STDOUT: %impl.elem0.loc10: %.2df = impl_witness_access constants.%Copy.impl_witness.5ca, element0 [concrete = constants.%ptr.as.Copy.impl.Op.b0c] +// CHECK:STDOUT: %addr.loc10: %ptr.3a8 = addr_of %d.ref +// CHECK:STDOUT: %impl.elem0.loc10: %.18e = impl_witness_access constants.%Copy.impl_witness.a6b, element0 [concrete = constants.%ptr.as.Copy.impl.Op.721] // CHECK:STDOUT: %bound_method.loc10_27.1: = bound_method %addr.loc10, %impl.elem0.loc10 // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @ptr.as.Copy.impl.Op(constants.%C) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_27.2: = bound_method %addr.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc10: init %ptr.dbb = call %bound_method.loc10_27.2(%addr.loc10) +// CHECK:STDOUT: %ptr.as.Copy.impl.Op.call.loc10: init %ptr.3a8 = call %bound_method.loc10_27.2(%addr.loc10) // CHECK:STDOUT: assign %pc.var, %ptr.as.Copy.impl.Op.call.loc10 -// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.dbb] { +// CHECK:STDOUT: %.loc10: type = splice_block %ptr.loc10 [concrete = constants.%ptr.3a8] { // 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.dbb] +// CHECK:STDOUT: %ptr.loc10: type = ptr_type %C.ref.loc10 [concrete = constants.%ptr.3a8] // CHECK:STDOUT: } -// CHECK:STDOUT: %pc: ref %ptr.dbb = ref_binding pc, %pc.var +// CHECK:STDOUT: %pc: ref %ptr.3a8 = ref_binding pc, %pc.var // CHECK:STDOUT: %Destroy.Op.bound.loc10: = bound_method %pc.var, constants.%Destroy.Op // CHECK:STDOUT: %Destroy.Op.call.loc10: init %empty_tuple.type = call %Destroy.Op.bound.loc10(%pc.var) // CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %pd.var, constants.%Destroy.Op @@ -240,5 +240,5 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.dbb) = "no_op"; +// CHECK:STDOUT: fn @Destroy.Op(%self.param: ref %ptr.3a8) = "no_op"; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/var/global.carbon b/toolchain/check/testdata/interop/cpp/var/global.carbon index 984c751e08bd..5764bf5c10ab 100644 --- a/toolchain/check/testdata/interop/cpp/var/global.carbon +++ b/toolchain/check/testdata/interop/cpp/var/global.carbon @@ -77,13 +77,13 @@ fn MyF() { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %pattern_type.a00: type = pattern_type %C [concrete] -// CHECK:STDOUT: %ptr.dbb: type = ptr_type %C [concrete] -// CHECK:STDOUT: %pattern_type.8f3: type = pattern_type %ptr.dbb [concrete] -// CHECK:STDOUT: %const: type = const_type %ptr.dbb [concrete] -// CHECK:STDOUT: %pattern_type.fde: type = pattern_type %const [concrete] -// CHECK:STDOUT: %global_ref.var: ref %ptr.dbb = var imports.%global_ref.var_patt [concrete] -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of imports.%global.var [concrete] +// CHECK:STDOUT: %pattern_type.479: type = pattern_type %C [concrete] +// CHECK:STDOUT: %ptr.3a8: type = ptr_type %C [concrete] +// CHECK:STDOUT: %pattern_type.0d0: type = pattern_type %ptr.3a8 [concrete] +// CHECK:STDOUT: %const: type = const_type %ptr.3a8 [concrete] +// CHECK:STDOUT: %pattern_type.3f2: type = pattern_type %const [concrete] +// CHECK:STDOUT: %global_ref.var: ref %ptr.3a8 = var imports.%global_ref.var_patt [concrete] +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of imports.%global.var [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -99,14 +99,14 @@ fn MyF() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %global.patt: %pattern_type.a00 = ref_binding_pattern global [concrete] -// CHECK:STDOUT: %global.var_patt: %pattern_type.a00 = var_pattern %global.patt [concrete] +// CHECK:STDOUT: %global.patt: %pattern_type.479 = ref_binding_pattern global [concrete] +// CHECK:STDOUT: %global.var_patt: %pattern_type.479 = var_pattern %global.patt [concrete] // CHECK:STDOUT: %global.var: ref %C = var %global.var_patt [concrete] -// CHECK:STDOUT: %global_ptr.patt: %pattern_type.8f3 = ref_binding_pattern global_ptr [concrete] -// CHECK:STDOUT: %global_ptr.var_patt: %pattern_type.8f3 = var_pattern %global_ptr.patt [concrete] -// CHECK:STDOUT: %global_ptr.var: ref %ptr.dbb = var %global_ptr.var_patt [concrete] -// CHECK:STDOUT: %global_ref.patt: %pattern_type.fde = ref_binding_pattern global_ref [concrete] -// CHECK:STDOUT: %global_ref.var_patt: %pattern_type.fde = var_pattern %global_ref.patt [concrete] +// CHECK:STDOUT: %global_ptr.patt: %pattern_type.0d0 = ref_binding_pattern global_ptr [concrete] +// CHECK:STDOUT: %global_ptr.var_patt: %pattern_type.0d0 = var_pattern %global_ptr.patt [concrete] +// CHECK:STDOUT: %global_ptr.var: ref %ptr.3a8 = var %global_ptr.var_patt [concrete] +// CHECK:STDOUT: %global_ref.patt: %pattern_type.3f2 = ref_binding_pattern global_ref [concrete] +// CHECK:STDOUT: %global_ref.var_patt: %pattern_type.3f2 = var_pattern %global_ref.patt [concrete] // CHECK:STDOUT: %global_ref.var: ref %const = var %global_ref.var_patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -135,7 +135,7 @@ fn MyF() { // CHECK:STDOUT: fn @MyF() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %local.patt: %pattern_type.a00 = value_binding_pattern local [concrete] +// CHECK:STDOUT: %local.patt: %pattern_type.479 = value_binding_pattern local [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc7_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %global.ref: ref %C = name_ref global, imports.%global.var [concrete = imports.%global.var] @@ -146,32 +146,32 @@ fn MyF() { // CHECK:STDOUT: %.loc7_32: %C = acquire_value %global.ref // CHECK:STDOUT: %local: %C = value_binding local, %.loc7_32 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %local_ptr.patt: %pattern_type.8f3 = value_binding_pattern local_ptr [concrete] +// CHECK:STDOUT: %local_ptr.patt: %pattern_type.0d0 = value_binding_pattern local_ptr [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc8_34: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %global_ptr.ref: ref %ptr.dbb = name_ref global_ptr, imports.%global_ptr.var [concrete = imports.%global_ptr.var] -// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.dbb] { +// CHECK:STDOUT: %global_ptr.ref: ref %ptr.3a8 = name_ref global_ptr, imports.%global_ptr.var [concrete = imports.%global_ptr.var] +// CHECK:STDOUT: %.loc8_30: type = splice_block %ptr.loc8 [concrete = constants.%ptr.3a8] { // CHECK:STDOUT: %Cpp.ref.loc8_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc8: type = name_ref C, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc8: type = ptr_type %C.ref.loc8 [concrete = constants.%ptr.dbb] +// CHECK:STDOUT: %ptr.loc8: type = ptr_type %C.ref.loc8 [concrete = constants.%ptr.3a8] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8_37: %ptr.dbb = acquire_value %global_ptr.ref -// CHECK:STDOUT: %local_ptr: %ptr.dbb = value_binding local_ptr, %.loc8_37 +// CHECK:STDOUT: %.loc8_37: %ptr.3a8 = acquire_value %global_ptr.ref +// CHECK:STDOUT: %local_ptr: %ptr.3a8 = value_binding local_ptr, %.loc8_37 // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %local_ref.patt: %pattern_type.8f3 = value_binding_pattern local_ref [concrete] +// CHECK:STDOUT: %local_ref.patt: %pattern_type.0d0 = value_binding_pattern local_ref [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc9_34: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %global_ref.ref: ref %const = name_ref global_ref, imports.%global_ref.var [concrete = imports.%global_ref.var] -// CHECK:STDOUT: %.loc9_30: type = splice_block %ptr.loc9 [concrete = constants.%ptr.dbb] { +// CHECK:STDOUT: %.loc9_30: type = splice_block %ptr.loc9 [concrete = constants.%ptr.3a8] { // CHECK:STDOUT: %Cpp.ref.loc9_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref.loc9: type = name_ref C, imports.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr.loc9: type = ptr_type %C.ref.loc9 [concrete = constants.%ptr.dbb] +// CHECK:STDOUT: %ptr.loc9: type = ptr_type %C.ref.loc9 [concrete = constants.%ptr.3a8] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9_37.1: ref %ptr.dbb = as_compatible %global_ref.ref [concrete = constants.%global_ref.var] -// CHECK:STDOUT: %.loc9_37.2: ref %ptr.dbb = converted %global_ref.ref, %.loc9_37.1 [concrete = constants.%global_ref.var] -// CHECK:STDOUT: %addr: %ptr.dbb = addr_of imports.%global.var [concrete = constants.%addr] -// CHECK:STDOUT: %.loc9_37.3: %ptr.dbb = acquire_value %.loc9_37.2 [concrete = constants.%addr] -// CHECK:STDOUT: %local_ref: %ptr.dbb = value_binding local_ref, %.loc9_37.3 +// CHECK:STDOUT: %.loc9_37.1: ref %ptr.3a8 = as_compatible %global_ref.ref [concrete = constants.%global_ref.var] +// CHECK:STDOUT: %.loc9_37.2: ref %ptr.3a8 = converted %global_ref.ref, %.loc9_37.1 [concrete = constants.%global_ref.var] +// CHECK:STDOUT: %addr: %ptr.3a8 = addr_of imports.%global.var [concrete = constants.%addr] +// CHECK:STDOUT: %.loc9_37.3: %ptr.3a8 = acquire_value %.loc9_37.2 [concrete = constants.%addr] +// CHECK:STDOUT: %local_ref: %ptr.3a8 = value_binding local_ref, %.loc9_37.3 // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon index 0a6ac35efc5b..99cb085040d3 100644 --- a/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/import/dynamic.carbon @@ -171,7 +171,7 @@ auto DoThing() -> void { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.9262bcc12ced4e1e:core.Destroy.Core"(ptr %self) #5 !dbg !33 { +// CHECK:STDOUT: define weak_odr void @"_COp.47e6e98bb48502be:core.Destroy.Core"(ptr %self) #5 !dbg !33 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !36 // CHECK:STDOUT: } @@ -297,7 +297,7 @@ auto DoThing() -> void { // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !21) // CHECK:STDOUT: !32 = !DILocation(line: 22, column: 1, scope: !29) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9262bcc12ced4e1e:core.Destroy.Core", scope: null, file: !6, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Op", linkageName: "_COp.47e6e98bb48502be:core.Destroy.Core", scope: null, file: !6, line: 22, type: !19, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !34) // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !21) // CHECK:STDOUT: !36 = !DILocation(line: 22, column: 1, scope: !33) diff --git a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon index a76cfe75354b..0e27184e5142 100644 --- a/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon +++ b/toolchain/lower/testdata/interop/cpp/class/virtual_fn.carbon @@ -209,7 +209,7 @@ void delete_new_Base() { // CHECK:STDOUT: declare void @_ZN1AD1Ev(ptr noundef nonnull align 8 dead_on_return(8) dereferenceable(8)) unnamed_addr #7 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.bce205344e07c31d:core.Destroy.Core"(ptr %self) #8 !dbg !29 { +// CHECK:STDOUT: define weak_odr void @"_COp.6a9ecc3bdf183bcf:core.Destroy.Core"(ptr %self) #8 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !32 // CHECK:STDOUT: } @@ -380,7 +380,7 @@ void delete_new_Base() { // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DILocalVariable(arg: 1, scope: !22, type: !25) // CHECK:STDOUT: !28 = !DILocation(line: 12, column: 1, scope: !22) -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bce205344e07c31d:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp.6a9ecc3bdf183bcf:core.Destroy.Core", scope: null, file: !6, line: 12, type: !23, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) // CHECK:STDOUT: !30 = !{!31} // CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !29, type: !25) // CHECK:STDOUT: !32 = !DILocation(line: 12, column: 1, scope: !29) diff --git a/toolchain/lower/testdata/interop/cpp/constructor.carbon b/toolchain/lower/testdata/interop/cpp/constructor.carbon index 8d0eac3fadac..9895e16b34d9 100644 --- a/toolchain/lower/testdata/interop/cpp/constructor.carbon +++ b/toolchain/lower/testdata/interop/cpp/constructor.carbon @@ -281,7 +281,7 @@ fn Four() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca [8 x i8], align 1, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca"(ptr %_.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c"(ptr %_.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -296,7 +296,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp"(ptr sret([8 x i8]) %return) #2 !dbg !19 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.08e786f435a99766.Core:C.Cpp"(ptr sret([8 x i8]) %return) #2 !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !24 // CHECK:STDOUT: ret void, !dbg !24 @@ -306,8 +306,8 @@ fn Four() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca"(ptr sret([8 x i8]) %return) #0 !dbg !25 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp"(ptr %return), !dbg !27 +// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c"(ptr sret([8 x i8]) %return) #0 !dbg !25 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.08e786f435a99766.Core:C.Cpp"(ptr %return), !dbg !27 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -353,13 +353,13 @@ fn Four() { // CHECK:STDOUT: !16 = !{!17, !17, i64 0} // CHECK:STDOUT: !17 = !{!"p1 _ZTS1C", !18, i64 0} // CHECK:STDOUT: !18 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp", scope: null, file: !20, line: 4, type: !21, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.08e786f435a99766.Core:C.Cpp", scope: null, file: !20, line: 4, type: !21, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !20 = !DIFile(filename: "./default.h", directory: "") // CHECK:STDOUT: !21 = !DISubroutineType(types: !22) // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !DILocation(line: 4, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca", scope: null, file: !26, line: 9, type: !21, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c", scope: null, file: !26, line: 9, type: !21, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !26 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !27 = !DILocation(line: 9, column: 28, scope: !25) // CHECK:STDOUT: !28 = !DILocation(line: 9, column: 21, scope: !25) @@ -388,11 +388,11 @@ fn Four() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_65.1.temp), !dbg !14 // CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc8_65.1.temp), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !15 -// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2db09a503899761f"(ptr %_.var.loc9), !dbg !15 +// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.dc183edbabc24d2f"(ptr %_.var.loc9), !dbg !15 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_65.1.temp), !dbg !16 // CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %.loc12_65.1.temp), !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !17 -// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.0dfbcd9a7c1791ba"(ptr %_.var.loc13), !dbg !17 +// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.44ad2ae60410d16d"(ptr %_.var.loc13), !dbg !17 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -407,7 +407,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.40902cf3dea87d9c.Core:ImplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !22 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.1458cb9e3f45d9d7.Core:ImplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !27 // CHECK:STDOUT: ret void, !dbg !27 @@ -424,7 +424,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.f7ced4a20f885cf5.Core:ExplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !30 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.16c8d515df1b6c01.Core:ExplicitlyDefaultedDefault.Cpp"(ptr sret([4 x i8]) %return) #2 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk.(ptr %return), !dbg !31 // CHECK:STDOUT: ret void, !dbg !31 @@ -434,14 +434,14 @@ fn Four() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2db09a503899761f"(ptr sret([4 x i8]) %return) #0 !dbg !32 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.40902cf3dea87d9c.Core:ImplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !34 +// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.dc183edbabc24d2f"(ptr sret([4 x i8]) %return) #0 !dbg !32 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.1458cb9e3f45d9d7.Core:ImplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !34 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.0dfbcd9a7c1791ba"(ptr sret([4 x i8]) %return) #0 !dbg !36 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.f7ced4a20f885cf5.Core:ExplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !37 +// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.44ad2ae60410d16d"(ptr sret([4 x i8]) %return) #0 !dbg !36 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.16c8d515df1b6c01.Core:ExplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !37 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -503,7 +503,7 @@ fn Four() { // CHECK:STDOUT: !19 = !{!20, !20, i64 0} // CHECK:STDOUT: !20 = !{!"p1 _ZTS26ImplicitlyDefaultedDefault", !21, i64 0} // CHECK:STDOUT: !21 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.40902cf3dea87d9c.Core:ImplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 2, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.1458cb9e3f45d9d7.Core:ImplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 2, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !23 = !DIFile(filename: "./defaulted_default.h", directory: "") // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{!26} @@ -511,13 +511,13 @@ fn Four() { // CHECK:STDOUT: !27 = !DILocation(line: 2, column: 8, scope: !22) // CHECK:STDOUT: !28 = !{!29, !29, i64 0} // CHECK:STDOUT: !29 = !{!"p1 _ZTS26ExplicitlyDefaultedDefault", !21, i64 0} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.f7ced4a20f885cf5.Core:ExplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.16c8d515df1b6c01.Core:ExplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !31 = !DILocation(line: 7, column: 3, scope: !30) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2db09a503899761f", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.dc183edbabc24d2f", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !33 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !34 = !DILocation(line: 9, column: 28, scope: !32) // CHECK:STDOUT: !35 = !DILocation(line: 9, column: 21, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.0dfbcd9a7c1791ba", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.44ad2ae60410d16d", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !37 = !DILocation(line: 9, column: 28, scope: !36) // CHECK:STDOUT: !38 = !DILocation(line: 9, column: 21, scope: !36) // CHECK:STDOUT: !39 = !{!40, !8, i64 0} @@ -552,7 +552,7 @@ fn Four() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.83073f2d17ed2f9e.Core:Copy.Cpp"(ptr sret([4 x i8]) %return, ptr %self) #2 !dbg !22 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.0459c72f2d146eb1.Core:Copy.Cpp"(ptr sret([4 x i8]) %return, ptr %self) #2 !dbg !22 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN4CopyC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !26 // CHECK:STDOUT: ret void, !dbg !26 @@ -595,7 +595,7 @@ fn Four() { // CHECK:STDOUT: !19 = !{!20, !20, i64 0} // CHECK:STDOUT: !20 = !{!"p1 _ZTS4Copy", !21, i64 0} // CHECK:STDOUT: !21 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.83073f2d17ed2f9e.Core:Copy.Cpp", scope: null, file: !23, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !24) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.0459c72f2d146eb1.Core:Copy.Cpp", scope: null, file: !23, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !24) // CHECK:STDOUT: !23 = !DIFile(filename: "./copy.h", directory: "") // CHECK:STDOUT: !24 = !{!25} // CHECK:STDOUT: !25 = !DILocalVariable(arg: 1, scope: !22, type: !14) diff --git a/toolchain/lower/testdata/interop/cpp/operators.carbon b/toolchain/lower/testdata/interop/cpp/operators.carbon index 108f6f1a949a..b41658359843 100644 --- a/toolchain/lower/testdata/interop/cpp/operators.carbon +++ b/toolchain/lower/testdata/interop/cpp/operators.carbon @@ -88,7 +88,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCheckEqWith.Main.8514cfa07ba3e7b7(ptr %x, ptr %y), !dbg !18 +// CHECK:STDOUT: call void @_CCheckEqWith.Main.04aa760156d52229(ptr %x, ptr %y), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -145,7 +145,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CEqual:thunk:EqWith.f46538683c1a9318.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { +// CHECK:STDOUT: define i1 @"_CEqual:thunk:EqWith.179c7169d26a9459.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !34 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !34 @@ -155,7 +155,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CNotEqual:thunk:EqWith.f46538683c1a9318.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { +// CHECK:STDOUT: define i1 @"_CNotEqual:thunk:EqWith.179c7169d26a9459.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !39 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !39 @@ -165,10 +165,10 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCheckEqWith.Main.8514cfa07ba3e7b7(ptr %x, ptr %y) #0 !dbg !40 { +// CHECK:STDOUT: define linkonce_odr void @_CCheckEqWith.Main.04aa760156d52229(ptr %x, ptr %y) #0 !dbg !40 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.f46538683c1a9318.Core:Cpp"(ptr %x, ptr %y), !dbg !44 -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call = call i1 @"_CNotEqual:thunk:EqWith.f46538683c1a9318.Core:Cpp"(ptr %x, ptr %y), !dbg !45 +// CHECK:STDOUT: %EqWith.WithSelf.Equal.call = call i1 @"_CEqual:thunk:EqWith.179c7169d26a9459.Core:Cpp"(ptr %x, ptr %y), !dbg !44 +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.call = call i1 @"_CNotEqual:thunk:EqWith.179c7169d26a9459.Core:Cpp"(ptr %x, ptr %y), !dbg !45 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -259,19 +259,19 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: !25 = !{i64 0, i64 4, !7} // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"bool", !9, i64 0} -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.f46538683c1a9318.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Equal", linkageName: "_CEqual:thunk:EqWith.179c7169d26a9459.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{!14, !14, !14} // CHECK:STDOUT: !31 = !{!32, !33} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !14) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !28, type: !14) // CHECK:STDOUT: !34 = !DILocation(line: 8, column: 15, scope: !28) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.f46538683c1a9318.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "NotEqual", linkageName: "_CNotEqual:thunk:EqWith.179c7169d26a9459.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37, !38} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 2, scope: !35, type: !14) // CHECK:STDOUT: !39 = !DILocation(line: 12, column: 15, scope: !35) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "CheckEqWith", linkageName: "_CCheckEqWith.Main.8514cfa07ba3e7b7", scope: null, file: !6, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "CheckEqWith", linkageName: "_CCheckEqWith.Main.04aa760156d52229", scope: null, file: !6, line: 18, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42, !43} // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !14) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 2, scope: !40, type: !14) @@ -298,7 +298,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CDriver.Main(ptr %x, ptr %y) #0 !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CCheckOrderedWith.Main.cf2c934aa0200133(ptr %x, ptr %y), !dbg !18 +// CHECK:STDOUT: call void @_CCheckOrderedWith.Main.9c69d70a853113d6(ptr %x, ptr %y), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -407,7 +407,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CLess:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { +// CHECK:STDOUT: define i1 @"_CLess:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !34 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !34 @@ -417,7 +417,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CLessOrEquivalent:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { +// CHECK:STDOUT: define i1 @"_CLessOrEquivalent:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !39 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !39 @@ -427,7 +427,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CGreater:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !40 { +// CHECK:STDOUT: define i1 @"_CGreater:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !44 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !44 @@ -437,7 +437,7 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !45 { +// CHECK:STDOUT: define i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %self, ptr %other) #2 !dbg !45 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.3.temp = alloca i1, align 1, !dbg !49 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.3.temp), !dbg !49 @@ -447,12 +447,12 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CCheckOrderedWith.Main.cf2c934aa0200133(ptr %x, ptr %y) #0 !dbg !50 { +// CHECK:STDOUT: define linkonce_odr void @_CCheckOrderedWith.Main.9c69d70a853113d6(ptr %x, ptr %y) #0 !dbg !50 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.call = call i1 @"_CLess:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %x, ptr %y), !dbg !54 -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call = call i1 @"_CGreater:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %x, ptr %y), !dbg !55 -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call = call i1 @"_CLessOrEquivalent:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %x, ptr %y), !dbg !56 -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call = call i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp"(ptr %x, ptr %y), !dbg !57 +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.call = call i1 @"_CLess:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %x, ptr %y), !dbg !54 +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.call = call i1 @"_CGreater:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %x, ptr %y), !dbg !55 +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.call = call i1 @"_CLessOrEquivalent:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %x, ptr %y), !dbg !56 +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.call = call i1 @"_CGreaterOrEquivalent:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp"(ptr %x, ptr %y), !dbg !57 // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -586,29 +586,29 @@ fn Driver(x: Cpp.A, y: Cpp.A) { // CHECK:STDOUT: !25 = !{i64 0, i64 4, !7} // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"bool", !9, i64 0} -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Less", linkageName: "_CLess:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Less", linkageName: "_CLess:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp", scope: null, file: !6, line: 8, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{!14, !14, !14} // CHECK:STDOUT: !31 = !{!32, !33} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !28, type: !14) // CHECK:STDOUT: !33 = !DILocalVariable(arg: 2, scope: !28, type: !14) // CHECK:STDOUT: !34 = !DILocation(line: 8, column: 15, scope: !28) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "LessOrEquivalent", linkageName: "_CLessOrEquivalent:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp", scope: null, file: !6, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "LessOrEquivalent", linkageName: "_CLessOrEquivalent:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp", scope: null, file: !6, line: 16, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37, !38} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) // CHECK:STDOUT: !38 = !DILocalVariable(arg: 2, scope: !35, type: !14) // CHECK:STDOUT: !39 = !DILocation(line: 16, column: 15, scope: !35) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Greater", linkageName: "_CGreater:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Greater", linkageName: "_CGreater:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp", scope: null, file: !6, line: 12, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !41) // CHECK:STDOUT: !41 = !{!42, !43} // CHECK:STDOUT: !42 = !DILocalVariable(arg: 1, scope: !40, type: !14) // CHECK:STDOUT: !43 = !DILocalVariable(arg: 2, scope: !40, type: !14) // CHECK:STDOUT: !44 = !DILocation(line: 12, column: 15, scope: !40) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "GreaterOrEquivalent", linkageName: "_CGreaterOrEquivalent:thunk:OrderedWith.76d9c95e44fa79ac.Core:Cpp", scope: null, file: !6, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "GreaterOrEquivalent", linkageName: "_CGreaterOrEquivalent:thunk:OrderedWith.081cd53d46d5db04.Core:Cpp", scope: null, file: !6, line: 20, type: !29, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !46) // CHECK:STDOUT: !46 = !{!47, !48} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !45, type: !14) // CHECK:STDOUT: !48 = !DILocalVariable(arg: 2, scope: !45, type: !14) // CHECK:STDOUT: !49 = !DILocation(line: 20, column: 15, scope: !45) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "CheckOrderedWith", linkageName: "_CCheckOrderedWith.Main.cf2c934aa0200133", scope: null, file: !6, line: 26, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !51) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "CheckOrderedWith", linkageName: "_CCheckOrderedWith.Main.9c69d70a853113d6", scope: null, file: !6, line: 26, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !51) // CHECK:STDOUT: !51 = !{!52, !53} // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !50, type: !14) // CHECK:STDOUT: !53 = !DILocalVariable(arg: 2, scope: !50, type: !14) diff --git a/toolchain/lower/testdata/interop/cpp/parameters.carbon b/toolchain/lower/testdata/interop/cpp/parameters.carbon index 38a49a381458..500b891eb701 100644 --- a/toolchain/lower/testdata/interop/cpp/parameters.carbon +++ b/toolchain/lower/testdata/interop/cpp/parameters.carbon @@ -367,7 +367,7 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %x.var = alloca [12 x i8], align 1, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.e5c2acf57553d2f2"(ptr %x.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.1cc04ab0b0144e39"(ptr %x.var), !dbg !14 // CHECK:STDOUT: %.loc8_4.a = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 0, !dbg !15 // CHECK:STDOUT: store i32 1, ptr %.loc8_4.a, align 4, !dbg !15 // CHECK:STDOUT: %.loc9_4.b = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 4, !dbg !16 @@ -388,7 +388,7 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.aebeffbfb3ea6f83.Core:X.Cpp"(ptr sret([12 x i8]) %return) #2 !dbg !23 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.73a6c13427a59137.Core:X.Cpp"(ptr sret([12 x i8]) %return) #2 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1XC1Ev.carbon_thunk.(ptr %return), !dbg !28 // CHECK:STDOUT: ret void, !dbg !28 @@ -416,8 +416,8 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.e5c2acf57553d2f2"(ptr sret([12 x i8]) %return) #0 !dbg !30 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.aebeffbfb3ea6f83.Core:X.Cpp"(ptr %return), !dbg !32 +// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.1cc04ab0b0144e39"(ptr sret([12 x i8]) %return) #0 !dbg !30 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.73a6c13427a59137.Core:X.Cpp"(ptr %return), !dbg !32 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -463,14 +463,14 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: !20 = !{!21, !21, i64 0} // CHECK:STDOUT: !21 = !{!"p1 _ZTS1X", !22, i64 0} // CHECK:STDOUT: !22 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.aebeffbfb3ea6f83.Core:X.Cpp", scope: null, file: !24, line: 2, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.73a6c13427a59137.Core:X.Cpp", scope: null, file: !24, line: 2, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !24 = !DIFile(filename: "./struct.h", directory: "") // CHECK:STDOUT: !25 = !DISubroutineType(types: !26) // CHECK:STDOUT: !26 = !{!27} // CHECK:STDOUT: !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !28 = !DILocation(line: 2, column: 8, scope: !23) // CHECK:STDOUT: !29 = !{i64 0, i64 4, !7, i64 4, i64 4, !7, i64 8, i64 4, !7} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.e5c2acf57553d2f2", scope: null, file: !31, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.1cc04ab0b0144e39", scope: null, file: !31, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !31 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !32 = !DILocation(line: 9, column: 28, scope: !30) // CHECK:STDOUT: !33 = !DILocation(line: 9, column: 21, scope: !30) diff --git a/toolchain/lower/testdata/interop/cpp/pointer.carbon b/toolchain/lower/testdata/interop/cpp/pointer.carbon index 4ffd41f1869a..fa571b7fc982 100644 --- a/toolchain/lower/testdata/interop/cpp/pointer.carbon +++ b/toolchain/lower/testdata/interop/cpp/pointer.carbon @@ -218,25 +218,25 @@ fn Convert() { // CHECK:STDOUT: define void @_CPassNonnullPtr.Main(ptr %p) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc22_15.2.temp = alloca ptr, align 8, !dbg !21 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.7ca8ed081f5d7ff7"(ptr %p), !dbg !21 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.470500545f897853"(ptr %p), !dbg !21 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_15.2.temp), !dbg !21 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc22_15.2.temp, align 8, !dbg !21 // CHECK:STDOUT: %.loc22_15.4 = load ptr, ptr %.loc22_15.2.temp, align 8, !dbg !21 // CHECK:STDOUT: call void @_Z7TakePtrP1C(ptr %.loc22_15.4), !dbg !22 -// CHECK:STDOUT: call void @"_COp.357c5945ee623cad:core.Destroy.Core"(ptr %.loc22_15.2.temp), !dbg !21 +// CHECK:STDOUT: call void @"_COp.f077811596b04c1e:core.Destroy.Core"(ptr %.loc22_15.2.temp), !dbg !21 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare void @_Z7TakePtrP1C(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.35482251414d9bba:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.b8799b2262fcbb9d:core.Destroy.Core"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.357c5945ee623cad:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.f077811596b04c1e:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } @@ -260,12 +260,12 @@ fn Convert() { // CHECK:STDOUT: define void @_CPassNonnullPtrWithThunk.Main(ptr %p) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc35_24.2.temp = alloca ptr, align 8, !dbg !44 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.7ca8ed081f5d7ff7"(ptr %p), !dbg !44 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.470500545f897853"(ptr %p), !dbg !44 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc35_24.2.temp), !dbg !44 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc35_24.2.temp, align 8, !dbg !44 // CHECK:STDOUT: %.loc35_24.4 = load ptr, ptr %.loc35_24.2.temp, align 8, !dbg !44 // CHECK:STDOUT: call void @_Z16TakePtrWithThunkP1Ci.carbon_thunk._(ptr %.loc35_24.4), !dbg !45 -// CHECK:STDOUT: call void @"_COp.357c5945ee623cad:core.Destroy.Core"(ptr %.loc35_24.2.temp), !dbg !44 +// CHECK:STDOUT: call void @"_COp.f077811596b04c1e:core.Destroy.Core"(ptr %.loc35_24.2.temp), !dbg !44 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -294,8 +294,8 @@ fn Convert() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.7ca8ed081f5d7ff7"(ptr %self) #0 !dbg !53 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.ba9a17e320476215:OptionalAs.7eef99cd03a74de4.Core.63998780806c7fd2"(ptr %self), !dbg !59 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.470500545f897853"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.ba9a17e320476215:OptionalAs.7eef99cd03a74de4.Core.20b091e87e8b790e"(ptr %self), !dbg !59 // CHECK:STDOUT: ret ptr %1, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -303,25 +303,25 @@ fn Convert() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.ba9a17e320476215:OptionalAs.7eef99cd03a74de4.Core.63998780806c7fd2"(ptr %self) #0 !dbg !61 { -// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.63998780806c7fd2(ptr %self), !dbg !64 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.ba9a17e320476215:OptionalAs.7eef99cd03a74de4.Core.20b091e87e8b790e"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.20b091e87e8b790e(ptr %self), !dbg !64 // CHECK:STDOUT: ret ptr %1, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.63998780806c7fd2(ptr %value) #0 !dbg !66 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690"(ptr %value), !dbg !69 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.20b091e87e8b790e(ptr %value) #0 !dbg !66 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %value), !dbg !69 // CHECK:STDOUT: ret ptr %1, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690"(ptr %self) #0 !dbg !71 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %self) #0 !dbg !71 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !74 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !74 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !74 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !75 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !76 -// CHECK:STDOUT: call void @"_COp.35482251414d9bba:core.Destroy.Core"(ptr %1), !dbg !74 +// CHECK:STDOUT: call void @"_COp.b8799b2262fcbb9d:core.Destroy.Core"(ptr %1), !dbg !74 // CHECK:STDOUT: ret ptr %2, !dbg !77 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -330,7 +330,7 @@ fn Convert() { // CHECK:STDOUT: declare noundef ptr @_Z18ReturnPtrWithThunki(i32 noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.7ca8ed081f5d7ff7", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.470500545f897853", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -366,11 +366,11 @@ fn Convert() { // CHECK:STDOUT: !21 = !DILocation(line: 22, column: 15, scope: !18) // CHECK:STDOUT: !22 = !DILocation(line: 22, column: 3, scope: !18) // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 1, scope: !18) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.35482251414d9bba:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b8799b2262fcbb9d:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !14) // CHECK:STDOUT: !27 = !DILocation(line: 22, column: 15, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.357c5945ee623cad:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f077811596b04c1e:core.Destroy.Core", scope: null, file: !6, line: 22, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !14) // CHECK:STDOUT: !31 = !DILocation(line: 22, column: 15, scope: !28) @@ -395,7 +395,7 @@ fn Convert() { // CHECK:STDOUT: !50 = distinct !DISubprogram(name: "ReturnPtrWithThunk", linkageName: "_CReturnPtrWithThunk.Main", scope: null, file: !6, line: 38, type: !33, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !51 = !DILocation(line: 39, column: 10, scope: !50) // CHECK:STDOUT: !52 = !DILocation(line: 39, column: 3, scope: !50) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.7ca8ed081f5d7ff7", scope: null, file: !54, line: 105, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.470500545f897853", scope: null, file: !54, line: 105, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) // CHECK:STDOUT: !54 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !55 = !DISubroutineType(types: !56) // CHECK:STDOUT: !56 = !{!14, !14} @@ -403,17 +403,17 @@ fn Convert() { // CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !53, type: !14) // CHECK:STDOUT: !59 = !DILocation(line: 106, column: 12, scope: !53) // CHECK:STDOUT: !60 = !DILocation(line: 106, column: 5, scope: !53) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ba9a17e320476215:OptionalAs.7eef99cd03a74de4.Core.63998780806c7fd2", scope: null, file: !54, line: 80, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.ba9a17e320476215:OptionalAs.7eef99cd03a74de4.Core.20b091e87e8b790e", scope: null, file: !54, line: 80, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !14) // CHECK:STDOUT: !64 = !DILocation(line: 81, column: 12, scope: !61) // CHECK:STDOUT: !65 = !DILocation(line: 81, column: 5, scope: !61) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.63998780806c7fd2", scope: null, file: !54, line: 33, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !67) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.20b091e87e8b790e", scope: null, file: !54, line: 33, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !67) // CHECK:STDOUT: !67 = !{!68} // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !14) // CHECK:STDOUT: !69 = !DILocation(line: 34, column: 12, scope: !66) // CHECK:STDOUT: !70 = !DILocation(line: 34, column: 5, scope: !66) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690", scope: null, file: !54, line: 166, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !72) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2", scope: null, file: !54, line: 166, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !72) // CHECK:STDOUT: !72 = !{!73} // CHECK:STDOUT: !73 = !DILocalVariable(arg: 1, scope: !71, type: !14) // CHECK:STDOUT: !74 = !DILocation(line: 167, column: 14, scope: !71) @@ -434,13 +434,13 @@ fn Convert() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.1.temp), !dbg !14 // CHECK:STDOUT: store ptr %make.call, ptr %.loc9_21.1.temp, align 8, !dbg !14 // CHECK:STDOUT: %.loc9_21.3 = load ptr, ptr %.loc9_21.1.temp, align 8, !dbg !14 -// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.db0c0c062ccbeee2"(ptr %.loc9_21.3), !dbg !14 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.e9a39e86438b926b"(ptr %.loc9_21.3), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.5.temp), !dbg !14 // CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc9_21.5.temp, align 8, !dbg !14 // CHECK:STDOUT: %.loc9_21.7 = load ptr, ptr %.loc9_21.5.temp, align 8, !dbg !14 // CHECK:STDOUT: call void @_Z4takePK1C(ptr %.loc9_21.7), !dbg !15 -// CHECK:STDOUT: call void @"_COp.70b543b9054a214c:core.Destroy.Core"(ptr %.loc9_21.5.temp), !dbg !14 -// CHECK:STDOUT: call void @"_COp.3c4756f6f67440bc:core.Destroy.Core"(ptr %.loc9_21.1.temp), !dbg !14 +// CHECK:STDOUT: call void @"_COp.269ea07577c64bb2:core.Destroy.Core"(ptr %.loc9_21.5.temp), !dbg !14 +// CHECK:STDOUT: call void @"_COp.d665875966a4162d:core.Destroy.Core"(ptr %.loc9_21.1.temp), !dbg !14 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -449,25 +449,25 @@ fn Convert() { // CHECK:STDOUT: declare void @_Z4takePK1C(ptr noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3c6e3be6b375f0fe:core.Destroy.Core"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: define weak_odr void @"_COp.4038455b5b2635f6:core.Destroy.Core"(ptr %self) #0 !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.70b543b9054a214c:core.Destroy.Core"(ptr %self) #0 !dbg !24 { +// CHECK:STDOUT: define weak_odr void @"_COp.269ea07577c64bb2:core.Destroy.Core"(ptr %self) #0 !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.35482251414d9bba:core.Destroy.Core"(ptr %self) #0 !dbg !28 { +// CHECK:STDOUT: define weak_odr void @"_COp.b8799b2262fcbb9d:core.Destroy.Core"(ptr %self) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.3c4756f6f67440bc:core.Destroy.Core"(ptr %self) #0 !dbg !32 { +// CHECK:STDOUT: define weak_odr void @"_COp.d665875966a4162d:core.Destroy.Core"(ptr %self) #0 !dbg !32 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } @@ -476,77 +476,77 @@ fn Convert() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.db0c0c062ccbeee2"(ptr %self) #0 !dbg !36 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.5dca1548b0a7c023.Core:OptionalAs.f5e7d4305ac1f327.Core.dcb11ca5ddf1633f"(ptr %self), !dbg !42 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.e9a39e86438b926b"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.5dca1548b0a7c023.Core:OptionalAs.f5e7d4305ac1f327.Core.c757ec210d8fc687"(ptr %self), !dbg !42 // CHECK:STDOUT: ret ptr %1, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.5dca1548b0a7c023.Core:OptionalAs.f5e7d4305ac1f327.Core.dcb11ca5ddf1633f"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.5dca1548b0a7c023.Core:OptionalAs.f5e7d4305ac1f327.Core.c757ec210d8fc687"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !47 // CHECK:STDOUT: %temp1 = alloca ptr, align 8, !dbg !47 -// CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.2b3974338accec9e(ptr %self), !dbg !48 +// CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.e8736bdbdea23abc(ptr %self), !dbg !48 // CHECK:STDOUT: br i1 %1, label %2, label %7, !dbg !49 // CHECK:STDOUT: // CHECK:STDOUT: 2: ; preds = %0 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !47 -// CHECK:STDOUT: %3 = call ptr @_CGet.Optional.Core.2b3974338accec9e(ptr %self), !dbg !47 +// CHECK:STDOUT: %3 = call ptr @_CGet.Optional.Core.e8736bdbdea23abc(ptr %self), !dbg !47 // CHECK:STDOUT: store ptr %3, ptr %temp, align 8, !dbg !47 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp1), !dbg !47 // CHECK:STDOUT: %4 = load ptr, ptr %temp, align 8, !dbg !47 // CHECK:STDOUT: store ptr %4, ptr %temp1, align 8, !dbg !47 // CHECK:STDOUT: %5 = load ptr, ptr %temp1, align 8, !dbg !47 -// CHECK:STDOUT: %6 = call ptr @_CSome.Optional.Core.428663f04d56e65c(ptr %5), !dbg !50 +// CHECK:STDOUT: %6 = call ptr @_CSome.Optional.Core.cc4dde828948b100(ptr %5), !dbg !50 // CHECK:STDOUT: ret ptr %6, !dbg !51 // CHECK:STDOUT: // CHECK:STDOUT: 7: ; preds = %0 -// CHECK:STDOUT: %8 = call ptr @_CNone.Optional.Core.428663f04d56e65c(), !dbg !52 +// CHECK:STDOUT: %8 = call ptr @_CNone.Optional.Core.cc4dde828948b100(), !dbg !52 // CHECK:STDOUT: ret ptr %8, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.2b3974338accec9e(ptr %self) #0 !dbg !54 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690"(ptr %self), !dbg !57 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.e8736bdbdea23abc(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %self), !dbg !57 // CHECK:STDOUT: ret i1 %1, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.2b3974338accec9e(ptr %self) #0 !dbg !59 { -// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690"(ptr %self), !dbg !62 +// CHECK:STDOUT: define linkonce_odr ptr @_CGet.Optional.Core.e8736bdbdea23abc(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: %1 = call ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %self), !dbg !62 // CHECK:STDOUT: ret ptr %1, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.428663f04d56e65c(ptr %value) #0 !dbg !64 { -// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.11944b9073985c4a"(ptr %value), !dbg !67 +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.cc4dde828948b100(ptr %value) #0 !dbg !64 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.0e66b20f8d4f0663"(ptr %value), !dbg !67 // CHECK:STDOUT: ret ptr %1, !dbg !68 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.428663f04d56e65c() #0 !dbg !69 { +// CHECK:STDOUT: define linkonce_odr ptr @_CNone.Optional.Core.cc4dde828948b100() #0 !dbg !69 { // CHECK:STDOUT: ret ptr null, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690"(ptr %value) #0 !dbg !73 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %value) #0 !dbg !73 { // CHECK:STDOUT: %1 = icmp eq ptr %value, null, !dbg !76 // CHECK:STDOUT: %2 = xor i1 %1, true, !dbg !77 // CHECK:STDOUT: ret i1 %2, !dbg !78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690"(ptr %value) #0 !dbg !79 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CGet.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2"(ptr %value) #0 !dbg !79 { // CHECK:STDOUT: ret ptr %value, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.11944b9073985c4a"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.e8f8f92d3d08d149:OptionalStorage.Core.0e66b20f8d4f0663"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !86 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !86 // CHECK:STDOUT: store ptr poison, ptr %1, align 8, !dbg !86 // CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !87 // CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !88 -// CHECK:STDOUT: call void @"_COp.3c6e3be6b375f0fe:core.Destroy.Core"(ptr %1), !dbg !86 +// CHECK:STDOUT: call void @"_COp.4038455b5b2635f6:core.Destroy.Core"(ptr %1), !dbg !86 // CHECK:STDOUT: ret ptr %2, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -578,26 +578,26 @@ fn Convert() { // CHECK:STDOUT: !14 = !DILocation(line: 9, column: 12, scope: !11) // CHECK:STDOUT: !15 = !DILocation(line: 9, column: 3, scope: !11) // CHECK:STDOUT: !16 = !DILocation(line: 8, column: 1, scope: !11) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3c6e3be6b375f0fe:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Op", linkageName: "_COp.4038455b5b2635f6:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !21) // CHECK:STDOUT: !18 = !DISubroutineType(types: !19) // CHECK:STDOUT: !19 = !{null, !20} // CHECK:STDOUT: !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !21 = !{!22} // CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !17, type: !20) // CHECK:STDOUT: !23 = !DILocation(line: 9, column: 12, scope: !17) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.70b543b9054a214c:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp.269ea07577c64bb2:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !25) // CHECK:STDOUT: !25 = !{!26} // CHECK:STDOUT: !26 = !DILocalVariable(arg: 1, scope: !24, type: !20) // CHECK:STDOUT: !27 = !DILocation(line: 9, column: 12, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.35482251414d9bba:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b8799b2262fcbb9d:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !29) // CHECK:STDOUT: !29 = !{!30} // CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !28, type: !20) // CHECK:STDOUT: !31 = !DILocation(line: 9, column: 12, scope: !28) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3c4756f6f67440bc:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d665875966a4162d:core.Destroy.Core", scope: null, file: !6, line: 9, type: !18, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !33) // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !20) // CHECK:STDOUT: !35 = !DILocation(line: 9, column: 12, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.db0c0c062ccbeee2", scope: null, file: !37, line: 105, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.6391a65a70757668:ImplicitAs.116c0b3f4fb552e2.Core.e9a39e86438b926b", scope: null, file: !37, line: 105, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) // CHECK:STDOUT: !37 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !38 = !DISubroutineType(types: !39) // CHECK:STDOUT: !39 = !{!20, !20} @@ -605,7 +605,7 @@ fn Convert() { // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 106, column: 12, scope: !36) // CHECK:STDOUT: !43 = !DILocation(line: 106, column: 5, scope: !36) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.5dca1548b0a7c023.Core:OptionalAs.f5e7d4305ac1f327.Core.dcb11ca5ddf1633f", scope: null, file: !37, line: 95, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.5dca1548b0a7c023.Core:OptionalAs.f5e7d4305ac1f327.Core.c757ec210d8fc687", scope: null, file: !37, line: 95, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) // CHECK:STDOUT: !45 = !{!46} // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !20) // CHECK:STDOUT: !47 = !DILocation(line: 97, column: 31, scope: !44) @@ -615,36 +615,36 @@ fn Convert() { // CHECK:STDOUT: !51 = !DILocation(line: 97, column: 7, scope: !44) // CHECK:STDOUT: !52 = !DILocation(line: 99, column: 12, scope: !44) // CHECK:STDOUT: !53 = !DILocation(line: 99, column: 5, scope: !44) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.2b3974338accec9e", scope: null, file: !37, line: 36, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.e8736bdbdea23abc", scope: null, file: !37, line: 36, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) // CHECK:STDOUT: !55 = !{!56} // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !54, type: !20) // CHECK:STDOUT: !57 = !DILocation(line: 37, column: 12, scope: !54) // CHECK:STDOUT: !58 = !DILocation(line: 37, column: 5, scope: !54) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.2b3974338accec9e", scope: null, file: !37, line: 39, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.e8736bdbdea23abc", scope: null, file: !37, line: 39, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !60) // CHECK:STDOUT: !60 = !{!61} // CHECK:STDOUT: !61 = !DILocalVariable(arg: 1, scope: !59, type: !20) // CHECK:STDOUT: !62 = !DILocation(line: 40, column: 12, scope: !59) // CHECK:STDOUT: !63 = !DILocation(line: 40, column: 5, scope: !59) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.428663f04d56e65c", scope: null, file: !37, line: 33, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.cc4dde828948b100", scope: null, file: !37, line: 33, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !65) // CHECK:STDOUT: !65 = !{!66} // CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !20) // CHECK:STDOUT: !67 = !DILocation(line: 34, column: 12, scope: !64) // CHECK:STDOUT: !68 = !DILocation(line: 34, column: 5, scope: !64) -// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.428663f04d56e65c", scope: null, file: !37, line: 30, type: !70, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !69 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.cc4dde828948b100", scope: null, file: !37, line: 30, type: !70, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !70 = !DISubroutineType(types: !71) // CHECK:STDOUT: !71 = !{!20} // CHECK:STDOUT: !72 = !DILocation(line: 31, column: 5, scope: !69) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690", scope: null, file: !37, line: 172, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !74) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2", scope: null, file: !37, line: 172, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !74) // CHECK:STDOUT: !74 = !{!75} // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !20) // CHECK:STDOUT: !76 = !DILocation(line: 173, column: 16, scope: !73) // CHECK:STDOUT: !77 = !DILocation(line: 173, column: 12, scope: !73) // CHECK:STDOUT: !78 = !DILocation(line: 173, column: 5, scope: !73) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.908e8f868f225690", scope: null, file: !37, line: 175, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.e8f8f92d3d08d149:OptionalStorage.Core.b88531aa40419bf2", scope: null, file: !37, line: 175, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !80) // CHECK:STDOUT: !80 = !{!81} // CHECK:STDOUT: !81 = !DILocalVariable(arg: 1, scope: !79, type: !20) // CHECK:STDOUT: !82 = !DILocation(line: 176, column: 5, scope: !79) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.11944b9073985c4a", scope: null, file: !37, line: 166, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.e8f8f92d3d08d149:OptionalStorage.Core.0e66b20f8d4f0663", scope: null, file: !37, line: 166, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) // CHECK:STDOUT: !84 = !{!85} // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !20) // CHECK:STDOUT: !86 = !DILocation(line: 167, column: 14, scope: !83) diff --git a/toolchain/lower/testdata/interop/cpp/reference.carbon b/toolchain/lower/testdata/interop/cpp/reference.carbon index dac8b375ce9a..678c27d3edf9 100644 --- a/toolchain/lower/testdata/interop/cpp/reference.carbon +++ b/toolchain/lower/testdata/interop/cpp/reference.carbon @@ -144,7 +144,7 @@ fn GetRefs() { // CHECK:STDOUT: %_.var.2 = alloca i32, align 4, !dbg !17 // CHECK:STDOUT: %.loc25_23.2.temp = alloca i32, align 4, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c"(ptr %c.var), !dbg !14 // CHECK:STDOUT: call void @_Z8TakeCRefR1C(ptr %c.var), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.1), !dbg !15 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %_.var.1, ptr align 1 @C.val.loc19_20, i64 0, i1 false), !dbg !15 @@ -176,7 +176,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.08e786f435a99766.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !33 // CHECK:STDOUT: ret void, !dbg !33 @@ -236,8 +236,8 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #5 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca"(ptr sret({}) %return) #0 !dbg !43 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp"(ptr %return), !dbg !45 +// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c"(ptr sret({}) %return) #0 !dbg !43 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.08e786f435a99766.Core:C.Cpp"(ptr %return), !dbg !45 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -296,7 +296,7 @@ fn GetRefs() { // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"p1 _ZTS1C", !28, i64 0} // CHECK:STDOUT: !28 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.08e786f435a99766.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !30 = !DISubroutineType(types: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -310,7 +310,7 @@ fn GetRefs() { // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !39) // CHECK:STDOUT: !42 = !DILocation(line: 25, column: 23, scope: !36) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca", scope: null, file: !44, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c", scope: null, file: !44, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !44 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !45 = !DILocation(line: 9, column: 28, scope: !43) // CHECK:STDOUT: !46 = !DILocation(line: 9, column: 21, scope: !43) @@ -333,7 +333,7 @@ fn GetRefs() { // CHECK:STDOUT: %_.var = alloca i32, align 4, !dbg !17 // CHECK:STDOUT: %.loc26_23.2.temp = alloca i32, align 4, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c"(ptr %c.var), !dbg !14 // CHECK:STDOUT: call void @_Z8TakeCRefR1C10ForceThunk.carbon_thunk.r(ptr %c.var), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_18.2.temp), !dbg !15 // CHECK:STDOUT: call void @_Z9TakeCRRefRK1C10ForceThunk.carbon_thunk._(ptr @C.val.loc20_20.3), !dbg !20 @@ -364,7 +364,7 @@ fn GetRefs() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { +// CHECK:STDOUT: define void @"_COp:thunk:Default.08e786f435a99766.Core:C.Cpp"(ptr sret({}) %return) #2 !dbg !29 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN1CC1Ev.carbon_thunk.(ptr %return), !dbg !33 // CHECK:STDOUT: ret void, !dbg !33 @@ -446,8 +446,8 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca"(ptr sret({}) %return) #0 !dbg !45 { -// CHECK:STDOUT: call void @"_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp"(ptr %return), !dbg !47 +// CHECK:STDOUT: define linkonce_odr void @"_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c"(ptr sret({}) %return) #0 !dbg !45 { +// CHECK:STDOUT: call void @"_COp:thunk:Default.08e786f435a99766.Core:C.Cpp"(ptr %return), !dbg !47 // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -507,7 +507,7 @@ fn GetRefs() { // CHECK:STDOUT: !26 = !{!27, !27, i64 0} // CHECK:STDOUT: !27 = !{!"p1 _ZTS1C", !28, i64 0} // CHECK:STDOUT: !28 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.5648bcc2d6c775b7.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !29 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Default.08e786f435a99766.Core:C.Cpp", scope: null, file: !6, line: 5, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !30 = !DISubroutineType(types: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -523,7 +523,7 @@ fn GetRefs() { // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !38, type: !41) // CHECK:STDOUT: !44 = !DILocation(line: 26, column: 23, scope: !38) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.2603c91dd66a1dca", scope: null, file: !46, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.cbe5dd53b28eb3d1:DefaultOrUnformed.Core.4fdc745d4b6d0e3c", scope: null, file: !46, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !46 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !47 = !DILocation(line: 9, column: 28, scope: !45) // CHECK:STDOUT: !48 = !DILocation(line: 9, column: 21, scope: !45) diff --git a/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon b/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon index 3498274fadd4..6dd456ac36e1 100644 --- a/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon +++ b/toolchain/lower/testdata/interop/cpp/std_initializer_list.carbon @@ -232,7 +232,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %initializer_list.initializer_list.call.array.end = getelementptr inbounds [3 x [1 x i8]], ptr %.loc23_69.17.temp, i32 1, !dbg !46 // CHECK:STDOUT: store ptr %initializer_list.initializer_list.call.array.end, ptr %initializer_list.initializer_list.call.init_list.end, align 8, !dbg !46 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !48 -// CHECK:STDOUT: call void @"_COp.9ec0fd7c1ee9da2c:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !47 +// CHECK:STDOUT: call void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !47 // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -256,7 +256,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.9ec0fd7c1ee9da2c:core.Destroy.Core"(ptr %self) #0 !dbg !52 { +// CHECK:STDOUT: define weak_odr void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %self) #0 !dbg !52 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !55 // CHECK:STDOUT: } @@ -355,7 +355,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !49 = !DILocation(line: 22, column: 1, scope: !45) // CHECK:STDOUT: !50 = !{!51, !51, i64 0} // CHECK:STDOUT: !51 = !{!"p1 _ZTS15nontrivial_dtor", !39, i64 0} -// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9ec0fd7c1ee9da2c:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) +// CHECK:STDOUT: !52 = distinct !DISubprogram(name: "Op", linkageName: "_COp.87f8b42e7b26a00a:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !53) // CHECK:STDOUT: !53 = !{!54} // CHECK:STDOUT: !54 = !DILocalVariable(arg: 1, scope: !52, type: !28) // CHECK:STDOUT: !55 = !DILocation(line: 23, column: 58, scope: !52) @@ -479,7 +479,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: %initializer_list.initializer_list.call.init_list.size = getelementptr inbounds nuw [16 x i8], ptr %_.var, i32 0, i32 8, !dbg !48 // CHECK:STDOUT: store i64 3, ptr %initializer_list.initializer_list.call.init_list.size, align 8, !dbg !48 // CHECK:STDOUT: call void @_CWithinLifetime.Main(), !dbg !50 -// CHECK:STDOUT: call void @"_COp.9ec0fd7c1ee9da2c:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !49 +// CHECK:STDOUT: call void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %.loc23_69.17.temp), !dbg !49 // CHECK:STDOUT: ret void, !dbg !51 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -503,7 +503,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.9ec0fd7c1ee9da2c:core.Destroy.Core"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: define weak_odr void @"_COp.87f8b42e7b26a00a:core.Destroy.Core"(ptr %self) #0 !dbg !54 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } @@ -604,7 +604,7 @@ fn InitNontrivialDtor() { // CHECK:STDOUT: !51 = !DILocation(line: 22, column: 1, scope: !47) // CHECK:STDOUT: !52 = !{!53, !53, i64 0} // CHECK:STDOUT: !53 = !{!"p1 _ZTS15nontrivial_dtor", !39, i64 0} -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9ec0fd7c1ee9da2c:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Op", linkageName: "_COp.87f8b42e7b26a00a:core.Destroy.Core", scope: null, file: !6, line: 23, type: !26, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !55) // CHECK:STDOUT: !55 = !{!56} // CHECK:STDOUT: !56 = !DILocalVariable(arg: 1, scope: !54, type: !28) // CHECK:STDOUT: !57 = !DILocation(line: 23, column: 58, scope: !54) diff --git a/toolchain/lower/testdata/interop/cpp/thunks.carbon b/toolchain/lower/testdata/interop/cpp/thunks.carbon index 7e91d9e55524..daedf64d17a8 100644 --- a/toolchain/lower/testdata/interop/cpp/thunks.carbon +++ b/toolchain/lower/testdata/interop/cpp/thunks.carbon @@ -31,6 +31,72 @@ fn Call(n: Cpp.NeedThunk) { var unused n2: Cpp.NeedThunk = n; } +// --- box.h + +struct A {}; +struct B {}; + +template +struct Box { + Box(); + Box(const Box&); + ~Box(); + T value; +}; + +// --- thunks_for_distinct_specializations.carbon + +library "[[@TEST_NAME]]"; + +import Cpp library "box.h"; + +// Distinct specializations of the same class template share a Carbon name and +// parent scope, so their `Copy` (and `Destroy`) thunks need distinct mangled +// names; otherwise they would collide into a single LLVM function. The +// distinguishing key is the Clang mangled type name recorded when importing a +// C++ class. +fn Call(a: Cpp.Box(Cpp.A), b: Cpp.Box(Cpp.B)) { + var unused a2: Cpp.Box(Cpp.A) = a; + var unused b2: Cpp.Box(Cpp.B) = b; +} + +// --- anonymous_namespace_collision.h + +namespace { +// A type in the anonymous namespace. We expose it under an alias because, once +// the global `Collide` below is declared, the unqualified name `Collide` +// refers to that global type. +struct Collide { + Collide() {} + Collide(const Collide&) {} + ~Collide() {} +}; +using AnonCollide = Collide; +} // namespace + +// A *different* type with the same name in the global namespace. +struct Collide { + Collide() {} + Collide(const Collide&) {} + ~Collide() {} +}; + +// --- thunks_for_anonymous_namespace_collision.carbon + +library "[[@TEST_NAME]]"; + +import Cpp library "anonymous_namespace_collision.h"; + +// `Cpp.Collide` is the global type and `Cpp.AnonCollide` aliases a distinct +// type of the same name in the anonymous namespace. Carbon sees both as +// `Collide` with the same parent scope, so their `Copy` thunks would collide +// into a single LLVM function without the Clang mangled type name (which +// encodes the anonymous namespace) in the fingerprint. +fn Call(a: Cpp.Collide, b: Cpp.AnonCollide) { + var unused a2: Cpp.Collide = a; + var unused b2: Cpp.AnonCollide = b; +} + // CHECK:STDOUT: ; ModuleID = 'multiple_thunks_in_one_class.carbon' // CHECK:STDOUT: source_filename = "multiple_thunks_in_one_class.carbon" // CHECK:STDOUT: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" @@ -61,14 +127,14 @@ fn Call(n: Cpp.NeedThunk) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Copy.13bba1feb543d868.Core:NeedThunk.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !23 { +// CHECK:STDOUT: define void @"_COp:thunk:Copy.4f2f8687b12a420f.Core:NeedThunk.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !23 { // CHECK:STDOUT: entry: // CHECK:STDOUT: call void @_ZN9NeedThunkC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !29 // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define void @"_COp:thunk:Destroy.57797f2517cd78d7.Core:NeedThunk.Cpp"(ptr %self) #2 !dbg !30 { +// CHECK:STDOUT: define void @"_COp:thunk:Destroy.54656f03fa721bae.Core:NeedThunk.Cpp"(ptr %self) #2 !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -114,14 +180,305 @@ fn Call(n: Cpp.NeedThunk) { // CHECK:STDOUT: !20 = !{!21, !21, i64 0} // CHECK:STDOUT: !21 = !{!"p1 _ZTS9NeedThunk", !22, i64 0} // CHECK:STDOUT: !22 = !{!"any pointer", !9, i64 0} -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.13bba1feb543d868.Core:NeedThunk.Cpp", scope: null, file: !24, line: 4, type: !25, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !27) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.4f2f8687b12a420f.Core:NeedThunk.Cpp", scope: null, file: !24, line: 4, type: !25, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !27) // CHECK:STDOUT: !24 = !DIFile(filename: "./need_thunk.h", directory: "") // CHECK:STDOUT: !25 = !DISubroutineType(types: !26) // CHECK:STDOUT: !26 = !{!14, !14} // CHECK:STDOUT: !27 = !{!28} // CHECK:STDOUT: !28 = !DILocalVariable(arg: 1, scope: !23, type: !14) // CHECK:STDOUT: !29 = !DILocation(line: 4, column: 3, scope: !23) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.57797f2517cd78d7.Core:NeedThunk.Cpp", scope: null, file: !24, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Destroy.54656f03fa721bae.Core:NeedThunk.Cpp", scope: null, file: !24, line: 5, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !31) // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !14) // CHECK:STDOUT: !33 = !DILocation(line: 5, column: 3, scope: !30) +// CHECK:STDOUT: ; ModuleID = 'thunks_for_distinct_specializations.carbon' +// CHECK:STDOUT: source_filename = "thunks_for_distinct_specializations.carbon" +// CHECK:STDOUT: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" +// CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CCall.Main(ptr %a, ptr %b) #0 !dbg !11 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %a2.var = alloca [1 x i8], align 1, !dbg !18 +// CHECK:STDOUT: %.loc12_35.1.temp = alloca [1 x i8], align 1, !dbg !19 +// CHECK:STDOUT: %b2.var = alloca [1 x i8], align 1, !dbg !20 +// CHECK:STDOUT: %.loc13_35.1.temp = alloca [1 x i8], align 1, !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a2.var), !dbg !18 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_35.1.temp), !dbg !19 +// CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr %a, ptr %a2.var), !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b2.var), !dbg !20 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_35.1.temp), !dbg !21 +// CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr %b, ptr %b2.var), !dbg !21 +// CHECK:STDOUT: call void @_ZN3BoxI1BED1Ev(ptr %b2.var), !dbg !20 +// CHECK:STDOUT: call void @_ZN3BoxI1AED1Ev(ptr %a2.var), !dbg !18 +// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable +// CHECK:STDOUT: define internal void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr noundef %0, ptr noundef %return) #1 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.addr = alloca ptr, align 8 +// CHECK:STDOUT: %return.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !23 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !23 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !23 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !23 +// CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) +// CHECK:STDOUT: ret void +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind +// CHECK:STDOUT: define void @"_COp:thunk:Copy.e1f26893fc85f4d1.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !26 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_ZN3BoxI1AEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable +// CHECK:STDOUT: define internal void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr noundef %0, ptr noundef %return) #1 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.addr = alloca ptr, align 8 +// CHECK:STDOUT: %return.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !33 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !33 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !33 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !33 +// CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) +// CHECK:STDOUT: ret void +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind +// CHECK:STDOUT: define void @"_COp:thunk:Copy.0fba185d40847304.Core:Box.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !35 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_ZN3BoxI1BEC1ERKS1_.carbon_thunk._(ptr %self, ptr %return), !dbg !38 +// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: declare void @_ZN3BoxI1BED1Ev(ptr noundef nonnull align 1 dead_on_return(1) dereferenceable(1)) unnamed_addr #3 +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: declare void @_ZN3BoxI1AED1Ev(ptr noundef nonnull align 1 dead_on_return(1) dereferenceable(1)) unnamed_addr #3 +// 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)) #4 +// CHECK:STDOUT: +// CHECK:STDOUT: declare void @_ZN3BoxI1AEC1ERKS1_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 +// CHECK:STDOUT: +// CHECK:STDOUT: declare void @_ZN3BoxI1BEC1ERKS1_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 +// CHECK:STDOUT: +// CHECK:STDOUT: ; uselistorder directives +// CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } +// CHECK:STDOUT: +// CHECK:STDOUT: attributes #0 = { nounwind } +// CHECK:STDOUT: attributes #1 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +// CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } +// CHECK:STDOUT: attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +// CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +// CHECK:STDOUT: attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +// CHECK:STDOUT: +// CHECK:STDOUT: !llvm.module.flags = !{!0, !1, !2, !3, !4} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: +// CHECK:STDOUT: !0 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !6, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIFile(filename: "thunks_for_distinct_specializations.carbon", directory: "") +// CHECK:STDOUT: !7 = !{!8, !8, i64 0} +// CHECK:STDOUT: !8 = !{!"int", !9, i64 0} +// CHECK:STDOUT: !9 = !{!"omnipotent char", !10, i64 0} +// CHECK:STDOUT: !10 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !6, line: 11, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !15) +// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !13 = !{null, !14, !14} +// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !15 = !{!16, !17} +// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) +// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !11, type: !14) +// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 3, scope: !11) +// CHECK:STDOUT: !19 = !DILocation(line: 12, column: 35, scope: !11) +// CHECK:STDOUT: !20 = !DILocation(line: 13, column: 3, scope: !11) +// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 35, scope: !11) +// CHECK:STDOUT: !22 = !DILocation(line: 11, column: 1, scope: !11) +// CHECK:STDOUT: !23 = !{!24, !24, i64 0} +// CHECK:STDOUT: !24 = !{!"p1 _ZTS3BoxI1AE", !25, i64 0} +// CHECK:STDOUT: !25 = !{!"any pointer", !9, i64 0} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.e1f26893fc85f4d1.Core:Box.Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !27 = !DIFile(filename: "./box.h", directory: "") +// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !29 = !{!14, !14} +// CHECK:STDOUT: !30 = !{!31} +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !14) +// CHECK:STDOUT: !32 = !DILocation(line: 8, column: 3, scope: !26) +// CHECK:STDOUT: !33 = !{!34, !34, i64 0} +// CHECK:STDOUT: !34 = !{!"p1 _ZTS3BoxI1BE", !25, i64 0} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.0fba185d40847304.Core:Box.Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !36 = !{!37} +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) +// CHECK:STDOUT: !38 = !DILocation(line: 8, column: 3, scope: !35) +// CHECK:STDOUT: ; ModuleID = 'thunks_for_anonymous_namespace_collision.carbon' +// CHECK:STDOUT: source_filename = "thunks_for_anonymous_namespace_collision.carbon" +// CHECK:STDOUT: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" +// CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" +// CHECK:STDOUT: +// CHECK:STDOUT: $_ZN7CollideD2Ev = comdat any +// CHECK:STDOUT: +// CHECK:STDOUT: $_ZN7CollideC2ERKS_ = comdat any +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CCall.Main(ptr %a, ptr %b) #0 !dbg !11 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %a2.var = alloca [1 x i8], align 1, !dbg !18 +// CHECK:STDOUT: %.loc12_32.1.temp = alloca [1 x i8], align 1, !dbg !19 +// CHECK:STDOUT: %b2.var = alloca [1 x i8], align 1, !dbg !20 +// CHECK:STDOUT: %.loc13_36.1.temp = alloca [1 x i8], align 1, !dbg !21 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %a2.var), !dbg !18 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_32.1.temp), !dbg !19 +// CHECK:STDOUT: call void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr %a, ptr %a2.var), !dbg !19 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %b2.var), !dbg !20 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc13_36.1.temp), !dbg !21 +// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr %b, ptr %b2.var), !dbg !21 +// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideD2Ev(ptr %b2.var), !dbg !20 +// CHECK:STDOUT: call void @_ZN7CollideD2Ev(ptr %a2.var), !dbg !18 +// CHECK:STDOUT: ret void, !dbg !22 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable +// CHECK:STDOUT: define internal void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr noundef %0, ptr noundef %return) #1 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.addr = alloca ptr, align 8 +// CHECK:STDOUT: %return.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !23 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !23 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !23 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !23 +// CHECK:STDOUT: call void @_ZN7CollideC2ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) +// CHECK:STDOUT: ret void +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind +// CHECK:STDOUT: define void @"_COp:thunk:Copy.289c71441a159c5c.Core:Collide.Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !26 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_ZN7CollideC1ERKS_.carbon_thunk._(ptr %self, ptr %return), !dbg !32 +// CHECK:STDOUT: ret void, !dbg !32 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline mustprogress uwtable +// CHECK:STDOUT: define internal void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr noundef %0, ptr noundef %return) #1 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.addr = alloca ptr, align 8 +// CHECK:STDOUT: %return.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !33 +// CHECK:STDOUT: store ptr %return, ptr %return.addr, align 8, !tbaa !33 +// CHECK:STDOUT: %1 = load ptr, ptr %return.addr, align 8, !tbaa !33 +// CHECK:STDOUT: %2 = load ptr, ptr %.addr, align 8, !tbaa !33 +// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC2ERKS0_(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull align 1 dereferenceable(1) %2) +// CHECK:STDOUT: ret void +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind +// CHECK:STDOUT: define void @"_COp:thunk:Copy.4bff6a47276e2ca8.Core:Collide..Cpp"(ptr sret([1 x i8]) %return, ptr %self) #2 !dbg !35 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: call void @_ZN12_GLOBAL__N_17CollideC1ERKS0_.carbon_thunk._(ptr %self, ptr %return), !dbg !38 +// CHECK:STDOUT: ret void, !dbg !38 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable +// CHECK:STDOUT: define internal void @_ZN12_GLOBAL__N_17CollideD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #3 align 2 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %this.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !33 +// CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 +// CHECK:STDOUT: ret void +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable +// CHECK:STDOUT: define linkonce_odr dso_local void @_ZN7CollideD2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #3 comdat align 2 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %this.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !23 +// CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 +// CHECK:STDOUT: ret void +// 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)) #4 +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable +// CHECK:STDOUT: define linkonce_odr dso_local void @_ZN7CollideC2ERKS_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #3 comdat align 2 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %this.addr = alloca ptr, align 8 +// CHECK:STDOUT: %.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !23 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !23 +// CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 +// CHECK:STDOUT: ret void +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: mustprogress nounwind uwtable +// CHECK:STDOUT: define internal void @_ZN12_GLOBAL__N_17CollideC2ERKS0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #3 align 2 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %this.addr = alloca ptr, align 8 +// CHECK:STDOUT: %.addr = alloca ptr, align 8 +// CHECK:STDOUT: store ptr %this, ptr %this.addr, align 8, !tbaa !33 +// CHECK:STDOUT: store ptr %0, ptr %.addr, align 8, !tbaa !33 +// CHECK:STDOUT: %this1 = load ptr, ptr %this.addr, align 8 +// CHECK:STDOUT: ret void +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; uselistorder directives +// CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 3, 2, 1, 0 } +// CHECK:STDOUT: +// CHECK:STDOUT: attributes #0 = { nounwind } +// CHECK:STDOUT: attributes #1 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +// CHECK:STDOUT: attributes #2 = { alwaysinline nounwind } +// CHECK:STDOUT: attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +// CHECK:STDOUT: attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +// CHECK:STDOUT: +// CHECK:STDOUT: !llvm.module.flags = !{!0, !1, !2, !3, !4} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: !llvm.errno.tbaa = !{!7} +// CHECK:STDOUT: +// CHECK:STDOUT: !0 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !2 = !{i32 8, !"PIC Level", i32 2} +// CHECK:STDOUT: !3 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !4 = !{i32 7, !"uwtable", i32 2} +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !6, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIFile(filename: "thunks_for_anonymous_namespace_collision.carbon", directory: "") +// CHECK:STDOUT: !7 = !{!8, !8, i64 0} +// CHECK:STDOUT: !8 = !{!"int", !9, i64 0} +// CHECK:STDOUT: !9 = !{!"omnipotent char", !10, i64 0} +// CHECK:STDOUT: !10 = !{!"Simple C++ TBAA"} +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Call", linkageName: "_CCall.Main", scope: null, file: !6, line: 11, type: !12, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !15) +// CHECK:STDOUT: !12 = !DISubroutineType(types: !13) +// CHECK:STDOUT: !13 = !{null, !14, !14} +// CHECK:STDOUT: !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +// CHECK:STDOUT: !15 = !{!16, !17} +// CHECK:STDOUT: !16 = !DILocalVariable(arg: 1, scope: !11, type: !14) +// CHECK:STDOUT: !17 = !DILocalVariable(arg: 2, scope: !11, type: !14) +// CHECK:STDOUT: !18 = !DILocation(line: 12, column: 3, scope: !11) +// CHECK:STDOUT: !19 = !DILocation(line: 12, column: 32, scope: !11) +// CHECK:STDOUT: !20 = !DILocation(line: 13, column: 3, scope: !11) +// CHECK:STDOUT: !21 = !DILocation(line: 13, column: 36, scope: !11) +// CHECK:STDOUT: !22 = !DILocation(line: 11, column: 1, scope: !11) +// CHECK:STDOUT: !23 = !{!24, !24, i64 0} +// CHECK:STDOUT: !24 = !{!"p1 _ZTS7Collide", !25, i64 0} +// CHECK:STDOUT: !25 = !{!"any pointer", !9, i64 0} +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.289c71441a159c5c.Core:Collide.Cpp", scope: null, file: !27, line: 17, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !30) +// CHECK:STDOUT: !27 = !DIFile(filename: "./anonymous_namespace_collision.h", directory: "") +// CHECK:STDOUT: !28 = !DISubroutineType(types: !29) +// CHECK:STDOUT: !29 = !{!14, !14} +// CHECK:STDOUT: !30 = !{!31} +// CHECK:STDOUT: !31 = !DILocalVariable(arg: 1, scope: !26, type: !14) +// CHECK:STDOUT: !32 = !DILocation(line: 17, column: 3, scope: !26) +// CHECK:STDOUT: !33 = !{!34, !34, i64 0} +// CHECK:STDOUT: !34 = !{!"p1 _ZTSN12_GLOBAL__N_17CollideE", !25, i64 0} +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk:Copy.4bff6a47276e2ca8.Core:Collide..Cpp", scope: null, file: !27, line: 8, type: !28, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !36) +// CHECK:STDOUT: !36 = !{!37} +// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !14) +// CHECK:STDOUT: !38 = !DILocation(line: 8, column: 3, scope: !35) diff --git a/toolchain/sem_ir/cpp_file.h b/toolchain/sem_ir/cpp_file.h index bf6735b787a1..f3ab7a3043a0 100644 --- a/toolchain/sem_ir/cpp_file.h +++ b/toolchain/sem_ir/cpp_file.h @@ -5,11 +5,15 @@ #ifndef CARBON_TOOLCHAIN_SEM_IR_CPP_FILE_H_ #define CARBON_TOOLCHAIN_SEM_IR_CPP_FILE_H_ +#include + +#include "clang/AST/Mangle.h" #include "clang/Basic/CodeGenOptions.h" #include "clang/Basic/Diagnostic.h" #include "clang/CodeGen/ModuleBuilder.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Lex/PreprocessorOptions.h" +#include "common/check.h" #include "llvm/ADT/IntrusiveRefCntPtr.h" #include "llvm/IR/Module.h" #include "llvm/Support/FileSystem.h" @@ -51,6 +55,17 @@ class CppFile { return clang_->getASTContext(); } + // Creates the mangle context for this file's C++ AST. Must be called once the + // AST context is available (after the frontend begins the source file) and + // before `mangle_context()` is used. + auto CreateMangleContext() -> void { + CARBON_CHECK(!mangle_context_); + mangle_context_.reset(ast_context().createMangleContext()); + } + auto mangle_context() const -> clang::MangleContext& { + return *mangle_context_; + } + auto llvm_context() const -> llvm::LLVMContext* { return llvm_context_; } auto SetCodeGenerator(clang::CodeGenerator* code_generator) -> void { code_generator_ = code_generator; @@ -65,6 +80,8 @@ class CppFile { std::unique_ptr clang_; llvm::LLVMContext* llvm_context_; clang::CodeGenerator* code_generator_ = nullptr; + // Created by `CreateMangleContext()` once the AST context is available. + std::unique_ptr mangle_context_; }; } // namespace Carbon::SemIR diff --git a/toolchain/sem_ir/file.cpp b/toolchain/sem_ir/file.cpp index 0318b516b5b0..b1174c906928 100644 --- a/toolchain/sem_ir/file.cpp +++ b/toolchain/sem_ir/file.cpp @@ -8,6 +8,9 @@ #include #include +#include "clang/AST/ASTContext.h" +#include "clang/AST/Decl.h" +#include "clang/AST/Mangle.h" #include "common/check.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallVector.h" @@ -221,6 +224,32 @@ auto File::set_cpp_file(std::unique_ptr cpp_file) -> void { cpp_file_ = std::move(cpp_file); } +auto File::AppendCppMangledTypeName(ClassId class_id, + llvm::raw_ostream& out) const -> bool { + // Only classes imported *from* C++ need this. A C++ scope records the Clang + // declaration it came from; note that a Carbon class exported *to* C++ also + // has an associated Clang declaration, but its scope is not a C++ scope and + // it is already uniquely identified by its name and parent scope. + auto scope_id = classes().Get(class_id).scope_id; + if (!scope_id.has_value()) { + return false; + } + const auto& scope = name_scopes().Get(scope_id); + if (!scope.is_cpp_scope()) { + return false; + } + auto clang_decl_id = scope.clang_decl_context_id(); + if (!clang_decl_id.has_value()) { + return false; + } + // A C++ class's scope always maps to a Clang tag declaration. + auto* tag_decl = + clang::cast(clang_decls().Get(clang_decl_id).key.decl); + cpp_file_->mangle_context().mangleCanonicalTypeName( + cpp_file_->ast_context().getCanonicalTagType(tag_decl), out); + return true; +} + } // namespace Carbon::SemIR namespace Carbon { diff --git a/toolchain/sem_ir/file.h b/toolchain/sem_ir/file.h index 240786d907a6..3451be3ce03a 100644 --- a/toolchain/sem_ir/file.h +++ b/toolchain/sem_ir/file.h @@ -213,6 +213,20 @@ class File : public Printable { return field_initializers_; } + // If `class_id` is an imported C++ class, appends the Clang mangled name of + // its type to `out` and returns true. Otherwise returns false and leaves + // `out` unchanged. + // + // A Carbon class is uniquely identified by its name and parent scope, but + // that is not true of imported C++ classes: different class template + // specializations (and other cases such as types in anonymous namespaces) + // can share a Carbon name and scope. The Clang mangled name is the canonical + // identity of the C++ type, used to tell such classes apart when + // fingerprinting -- and hence mangling -- them. It is computed on demand + // rather than stored. + auto AppendCppMangledTypeName(ClassId class_id, llvm::raw_ostream& out) const + -> bool; + auto identified_facet_types() -> IdentifiedFacetTypeStore& { return identified_facet_types_; } diff --git a/toolchain/sem_ir/inst_fingerprinter.cpp b/toolchain/sem_ir/inst_fingerprinter.cpp index 2aab98e57534..1887a8cd0272 100644 --- a/toolchain/sem_ir/inst_fingerprinter.cpp +++ b/toolchain/sem_ir/inst_fingerprinter.cpp @@ -12,9 +12,11 @@ #include "common/concepts.h" #include "common/ostream.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StableHashing.h" #include "llvm/Support/SaveAndRestore.h" +#include "llvm/Support/raw_ostream.h" #include "toolchain/base/fixed_size_value_store.h" #include "toolchain/base/kind_switch.h" #include "toolchain/base/value_ids.h" @@ -429,6 +431,15 @@ struct Worklist { auto Add(ClassId class_id) -> void { AddEntity(sem_ir->classes().Get(class_id)); + // Imported C++ classes are not uniquely identified by their name and parent + // scope, so we also include the Clang mangled type name, which is computed + // on demand. The Clang type name is unique, as it is the canonical C++ + // identity. Carbon classes rely on the name and scope from `AddEntity`. + llvm::SmallString<128> cpp_mangled_name; + llvm::raw_svector_ostream os(cpp_mangled_name); + if (sem_ir->AppendCppMangledTypeName(class_id, os)) { + AddString(cpp_mangled_name); + } } auto Add(VtableId vtable_id) -> void {