mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 18:40:16 +01:00
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 <cjdb.ns@gmail.com>
This commit is contained in:
co-authored by
Christopher Di Bella
parent
3ef128ac91
commit
8a59f2a76b
@@ -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<clang::ExternalSemaSource> carbon_source =
|
||||
llvm::makeIntrusiveRefCnt<CarbonExternalASTSource>(&context);
|
||||
|
||||
@@ -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: <witness> = 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: <elided>
|
||||
// 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> = 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: <elided>
|
||||
// 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> = bound_method %.loc15_12.2, constants.%Y.cpp_destructor.6dd6f2.2
|
||||
|
||||
@@ -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: <namespace> = 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: }
|
||||
|
||||
+48
-48
@@ -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> = 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> = 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> = 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> = 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> = 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: <namespace> = 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> = 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: <namespace> = 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> = 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)
|
||||
|
||||
+33
-33
@@ -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: <witness> = 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> = specific_function %ptr.as.Copy.impl.Op.e2b, @ptr.as.Copy.impl.Op(%Base) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.826: <witness> = 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> = 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: <namespace> = 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: <namespace> = 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> = bound_method %.loc8_11.3, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = 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> = 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:
|
||||
|
||||
+35
-35
@@ -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: <namespace> = 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: <namespace> = 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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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: <namespace> = 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> = 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: <witness> = 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: <witness> = 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: <namespace> = 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: <witness> = complete_type_witness constants.%struct_type.base.864 [concrete = constants.%complete_type.3a6]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = 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:
|
||||
|
||||
@@ -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: <namespace> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
@@ -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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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
|
||||
|
||||
+14
-14
@@ -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: <witness> = 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> = 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
|
||||
|
||||
+30
-30
@@ -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: <witness> = 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> = 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> = 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> = 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> = 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> = 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> = bound_method %.loc22_8.2, %ref_ref_this.ref
|
||||
// CHECK:STDOUT: %.loc22_8.3: %HasQualifiers = acquire_value %.loc22_8.2
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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> = 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: <elided>
|
||||
// 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: <elided>
|
||||
@@ -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> = 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> = 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> = 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: <namespace> = 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> = 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: <elided>
|
||||
// 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> = 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: <namespace> = 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> = 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: <elided>
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -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> = 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: <witness> = 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> = 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: <witness> = 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> = 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> = 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> = bound_method %.loc17_11.3, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = 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> = 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> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e6b, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %bound_method: <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> = 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: <namespace> = 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: <elided>
|
||||
// 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: <namespace> = 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: <elided>
|
||||
// CHECK:STDOUT: %type.ref.loc21: type = name_ref r#type, %i32.2 [concrete = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+22
-22
@@ -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: <namespace> = 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: <namespace> = 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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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:
|
||||
|
||||
+11
-11
@@ -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> = 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: <elided>
|
||||
// CHECK:STDOUT: } {
|
||||
@@ -87,7 +87,7 @@ fn G() {
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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: <elided>
|
||||
// CHECK:STDOUT: } {
|
||||
@@ -104,13 +104,13 @@ fn G() {
|
||||
// CHECK:STDOUT: %Cpp.ref.loc8_3: <namespace> = 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: <namespace> = 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: <namespace> = 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> = bound_method %.loc10_11.3, %F.ref.loc10
|
||||
// CHECK:STDOUT: %Cpp.ref.loc10_15: <namespace> = 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> = bound_method %.loc10_11.3, constants.%C.cpp_destructor
|
||||
|
||||
+14
-14
@@ -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> = specific_function %Core.IntLiteral.as.As.impl.Convert.036, @Core.IntLiteral.as.As.impl.Convert(%int_16) [concrete]
|
||||
// CHECK:STDOUT: %bound_method: <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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
|
||||
// CHECK:STDOUT: %Other.ref.loc10_20: type = name_ref Other, imports.%Other.decl [concrete = constants.%Other]
|
||||
|
||||
+12
-12
@@ -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: <witness> = 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> = 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> = bound_method %int_0, %Enum.Op [concrete]
|
||||
// CHECK:STDOUT: %int_1: %Enum = int_value 1 [concrete]
|
||||
// CHECK:STDOUT: %Enum.Op.bound.c35: <bound method> = bound_method %int_1, %Enum.Op [concrete]
|
||||
// CHECK:STDOUT: %Enum.Op.bound.6f8: <bound method> = 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: <namespace> = 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> = 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> = 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: <namespace> = 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> = 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> = 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> = bound_method %a.var, constants.%Destroy.Op
|
||||
|
||||
+20
-20
@@ -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> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
|
||||
// CHECK:STDOUT: %Zoo.ref.loc21: type = name_ref Zoo, imports.%Zoo.decl [concrete = constants.%Zoo]
|
||||
|
||||
@@ -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: <elided>
|
||||
// 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: <namespace> = 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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
|
||||
|
||||
@@ -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> = bound_method %.0ed, %X.B.cpp_overload_set.value [concrete]
|
||||
// CHECK:STDOUT: %bound_method.7cd: <bound method> = 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> = 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> = 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> = bound_method %.loc10_7.2, %B.ref [concrete = constants.%bound_method.599]
|
||||
// CHECK:STDOUT: %bound_method.loc10_16: <bound method> = 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> = bound_method %.loc12_7.2, %D.ref [concrete = constants.%bound_method.db4]
|
||||
// CHECK:STDOUT: %bound_method.loc12_16: <bound method> = 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: <elided>
|
||||
// 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: <witness> = 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> = 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> = 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> = 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> = 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: <witness> = 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> = bound_method %.loc11_7.2, %B.ref [concrete = constants.%bound_method.599]
|
||||
// CHECK:STDOUT: %bound_method.loc11_16: <bound method> = 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> = bound_method %.loc13_7.2, %D.ref [concrete = constants.%bound_method.db4]
|
||||
// CHECK:STDOUT: %bound_method.loc13_16: <bound method> = 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> = 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> = bound_method %.0ed, %X.B.cpp_overload_set.value [concrete]
|
||||
// CHECK:STDOUT: %bound_method.7cd: <bound method> = 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> = bound_method %.0ed, %X.D.cpp_overload_set.value [concrete]
|
||||
// CHECK:STDOUT: %bound_method.954: <bound method> = 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> = bound_method %.loc56_7.2, %B.ref [concrete = constants.%bound_method.599]
|
||||
// CHECK:STDOUT: %bound_method.loc56: <bound method> = bound_method %.loc56_7.2, %B.ref [concrete = constants.%bound_method.7cd]
|
||||
// CHECK:STDOUT: %Cpp.ref.loc66: <namespace> = 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> = bound_method %.loc76_7.2, %D.ref [concrete = constants.%bound_method.db4]
|
||||
// CHECK:STDOUT: %bound_method.loc76: <bound method> = bound_method %.loc76_7.2, %D.ref [concrete = constants.%bound_method.954]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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]
|
||||
|
||||
@@ -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: <elided>
|
||||
// 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
|
||||
|
||||
@@ -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: <witness> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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> = 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: <witness> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc20: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc20_46.2: %ThreeFields.559 = converted %.loc20_46.1, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc20: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc20: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc20)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc33: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc33: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc33: %ThreeFields.559 = converted %value.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc33: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc33: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc33)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc46: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc46: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc46: %ThreeFields.559 = converted %reference.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc46: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc46: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc46)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc59: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc59: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc59_39.2: %ThreeFields.559 = converted %MakeThreeFields.call, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc59: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc59: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc59)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc72: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc72: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc72_46.2: %ThreeFields.559 = converted %.loc72_46.1, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc72: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// 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: <witness> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc23: %ptr.110 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc23: %ptr.e71 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc23: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc23)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc36: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc36: %ptr.110 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc36: %ptr.e71 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc36: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc36)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc49: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc49: %ptr.110 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc49: %ptr.e71 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassNoFields__carbon_thunk.call.loc49: init %empty_tuple.type = call imports.%PassNoFields__carbon_thunk.decl(%addr.loc49)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc62: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc62: %ptr.110 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc62: %ptr.e71 = addr_of <error> [concrete = <error>]
|
||||
// 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc79: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc79_31.2: %ThreeFields.559 = converted %.loc79_31.1, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc79: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc79: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc79)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc92: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc92: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc92: %ThreeFields.559 = converted %value.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc92: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc92: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc92)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc105: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc105: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc105: %ThreeFields.559 = converted %reference.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc105: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %PassThreeFields__carbon_thunk.call.loc105: init %empty_tuple.type = call imports.%PassThreeFields__carbon_thunk.decl(%addr.loc105)
|
||||
// CHECK:STDOUT: %Cpp.ref.loc118: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc118: %ptr.494 = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc118_39.2: %ThreeFields.559 = converted %MakeThreeFields.call, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr.loc118: %ptr.f54 = addr_of <error> [concrete = <error>]
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr: %ptr.13d = addr_of <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %addr: %ptr.fab = addr_of <error> [concrete = <error>]
|
||||
// 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:
|
||||
|
||||
+319
-319
File diff suppressed because it is too large
Load Diff
+8
-8
@@ -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> = 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)
|
||||
|
||||
+125
-125
@@ -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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
@@ -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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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: <elided>
|
||||
@@ -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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
@@ -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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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> = 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> = 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: <namespace> = 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> = 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: <namespace> = 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: <namespace> = 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: <elided>
|
||||
// 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: <namespace> = 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
@@ -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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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> = 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> = bound_method %s.var, constants.%S.cpp_destructor
|
||||
|
||||
@@ -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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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
|
||||
|
||||
@@ -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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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
|
||||
|
||||
+85
-85
@@ -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> = 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> = 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> = 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: <elided>
|
||||
// CHECK:STDOUT: } {
|
||||
@@ -370,7 +370,7 @@ fn ConversionExplicit(s: Cpp.ConditionallyExplicitFalse) {
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <namespace> = 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: <namespace> = 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: <elided>
|
||||
// CHECK:STDOUT: %ConditionallyExplicit.Op.bound.loc9: <bound method> = 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: <namespace> = 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: <elided>
|
||||
// CHECK:STDOUT: %ConditionallyExplicit.Op.bound: <bound method> = 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: <elided>
|
||||
// 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: <namespace> = 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> = 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: <namespace> = 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> = 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: <elided>
|
||||
// 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: <namespace> = 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> = 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> = 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: <elided>
|
||||
// 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: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %ConditionallyExplicit.6a9921.1 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc15_42: %ConditionallyExplicit.717 = converted %s.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %ConditionallyExplicit.717 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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: <namespace> = 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> = 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: <elided>
|
||||
// CHECK:STDOUT: %Dest.Op.bound: <bound method> = 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]
|
||||
|
||||
+41
-41
@@ -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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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> = 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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> = 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: <elided>
|
||||
// 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: <witness> = 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> = 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: <witness> = 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> = 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> = 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: <witness> = 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> = 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: <elided>
|
||||
// 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> = 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> = specific_function %Copy.ref, @Copy.loc6(constants.%Copy.facet.0af) [concrete = constants.%Copy.specific_fn]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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> = bound_method %p.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = 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> = 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> = 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:
|
||||
|
||||
+26
-26
@@ -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: <witness> = 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> = 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: }
|
||||
|
||||
+106
-106
@@ -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: <elided>
|
||||
// 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: <elided>
|
||||
// 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> = 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: <elided>
|
||||
// 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: <namespace> = 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> = 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: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %Dest.058 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc15_21: %Dest.b15 = converted %s.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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> = 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: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %Dest.058 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc28_21: %Dest.b15 = converted %s.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %Dest.058 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc28_21: %Dest.b15 = converted %s.ref, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_: %Dest.b15 = value_binding _, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <namespace> = 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: <elided>
|
||||
// CHECK:STDOUT: %IntConstructor.Op.bound: <bound method> = 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, <error> [concrete = <error>]
|
||||
// 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(<error>, %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> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_.loc15: %Aggregate = value_binding _, <error> [concrete = <error>]
|
||||
// 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_.loc23: %Aggregate = value_binding _, <error> [concrete = <error>]
|
||||
// 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_.loc15: %Aggregate = value_binding _, <error> [concrete = <error>]
|
||||
// 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_.loc23: %Aggregate = value_binding _, <error> [concrete = <error>]
|
||||
// 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_.loc15: %NonAggregate = value_binding _, <error> [concrete = <error>]
|
||||
// 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %_.loc23: %NonAggregate = value_binding _, <error> [concrete = <error>]
|
||||
// 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]
|
||||
|
||||
@@ -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> = 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: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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> = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
|
||||
|
||||
@@ -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: <namespace> = 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
|
||||
|
||||
+1540
-1540
File diff suppressed because it is too large
Load Diff
@@ -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: <witness> = 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: <elided>
|
||||
// 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> = 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> = 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: <witness> = 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> = 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
|
||||
|
||||
+169
-169
@@ -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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: }
|
||||
|
||||
+191
-191
File diff suppressed because it is too large
Load Diff
+241
-241
@@ -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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: }
|
||||
|
||||
+35
-35
@@ -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 function> = 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, <error>) {
|
||||
// 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 => <error>
|
||||
// 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 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc4_42 => <error>
|
||||
// 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, <error>) {
|
||||
// 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 => <error>
|
||||
// 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 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// 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, <error>) {
|
||||
// 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 => <error>
|
||||
// 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 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// 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, <error>) {
|
||||
// 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 => <error>
|
||||
// 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 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// 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, <error>) {
|
||||
// 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 => <error>
|
||||
// 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 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// 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, <error>) {
|
||||
// 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 => <error>
|
||||
// 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 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_52 => <error>
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.f57
|
||||
// CHECK:STDOUT: %pattern_type.loc11_58 => constants.%pattern_type.f3d
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -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: <witness> = 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: <witness> = 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: <witness> = 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]
|
||||
|
||||
+20
-20
@@ -1057,16 +1057,16 @@ fn CopyUnsignedLong() {
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: <bound method> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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> = 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> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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] {
|
||||
|
||||
+20
-20
@@ -1003,16 +1003,16 @@ fn CopyUnsignedLongLong() {
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: <bound method> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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> = 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> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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] {
|
||||
|
||||
@@ -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: <witness> = 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> = specific_function %ptr.as.ImplicitAs.impl.Convert.9d2, @ptr.as.ImplicitAs.impl.Convert.1(%S) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.ffe: <witness> = 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> = 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: <namespace> = 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> = bound_method %input.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = 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> = 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> = 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: <witness> = 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: <witness> = 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> = 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: <witness> = 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: <witness> = 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> = 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: <namespace> = 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> = bound_method %input.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = 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> = 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> = 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: <namespace> = 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, <error> [concrete = <error>]
|
||||
// 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %.loc17_22: type = splice_block %ptr.loc17_22 [concrete = constants.%ptr.055] {
|
||||
// CHECK:STDOUT: %Cpp.ref.loc17_17: <namespace> = 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, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: %p: %ptr.055 = value_binding p, <error> [concrete = <error>]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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: <witness> = 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> = specific_function %ptr.as.UnsafeAs.impl.Convert.a6b, @ptr.as.UnsafeAs.impl.Convert(%Cpp.void, %S) [concrete]
|
||||
// CHECK:STDOUT: %UnsafeAs.impl_witness.b35: <witness> = 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> = 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: <namespace> = 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> = bound_method %input.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = 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> = 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: <namespace> = 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: <elided>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+359
-359
@@ -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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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 function> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// 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: <elided>
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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: <namespace> = 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: <elided>
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+7
-7
@@ -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: <witness> = 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: <witness> = 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: <witness> = 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]
|
||||
|
||||
+14
-14
@@ -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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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: <witness> = 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]
|
||||
|
||||
@@ -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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <elided>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+28
-28
@@ -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: <witness> = 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> = specific_function %ptr.as.Copy.impl.Op.b0c, @ptr.as.Copy.impl.Op(%C) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.a6b: <witness> = 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> = 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> = bound_method %addr.loc9, %impl.elem0.loc9
|
||||
// CHECK:STDOUT: %specific_fn.loc9: <specific function> = 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> = 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: <namespace> = 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> = bound_method %addr.loc10, %impl.elem0.loc10
|
||||
// CHECK:STDOUT: %specific_fn.loc10: <specific function> = 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> = 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: <namespace> = 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> = 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> = bound_method %pd.var, constants.%Destroy.Op
|
||||
@@ -240,5 +240,5 @@ fn H(var c: Cpp.C, var d: Cpp.D) {
|
||||
// CHECK:STDOUT: <elided>
|
||||
// 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:
|
||||
|
||||
+29
-29
@@ -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: <witness> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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: <namespace> = 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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
+20
-20
@@ -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)
|
||||
|
||||
+24
-24
@@ -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)
|
||||
|
||||
+6
-6
@@ -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)
|
||||
|
||||
+59
-59
@@ -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)
|
||||
|
||||
+12
-12
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
+361
-4
@@ -31,6 +31,72 @@ fn Call(n: Cpp.NeedThunk) {
|
||||
var unused n2: Cpp.NeedThunk = n;
|
||||
}
|
||||
|
||||
// --- box.h
|
||||
|
||||
struct A {};
|
||||
struct B {};
|
||||
|
||||
template <typename T>
|
||||
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)
|
||||
|
||||
@@ -5,11 +5,15 @@
|
||||
#ifndef CARBON_TOOLCHAIN_SEM_IR_CPP_FILE_H_
|
||||
#define CARBON_TOOLCHAIN_SEM_IR_CPP_FILE_H_
|
||||
|
||||
#include <memory>
|
||||
|
||||
#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::CompilerInstance> clang_;
|
||||
llvm::LLVMContext* llvm_context_;
|
||||
clang::CodeGenerator* code_generator_ = nullptr;
|
||||
// Created by `CreateMangleContext()` once the AST context is available.
|
||||
std::unique_ptr<clang::MangleContext> mangle_context_;
|
||||
};
|
||||
|
||||
} // namespace Carbon::SemIR
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
#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<SemIR::CppFile> 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::TagDecl>(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 {
|
||||
|
||||
@@ -213,6 +213,20 @@ class File : public Printable<File> {
|
||||
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_;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user