mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 06:44:46 +01:00
Skip ImplWitnessTable::elements_id when generating fingerprints (#7629)
Implementing interface modifiers causes an infinite loop when generating fingerprints because the witness value generates a fingerprint that's dependent on something dependent on the witness value. We've debugged this to the witness table's `elements_id` field. This hack is a workaround for creating a new block type whose value is not codependent with its identity. Co-authored-by: Richard Smith <richard@metafoo.co.uk> Co-authored-by: Richard Smith <richard@metafoo.co.uk>
This commit is contained in:
co-authored by
Richard Smith
parent
cb5e9b6555
commit
4ea5ef45dd
+22
-22
@@ -121,10 +121,10 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %impl.elem0.ca3: %.Self.as_type = impl_witness_access %.00f, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %I_where.type.b84: type = facet_type <@I where %impl.elem0.ca3 = %empty_struct> [concrete]
|
||||
// CHECK:STDOUT: %.aaf: <witness> = impl_self_witness %empty_struct_type, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.55a: <witness> = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.57e: <witness> = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
|
||||
// CHECK:STDOUT: %empty_struct.type.facet: %type = facet_value %empty_struct_type, () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.1ae: %I.type = facet_value %empty_struct_type, (%I.impl_witness.55a) [concrete]
|
||||
// CHECK:STDOUT: %I.facet.f72: %I.type = facet_value %empty_struct_type, (%I.impl_witness.57e) [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]
|
||||
@@ -132,7 +132,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete]
|
||||
// CHECK:STDOUT: %I_where.type.8e4: type = facet_type <@I where %impl.elem0.ca3 = %int_0.5c6> [concrete]
|
||||
// CHECK:STDOUT: %.2a7: <witness> = impl_self_witness %i32, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.ce4: <witness> = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.8f5: <witness> = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Int.type.facet: %type = facet_value %i32, () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete]
|
||||
@@ -140,17 +140,17 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a2a: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.1aa, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a2a) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b7a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8eb, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: <bound method> = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: <specific function> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @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.3c0: %i32 = int_value 0 [concrete]
|
||||
// CHECK:STDOUT: %I.facet.0ac: %I.type = facet_value %i32, (%I.impl_witness.ce4) [concrete]
|
||||
// CHECK:STDOUT: %I.facet.190: %I.type = facet_value %i32, (%I.impl_witness.8f5) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -163,7 +163,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic]
|
||||
// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = 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.845)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -237,7 +237,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @empty_struct_type.as.I.impl: %.loc8_7.2 as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @empty_struct_type.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.55a]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.57e]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: %empty_struct_type = impl_witness_assoc_constant constants.%empty_struct [concrete = constants.%empty_struct]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -247,8 +247,8 @@ fn CallF() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @i32.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.ce4]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_15: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.8f5]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_15: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc10_15.1: <bound method> = bound_method constants.%int_0.5c6, %impl.elem0.loc10_15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0.loc10_15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc10_15.2: <bound method> = bound_method constants.%int_0.5c6, %specific_fn [concrete = constants.%bound_method]
|
||||
@@ -280,9 +280,9 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.1ae) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.f72) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.1ae
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.f72
|
||||
// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -292,9 +292,9 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %Self.as_type => constants.%i32
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.0ac) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.190) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.0ac
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.190
|
||||
// CHECK:STDOUT: %Self.as_type => constants.%i32
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -446,7 +446,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.type: type = fn_type @empty_tuple.type.as.ImplicitAs.impl.Convert [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert: %empty_tuple.type.as.ImplicitAs.impl.Convert.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.dee = facet_value %empty_tuple.type, (%ImplicitAs.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.336: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%C, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.1f2: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%C, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.val: %C = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen: %I.type = symbolic_binding .Self [symbolic_self]
|
||||
@@ -462,7 +462,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
|
||||
// CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete]
|
||||
// CHECK:STDOUT: %.829: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.336, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %.c8c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.1f2, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.bound: <bound method> = bound_method %empty_tuple, %empty_tuple.type.as.ImplicitAs.impl.Convert [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -566,7 +566,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %impl.elem0.loc18_13: %.829 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert]
|
||||
// CHECK:STDOUT: %impl.elem0.loc18_13: %.c8c = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method constants.%empty_tuple, %impl.elem0.loc18_13 [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert.bound]
|
||||
// CHECK:STDOUT: %.loc18_13.2: ref %C = temporary_storage
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.call: init %C to %.loc18_13.2 = call %bound_method(constants.%empty_tuple)
|
||||
@@ -643,8 +643,8 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete]
|
||||
// CHECK:STDOUT: %Negate.impl_witness: <witness> = impl_witness imports.%Negate.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%Negate.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Negate.WithSelf.Op.type.db1: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete]
|
||||
// CHECK:STDOUT: %.e9b: type = fn_type_with_self_type %Negate.WithSelf.Op.type.db1, %Negate.facet [concrete]
|
||||
// CHECK:STDOUT: %Negate.WithSelf.Op.type.e85: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete]
|
||||
// CHECK:STDOUT: %.758: type = fn_type_with_self_type %Negate.WithSelf.Op.type.e85, %Negate.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.type: type = fn_type @Core.IntLiteral.as.Negate.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op: %Core.IntLiteral.as.Negate.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.bound: <bound method> = bound_method %int_1, %Core.IntLiteral.as.Negate.impl.Op [concrete]
|
||||
@@ -693,7 +693,7 @@ fn CallF() {
|
||||
// CHECK:STDOUT: %.loc15_7.2: type = converted %.loc15_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: %I.ref: %I.type.335 = name_ref I, file.%I.decl [concrete = constants.%I.generic]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1]
|
||||
// CHECK:STDOUT: %impl.elem1: %.e9b = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem1: %.758 = impl_witness_access constants.%Negate.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %int_1, %impl.elem1 [concrete = constants.%Core.IntLiteral.as.Negate.impl.Op.bound]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.Negate.impl.Op.call: init Core.IntLiteral = call %bound_method(%int_1) [concrete = constants.%int_-1]
|
||||
// CHECK:STDOUT: %.loc15_16.1: Core.IntLiteral = value_of_initializer %Core.IntLiteral.as.Negate.impl.Op.call [concrete = constants.%int_-1]
|
||||
|
||||
+25
-25
@@ -261,11 +261,11 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %struct_type.a.as.NonInstance1.impl.F1.type: type = fn_type @struct_type.a.as.NonInstance1.impl.F1 [concrete]
|
||||
// CHECK:STDOUT: %struct_type.a.as.NonInstance1.impl.F1: %struct_type.a.as.NonInstance1.impl.F1.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value %struct_type.a, (%NonInstance1.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type.2c8: type = fn_type @NonInstance1.WithSelf.F1, @NonInstance1.WithSelf(%NonInstance1.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1.0b2: %NonInstance1.WithSelf.F1.type.2c8 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type.20d: type = fn_type @NonInstance1.WithSelf.F1, @NonInstance1.WithSelf(%NonInstance1.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1.ac9: %NonInstance1.WithSelf.F1.type.20d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstanceCall1.type: type = fn_type @NonInstanceCall1 [concrete]
|
||||
// CHECK:STDOUT: %NonInstanceCall1: %NonInstanceCall1.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.735: type = fn_type_with_self_type %NonInstance1.WithSelf.F1.type.2c8, %NonInstance1.facet [concrete]
|
||||
// CHECK:STDOUT: %.59a: type = fn_type_with_self_type %NonInstance1.WithSelf.F1.type.20d, %NonInstance1.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -329,7 +329,7 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %F1.ref: %NonInstance1.assoc_type = name_ref F1, @NonInstance1.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value %struct_type.a, (constants.%NonInstance1.impl_witness) [concrete = constants.%NonInstance1.facet]
|
||||
// CHECK:STDOUT: %.loc12_11: %NonInstance1.type = converted %struct_type.a, %NonInstance1.facet [concrete = constants.%NonInstance1.facet]
|
||||
// CHECK:STDOUT: %impl.elem0: %.735 = impl_witness_access constants.%NonInstance1.impl_witness, element0 [concrete = constants.%struct_type.a.as.NonInstance1.impl.F1]
|
||||
// CHECK:STDOUT: %impl.elem0: %.59a = impl_witness_access constants.%NonInstance1.impl_witness, element0 [concrete = constants.%struct_type.a.as.NonInstance1.impl.F1]
|
||||
// CHECK:STDOUT: %struct_type.a.as.NonInstance1.impl.F1.call: init %empty_tuple.type = call %impl.elem0()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -346,8 +346,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: specific @NonInstance1.WithSelf(constants.%NonInstance1.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%NonInstance1.facet
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type => constants.%NonInstance1.WithSelf.F1.type.2c8
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1 => constants.%NonInstance1.WithSelf.F1.0b2
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1.type => constants.%NonInstance1.WithSelf.F1.type.20d
|
||||
// CHECK:STDOUT: %NonInstance1.WithSelf.F1 => constants.%NonInstance1.WithSelf.F1.ac9
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @NonInstance1.WithSelf.F1(constants.%NonInstance1.facet) {}
|
||||
@@ -369,8 +369,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %struct_type.b.as.NonInstance2.impl.F2.type: type = fn_type @struct_type.b.as.NonInstance2.impl.F2 [concrete]
|
||||
// CHECK:STDOUT: %struct_type.b.as.NonInstance2.impl.F2: %struct_type.b.as.NonInstance2.impl.F2.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance2.facet: %NonInstance2.type = facet_value %struct_type.b, (%NonInstance2.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type.748: type = fn_type @NonInstance2.WithSelf.F2, @NonInstance2.WithSelf(%NonInstance2.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2.286: %NonInstance2.WithSelf.F2.type.748 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type.6fc: type = fn_type @NonInstance2.WithSelf.F2, @NonInstance2.WithSelf(%NonInstance2.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2.539: %NonInstance2.WithSelf.F2.type.6fc = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.d5c: type = pattern_type %struct_type.b [concrete]
|
||||
// CHECK:STDOUT: %n.param_patt: %pattern_type.d5c = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %n.patt: %pattern_type.d5c = at_binding_pattern n, %n.param_patt [concrete]
|
||||
@@ -539,8 +539,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: specific @NonInstance2.WithSelf(constants.%NonInstance2.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%NonInstance2.facet
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type => constants.%NonInstance2.WithSelf.F2.type.748
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2 => constants.%NonInstance2.WithSelf.F2.286
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2.type => constants.%NonInstance2.WithSelf.F2.type.6fc
|
||||
// CHECK:STDOUT: %NonInstance2.WithSelf.F2 => constants.%NonInstance2.WithSelf.F2.539
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @NonInstance2.WithSelf.F2(constants.%NonInstance2.facet) {}
|
||||
@@ -603,8 +603,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %struct_type.c.as.NonInstance3.impl.F3.type: type = fn_type @struct_type.c.as.NonInstance3.impl.F3 [concrete]
|
||||
// CHECK:STDOUT: %struct_type.c.as.NonInstance3.impl.F3: %struct_type.c.as.NonInstance3.impl.F3.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance3.facet: %NonInstance3.type = facet_value %struct_type.c, (%NonInstance3.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type.0a9: type = fn_type @NonInstance3.WithSelf.F3, @NonInstance3.WithSelf(%NonInstance3.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3.a3c: %NonInstance3.WithSelf.F3.type.0a9 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type.6f9: type = fn_type @NonInstance3.WithSelf.F3, @NonInstance3.WithSelf(%NonInstance3.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3.536: %NonInstance3.WithSelf.F3.type.6f9 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %struct_type.c [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.5f5: type = pattern_type %ptr [concrete]
|
||||
// CHECK:STDOUT: %p.param_patt: %pattern_type.5f5 = value_param_pattern [concrete]
|
||||
@@ -776,8 +776,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: specific @NonInstance3.WithSelf(constants.%NonInstance3.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%NonInstance3.facet
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type => constants.%NonInstance3.WithSelf.F3.type.0a9
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3 => constants.%NonInstance3.WithSelf.F3.a3c
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3.type => constants.%NonInstance3.WithSelf.F3.type.6f9
|
||||
// CHECK:STDOUT: %NonInstance3.WithSelf.F3 => constants.%NonInstance3.WithSelf.F3.536
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @NonInstance3.WithSelf.F3(constants.%NonInstance3.facet) {}
|
||||
@@ -847,13 +847,13 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1.type: type = fn_type @struct_type.d.as.Instance1.impl.G1 [concrete]
|
||||
// CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1: %struct_type.d.as.Instance1.impl.G1.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Instance1.facet: %Instance1.type = facet_value %struct_type.d, (%Instance1.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1.type.8c3: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Instance1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1.50a: %Instance1.WithSelf.G1.type.8c3 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1.type.d2c: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Instance1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1.5f9: %Instance1.WithSelf.G1.type.d2c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %n.param_patt: %pattern_type.515 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %n.patt: %pattern_type.515 = at_binding_pattern n, %n.param_patt [concrete]
|
||||
// CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete]
|
||||
// CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.5fa: type = fn_type_with_self_type %Instance1.WithSelf.G1.type.8c3, %Instance1.facet [concrete]
|
||||
// CHECK:STDOUT: %.df4: type = fn_type_with_self_type %Instance1.WithSelf.G1.type.d2c, %Instance1.facet [concrete]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %struct_type.d [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.8d6: type = pattern_type %ptr [concrete]
|
||||
// CHECK:STDOUT: %p.param_patt: %pattern_type.8d6 = value_param_pattern [concrete]
|
||||
@@ -969,7 +969,7 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %n.ref: %struct_type.d = name_ref n, %n
|
||||
// CHECK:STDOUT: %Instance1.ref: type = name_ref Instance1, file.%Instance1.decl [concrete = constants.%Instance1.type]
|
||||
// CHECK:STDOUT: %G1.ref: %Instance1.assoc_type = name_ref G1, @Instance1.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.5fa = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1]
|
||||
// CHECK:STDOUT: %impl.elem0: %.df4 = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %n.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1.call: init %empty_tuple.type = call %bound_method(%n.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -981,7 +981,7 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %Instance1.ref: type = name_ref Instance1, file.%Instance1.decl [concrete = constants.%Instance1.type]
|
||||
// CHECK:STDOUT: %G1.ref: %Instance1.assoc_type = name_ref G1, @Instance1.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %.loc16_4.1: ref %struct_type.d = deref %p.ref
|
||||
// CHECK:STDOUT: %impl.elem0: %.5fa = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1]
|
||||
// CHECK:STDOUT: %impl.elem0: %.df4 = impl_witness_access constants.%Instance1.impl_witness, element0 [concrete = constants.%struct_type.d.as.Instance1.impl.G1]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc16_4.1, %impl.elem0
|
||||
// CHECK:STDOUT: %.loc16_4.2: ref %empty_tuple.type = struct_access %.loc16_4.1, element0
|
||||
// CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple]
|
||||
@@ -1010,8 +1010,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: specific @Instance1.WithSelf(constants.%Instance1.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Instance1.facet
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1.type => constants.%Instance1.WithSelf.G1.type.8c3
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1 => constants.%Instance1.WithSelf.G1.50a
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1.type => constants.%Instance1.WithSelf.G1.type.d2c
|
||||
// CHECK:STDOUT: %Instance1.WithSelf.G1 => constants.%Instance1.WithSelf.G1.5f9
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Instance1.WithSelf.G1(constants.%Instance1.facet) {
|
||||
@@ -1046,8 +1046,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2.type: type = fn_type @struct_type.e.as.Instance2.impl.G2 [concrete]
|
||||
// CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2: %struct_type.e.as.Instance2.impl.G2.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Instance2.facet: %Instance2.type = facet_value %struct_type.e, (%Instance2.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2.type.72b: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Instance2.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2.922: %Instance2.WithSelf.G2.type.72b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2.type.3f4: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Instance2.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2.cf7: %Instance2.WithSelf.G2.type.3f4 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %InstanceCallFail.type: type = fn_type @InstanceCallFail [concrete]
|
||||
// CHECK:STDOUT: %InstanceCallFail: %InstanceCallFail.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1156,8 +1156,8 @@ fn InstanceCallFail() {
|
||||
// CHECK:STDOUT: specific @Instance2.WithSelf(constants.%Instance2.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Instance2.facet
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2.type => constants.%Instance2.WithSelf.G2.type.72b
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2 => constants.%Instance2.WithSelf.G2.922
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2.type => constants.%Instance2.WithSelf.G2.type.3f4
|
||||
// CHECK:STDOUT: %Instance2.WithSelf.G2 => constants.%Instance2.WithSelf.G2.cf7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Instance2.WithSelf.G2(constants.%Instance2.facet) {
|
||||
|
||||
+3
-3
@@ -298,8 +298,8 @@ impl C as I {
|
||||
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.39b: <witness> = impl_witness @T.as.Z.impl.%Z.impl_witness_table, @T.as.Z.impl(%empty_tuple.type) [concrete]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.39b) [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.55c: <witness> = impl_witness @T.as.Z.impl.%Z.impl_witness_table, @T.as.Z.impl(%empty_tuple.type) [concrete]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.55c) [concrete]
|
||||
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -307,7 +307,7 @@ impl C as I {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
|
||||
// CHECK:STDOUT: %.loc18_6: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.39b) [concrete = constants.%Z.facet]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.55c) [concrete = constants.%Z.facet]
|
||||
// CHECK:STDOUT: %.loc18_7: %Z.type = converted %.loc18_6, %Z.facet [concrete = constants.%Z.facet]
|
||||
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%Z.facet) [concrete = constants.%F.specific_fn]
|
||||
// CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn()
|
||||
|
||||
+23
-23
@@ -100,8 +100,8 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type.9e1 = facet_value %C, (%HasF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.5b8: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.673: %HasF.WithSelf.F.type.5b8 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.744: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.c9d: %HasF.WithSelf.F.type.744 = struct_value () [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: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete]
|
||||
@@ -113,12 +113,12 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a2a: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.1aa, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a2a) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b7a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8eb, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: <bound method> = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: <specific function> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete]
|
||||
@@ -133,18 +133,18 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.eae: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Param, %C.type.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.eba: %HasF.WithSelf.F.type.eae = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.aa9: type = fn_type_with_self_type %HasF.WithSelf.F.type.5b8, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %.23a: type = fn_type_with_self_type %HasF.WithSelf.F.type.744, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = ref_binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %b.var_patt: %pattern_type.6b6 = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.ac8: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.5e0: %Int.as.Copy.impl.Op.type.ac8 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.0e0: <witness> = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.b51: <witness> = impl_witness imports.%Copy.impl_witness_table.8d2, @Int.as.Copy.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.b51) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.381: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc22_27.2 [concrete]
|
||||
@@ -165,10 +165,10 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic]
|
||||
// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = 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.845)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type]
|
||||
// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.8d2 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -301,7 +301,7 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %.loc15_21.1: %struct_type.x.c96 = struct_literal (%int_2) [concrete = constants.%struct]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc15_21.1: <bound method> = bound_method %int_2, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc15_21.2: <bound method> = bound_method %int_2, %specific_fn [concrete = constants.%bound_method]
|
||||
@@ -319,7 +319,7 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc21_24: %HasF.assoc_type.aee = specific_constant @HasF.WithSelf.%assoc0.loc5_14.1, @HasF.WithSelf(constants.%Param, constants.%C.type.facet) [concrete = constants.%assoc0.be0]
|
||||
// CHECK:STDOUT: %F.ref.loc21: %HasF.assoc_type.aee = name_ref F, %.loc21_24 [concrete = constants.%assoc0.be0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21: %.aa9 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21: %.23a = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %.loc21_27.1: ref %Param = temporary_storage
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.call.loc21: init %Param to %.loc21_27.1 = call %impl.elem0.loc21()
|
||||
// CHECK:STDOUT: %.loc21_27.2: ref %Param = temporary %.loc21_27.1, %C.as.HasF.impl.F.call.loc21
|
||||
@@ -335,14 +335,14 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %c.ref: %C = name_ref c, %c
|
||||
// CHECK:STDOUT: %.loc22_24: %HasF.assoc_type.aee = specific_constant @HasF.WithSelf.%assoc0.loc5_14.1, @HasF.WithSelf(constants.%Param, constants.%C.type.facet) [concrete = constants.%assoc0.be0]
|
||||
// CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type.aee = name_ref F, %.loc22_24 [concrete = constants.%assoc0.be0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22_24: %.aa9 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22_24: %.23a = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %.loc22_27.1: ref %Param = temporary_storage
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.call.loc22: init %Param to %.loc22_27.1 = call %impl.elem0.loc22_24()
|
||||
// CHECK:STDOUT: %.loc22_27.2: ref %Param = temporary %.loc22_27.1, %C.as.HasF.impl.F.call.loc22
|
||||
// CHECK:STDOUT: %x.ref.loc22: %Param.elem = name_ref x, @Param.%.loc9 [concrete = @Param.%.loc9]
|
||||
// CHECK:STDOUT: %.loc22_28.1: ref %i32 = class_element_access %.loc22_27.2, element0
|
||||
// CHECK:STDOUT: %.loc22_28.2: %i32 = acquire_value %.loc22_28.1
|
||||
// CHECK:STDOUT: %impl.elem0.loc22_28: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22_28: %.737 = impl_witness_access constants.%Copy.impl_witness.b51, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6]
|
||||
// CHECK:STDOUT: %bound_method.loc22_28.1: <bound method> = bound_method %.loc22_28.2, %impl.elem0.loc22_28
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0.loc22_28, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc22_28.2: <bound method> = bound_method %.loc22_28.2, %specific_fn
|
||||
@@ -420,8 +420,8 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %T => constants.%Param
|
||||
// CHECK:STDOUT: %HasF.type => constants.%HasF.type.9e1
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.5b8
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.673
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.744
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c9d
|
||||
// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.aee
|
||||
// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.be0
|
||||
// CHECK:STDOUT: }
|
||||
@@ -491,8 +491,8 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F, @X.as.I.impl(%U) [symbolic]
|
||||
// CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.facet: %I.type.3fe556.2 = facet_value %X, (%I.impl_witness) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.2f9: type = fn_type @I.WithSelf.F, @I.WithSelf(%U, %I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.1c3: %I.WithSelf.F.type.2f9 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.86a: type = fn_type @I.WithSelf.F, @I.WithSelf(%U, %I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.574: %I.WithSelf.F.type.86a = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %require_complete.ec9: <witness> = require_complete_type %X [symbolic]
|
||||
@@ -759,8 +759,8 @@ class X(U: type) {
|
||||
// CHECK:STDOUT: %T => constants.%U
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.3fe556.2
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.2f9
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.1c3
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.86a
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.574
|
||||
// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.b71f2b.2
|
||||
// CHECK:STDOUT: %assoc0.loc5_19.2 => constants.%assoc0.13b5f8.2
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+6
-6
@@ -52,8 +52,8 @@ fn InstanceCall(n: i32) {
|
||||
// CHECK:STDOUT: %i32.as.Simple.impl.G.type.321a2c.1: type = fn_type @i32.as.Simple.impl.G.loc24_25.1 [concrete]
|
||||
// CHECK:STDOUT: %i32.as.Simple.impl.G.d407b2.1: %i32.as.Simple.impl.G.type.321a2c.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %i32, (%Simple.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G.type.780: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Simple.facet) [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G.dbb: %Simple.WithSelf.G.type.780 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G.type.b93: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Simple.facet) [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G.551: %Simple.WithSelf.G.type.b93 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.049: %pattern_type.6b6 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.f6c: %pattern_type.6b6 = at_binding_pattern self, %self.param_patt.049 [concrete]
|
||||
@@ -63,7 +63,7 @@ fn InstanceCall(n: i32) {
|
||||
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete]
|
||||
// CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete]
|
||||
// CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.785: type = fn_type_with_self_type %Simple.WithSelf.G.type.780, %Simple.facet [concrete]
|
||||
// CHECK:STDOUT: %.029: type = fn_type_with_self_type %Simple.WithSelf.G.type.b93, %Simple.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -178,7 +178,7 @@ fn InstanceCall(n: i32) {
|
||||
// CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n
|
||||
// CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.type]
|
||||
// CHECK:STDOUT: %G.ref.loc28_12: %Simple.assoc_type = name_ref G, @Simple.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.785 = impl_witness_access constants.%Simple.impl_witness, element0 [concrete = constants.%i32.as.Simple.impl.G.d407b2.2]
|
||||
// CHECK:STDOUT: %impl.elem0: %.029 = impl_witness_access constants.%Simple.impl_witness, element0 [concrete = constants.%i32.as.Simple.impl.G.d407b2.2]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %n.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %G.ref.loc28_16: %i32.as.Simple.impl.G.type.321a2c.1 = name_ref G, @i32.as.Simple.impl.%i32.as.Simple.impl.G.decl.loc24_25.1 [concrete = constants.%i32.as.Simple.impl.G.d407b2.1]
|
||||
// CHECK:STDOUT: %i32.as.Simple.impl.G.bound: <bound method> = bound_method %n.ref, %G.ref.loc28_16
|
||||
@@ -204,8 +204,8 @@ fn InstanceCall(n: i32) {
|
||||
// CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Simple.facet
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G.type => constants.%Simple.WithSelf.G.type.780
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G => constants.%Simple.WithSelf.G.dbb
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G.type => constants.%Simple.WithSelf.G.type.b93
|
||||
// CHECK:STDOUT: %Simple.WithSelf.G => constants.%Simple.WithSelf.G.551
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Simple.WithSelf.G(constants.%Simple.facet) {
|
||||
|
||||
@@ -201,8 +201,8 @@ fn F() {
|
||||
// CHECK:STDOUT: %Point.as.Z.impl.Zero.type: type = fn_type @Point.as.Z.impl.Zero [concrete]
|
||||
// CHECK:STDOUT: %Point.as.Z.impl.Zero: %Point.as.Z.impl.Zero.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, (%Z.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type.fb1: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.5fb: %Z.WithSelf.Zero.type.fb1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type.896: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.8c2: %Z.WithSelf.Zero.type.896 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
|
||||
@@ -214,7 +214,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %Point.type.facet: %type = facet_value %Point, () [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type.356: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Point.type.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.237: %Z.WithSelf.Zero.type.356 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.d41: type = fn_type_with_self_type %Z.WithSelf.Zero.type.fb1, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %.dfa: type = fn_type_with_self_type %Z.WithSelf.Zero.type.896, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25_7.2 [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete]
|
||||
@@ -335,7 +335,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %.loc25_7.1: init %Point = converted %.loc25_5.1, %.loc25_5.3 [concrete = constants.%Point.val]
|
||||
// CHECK:STDOUT: %.loc25_7.2: ref %Point = temporary %.loc25_5.2, %.loc25_7.1 [concrete = constants.%.e6b]
|
||||
// CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.627]
|
||||
// CHECK:STDOUT: %impl.elem0: %.d41 = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Point.as.Z.impl.Zero]
|
||||
// CHECK:STDOUT: %impl.elem0: %.dfa = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Point.as.Z.impl.Zero]
|
||||
// CHECK:STDOUT: %Point.as.Z.impl.Zero.call: init %empty_tuple.type = call %impl.elem0()
|
||||
// CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.e6b)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -369,8 +369,8 @@ fn F() {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Z.facet
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.fb1
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.5fb
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.896
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.8c2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Z.facet) {}
|
||||
|
||||
@@ -64,8 +64,8 @@ class E {
|
||||
// CHECK:STDOUT: %.393: <witness> = impl_self_witness %D, @I [concrete]
|
||||
// CHECK:STDOUT: %E: type = class_type @E [concrete]
|
||||
// CHECK:STDOUT: %.e0d: <witness> = impl_self_witness %E, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.6e5: <witness> = impl_witness @E.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %E, (%I.impl_witness.6e5) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.d51: <witness> = impl_witness @E.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %E, (%I.impl_witness.d51) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -113,7 +113,7 @@ class E {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @E.as.I.impl: %Self.ref as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @E.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.6e5]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.d51]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %I.ref
|
||||
|
||||
+16
-16
@@ -267,18 +267,18 @@ class X {
|
||||
// CHECK:STDOUT: %Point.as.Z.impl.Method.type: type = fn_type @Point.as.Z.impl.Method [concrete]
|
||||
// CHECK:STDOUT: %Point.as.Z.impl.Method: %Point.as.Z.impl.Method.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, (%Z.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type.d05: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.0d2: %Z.WithSelf.Zero.type.d05 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method.type.de2: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method.683: %Z.WithSelf.Method.type.de2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type.896: type = fn_type @Z.WithSelf.Zero, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.8c2: %Z.WithSelf.Zero.type.896 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method.type.330: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method.2ef: %Z.WithSelf.Method.type.330 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.1fe: type = fn_type_with_self_type %Z.WithSelf.Zero.type.d05, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %.dfa: type = fn_type_with_self_type %Z.WithSelf.Zero.type.896, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.f5a: type = fn_type_with_self_type %Z.WithSelf.Method.type.de2, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %.f36: type = fn_type_with_self_type %Z.WithSelf.Method.type.330, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %Point.as.Z.impl.Method.bound: <bound method> = bound_method %Point.val, %Point.as.Z.impl.Method [concrete]
|
||||
// CHECK:STDOUT: %.e6b: ref %Point = temporary invalid, %Point.val [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
@@ -466,7 +466,7 @@ class X {
|
||||
// CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.627]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point.ref.loc28, (constants.%Z.impl_witness) [concrete = constants.%Z.facet]
|
||||
// CHECK:STDOUT: %.loc28: %Z.type = converted %Point.ref.loc28, %Z.facet [concrete = constants.%Z.facet]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1fe = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Point.as.Z.impl.Zero]
|
||||
// CHECK:STDOUT: %impl.elem0: %.dfa = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%Point.as.Z.impl.Zero]
|
||||
// CHECK:STDOUT: %Point.as.Z.impl.Zero.call: init %empty_tuple.type = call %impl.elem0()
|
||||
// CHECK:STDOUT: %.loc29_5.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
|
||||
// CHECK:STDOUT: %Point.ref.loc29: type = name_ref Point, file.%Point.decl [concrete = constants.%Point]
|
||||
@@ -475,7 +475,7 @@ class X {
|
||||
// CHECK:STDOUT: %.loc29_7.1: init %Point = converted %.loc29_5.1, %.loc29_5.3 [concrete = constants.%Point.val]
|
||||
// CHECK:STDOUT: %Z.ref.loc29: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type]
|
||||
// CHECK:STDOUT: %Method.ref: %Z.assoc_type = name_ref Method, @Z.WithSelf.%assoc1 [concrete = constants.%assoc1]
|
||||
// CHECK:STDOUT: %impl.elem1: %.f5a = impl_witness_access constants.%Z.impl_witness, element1 [concrete = constants.%Point.as.Z.impl.Method]
|
||||
// CHECK:STDOUT: %impl.elem1: %.f36 = impl_witness_access constants.%Z.impl_witness, element1 [concrete = constants.%Point.as.Z.impl.Method]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc29_7.1, %impl.elem1 [concrete = constants.%Point.as.Z.impl.Method.bound]
|
||||
// CHECK:STDOUT: %.loc29_7.2: ref %Point = temporary %.loc29_5.2, %.loc29_7.1 [concrete = constants.%.e6b]
|
||||
// CHECK:STDOUT: %.loc29_7.3: %Point = acquire_value %.loc29_7.2 [concrete = constants.%Point.val]
|
||||
@@ -532,10 +532,10 @@ class X {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Z.facet
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.d05
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.0d2
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method.type => constants.%Z.WithSelf.Method.type.de2
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method => constants.%Z.WithSelf.Method.683
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero.type => constants.%Z.WithSelf.Zero.type.896
|
||||
// CHECK:STDOUT: %Z.WithSelf.Zero => constants.%Z.WithSelf.Zero.8c2
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method.type => constants.%Z.WithSelf.Method.type.330
|
||||
// CHECK:STDOUT: %Z.WithSelf.Method => constants.%Z.WithSelf.Method.2ef
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf.Zero(constants.%Z.facet) {}
|
||||
@@ -568,8 +568,8 @@ class X {
|
||||
// CHECK:STDOUT: %X.as.A.impl.B.type: type = fn_type @X.as.A.impl.B [concrete]
|
||||
// CHECK:STDOUT: %X.as.A.impl.B: %X.as.A.impl.B.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.facet: %A.type = facet_value %X, (%A.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type.d09: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.e21: %A.WithSelf.B.type.d09 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type.210: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.11e: %A.WithSelf.B.type.210 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -694,8 +694,8 @@ class X {
|
||||
// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%A.facet
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.d09
|
||||
// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.e21
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.210
|
||||
// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.11e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @A.WithSelf.B(constants.%A.facet) {}
|
||||
|
||||
+187
-187
@@ -241,64 +241,64 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %assoc0.6c9: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %NoF: type = class_type @NoF [concrete]
|
||||
// CHECK:STDOUT: %.6c7: <witness> = impl_self_witness %NoF, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.85e: <witness> = impl_witness @NoF.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.752: %I.type = facet_value %NoF, (%I.impl_witness.85e) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.3d3: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.752) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.38a: %I.WithSelf.F.type.3d3 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.ff5: <witness> = impl_witness @NoF.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.eb1: %I.type = facet_value %NoF, (%I.impl_witness.ff5) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.86d: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.eb1) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.bef: %I.WithSelf.F.type.86d = struct_value () [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: %FNotFunction: type = class_type @FNotFunction [concrete]
|
||||
// CHECK:STDOUT: %.d4c: <witness> = impl_self_witness %FNotFunction, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.b51: <witness> = impl_witness @FNotFunction.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.ef7: <witness> = impl_witness @FNotFunction.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %F: type = class_type @F [concrete]
|
||||
// CHECK:STDOUT: %I.facet.010: %I.type = facet_value %FNotFunction, (%I.impl_witness.b51) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.642: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.010) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.c29: %I.WithSelf.F.type.642 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.304: %I.type = facet_value %FNotFunction, (%I.impl_witness.ef7) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.772: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.304) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.196: %I.WithSelf.F.type.772 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %PossiblyF.type: type = fn_type @PossiblyF [concrete]
|
||||
// CHECK:STDOUT: %PossiblyF: %PossiblyF.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FAlias: type = class_type @FAlias [concrete]
|
||||
// CHECK:STDOUT: %.a11: <witness> = impl_self_witness %FAlias, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.e2e: <witness> = impl_witness @FAlias.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.f6f: %I.type = facet_value %FAlias, (%I.impl_witness.e2e) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.751: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.f6f) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.6d6: %I.WithSelf.F.type.751 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.fe5: <witness> = impl_witness @FAlias.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.ef1: %I.type = facet_value %FAlias, (%I.impl_witness.fe5) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.962: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.ef1) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.85d: %I.WithSelf.F.type.962 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FExtraParam: type = class_type @FExtraParam [concrete]
|
||||
// CHECK:STDOUT: %.44b: <witness> = impl_self_witness %FExtraParam, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.99e: <witness> = impl_witness @FExtraParam.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.0d1: <witness> = impl_witness @FExtraParam.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete]
|
||||
// CHECK:STDOUT: %b.param_patt.792: %pattern_type.831 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %b.patt.4e2: %pattern_type.831 = at_binding_pattern b, %b.param_patt.792 [concrete]
|
||||
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.type.ec7b0b.1: type = fn_type @FExtraParam.as.I.impl.F.loc69_18.1 [concrete]
|
||||
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.ef9801.1: %FExtraParam.as.I.impl.F.type.ec7b0b.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.657: %I.type = facet_value %FExtraParam, (%I.impl_witness.99e) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.255: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.657) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.fc1: %I.WithSelf.F.type.255 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.476: %I.type = facet_value %FExtraParam, (%I.impl_witness.0d1) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.7c2: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.476) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.67b: %I.WithSelf.F.type.7c2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.type.ec7b0b.2: type = fn_type @FExtraParam.as.I.impl.F.loc69_18.2 [concrete]
|
||||
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.ef9801.2: %FExtraParam.as.I.impl.F.type.ec7b0b.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FExtraImplicitParam: type = class_type @FExtraImplicitParam [concrete]
|
||||
// CHECK:STDOUT: %.77c: <witness> = impl_self_witness %FExtraImplicitParam, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.2da: <witness> = impl_witness @FExtraImplicitParam.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.989: <witness> = impl_witness @FExtraImplicitParam.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.54d: type = pattern_type %FExtraImplicitParam [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.f41: %pattern_type.54d = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.3d5: %pattern_type.54d = at_binding_pattern self, %self.param_patt.f41 [concrete]
|
||||
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1: type = fn_type @FExtraImplicitParam.as.I.impl.F.loc85_15.1 [concrete]
|
||||
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.a42f35.1: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.334: %I.type = facet_value %FExtraImplicitParam, (%I.impl_witness.2da) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.6ff: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.334) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.39e: %I.WithSelf.F.type.6ff = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.7ed: %I.type = facet_value %FExtraImplicitParam, (%I.impl_witness.989) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.f54: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.7ed) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.b2a: %I.WithSelf.F.type.f54 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.type.54cac2.2: type = fn_type @FExtraImplicitParam.as.I.impl.F.loc85_15.2 [concrete]
|
||||
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.a42f35.2: %FExtraImplicitParam.as.I.impl.F.type.54cac2.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FExtraReturnType: type = class_type @FExtraReturnType [concrete]
|
||||
// CHECK:STDOUT: %.ebd: <witness> = impl_self_witness %FExtraReturnType, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.b63: <witness> = impl_witness @FExtraReturnType.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.5ee: <witness> = impl_witness @FExtraReturnType.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %.f34: Core.Form = init_form bool [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt.5a1: %pattern_type.831 = out_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.patt.c0c: %pattern_type.831 = return_slot_pattern %return.param_patt.5a1, bool [concrete]
|
||||
// CHECK:STDOUT: %FExtraReturnType.as.I.impl.F.type: type = fn_type @FExtraReturnType.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %FExtraReturnType.as.I.impl.F: %FExtraReturnType.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.dde: %I.type = facet_value %FExtraReturnType, (%I.impl_witness.b63) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.fea: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.dde) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.338: %I.WithSelf.F.type.fea = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.6f2: %I.type = facet_value %FExtraReturnType, (%I.impl_witness.5ee) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.91e: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.6f2) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.70f: %I.WithSelf.F.type.91e = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete]
|
||||
// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %self.param_patt.210: %pattern_type.831 = value_param_pattern [concrete]
|
||||
@@ -309,32 +309,32 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %assoc0.000: %J.assoc_type = assoc_entity element0, @J.WithSelf.%J.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %FMissingParam: type = class_type @FMissingParam [concrete]
|
||||
// CHECK:STDOUT: %.599: <witness> = impl_self_witness %FMissingParam, @J [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.a34: <witness> = impl_witness @FMissingParam.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.24e: <witness> = impl_witness @FMissingParam.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.type.aad6ec.1: type = fn_type @FMissingParam.as.J.impl.F.loc117_29.1 [concrete]
|
||||
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.dd09dc.1: %FMissingParam.as.J.impl.F.type.aad6ec.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.d77: %J.type = facet_value %FMissingParam, (%J.impl_witness.a34) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.51b: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.d77) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.ed6: %J.WithSelf.F.type.51b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.2a3: %J.type = facet_value %FMissingParam, (%J.impl_witness.24e) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.989: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.2a3) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.ee2: %J.WithSelf.F.type.989 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.type.aad6ec.2: type = fn_type @FMissingParam.as.J.impl.F.loc117_29.2 [concrete]
|
||||
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.dd09dc.2: %FMissingParam.as.J.impl.F.type.aad6ec.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FMissingImplicitParam: type = class_type @FMissingImplicitParam [concrete]
|
||||
// CHECK:STDOUT: %.f79: <witness> = impl_self_witness %FMissingImplicitParam, @J [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.7e6: <witness> = impl_witness @FMissingImplicitParam.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.0d0: <witness> = impl_witness @FMissingImplicitParam.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1: type = fn_type @FMissingImplicitParam.as.J.impl.F.loc130_26.1 [concrete]
|
||||
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.620ed1.1: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.3f0: %J.type = facet_value %FMissingImplicitParam, (%J.impl_witness.7e6) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.e23: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.3f0) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.897: %J.WithSelf.F.type.e23 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.ba1: %J.type = facet_value %FMissingImplicitParam, (%J.impl_witness.0d0) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.b8b: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.ba1) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.47f: %J.WithSelf.F.type.b8b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.type.f666a8.2: type = fn_type @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete]
|
||||
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.620ed1.2: %FMissingImplicitParam.as.J.impl.F.type.f666a8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FMissingReturnType: type = class_type @FMissingReturnType [concrete]
|
||||
// CHECK:STDOUT: %.199: <witness> = impl_self_witness %FMissingReturnType, @J [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.05c: <witness> = impl_witness @FMissingReturnType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.50a: <witness> = impl_witness @FMissingReturnType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.type.9cd56a.1: type = fn_type @FMissingReturnType.as.J.impl.F.loc148_30.1 [concrete]
|
||||
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.6975be.1: %FMissingReturnType.as.J.impl.F.type.9cd56a.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.c42: %J.type = facet_value %FMissingReturnType, (%J.impl_witness.05c) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.f86: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.c42) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.d52: %J.WithSelf.F.type.f86 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.b68: %J.type = facet_value %FMissingReturnType, (%J.impl_witness.50a) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.273: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.b68) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.e6d: %J.WithSelf.F.type.273 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.type.9cd56a.2: type = fn_type @FMissingReturnType.as.J.impl.F.loc148_30.2 [concrete]
|
||||
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.6975be.2: %FMissingReturnType.as.J.impl.F.type.9cd56a.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
|
||||
@@ -348,15 +348,15 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %assoc0.0ac: %ImplicitAs.assoc_type.fcc = assoc_entity element0, imports.%Core.import_ref.f9d [symbolic]
|
||||
// CHECK:STDOUT: %FDifferentParamType: type = class_type @FDifferentParamType [concrete]
|
||||
// CHECK:STDOUT: %.593: <witness> = impl_self_witness %FDifferentParamType, @J [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.553: <witness> = impl_witness @FDifferentParamType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.9e2: <witness> = impl_witness @FDifferentParamType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.5d3: type = pattern_type %FDifferentParamType [concrete]
|
||||
// CHECK:STDOUT: %b.param_patt.0a8: %pattern_type.5d3 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %b.patt.05d: %pattern_type.5d3 = at_binding_pattern b, %b.param_patt.0a8 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1: type = fn_type @FDifferentParamType.as.J.impl.F.loc163_38.1 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.28602a.1: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.47a: %J.type = facet_value %FDifferentParamType, (%J.impl_witness.553) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.9c3: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.47a) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.4cd: %J.WithSelf.F.type.9c3 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.73e: %J.type = facet_value %FDifferentParamType, (%J.impl_witness.9e2) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.049: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.73e) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.227: %J.WithSelf.F.type.049 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.type.4a2e9b.2: type = fn_type @FDifferentParamType.as.J.impl.F.loc163_38.2 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.28602a.2: %FDifferentParamType.as.J.impl.F.type.4a2e9b.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.4ba: type = facet_type <@ImplicitAs, @ImplicitAs(%FDifferentParamType)> [concrete]
|
||||
@@ -364,15 +364,15 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %assoc0.603: %ImplicitAs.assoc_type.503 = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentImplicitParamType: type = class_type @FDifferentImplicitParamType [concrete]
|
||||
// CHECK:STDOUT: %.46c: <witness> = impl_self_witness %FDifferentImplicitParamType, @J [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.cc3: <witness> = impl_witness @FDifferentImplicitParamType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.d1a: <witness> = impl_witness @FDifferentImplicitParamType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.1bc: type = pattern_type %FDifferentImplicitParamType [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.ea6: %pattern_type.1bc = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.a07: %pattern_type.1bc = at_binding_pattern self, %self.param_patt.ea6 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1: type = fn_type @FDifferentImplicitParamType.as.J.impl.F.loc176_32.1 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.792c78.1: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.929: %J.type = facet_value %FDifferentImplicitParamType, (%J.impl_witness.cc3) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.97c: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.929) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.94b: %J.WithSelf.F.type.97c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.00a: %J.type = facet_value %FDifferentImplicitParamType, (%J.impl_witness.d1a) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.546: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.00a) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.17b: %J.WithSelf.F.type.546 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.2: type = fn_type @FDifferentImplicitParamType.as.J.impl.F.loc176_32.2 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.792c78.2: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.de7: type = facet_type <@ImplicitAs, @ImplicitAs(%FDifferentImplicitParamType)> [concrete]
|
||||
@@ -380,16 +380,16 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %assoc0.769: %ImplicitAs.assoc_type.36e = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentReturnType: type = class_type @FDifferentReturnType [concrete]
|
||||
// CHECK:STDOUT: %.ce7: <witness> = impl_self_witness %FDifferentReturnType, @J [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.6ab: <witness> = impl_witness @FDifferentReturnType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.6a4: <witness> = impl_witness @FDifferentReturnType.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %.1f5: Core.Form = init_form %FDifferentReturnType [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.b9f: type = pattern_type %FDifferentReturnType [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt.f37: %pattern_type.b9f = out_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.patt.e4f: %pattern_type.b9f = return_slot_pattern %return.param_patt.f37, %FDifferentReturnType [concrete]
|
||||
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1: type = fn_type @FDifferentReturnType.as.J.impl.F.loc194_38.1 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.9725a5.1: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.b85: %J.type = facet_value %FDifferentReturnType, (%J.impl_witness.6ab) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.a9c: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.b85) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.6ec: %J.WithSelf.F.type.a9c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.6a7: %J.type = facet_value %FDifferentReturnType, (%J.impl_witness.6a4) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.1a1: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.6a7) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.efe: %J.WithSelf.F.type.1a1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.type.ff55f4.2: type = fn_type @FDifferentReturnType.as.J.impl.F.loc194_38.2 [concrete]
|
||||
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.9725a5.2: %FDifferentReturnType.as.J.impl.F.type.ff55f4.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete]
|
||||
@@ -419,7 +419,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %assoc0.219: %SelfNested.assoc_type = assoc_entity element0, @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %SelfNestedBadParam: type = class_type @SelfNestedBadParam [concrete]
|
||||
// CHECK:STDOUT: %.83b: <witness> = impl_self_witness %SelfNestedBadParam, @SelfNested [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.d7c: <witness> = impl_witness @SelfNestedBadParam.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.09d: <witness> = impl_witness @SelfNestedBadParam.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %ptr.52e: type = ptr_type %SelfNestedBadParam [concrete]
|
||||
// CHECK:STDOUT: %struct_type.x.y.fb8: type = struct_type {.x: %i32, .y: %i32} [concrete]
|
||||
// CHECK:STDOUT: %tuple.991: %tuple.type.24b = tuple_value (%ptr.52e, %struct_type.x.y.fb8) [concrete]
|
||||
@@ -434,9 +434,9 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.patt.98a: %pattern_type.3a0 = return_slot_pattern %return.param_patt.489, %array_type.291 [concrete]
|
||||
// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1: type = fn_type @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.1 [concrete]
|
||||
// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.5fd896.1: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.fc6: %SelfNested.type = facet_value %SelfNestedBadParam, (%SelfNested.impl_witness.d7c) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.75d: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.fc6) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.379: %SelfNested.WithSelf.F.type.75d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.d0d: %SelfNested.type = facet_value %SelfNestedBadParam, (%SelfNested.impl_witness.09d) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.398: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.d0d) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.175: %SelfNested.WithSelf.F.type.398 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %struct_type.x.y.da2: type = struct_type {.x: %SelfNestedBadParam, .y: %i32} [concrete]
|
||||
// CHECK:STDOUT: %tuple.09d: %tuple.type.24b = tuple_value (%ptr.52e, %struct_type.x.y.da2) [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.9ab: type = tuple_type (%ptr.52e, %struct_type.x.y.da2) [concrete]
|
||||
@@ -450,7 +450,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %assoc0.368: %ImplicitAs.assoc_type.e23 = assoc_entity element0, imports.%Core.import_ref.cb2 [concrete]
|
||||
// CHECK:STDOUT: %SelfNestedBadReturnType: type = class_type @SelfNestedBadReturnType [concrete]
|
||||
// CHECK:STDOUT: %.020: <witness> = impl_self_witness %SelfNestedBadReturnType, @SelfNested [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.abd: <witness> = impl_witness @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.849: <witness> = impl_witness @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %ptr.f55: type = ptr_type %SelfNestedBadReturnType [concrete]
|
||||
// CHECK:STDOUT: %struct_type.x.y.f6a: type = struct_type {.x: %SelfNestedBadReturnType, .y: %i32} [concrete]
|
||||
// CHECK:STDOUT: %tuple.96d: %tuple.type.24b = tuple_value (%ptr.f55, %struct_type.x.y.f6a) [concrete]
|
||||
@@ -460,9 +460,9 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %x.patt.ef5: %pattern_type.5c2 = at_binding_pattern x, %x.param_patt.7be [concrete]
|
||||
// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1: type = fn_type @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.1 [concrete]
|
||||
// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.68c: %SelfNested.type = facet_value %SelfNestedBadReturnType, (%SelfNested.impl_witness.abd) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.53d: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.68c) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.f39: %SelfNested.WithSelf.F.type.53d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.e71: %SelfNested.type = facet_value %SelfNestedBadReturnType, (%SelfNested.impl_witness.849) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.20c: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.e71) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.bab: %SelfNested.WithSelf.F.type.20c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %array_type.a08: type = array_type %int_4, %SelfNestedBadReturnType [concrete]
|
||||
// CHECK:STDOUT: %.442: Core.Form = init_form %array_type.a08 [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.f0d: type = pattern_type %array_type.a08 [concrete]
|
||||
@@ -631,7 +631,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @NoF.as.I.impl: %Self.ref as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (<error>), @NoF.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.85e]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.ff5]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = <poisoned>
|
||||
@@ -642,7 +642,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: impl @FNotFunction.as.I.impl: %Self.ref as %I.ref {
|
||||
// CHECK:STDOUT: %F.decl: type = class_decl @F [concrete = constants.%F] {} {}
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (<error>), @FNotFunction.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.b51]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.ef7]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %F.decl
|
||||
@@ -654,7 +654,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %PossiblyF.ref: %PossiblyF.type = name_ref PossiblyF, file.%PossiblyF.decl [concrete = constants.%PossiblyF]
|
||||
// CHECK:STDOUT: %F: %PossiblyF.type = alias_binding F, %PossiblyF.ref [concrete = constants.%PossiblyF]
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (<error>), @FAlias.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.e2e]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.fe5]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .PossiblyF = <poisoned>
|
||||
@@ -674,7 +674,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.decl.loc69_18.2: %FExtraParam.as.I.impl.F.type.ec7b0b.2 = fn_decl @FExtraParam.as.I.impl.F.loc69_18.2 [concrete = constants.%FExtraParam.as.I.impl.F.ef9801.2] {} {}
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%FExtraParam.as.I.impl.F.decl.loc69_18.2), @FExtraParam.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.99e]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.0d1]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FExtraParam.as.I.impl.F.decl.loc69_18.1
|
||||
@@ -693,7 +693,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.decl.loc85_15.2: %FExtraImplicitParam.as.I.impl.F.type.54cac2.2 = fn_decl @FExtraImplicitParam.as.I.impl.F.loc85_15.2 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.a42f35.2] {} {}
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%FExtraImplicitParam.as.I.impl.F.decl.loc85_15.2), @FExtraImplicitParam.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.2da]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.989]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FExtraImplicitParam.as.I.impl.F.decl.loc85_15.1
|
||||
@@ -712,7 +712,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (<error>), @FExtraReturnType.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.b63]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.5ee]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FExtraReturnType.as.I.impl.F.decl
|
||||
@@ -735,14 +735,14 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.param: ref bool = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.d77) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.d77) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_29.2: %FMissingParam.as.J.impl.F.type.aad6ec.2 = fn_decl @FMissingParam.as.J.impl.F.loc117_29.2 [concrete = constants.%FMissingParam.as.J.impl.F.dd09dc.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.d77) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.d77) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.d77) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: bool = value_param call_param0
|
||||
// CHECK:STDOUT: %self: bool = wrapper_binding self, %self.param
|
||||
@@ -752,7 +752,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FMissingParam.as.J.impl.F.decl.loc117_29.2), @FMissingParam.as.J.impl [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.a34]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.24e]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FMissingParam.as.J.impl.F.decl.loc117_29.1
|
||||
@@ -775,14 +775,14 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.param: ref bool = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.3f0) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.3f0) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2: %FMissingImplicitParam.as.J.impl.F.type.f666a8.2 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.620ed1.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.3f0) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.3f0) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.3f0) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: bool = value_param call_param0
|
||||
// CHECK:STDOUT: %self: bool = wrapper_binding self, %self.param
|
||||
@@ -792,7 +792,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2), @FMissingImplicitParam.as.J.impl [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.7e6]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.0d0]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1
|
||||
@@ -814,14 +814,14 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %.loc148_25: type = type_literal bool [concrete = bool]
|
||||
// CHECK:STDOUT: %b: bool = wrapper_binding b, %b.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.c42) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.c42) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.b68) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc148_30.2: %FMissingReturnType.as.J.impl.F.type.9cd56a.2 = fn_decl @FMissingReturnType.as.J.impl.F.loc148_30.2 [concrete = constants.%FMissingReturnType.as.J.impl.F.6975be.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.c42) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.c42) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.c42) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: bool = value_param call_param0
|
||||
// CHECK:STDOUT: %self: bool = wrapper_binding self, %self.param
|
||||
@@ -831,7 +831,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FMissingReturnType.as.J.impl.F.decl.loc148_30.2), @FMissingReturnType.as.J.impl [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.05c]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.50a]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FMissingReturnType.as.J.impl.F.decl.loc148_30.1
|
||||
@@ -859,14 +859,14 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.param: ref bool = out_param call_param2
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.47a) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.47a) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.73e) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc163_38.2: %FDifferentParamType.as.J.impl.F.type.4a2e9b.2 = fn_decl @FDifferentParamType.as.J.impl.F.loc163_38.2 [concrete = constants.%FDifferentParamType.as.J.impl.F.28602a.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.47a) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.47a) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.47a) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: bool = value_param call_param0
|
||||
// CHECK:STDOUT: %self: bool = wrapper_binding self, %self.param
|
||||
@@ -876,7 +876,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FDifferentParamType.as.J.impl.F.decl.loc163_38.2), @FDifferentParamType.as.J.impl [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.553]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.9e2]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FDifferentParamType.as.J.impl.F.decl.loc163_38.1
|
||||
@@ -904,14 +904,14 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.param: ref bool = out_param call_param2
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.929) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.929) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.00a) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.2: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.2 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc176_32.2 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.792c78.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.929) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.929) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.929) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: bool = value_param call_param0
|
||||
// CHECK:STDOUT: %self: bool = wrapper_binding self, %self.param
|
||||
@@ -921,7 +921,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.2), @FDifferentImplicitParamType.as.J.impl [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.cc3]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.d1a]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.1
|
||||
@@ -949,14 +949,14 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.param: ref %FDifferentReturnType = out_param call_param2
|
||||
// CHECK:STDOUT: %return: ref %FDifferentReturnType = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.b85) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.b85) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.WithSelf.F.%.loc103_44.1, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%.f34]
|
||||
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc194_38.2: %FDifferentReturnType.as.J.impl.F.type.ff55f4.2 = fn_decl @FDifferentReturnType.as.J.impl.F.loc194_38.2 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9725a5.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.b85) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%self.param_patt.210]
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.b85) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%b.param_patt.792]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.b85) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%return.patt.c0c]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: bool = value_param call_param0
|
||||
// CHECK:STDOUT: %self: bool = wrapper_binding self, %self.param
|
||||
@@ -966,7 +966,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref bool = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (%FDifferentReturnType.as.J.impl.F.decl.loc194_38.2), @FDifferentReturnType.as.J.impl [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.6ab]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness %J.impl_witness_table [concrete = constants.%J.impl_witness.6a4]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %FDifferentReturnType.as.J.impl.F.decl.loc194_38.1
|
||||
@@ -999,12 +999,12 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.param: ref %array_type.291 = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref %array_type.291 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc199_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) [concrete = constants.%array_type.291]
|
||||
// CHECK:STDOUT: %.loc199_57.2: Core.Form = specific_constant @SelfNested.WithSelf.F.%.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) [concrete = constants.%.cc2]
|
||||
// CHECK:STDOUT: %.loc199_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) [concrete = constants.%array_type.291]
|
||||
// CHECK:STDOUT: %.loc199_57.2: Core.Form = specific_constant @SelfNested.WithSelf.F.%.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) [concrete = constants.%.cc2]
|
||||
// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc211_87.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.2 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.2 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.5fd896.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.94f = specific_constant constants.%x.param_patt.7b9, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) [concrete = constants.%x.param_patt.7b9]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.94f = specific_constant constants.%x.param_patt.7b9, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) [concrete = constants.%x.param_patt.7b9]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.94f = at_binding_pattern x, %.1 [concrete = constants.%x.patt.4b4]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.3a0 = specific_constant constants.%return.patt.98a, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) [concrete = constants.%return.patt.98a]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.3a0 = specific_constant constants.%return.patt.98a, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) [concrete = constants.%return.patt.98a]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %x.param: %tuple.type.9ab = value_param call_param0
|
||||
// CHECK:STDOUT: %x: %tuple.type.9ab = wrapper_binding x, %x.param
|
||||
@@ -1012,7 +1012,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref %array_type.291 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc211_87.2), @SelfNestedBadParam.as.SelfNested.impl [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.d7c]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.09d]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .SelfNestedBadParam = <poisoned>
|
||||
@@ -1046,12 +1046,12 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.param: ref %array_type.291 = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref %array_type.291 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc199_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) [concrete = constants.%array_type.a08]
|
||||
// CHECK:STDOUT: %.loc199_57.2: Core.Form = specific_constant @SelfNested.WithSelf.F.%.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) [concrete = constants.%.442]
|
||||
// CHECK:STDOUT: %.loc199_57.1: type = specific_constant @SelfNested.WithSelf.F.%array_type.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) [concrete = constants.%array_type.a08]
|
||||
// CHECK:STDOUT: %.loc199_57.2: Core.Form = specific_constant @SelfNested.WithSelf.F.%.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) [concrete = constants.%.442]
|
||||
// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc227_112.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.2 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.2 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.5c2 = specific_constant constants.%x.param_patt.7be, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) [concrete = constants.%x.param_patt.7be]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.5c2 = specific_constant constants.%x.param_patt.7be, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) [concrete = constants.%x.param_patt.7be]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.5c2 = at_binding_pattern x, %.1 [concrete = constants.%x.patt.ef5]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.f0d = specific_constant constants.%return.patt.3c4, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) [concrete = constants.%return.patt.3c4]
|
||||
// CHECK:STDOUT: %.2: %pattern_type.f0d = specific_constant constants.%return.patt.3c4, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) [concrete = constants.%return.patt.3c4]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %x.param: %tuple.type.829 = value_param call_param0
|
||||
// CHECK:STDOUT: %x: %tuple.type.829 = wrapper_binding x, %x.param
|
||||
@@ -1059,7 +1059,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return: ref %array_type.a08 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc227_112.2), @SelfNestedBadReturnType.as.SelfNested.impl [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.abd]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.849]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .SelfNestedBadReturnType = <poisoned>
|
||||
@@ -1279,7 +1279,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FExtraParam.as.I.impl.F.loc69_18.1(%b.param: bool);
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FExtraParam.as.I.impl.F.loc69_18.2() [thunk @FExtraParam.as.I.impl.%FExtraParam.as.I.impl.F.decl.loc69_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.657)] {
|
||||
// CHECK:STDOUT: fn @FExtraParam.as.I.impl.F.loc69_18.2() [thunk @FExtraParam.as.I.impl.%FExtraParam.as.I.impl.F.decl.loc69_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.476)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FExtraParam.as.I.impl.F.type.ec7b0b.1 = name_ref F, @FExtraParam.as.I.impl.%FExtraParam.as.I.impl.F.decl.loc69_18.1 [concrete = constants.%FExtraParam.as.I.impl.F.ef9801.1]
|
||||
// CHECK:STDOUT: return
|
||||
@@ -1287,7 +1287,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FExtraImplicitParam.as.I.impl.F.loc85_15.1(%self.param: %FExtraImplicitParam);
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FExtraImplicitParam.as.I.impl.F.loc85_15.2() [thunk @FExtraImplicitParam.as.I.impl.%FExtraImplicitParam.as.I.impl.F.decl.loc85_15.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.334)] {
|
||||
// CHECK:STDOUT: fn @FExtraImplicitParam.as.I.impl.F.loc85_15.2() [thunk @FExtraImplicitParam.as.I.impl.%FExtraImplicitParam.as.I.impl.F.decl.loc85_15.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.7ed)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1 = name_ref F, @FExtraImplicitParam.as.I.impl.%FExtraImplicitParam.as.I.impl.F.decl.loc85_15.1 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.a42f35.1]
|
||||
// CHECK:STDOUT: return
|
||||
@@ -1301,7 +1301,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FMissingParam.as.J.impl.F.loc117_29.1(%self.param: bool) -> out %return.param: bool;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FMissingParam.as.J.impl.F.loc117_29.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingParam.as.J.impl.%FMissingParam.as.J.impl.F.decl.loc117_29.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.d77)] {
|
||||
// CHECK:STDOUT: fn @FMissingParam.as.J.impl.F.loc117_29.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingParam.as.J.impl.%FMissingParam.as.J.impl.F.decl.loc117_29.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.2a3)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FMissingParam.as.J.impl.F.type.aad6ec.1 = name_ref F, @FMissingParam.as.J.impl.%FMissingParam.as.J.impl.F.decl.loc117_29.1 [concrete = constants.%FMissingParam.as.J.impl.F.dd09dc.1]
|
||||
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.bound: <bound method> = bound_method %self.param, %F.ref
|
||||
@@ -1310,7 +1310,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FMissingImplicitParam.as.J.impl.F.loc130_26.1(%b.param: bool) -> out %return.param: bool;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FMissingImplicitParam.as.J.impl.F.loc130_26.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingImplicitParam.as.J.impl.%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.3f0)] {
|
||||
// CHECK:STDOUT: fn @FMissingImplicitParam.as.J.impl.F.loc130_26.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingImplicitParam.as.J.impl.%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.ba1)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1 = name_ref F, @FMissingImplicitParam.as.J.impl.%FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.620ed1.1]
|
||||
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.call: init bool = call %F.ref(%b.param)
|
||||
@@ -1319,7 +1319,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FMissingReturnType.as.J.impl.F.loc148_30.1(%self.param: bool, %b.param: bool);
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FMissingReturnType.as.J.impl.F.loc148_30.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingReturnType.as.J.impl.%FMissingReturnType.as.J.impl.F.decl.loc148_30.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.c42)] {
|
||||
// CHECK:STDOUT: fn @FMissingReturnType.as.J.impl.F.loc148_30.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FMissingReturnType.as.J.impl.%FMissingReturnType.as.J.impl.F.decl.loc148_30.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.b68)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FMissingReturnType.as.J.impl.F.type.9cd56a.1 = name_ref F, @FMissingReturnType.as.J.impl.%FMissingReturnType.as.J.impl.F.decl.loc148_30.1 [concrete = constants.%FMissingReturnType.as.J.impl.F.6975be.1]
|
||||
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.bound: <bound method> = bound_method %self.param, %F.ref
|
||||
@@ -1330,7 +1330,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FDifferentParamType.as.J.impl.F.loc163_38.1(%self.param: bool, %b.param: %FDifferentParamType) -> out %return.param: bool;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FDifferentParamType.as.J.impl.F.loc163_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentParamType.as.J.impl.%FDifferentParamType.as.J.impl.F.decl.loc163_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.47a)] {
|
||||
// CHECK:STDOUT: fn @FDifferentParamType.as.J.impl.F.loc163_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentParamType.as.J.impl.%FDifferentParamType.as.J.impl.F.decl.loc163_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.73e)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1 = name_ref F, @FDifferentParamType.as.J.impl.%FDifferentParamType.as.J.impl.F.decl.loc163_38.1 [concrete = constants.%FDifferentParamType.as.J.impl.F.28602a.1]
|
||||
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.bound: <bound method> = bound_method %self.param, %F.ref
|
||||
@@ -1344,7 +1344,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FDifferentImplicitParamType.as.J.impl.F.loc176_32.1(%self.param: %FDifferentImplicitParamType, %b.param: bool) -> out %return.param: bool;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FDifferentImplicitParamType.as.J.impl.F.loc176_32.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentImplicitParamType.as.J.impl.%FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.929)] {
|
||||
// CHECK:STDOUT: fn @FDifferentImplicitParamType.as.J.impl.F.loc176_32.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentImplicitParamType.as.J.impl.%FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.00a)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1 = name_ref F, @FDifferentImplicitParamType.as.J.impl.%FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.1 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.792c78.1]
|
||||
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.bound: <bound method> = bound_method %self.param, %F.ref
|
||||
@@ -1358,7 +1358,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FDifferentReturnType.as.J.impl.F.loc194_38.1(%self.param: bool, %b.param: bool) -> out %return.param: %FDifferentReturnType;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @FDifferentReturnType.as.J.impl.F.loc194_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentReturnType.as.J.impl.%FDifferentReturnType.as.J.impl.F.decl.loc194_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.b85)] {
|
||||
// CHECK:STDOUT: fn @FDifferentReturnType.as.J.impl.F.loc194_38.2(%self.param: bool, %b.param: bool) -> out %return.param: bool [thunk @FDifferentReturnType.as.J.impl.%FDifferentReturnType.as.J.impl.F.decl.loc194_38.1 for @J.WithSelf.%J.WithSelf.F.decl, @J.WithSelf.F(constants.%J.facet.6a7)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1 = name_ref F, @FDifferentReturnType.as.J.impl.%FDifferentReturnType.as.J.impl.F.decl.loc194_38.1 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9725a5.1]
|
||||
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.bound: <bound method> = bound_method %self.param, %F.ref
|
||||
@@ -1389,7 +1389,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.1(%x.param: %tuple.type.e57) -> out %return.param: %array_type.291;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.2(%x.param: %tuple.type.9ab) -> out %return.param: %array_type.291 [thunk @SelfNestedBadParam.as.SelfNested.impl.%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc211_87.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6)] {
|
||||
// CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.2(%x.param: %tuple.type.9ab) -> out %return.param: %array_type.291 [thunk @SelfNestedBadParam.as.SelfNested.impl.%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc211_87.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1 = name_ref F, @SelfNestedBadParam.as.SelfNested.impl.%SelfNestedBadParam.as.SelfNested.impl.F.decl.loc211_87.1 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.5fd896.1]
|
||||
// CHECK:STDOUT: %.3: ref %array_type.291 = splice_block %return.param {}
|
||||
@@ -1406,7 +1406,7 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.1(%x.param: %tuple.type.829) -> out %return.param: %array_type.291;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.2(%x.param: %tuple.type.829) -> out %return.param: %array_type.a08 [thunk @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc227_112.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c)] {
|
||||
// CHECK:STDOUT: fn @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.2(%x.param: %tuple.type.829) -> out %return.param: %array_type.a08 [thunk @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc227_112.1 for @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1 = name_ref F, @SelfNestedBadReturnType.as.SelfNested.impl.%SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc227_112.1 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.1]
|
||||
// CHECK:STDOUT: %.loc227_112.1: ref %array_type.291 = temporary_storage
|
||||
@@ -1424,53 +1424,53 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.37e) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.752) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.eb1) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.752
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.3d3
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.38a
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.eb1
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.86d
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.bef
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.010) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.304) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.010
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.642
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c29
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.304
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.772
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.196
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.f6f) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.ef1) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.f6f
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.751
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.6d6
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.ef1
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.962
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.85d
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.657) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.476) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.657
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.255
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.fc1
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.476
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.7c2
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.67b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.657) {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.476) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.334) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.7ed) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.334
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.6ff
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.39e
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.7ed
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.f54
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b2a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.334) {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.7ed) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.dde) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.6f2) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.dde
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.fea
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.338
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.6f2
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.91e
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.70f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.dde) {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.6f2) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
@@ -1481,59 +1481,59 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self.653) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.d77) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.2a3) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.d77
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.51b
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.ed6
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.2a3
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.989
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.ee2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.d77) {}
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.2a3) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.3f0) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.ba1) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.3f0
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.e23
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.897
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.ba1
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.b8b
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.47f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.3f0) {}
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.ba1) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.c42) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.b68) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.c42
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.f86
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.d52
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.b68
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.273
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.e6d
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.c42) {}
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.b68) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.47a) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.73e) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.47a
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.9c3
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.4cd
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.73e
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.049
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.227
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.47a) {}
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.73e) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.929) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.00a) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.929
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.97c
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.94b
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.00a
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.546
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.17b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.929) {}
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.00a) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.b85) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.6a7) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.b85
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.a9c
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.6ec
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.6a7
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.1a1
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.efe
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.b85) {}
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.6a7) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%Self.e81) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
@@ -1559,15 +1559,15 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.patt.loc199_41.2 => constants.%return.patt.869
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.fc6) {
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.d0d) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.fc6
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.75d
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.379
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.d0d
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.398
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.175
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.fc6) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.fc6
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.d0d
|
||||
// CHECK:STDOUT: %Self.as_type.loc199_16.1 => constants.%SelfNestedBadParam
|
||||
// CHECK:STDOUT: %ptr.loc199_16.1 => constants.%ptr.52e
|
||||
// CHECK:STDOUT: %struct_type.x.y.loc199_37.1 => constants.%struct_type.x.y.da2
|
||||
@@ -1583,15 +1583,15 @@ class SelfNestedBadReturnType {
|
||||
// CHECK:STDOUT: %return.patt.loc199_41.2 => constants.%return.patt.98a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.68c) {
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.e71) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.68c
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.53d
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.f39
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.e71
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.20c
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.bab
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.68c) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.68c
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.e71
|
||||
// CHECK:STDOUT: %Self.as_type.loc199_16.1 => constants.%SelfNestedBadReturnType
|
||||
// CHECK:STDOUT: %ptr.loc199_16.1 => constants.%ptr.f55
|
||||
// CHECK:STDOUT: %struct_type.x.y.loc199_37.1 => constants.%struct_type.x.y.f6a
|
||||
|
||||
+56
-56
@@ -69,22 +69,22 @@ impl i32 as I {
|
||||
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
|
||||
// CHECK:STDOUT: %assoc0.6c9: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %.cb2: <witness> = impl_self_witness bool, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.020: <witness> = impl_witness @bool.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.11c: %I.type = facet_value bool, (%I.impl_witness.020) [concrete]
|
||||
// CHECK:STDOUT: %C.071: type = class_type @C, @C(%I.type, %I.facet.11c) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.85b: type = pattern_type %C.071 [concrete]
|
||||
// CHECK:STDOUT: %c.param_patt.ff4: %pattern_type.85b = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %c.patt.e1c: %pattern_type.85b = at_binding_pattern c, %c.param_patt.ff4 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.c3b: <witness> = impl_witness @bool.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.31d: %I.type = facet_value bool, (%I.impl_witness.c3b) [concrete]
|
||||
// CHECK:STDOUT: %C.a2c: type = class_type @C, @C(%I.type, %I.facet.31d) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.221: type = pattern_type %C.a2c [concrete]
|
||||
// CHECK:STDOUT: %c.param_patt.eba: %pattern_type.221 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %c.patt.ebd: %pattern_type.221 = at_binding_pattern c, %c.param_patt.eba [concrete]
|
||||
// CHECK:STDOUT: %bool.as.I.impl.F.type: type = fn_type @bool.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %bool.as.I.impl.F: %bool.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.4fb: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.11c) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.492: %I.WithSelf.F.type.4fb = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.158: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.31d) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.57c: %I.WithSelf.F.type.158 = struct_value () [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: %.2a7: <witness> = impl_self_witness %i32, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.903: <witness> = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.8f5: <witness> = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %X.patt.014: %pattern_type.98f = symbolic_binding_pattern X, 1 [symbolic]
|
||||
// CHECK:STDOUT: %C.8dc: type = class_type @C, @C(type, %i32) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.900: type = pattern_type %C.8dc [concrete]
|
||||
@@ -92,13 +92,13 @@ impl i32 as I {
|
||||
// CHECK:STDOUT: %c.patt.c85: %pattern_type.900 = at_binding_pattern c, %c.param_patt.e0e [concrete]
|
||||
// CHECK:STDOUT: %i32.as.I.impl.F.type.48cdab.1: type = fn_type @i32.as.I.impl.F.loc39_18.1 [concrete]
|
||||
// CHECK:STDOUT: %i32.as.I.impl.F.bd5be1.1: %i32.as.I.impl.F.type.48cdab.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.858: %I.type = facet_value %i32, (%I.impl_witness.903) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.b7c: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.858) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.ae9: %I.WithSelf.F.type.b7c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.efa: type = class_type @C, @C(%I.type, %I.facet.858) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.b7c: type = pattern_type %C.efa [concrete]
|
||||
// CHECK:STDOUT: %c.param_patt.fb1: %pattern_type.b7c = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %c.patt.d03: %pattern_type.b7c = at_binding_pattern c, %c.param_patt.fb1 [concrete]
|
||||
// CHECK:STDOUT: %I.facet.190: %I.type = facet_value %i32, (%I.impl_witness.8f5) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.201: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.190) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.9ed: %I.WithSelf.F.type.201 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.1e0: type = class_type @C, @C(%I.type, %I.facet.190) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.03a: type = pattern_type %C.1e0 [concrete]
|
||||
// CHECK:STDOUT: %c.param_patt.322: %pattern_type.03a = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %c.patt.994: %pattern_type.03a = at_binding_pattern c, %c.param_patt.322 [concrete]
|
||||
// CHECK:STDOUT: %i32.as.I.impl.F.type.48cdab.2: type = fn_type @i32.as.I.impl.F.loc39_18.2 [concrete]
|
||||
// CHECK:STDOUT: %i32.as.I.impl.F.bd5be1.2: %i32.as.I.impl.F.type.48cdab.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
|
||||
@@ -198,22 +198,22 @@ impl i32 as I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @bool.as.I.impl: %.loc24 as %I.ref {
|
||||
// CHECK:STDOUT: %bool.as.I.impl.F.decl: %bool.as.I.impl.F.type = fn_decl @bool.as.I.impl.F [concrete = constants.%bool.as.I.impl.F] {
|
||||
// CHECK:STDOUT: %c.param_patt: %pattern_type.85b = value_param_pattern [concrete = constants.%c.param_patt.ff4]
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.85b = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.e1c]
|
||||
// CHECK:STDOUT: %c.param_patt: %pattern_type.221 = value_param_pattern [concrete = constants.%c.param_patt.eba]
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.221 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.ebd]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %c.param: %C.071 = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc28_22: type = splice_block %C [concrete = constants.%C.071] {
|
||||
// CHECK:STDOUT: %c.param: %C.a2c = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc28_22: type = splice_block %C [concrete = constants.%C.a2c] {
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %.loc28_13: type = type_literal bool [concrete = bool]
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %.loc28_13, (constants.%I.impl_witness.020) [concrete = constants.%I.facet.11c]
|
||||
// CHECK:STDOUT: %.loc28_18: %I.type = converted %.loc28_13, %I.facet [concrete = constants.%I.facet.11c]
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%I.type, constants.%I.facet.11c) [concrete = constants.%C.071]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %.loc28_13, (constants.%I.impl_witness.c3b) [concrete = constants.%I.facet.31d]
|
||||
// CHECK:STDOUT: %.loc28_18: %I.type = converted %.loc28_13, %I.facet [concrete = constants.%I.facet.31d]
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%I.type, constants.%I.facet.31d) [concrete = constants.%C.a2c]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %c: %C.071 = wrapper_binding c, %c.param
|
||||
// CHECK:STDOUT: %c: %C.a2c = wrapper_binding c, %c.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%bool.as.I.impl.F.decl), @bool.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.020]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.c3b]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .C = <poisoned>
|
||||
@@ -237,14 +237,14 @@ impl i32 as I {
|
||||
// CHECK:STDOUT: %c: %C.8dc = wrapper_binding c, %c.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %i32.as.I.impl.F.decl.loc39_18.2: %i32.as.I.impl.F.type.48cdab.2 = fn_decl @i32.as.I.impl.F.loc39_18.2 [concrete = constants.%i32.as.I.impl.F.bd5be1.2] {
|
||||
// CHECK:STDOUT: %.1: %pattern_type.b7c = specific_constant constants.%c.param_patt.fb1, @I.WithSelf.F(constants.%I.facet.858) [concrete = constants.%c.param_patt.fb1]
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.b7c = at_binding_pattern c, %.1 [concrete = constants.%c.patt.d03]
|
||||
// CHECK:STDOUT: %.1: %pattern_type.03a = specific_constant constants.%c.param_patt.322, @I.WithSelf.F(constants.%I.facet.190) [concrete = constants.%c.param_patt.322]
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.03a = at_binding_pattern c, %.1 [concrete = constants.%c.patt.994]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %c.param: %C.efa = value_param call_param0
|
||||
// CHECK:STDOUT: %c: %C.efa = wrapper_binding c, %c.param
|
||||
// CHECK:STDOUT: %c.param: %C.1e0 = value_param call_param0
|
||||
// CHECK:STDOUT: %c: %C.1e0 = wrapper_binding c, %c.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%i32.as.I.impl.F.decl.loc39_18.2), @i32.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.903]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.8f5]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .C = <poisoned>
|
||||
@@ -281,11 +281,11 @@ impl i32 as I {
|
||||
// CHECK:STDOUT: fn(%c.param: @I.WithSelf.F.%C.loc21_17.1 (%C.a21));
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @bool.as.I.impl.F(%c.param: %C.071);
|
||||
// CHECK:STDOUT: fn @bool.as.I.impl.F(%c.param: %C.a2c);
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @i32.as.I.impl.F.loc39_18.1(%c.param: %C.8dc);
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @i32.as.I.impl.F.loc39_18.2(%c.param: %C.efa) [thunk @i32.as.I.impl.%i32.as.I.impl.F.decl.loc39_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.858)] {
|
||||
// CHECK:STDOUT: fn @i32.as.I.impl.F.loc39_18.2(%c.param: %C.1e0) [thunk @i32.as.I.impl.%i32.as.I.impl.F.decl.loc39_18.1 for @I.WithSelf.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.190)] {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %i32.as.I.impl.F.type.48cdab.1 = name_ref F, @i32.as.I.impl.%i32.as.I.impl.F.decl.loc39_18.1 [concrete = constants.%i32.as.I.impl.F.bd5be1.1]
|
||||
// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%C.8dc)> [concrete = constants.%ImplicitAs.type.803]
|
||||
@@ -327,27 +327,27 @@ impl i32 as I {
|
||||
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.dac
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.11c) {
|
||||
// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.31d) {
|
||||
// CHECK:STDOUT: %T.patt.loc17_10.2 => constants.%T.patt
|
||||
// CHECK:STDOUT: %T.loc17_10.1 => constants.%I.type
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb
|
||||
// CHECK:STDOUT: %X.patt.loc17_19.2 => constants.%X.patt.3b7
|
||||
// CHECK:STDOUT: %X.loc17_19.1 => constants.%I.facet.11c
|
||||
// CHECK:STDOUT: %X.loc17_19.1 => constants.%I.facet.31d
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.11c) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.31d) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.11c
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.4fb
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.492
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.31d
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.158
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.57c
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.11c) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.11c
|
||||
// CHECK:STDOUT: %C.loc21_17.1 => constants.%C.071
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.85b
|
||||
// CHECK:STDOUT: %c.param_patt.loc21_9.2 => constants.%c.param_patt.ff4
|
||||
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.e1c
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.31d) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.31d
|
||||
// CHECK:STDOUT: %C.loc21_17.1 => constants.%C.a2c
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.221
|
||||
// CHECK:STDOUT: %c.param_patt.loc21_9.2 => constants.%c.param_patt.eba
|
||||
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.ebd
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C(type, constants.%i32) {
|
||||
@@ -360,27 +360,27 @@ impl i32 as I {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.858) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.190) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.858
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b7c
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ae9
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.190
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.201
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.9ed
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.858) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.858
|
||||
// CHECK:STDOUT: %C.loc21_17.1 => constants.%C.efa
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b7c
|
||||
// CHECK:STDOUT: %c.param_patt.loc21_9.2 => constants.%c.param_patt.fb1
|
||||
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.d03
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.190) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.190
|
||||
// CHECK:STDOUT: %C.loc21_17.1 => constants.%C.1e0
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.03a
|
||||
// CHECK:STDOUT: %c.param_patt.loc21_9.2 => constants.%c.param_patt.322
|
||||
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.994
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.858) {
|
||||
// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.190) {
|
||||
// CHECK:STDOUT: %T.patt.loc17_10.2 => constants.%T.patt
|
||||
// CHECK:STDOUT: %T.loc17_10.1 => constants.%I.type
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb
|
||||
// CHECK:STDOUT: %X.patt.loc17_19.2 => constants.%X.patt.3b7
|
||||
// CHECK:STDOUT: %X.loc17_19.1 => constants.%I.facet.858
|
||||
// CHECK:STDOUT: %X.loc17_19.1 => constants.%I.facet.190
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+28
-28
@@ -315,8 +315,8 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %empty_struct_type.as.I.impl.G.type: type = fn_type @empty_struct_type.as.I.impl.G [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type.as.I.impl.G: %empty_struct_type.as.I.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_struct_type, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.G.type.d68: type = fn_type @I.WithSelf.G, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.G.a3d: %I.WithSelf.G.type.d68 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.G.type.391: type = fn_type @I.WithSelf.G, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.G.0d6: %I.WithSelf.G.type.391 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -396,8 +396,8 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.G.type => constants.%I.WithSelf.G.type.d68
|
||||
// CHECK:STDOUT: %I.WithSelf.G => constants.%I.WithSelf.G.a3d
|
||||
// CHECK:STDOUT: %I.WithSelf.G.type => constants.%I.WithSelf.G.type.391
|
||||
// CHECK:STDOUT: %I.WithSelf.G => constants.%I.WithSelf.G.0d6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.G(constants.%I.facet) {}
|
||||
@@ -413,8 +413,8 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.impl_witness: <witness> = impl_witness imports.%BitAndWith.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.76f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.eef: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.76f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: <bound method> = bound_method %I.type, %type.as.BitAndWith.impl.Op [concrete]
|
||||
@@ -449,7 +449,7 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %.loc4_7.2: type = converted %.loc4_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: %I.ref.loc4_12: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %I.ref.loc4_16: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %impl.elem0.loc4: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0.loc4: %.eef = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method.loc4: <bound method> = bound_method %I.ref.loc4_12, %impl.elem0.loc4 [concrete = constants.%type.as.BitAndWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc4: init type = call %bound_method.loc4(%I.ref.loc4_12, %I.ref.loc4_16) [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -462,7 +462,7 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %.loc7_7.2: type = converted %.loc7_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: %I.ref.loc7_12: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %I.ref.loc7_16: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %impl.elem0.loc7: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0.loc7: %.eef = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method.loc7: <bound method> = bound_method %I.ref.loc7_12, %impl.elem0.loc7 [concrete = constants.%type.as.BitAndWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc7: init type = call %bound_method.loc7(%I.ref.loc7_12, %I.ref.loc7_16) [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1366,10 +1366,10 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.fde: type = class_type @C, @C(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %D, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %C.fd5: type = class_type @C, @C(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.0a8: type = pattern_type %C.fd5 [concrete]
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.0a8 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.0a8 = at_binding_pattern x, %x.param_patt [concrete]
|
||||
// CHECK:STDOUT: %C.c62: type = class_type @C, @C(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.91a: type = pattern_type %C.c62 [concrete]
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.91a = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.91a = at_binding_pattern x, %x.param_patt [concrete]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic]
|
||||
@@ -1408,18 +1408,18 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %T.loc6_10.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %F.decl.loc8: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.0a8 = value_param_pattern [concrete = constants.%x.param_patt]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.0a8 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.91a = value_param_pattern [concrete = constants.%x.param_patt]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.91a = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %x.param.loc8: %C.fd5 = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc8_12.1: type = splice_block %C.loc8 [concrete = constants.%C.fd5] {
|
||||
// CHECK:STDOUT: %x.param.loc8: %C.c62 = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc8_12.1: type = splice_block %C.loc8 [concrete = constants.%C.c62] {
|
||||
// CHECK:STDOUT: %C.ref.loc8: %C.type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %D.ref.loc8: type = name_ref D, file.%D.decl [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %I.facet.loc8: %I.type = facet_value %D.ref.loc8, (constants.%I.impl_witness) [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %.loc8_12.2: %I.type = converted %D.ref.loc8, %I.facet.loc8 [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.fd5]
|
||||
// CHECK:STDOUT: %C.loc8: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.c62]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %x.loc8: %C.fd5 = wrapper_binding x, %x.param.loc8
|
||||
// CHECK:STDOUT: %x.loc8: %C.c62 = wrapper_binding x, %x.param.loc8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %I.decl.loc10: type = interface_decl @I [concrete = constants.%I.type] {} {}
|
||||
// CHECK:STDOUT: impl_decl @D.as.I.impl [concrete] {} {
|
||||
@@ -1437,18 +1437,18 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %T.loc12: %I.type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %F.decl.loc14: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.0a8 = value_param_pattern [concrete = constants.%x.param_patt]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.0a8 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.91a = value_param_pattern [concrete = constants.%x.param_patt]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.91a = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %x.param.loc14: %C.fd5 = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc14_19.1: type = splice_block %C.loc14 [concrete = constants.%C.fd5] {
|
||||
// CHECK:STDOUT: %x.param.loc14: %C.c62 = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc14_19.1: type = splice_block %C.loc14 [concrete = constants.%C.c62] {
|
||||
// CHECK:STDOUT: %C.ref.loc14: %C.type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %D.ref.loc14: type = name_ref D, file.%D.decl [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %I.facet.loc14: %I.type = facet_value %D.ref.loc14, (constants.%I.impl_witness) [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %.loc14_19.2: %I.type = converted %D.ref.loc14, %I.facet.loc14 [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.fd5]
|
||||
// CHECK:STDOUT: %C.loc14: type = class_type @C, @C(constants.%I.facet) [concrete = constants.%C.c62]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %x.loc14: %C.fd5 = wrapper_binding x, %x.param.loc14
|
||||
// CHECK:STDOUT: %x.loc14: %C.c62 = wrapper_binding x, %x.param.loc14
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1495,7 +1495,7 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F(%x.param.loc14: %C.fd5) {
|
||||
// CHECK:STDOUT: fn @F(%x.param.loc14: %C.c62) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1532,8 +1532,8 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.impl_witness: <witness> = impl_witness imports.%BitAndWith.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.76f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.eef: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.76f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: <bound method> = bound_method %I.type, %type.as.BitAndWith.impl.Op [concrete]
|
||||
@@ -1569,7 +1569,7 @@ impl C as Y {}
|
||||
// CHECK:STDOUT: %.loc10_7.2: type = converted %.loc10_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl.loc4 [concrete = constants.%J.type]
|
||||
// CHECK:STDOUT: %impl.elem0: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0: %.eef = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %I.ref, %impl.elem0 [concrete = constants.%type.as.BitAndWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method(%I.ref, %J.ref) [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+32
-32
@@ -138,29 +138,29 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.dda: %I.type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.b38: type = facet_access_type %T.dda [symbolic]
|
||||
// CHECK:STDOUT: %.915: <witness> = impl_self_witness %T.as_type.b38, @Interface [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.5b0: <witness> = impl_witness @T.as_type.as.Interface.impl.72f.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(%T.dda) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.740: <witness> = impl_witness @T.as_type.as.Interface.impl.72f.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(%T.dda) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.2c5: type = pattern_type %J.type [concrete]
|
||||
// CHECK:STDOUT: %T.patt.ac1: %pattern_type.2c5 = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.e40: %J.type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.d90: type = facet_access_type %T.e40 [symbolic]
|
||||
// CHECK:STDOUT: %.eab: <witness> = impl_self_witness %T.as_type.d90, @Interface [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.614: <witness> = impl_witness @T.as_type.as.Interface.impl.24e.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(%T.e40) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.cb9: <witness> = impl_witness @T.as_type.as.Interface.impl.24e.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(%T.e40) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.b64: type = pattern_type %K.type [concrete]
|
||||
// CHECK:STDOUT: %T.patt.0ef: %pattern_type.b64 = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.062: %K.type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.1ea: type = facet_access_type %T.062 [symbolic]
|
||||
// CHECK:STDOUT: %.2ae: <witness> = impl_self_witness %T.as_type.1ea, @Interface [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.bda: <witness> = impl_witness @T.as_type.as.Interface.impl.b21.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(%T.062) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.e2e: <witness> = impl_witness @T.as_type.as.Interface.impl.b21.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(%T.062) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.25e: type = pattern_type %L.type [concrete]
|
||||
// CHECK:STDOUT: %T.patt.b11: %pattern_type.25e = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.709: %L.type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.56f: type = facet_access_type %T.709 [symbolic]
|
||||
// CHECK:STDOUT: %.30d: <witness> = impl_self_witness %T.as_type.56f, @Interface [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.9d3: <witness> = impl_witness @T.as_type.as.Interface.impl.2b4.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(%T.709) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.8e9: %Interface.type = facet_value %T.as_type.b38, (%Interface.impl_witness.5b0) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.d46: %Interface.type = facet_value %T.as_type.d90, (%Interface.impl_witness.614) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.8be: %Interface.type = facet_value %T.as_type.1ea, (%Interface.impl_witness.bda) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.ed4: %Interface.type = facet_value %T.as_type.56f, (%Interface.impl_witness.9d3) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.3f0: <witness> = impl_witness @T.as_type.as.Interface.impl.2b4.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(%T.709) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.6a0: %Interface.type = facet_value %T.as_type.b38, (%Interface.impl_witness.740) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.316: %Interface.type = facet_value %T.as_type.d90, (%Interface.impl_witness.cb9) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.a30: %Interface.type = facet_value %T.as_type.1ea, (%Interface.impl_witness.e2e) [symbolic]
|
||||
// CHECK:STDOUT: %Interface.facet.edc: %Interface.type = facet_value %T.as_type.56f, (%Interface.impl_witness.3f0) [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -359,13 +359,13 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc12_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.dda)]
|
||||
// CHECK:STDOUT: %T.as_type.loc12_20.2: type = facet_access_type %T.loc12_15.2 [symbolic = %T.as_type.loc12_20.2 (constants.%T.as_type.b38)]
|
||||
// CHECK:STDOUT: %.loc12_34: <witness> = impl_self_witness %T.as_type.loc12_20.2, @Interface [symbolic = %.loc12_34 (constants.%.915)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc12_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(%T.loc12_15.2) [symbolic = %Interface.impl_witness.loc12_34.2 (constants.%Interface.impl_witness.5b0)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc12_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(%T.loc12_15.2) [symbolic = %Interface.impl_witness.loc12_34.2 (constants.%Interface.impl_witness.740)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %.loc12_20 as %Interface.ref.loc12 {
|
||||
// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.72f [concrete]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc12_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(constants.%T.dda) [symbolic = %Interface.impl_witness.loc12_34.2 (constants.%Interface.impl_witness.5b0)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc12_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.72f(constants.%T.dda) [symbolic = %Interface.impl_witness.loc12_34.2 (constants.%Interface.impl_witness.740)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %Interface.ref.loc12
|
||||
@@ -378,13 +378,13 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc13_15.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.e40)]
|
||||
// CHECK:STDOUT: %T.as_type.loc13_20.2: type = facet_access_type %T.loc13_15.2 [symbolic = %T.as_type.loc13_20.2 (constants.%T.as_type.d90)]
|
||||
// CHECK:STDOUT: %.loc13_34: <witness> = impl_self_witness %T.as_type.loc13_20.2, @Interface [symbolic = %.loc13_34 (constants.%.eab)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc13_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(%T.loc13_15.2) [symbolic = %Interface.impl_witness.loc13_34.2 (constants.%Interface.impl_witness.614)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc13_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(%T.loc13_15.2) [symbolic = %Interface.impl_witness.loc13_34.2 (constants.%Interface.impl_witness.cb9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %.loc13_20 as %Interface.ref.loc13 {
|
||||
// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.24e [concrete]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc13_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(constants.%T.e40) [symbolic = %Interface.impl_witness.loc13_34.2 (constants.%Interface.impl_witness.614)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc13_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.24e(constants.%T.e40) [symbolic = %Interface.impl_witness.loc13_34.2 (constants.%Interface.impl_witness.cb9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %Interface.ref.loc13
|
||||
@@ -397,13 +397,13 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc14_15.2: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.062)]
|
||||
// CHECK:STDOUT: %T.as_type.loc14_20.2: type = facet_access_type %T.loc14_15.2 [symbolic = %T.as_type.loc14_20.2 (constants.%T.as_type.1ea)]
|
||||
// CHECK:STDOUT: %.loc14_34: <witness> = impl_self_witness %T.as_type.loc14_20.2, @Interface [symbolic = %.loc14_34 (constants.%.2ae)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc14_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(%T.loc14_15.2) [symbolic = %Interface.impl_witness.loc14_34.2 (constants.%Interface.impl_witness.bda)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc14_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(%T.loc14_15.2) [symbolic = %Interface.impl_witness.loc14_34.2 (constants.%Interface.impl_witness.e2e)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %.loc14_20 as %Interface.ref.loc14 {
|
||||
// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.b21 [concrete]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc14_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(constants.%T.062) [symbolic = %Interface.impl_witness.loc14_34.2 (constants.%Interface.impl_witness.bda)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc14_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.b21(constants.%T.062) [symbolic = %Interface.impl_witness.loc14_34.2 (constants.%Interface.impl_witness.e2e)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %Interface.ref.loc14
|
||||
@@ -416,13 +416,13 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc15_15.2: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.709)]
|
||||
// CHECK:STDOUT: %T.as_type.loc15_20.2: type = facet_access_type %T.loc15_15.2 [symbolic = %T.as_type.loc15_20.2 (constants.%T.as_type.56f)]
|
||||
// CHECK:STDOUT: %.loc15_34: <witness> = impl_self_witness %T.as_type.loc15_20.2, @Interface [symbolic = %.loc15_34 (constants.%.30d)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc15_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(%T.loc15_15.2) [symbolic = %Interface.impl_witness.loc15_34.2 (constants.%Interface.impl_witness.9d3)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc15_34.2: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(%T.loc15_15.2) [symbolic = %Interface.impl_witness.loc15_34.2 (constants.%Interface.impl_witness.3f0)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %.loc15_20 as %Interface.ref.loc15 {
|
||||
// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.2b4 [concrete]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc15_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(constants.%T.709) [symbolic = %Interface.impl_witness.loc15_34.2 (constants.%Interface.impl_witness.9d3)]
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc15_34.1: <witness> = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.2b4(constants.%T.709) [symbolic = %Interface.impl_witness.loc15_34.2 (constants.%Interface.impl_witness.3f0)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %Interface.ref.loc15
|
||||
@@ -447,7 +447,7 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc12_15.2 => constants.%T.dda
|
||||
// CHECK:STDOUT: %T.as_type.loc12_20.2 => constants.%T.as_type.b38
|
||||
// CHECK:STDOUT: %.loc12_34 => constants.%.915
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc12_34.2 => constants.%Interface.impl_witness.5b0
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc12_34.2 => constants.%Interface.impl_witness.740
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.24e(constants.%T.e40) {
|
||||
@@ -455,7 +455,7 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc13_15.2 => constants.%T.e40
|
||||
// CHECK:STDOUT: %T.as_type.loc13_20.2 => constants.%T.as_type.d90
|
||||
// CHECK:STDOUT: %.loc13_34 => constants.%.eab
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc13_34.2 => constants.%Interface.impl_witness.614
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc13_34.2 => constants.%Interface.impl_witness.cb9
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.b21(constants.%T.062) {
|
||||
@@ -463,7 +463,7 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc14_15.2 => constants.%T.062
|
||||
// CHECK:STDOUT: %T.as_type.loc14_20.2 => constants.%T.as_type.1ea
|
||||
// CHECK:STDOUT: %.loc14_34 => constants.%.2ae
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc14_34.2 => constants.%Interface.impl_witness.bda
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc14_34.2 => constants.%Interface.impl_witness.e2e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.2b4(constants.%T.709) {
|
||||
@@ -471,22 +471,22 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %T.loc15_15.2 => constants.%T.709
|
||||
// CHECK:STDOUT: %T.as_type.loc15_20.2 => constants.%T.as_type.56f
|
||||
// CHECK:STDOUT: %.loc15_34 => constants.%.30d
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc15_34.2 => constants.%Interface.impl_witness.9d3
|
||||
// CHECK:STDOUT: %Interface.impl_witness.loc15_34.2 => constants.%Interface.impl_witness.3f0
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.8e9) {
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.6a0) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.d46) {
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.316) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.8be) {
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.a30) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.ed4) {
|
||||
// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.edc) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -642,13 +642,13 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete]
|
||||
// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %.b7f: <witness> = impl_self_witness %C, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.1c7395.1: <witness> = impl_witness @C.as.I.impl.e103db.1.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.c56855.1: %I.type = facet_value %C, (%I.impl_witness.1c7395.1) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.df5481.1: <witness> = impl_witness @C.as.I.impl.e103db.1.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.a71ed7.1: %I.type = facet_value %C, (%I.impl_witness.df5481.1) [concrete]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (type, type) [concrete]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%C, %C) [concrete]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.1c7395.2: <witness> = impl_witness @C.as.I.impl.e103db.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.c56855.2: %I.type = facet_value %C, (%I.impl_witness.1c7395.2) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.df5481.2: <witness> = impl_witness @C.as.I.impl.e103db.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.a71ed7.2: %I.type = facet_value %C, (%I.impl_witness.df5481.2) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -698,7 +698,7 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.I.impl.e103db.1: %C.ref as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e103db.1 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.1c7395.1]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.df5481.1]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %I.ref
|
||||
@@ -707,7 +707,7 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.I.impl.e103db.2: %tuple.elem0 as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.e103db.2 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.1c7395.2]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.df5481.2]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %I.ref
|
||||
@@ -720,11 +720,11 @@ impl forall [T: type] T as I {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.c56855.1) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.a71ed7.1) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.c56855.2) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.a71ed7.2) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+4
-4
@@ -41,8 +41,8 @@ class C {
|
||||
// CHECK:STDOUT: %C.as.Simple.impl.F.type: type = fn_type @C.as.Simple.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.Simple.impl.F: %C.as.Simple.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, (%Simple.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type.c73: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.bbe: %Simple.WithSelf.F.type.c73 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type.a3b: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [concrete]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.81b: %Simple.WithSelf.F.type.a3b = struct_value () [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.98b: type = pattern_type %C [concrete]
|
||||
@@ -160,8 +160,8 @@ class C {
|
||||
// CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Simple.facet
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.c73
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.bbe
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.a3b
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.81b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Simple.WithSelf.F(constants.%Simple.facet) {}
|
||||
|
||||
@@ -64,12 +64,12 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a2a: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.1aa, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a2a) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b7a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8eb, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094: <bound method> = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: <specific function> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %bound_method.953: <bound method> = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete]
|
||||
@@ -86,8 +86,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %SubWith.type.4c2: type = facet_type <@SubWith, @SubWith(Core.IntLiteral)> [concrete]
|
||||
// CHECK:STDOUT: %SubWith.impl_witness: <witness> = impl_witness imports.%SubWith.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %SubWith.facet: %SubWith.type.4c2 = facet_value Core.IntLiteral, (%SubWith.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %SubWith.WithSelf.Op.type.1e8: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(Core.IntLiteral, %SubWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.336: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.1e8, %SubWith.facet [concrete]
|
||||
// CHECK:STDOUT: %SubWith.WithSelf.Op.type.547: type = fn_type @SubWith.WithSelf.Op, @SubWith.WithSelf(Core.IntLiteral, %SubWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.83f: type = fn_type_with_self_type %SubWith.WithSelf.Op.type.547, %SubWith.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op.type: type = fn_type @Core.IntLiteral.as.SubWith.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op: %Core.IntLiteral.as.SubWith.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op.bound: <bound method> = bound_method %int_3, %Core.IntLiteral.as.SubWith.impl.Op [concrete]
|
||||
@@ -97,8 +97,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %DivWith.type.e2a: type = facet_type <@DivWith, @DivWith(Core.IntLiteral)> [concrete]
|
||||
// CHECK:STDOUT: %DivWith.impl_witness: <witness> = impl_witness imports.%DivWith.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %DivWith.facet: %DivWith.type.e2a = facet_value Core.IntLiteral, (%DivWith.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %DivWith.WithSelf.Op.type.a61: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(Core.IntLiteral, %DivWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.26e: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.a61, %DivWith.facet [concrete]
|
||||
// CHECK:STDOUT: %DivWith.WithSelf.Op.type.ef5: type = fn_type @DivWith.WithSelf.Op, @DivWith.WithSelf(Core.IntLiteral, %DivWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.187: type = fn_type_with_self_type %DivWith.WithSelf.Op.type.ef5, %DivWith.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op.type: type = fn_type @Core.IntLiteral.as.DivWith.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op: %Core.IntLiteral.as.DivWith.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op.bound: <bound method> = bound_method %int_4, %Core.IntLiteral.as.DivWith.impl.Op [concrete]
|
||||
@@ -125,7 +125,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic]
|
||||
// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.0e9.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.0e9.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete]
|
||||
// CHECK:STDOUT: %Core.SubWith: %SubWith.type.f8d = import_ref Core//prelude/operators/arithmetic, SubWith, loaded [concrete = constants.%SubWith.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.abd97d.1 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded
|
||||
// CHECK:STDOUT: %Core.import_ref.9c3475.1: %Core.IntLiteral.as.SubWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op]
|
||||
@@ -159,14 +159,14 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %int_2.loc6_46: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %.loc6_47.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2.loc6_46) [concrete = constants.%tuple.ad8]
|
||||
// CHECK:STDOUT: %.loc6_48.1: %struct_type.a.b.aa4 = struct_literal (%true, %.loc6_47.1) [concrete = constants.%struct.e57]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_47.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_47.1: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc6_47.1: <bound method> = bound_method %int_1, %impl.elem0.loc6_47.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094]
|
||||
// CHECK:STDOUT: %specific_fn.loc6_47.1: <specific function> = specific_function %impl.elem0.loc6_47.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc6_47.2: <bound method> = bound_method %int_1, %specific_fn.loc6_47.1 [concrete = constants.%bound_method.953]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.1: init %i32 = call %bound_method.loc6_47.2(%int_1) [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %.loc6_47.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_47.1 [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %.loc6_47.3: %i32 = converted %int_1, %.loc6_47.2 [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_47.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_47.2: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc6_47.3: <bound method> = bound_method %int_2.loc6_46, %impl.elem0.loc6_47.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3]
|
||||
// CHECK:STDOUT: %specific_fn.loc6_47.2: <specific function> = specific_function %impl.elem0.loc6_47.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc6_47.4: <bound method> = bound_method %int_2.loc6_46, %specific_fn.loc6_47.2 [concrete = constants.%bound_method.3cb]
|
||||
@@ -188,17 +188,17 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %.loc6_65: bool = not %false [concrete = constants.%true]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3]
|
||||
// CHECK:STDOUT: %int_2.loc6_86: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %impl.elem1.loc6_84: %.336 = impl_witness_access constants.%SubWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem1.loc6_84: %.83f = impl_witness_access constants.%SubWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method.loc6_84: <bound method> = bound_method %int_3, %impl.elem1.loc6_84 [concrete = constants.%Core.IntLiteral.as.SubWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.SubWith.impl.Op.call: init Core.IntLiteral = call %bound_method.loc6_84(%int_3, %int_2.loc6_86) [concrete = constants.%int_1.5b8]
|
||||
// CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4]
|
||||
// CHECK:STDOUT: %int_2.loc6_93: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %impl.elem1.loc6_91: %.26e = impl_witness_access constants.%DivWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem1.loc6_91: %.187 = impl_witness_access constants.%DivWith.impl_witness, element1 [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method.loc6_91: <bound method> = bound_method %int_4, %impl.elem1.loc6_91 [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.DivWith.impl.Op.call: init Core.IntLiteral = call %bound_method.loc6_91(%int_4, %int_2.loc6_93) [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %.loc6_94.1: %tuple.type.f94 = tuple_literal (%Core.IntLiteral.as.SubWith.impl.Op.call, %Core.IntLiteral.as.DivWith.impl.Op.call) [concrete = constants.%tuple.ad8]
|
||||
// CHECK:STDOUT: %.loc6_95.1: %struct_type.a.b.aa4 = struct_literal (%.loc6_65, %.loc6_94.1) [concrete = constants.%struct.e57]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_94.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_94.1: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc6_94.1: <bound method> = bound_method %Core.IntLiteral.as.SubWith.impl.Op.call, %impl.elem0.loc6_94.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094]
|
||||
// CHECK:STDOUT: %specific_fn.loc6_94.1: <specific function> = specific_function %impl.elem0.loc6_94.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc6_94.2: <bound method> = bound_method %Core.IntLiteral.as.SubWith.impl.Op.call, %specific_fn.loc6_94.1 [concrete = constants.%bound_method.953]
|
||||
@@ -207,7 +207,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.1: init %i32 = call %bound_method.loc6_94.2(%.loc6_84.2) [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %.loc6_94.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc6_94.1 [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %.loc6_94.3: %i32 = converted %Core.IntLiteral.as.SubWith.impl.Op.call, %.loc6_94.2 [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_94.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_94.2: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc6_94.3: <bound method> = bound_method %Core.IntLiteral.as.DivWith.impl.Op.call, %impl.elem0.loc6_94.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3]
|
||||
// CHECK:STDOUT: %specific_fn.loc6_94.2: <specific function> = specific_function %impl.elem0.loc6_94.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc6_94.4: <bound method> = bound_method %Core.IntLiteral.as.DivWith.impl.Op.call, %specific_fn.loc6_94.2 [concrete = constants.%bound_method.3cb]
|
||||
@@ -306,12 +306,12 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%To) [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a2a: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.1aa, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl.0e9(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a2a) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b7a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8eb, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094: <bound method> = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: <specific function> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %bound_method.953: <bound method> = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete]
|
||||
@@ -351,7 +351,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic]
|
||||
// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic]
|
||||
// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.0e9.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.0e9.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.845)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl.0e9 [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -377,14 +377,14 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %.loc10_47.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) [concrete = constants.%tuple.ad8]
|
||||
// CHECK:STDOUT: %.loc10_48.1: %struct_type.a.b.aa4 = struct_literal (%true, %.loc10_47.1) [concrete = constants.%struct.e57]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_47.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_47.1: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc10_47.1: <bound method> = bound_method %int_1, %impl.elem0.loc10_47.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.094]
|
||||
// CHECK:STDOUT: %specific_fn.loc10_47.1: <specific function> = specific_function %impl.elem0.loc10_47.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc10_47.2: <bound method> = bound_method %int_1, %specific_fn.loc10_47.1 [concrete = constants.%bound_method.953]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.1: init %i32 = call %bound_method.loc10_47.2(%int_1) [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %.loc10_47.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_47.1 [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %.loc10_47.3: %i32 = converted %int_1, %.loc10_47.2 [concrete = constants.%int_1.0c6]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_47.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_47.2: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc10_47.3: <bound method> = bound_method %int_2, %impl.elem0.loc10_47.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3]
|
||||
// CHECK:STDOUT: %specific_fn.loc10_47.2: <specific function> = specific_function %impl.elem0.loc10_47.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc10_47.4: <bound method> = bound_method %int_2, %specific_fn.loc10_47.2 [concrete = constants.%bound_method.3cb]
|
||||
@@ -407,14 +407,14 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3,
|
||||
// CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1]
|
||||
// CHECK:STDOUT: %.loc10_82.1: %tuple.type.f94 = tuple_literal (%int_3, %int_4) [concrete = constants.%tuple.302]
|
||||
// CHECK:STDOUT: %.loc10_83.1: %struct_type.a.b.aa4 = struct_literal (%false, %.loc10_82.1) [concrete = constants.%struct.1ec]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_82.1: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_82.1: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc10_82.1: <bound method> = bound_method %int_3, %impl.elem0.loc10_82.1 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485]
|
||||
// CHECK:STDOUT: %specific_fn.loc10_82.1: <specific function> = specific_function %impl.elem0.loc10_82.1, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc10_82.2: <bound method> = bound_method %int_3, %specific_fn.loc10_82.1 [concrete = constants.%bound_method.763]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.1: init %i32 = call %bound_method.loc10_82.2(%int_3) [concrete = constants.%int_3.410]
|
||||
// CHECK:STDOUT: %.loc10_82.2: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc10_82.1 [concrete = constants.%int_3.410]
|
||||
// CHECK:STDOUT: %.loc10_82.3: %i32 = converted %int_3, %.loc10_82.2 [concrete = constants.%int_3.410]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_82.2: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_82.2: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc10_82.3: <bound method> = bound_method %int_4, %impl.elem0.loc10_82.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad]
|
||||
// CHECK:STDOUT: %specific_fn.loc10_82.2: <specific function> = specific_function %impl.elem0.loc10_82.2, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc10_82.4: <bound method> = bound_method %int_4, %specific_fn.loc10_82.2 [concrete = constants.%bound_method.b7a]
|
||||
|
||||
+4
-4
@@ -39,8 +39,8 @@ impl forall [T: type] T as Simple {
|
||||
// CHECK:STDOUT: %T.as.Simple.impl.F.type: type = fn_type @T.as.Simple.impl.F, @T.as.Simple.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %T.as.Simple.impl.F: %T.as.Simple.impl.F.type = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %T, (%Simple.impl_witness) [symbolic]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type.165: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [symbolic]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.2e8: %Simple.WithSelf.F.type.165 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type.7bf: type = fn_type @Simple.WithSelf.F, @Simple.WithSelf(%Simple.facet) [symbolic]
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.c46: %Simple.WithSelf.F.type.7bf = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -138,8 +138,8 @@ impl forall [T: type] T as Simple {
|
||||
// CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Simple.facet
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.165
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.2e8
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F.type => constants.%Simple.WithSelf.F.type.7bf
|
||||
// CHECK:STDOUT: %Simple.WithSelf.F => constants.%Simple.WithSelf.F.c46
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Simple.WithSelf.F(constants.%Simple.facet) {}
|
||||
|
||||
+18
-18
@@ -480,18 +480,18 @@ impl () as I({}) {
|
||||
// CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.09a: <witness> = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.5cd: <witness> = impl_witness imports.%Copy.impl_witness_table.fb0, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.d4b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.70e: %ptr.as.Copy.impl.Op.type.d4b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.09a) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.78a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.fa1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.78a, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.5cd) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.65d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.dbf: type = fn_type_with_self_type %Copy.WithSelf.Op.type.65d, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.fb0 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
|
||||
@@ -548,7 +548,7 @@ impl () as I({}) {
|
||||
// CHECK:STDOUT: %.loc14_37.4: ref %B = class_element_access %.loc14_37.3, element0
|
||||
// CHECK:STDOUT: %addr.loc14: %ptr.432 = addr_of %.loc14_37.4
|
||||
// CHECK:STDOUT: %.loc14_37.5: %ptr.432 = converted %B.as.X.impl.F.call, %addr.loc14
|
||||
// CHECK:STDOUT: %impl.elem0: %.fa1 = impl_witness_access constants.%Copy.impl_witness.09a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e]
|
||||
// CHECK:STDOUT: %impl.elem0: %.dbf = impl_witness_access constants.%Copy.impl_witness.5cd, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e]
|
||||
// CHECK:STDOUT: %bound_method.loc14_37.1: <bound method> = bound_method %.loc14_37.5, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc14_37.2: <bound method> = bound_method %.loc14_37.5, %specific_fn
|
||||
@@ -645,18 +645,18 @@ impl () as I({}) {
|
||||
// CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.09a: <witness> = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.5cd: <witness> = impl_witness imports.%Copy.impl_witness_table.fb0, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.d4b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.70e: %ptr.as.Copy.impl.Op.type.d4b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.09a) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.78a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.fa1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.78a, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.5cd) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.65d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.dbf: type = fn_type_with_self_type %Copy.WithSelf.Op.type.65d, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.fb0 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
|
||||
@@ -713,7 +713,7 @@ impl () as I({}) {
|
||||
// CHECK:STDOUT: %.loc14_37.4: ref %B = class_element_access %.loc14_37.3, element0
|
||||
// CHECK:STDOUT: %addr.loc14: %ptr.432 = addr_of %.loc14_37.4
|
||||
// CHECK:STDOUT: %.loc14_37.5: %ptr.432 = converted %B.as.X.impl.F.call, %addr.loc14
|
||||
// CHECK:STDOUT: %impl.elem0: %.fa1 = impl_witness_access constants.%Copy.impl_witness.09a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e]
|
||||
// CHECK:STDOUT: %impl.elem0: %.dbf = impl_witness_access constants.%Copy.impl_witness.5cd, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e]
|
||||
// CHECK:STDOUT: %bound_method.loc14_37.1: <bound method> = bound_method %.loc14_37.5, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc14_37.2: <bound method> = bound_method %.loc14_37.5, %specific_fn
|
||||
@@ -751,18 +751,18 @@ impl () as I({}) {
|
||||
// CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.ce9: %ptr.as.Copy.impl.Op.type.ff5 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.09a: <witness> = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.5cd: <witness> = impl_witness imports.%Copy.impl_witness_table.fb0, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.d4b: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%B) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.70e: %ptr.as.Copy.impl.Op.type.d4b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.09a) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.78a: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.fa1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.78a, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.432, (%Copy.impl_witness.5cd) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.65d: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.dbf: type = fn_type_with_self_type %Copy.WithSelf.Op.type.65d, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.fb0 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
|
||||
@@ -819,7 +819,7 @@ impl () as I({}) {
|
||||
// CHECK:STDOUT: %.loc14_37.4: ref %B = class_element_access %.loc14_37.3, element0
|
||||
// CHECK:STDOUT: %addr.loc14: %ptr.432 = addr_of %.loc14_37.4
|
||||
// CHECK:STDOUT: %.loc14_37.5: %ptr.432 = converted %B.as.X.impl.F.call, %addr.loc14
|
||||
// CHECK:STDOUT: %impl.elem0: %.fa1 = impl_witness_access constants.%Copy.impl_witness.09a, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e]
|
||||
// CHECK:STDOUT: %impl.elem0: %.dbf = impl_witness_access constants.%Copy.impl_witness.5cd, element0 [concrete = constants.%ptr.as.Copy.impl.Op.70e]
|
||||
// CHECK:STDOUT: %bound_method.loc14_37.1: <bound method> = bound_method %.loc14_37.5, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @ptr.as.Copy.impl.Op(constants.%B) [concrete = constants.%ptr.as.Copy.impl.Op.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc14_37.2: <bound method> = bound_method %.loc14_37.5, %specific_fn
|
||||
|
||||
+14
-14
@@ -111,17 +111,17 @@ fn Call() -> i32 {
|
||||
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a2a: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.1aa, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a2a) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b7a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8eb, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: <specific function> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.type.79f953.1: type = fn_type @i32.as.Add.impl.Op.loc8_35.1, @i32.as.Add.impl(%ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.0c3802.1: %i32.as.Add.impl.Op.type.79f953.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.type.8bfdb1.1: type = fn_type @i32.as.Add.impl.Op.loc8_35.1, @i32.as.Add.impl(%ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.0ec6f7.1: %i32.as.Add.impl.Op.type.8bfdb1.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn.f5e09b.2: <specific function> = specific_function %i32.as.Add.impl.Op.0c3802.1, @i32.as.Add.impl.Op.loc8_35.1(%ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn.a0c4dc.2: <specific function> = specific_function %i32.as.Add.impl.Op.0ec6f7.1, @i32.as.Add.impl.Op.loc8_35.1(%ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3: <bound method> = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %bound_method.3cb: <bound method> = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete]
|
||||
// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete]
|
||||
@@ -129,7 +129,7 @@ fn Call() -> i32 {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = 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.845)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Call() -> out %return.param: %i32 {
|
||||
@@ -137,15 +137,15 @@ fn Call() -> i32 {
|
||||
// CHECK:STDOUT: <elided>
|
||||
// CHECK:STDOUT: %a.ref: %i32 = name_ref a, %a
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet.loc18_14.1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.a23) [concrete = constants.%ImplicitAs.facet]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet.loc18_14.1: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.a2a) [concrete = constants.%ImplicitAs.facet]
|
||||
// CHECK:STDOUT: %.loc18_14.1: %ImplicitAs.type.914 = converted Core.IntLiteral, %ImplicitAs.facet.loc18_14.1 [concrete = constants.%ImplicitAs.facet]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet.loc18_14.2: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.a23) [concrete = constants.%ImplicitAs.facet]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet.loc18_14.2: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.a2a) [concrete = constants.%ImplicitAs.facet]
|
||||
// CHECK:STDOUT: %.loc18_14.2: %ImplicitAs.type.914 = converted Core.IntLiteral, %ImplicitAs.facet.loc18_14.2 [concrete = constants.%ImplicitAs.facet]
|
||||
// CHECK:STDOUT: <elided>
|
||||
// CHECK:STDOUT: %.loc18_14.3: %i32.as.Add.impl.Op.type.79f953.1 = specific_constant @i32.as.Add.impl.%i32.as.Add.impl.Op.decl.loc8_35.1, @i32.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.0c3802.1]
|
||||
// CHECK:STDOUT: %Op.ref.loc18: %i32.as.Add.impl.Op.type.79f953.1 = name_ref Op, %.loc18_14.3 [concrete = constants.%i32.as.Add.impl.Op.0c3802.1]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn: <specific function> = specific_function %Op.ref.loc18, @i32.as.Add.impl.Op.loc8_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.specific_fn.f5e09b.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc18: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %.loc18_14.3: %i32.as.Add.impl.Op.type.8bfdb1.1 = specific_constant @i32.as.Add.impl.%i32.as.Add.impl.Op.decl.loc8_35.1, @i32.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.0ec6f7.1]
|
||||
// CHECK:STDOUT: %Op.ref.loc18: %i32.as.Add.impl.Op.type.8bfdb1.1 = name_ref Op, %.loc18_14.3 [concrete = constants.%i32.as.Add.impl.Op.0ec6f7.1]
|
||||
// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn: <specific function> = specific_function %Op.ref.loc18, @i32.as.Add.impl.Op.loc8_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.specific_fn.a0c4dc.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc18: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc18_13.1: <bound method> = bound_method %int_2, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3]
|
||||
// CHECK:STDOUT: %specific_fn.loc18: <specific function> = specific_function %impl.elem0.loc18, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc18_13.2: <bound method> = bound_method %int_2, %specific_fn.loc18 [concrete = constants.%bound_method.3cb]
|
||||
|
||||
+27
-27
@@ -116,8 +116,8 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F.type: type = fn_type @struct_type.i.as.NonInstance.impl.F [concrete]
|
||||
// CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F: %struct_type.i.as.NonInstance.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%NonInstance.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type.0ea: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.c3f: %NonInstance.WithSelf.F.type.0ea = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type.18a: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.9c4: %NonInstance.WithSelf.F.type.18a = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete]
|
||||
// CHECK:STDOUT: %Self.bb5: %Instance.type = symbolic_binding Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.bb5 [symbolic]
|
||||
@@ -136,8 +136,8 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.type: type = fn_type @struct_type.i.as.Instance.impl.G [concrete]
|
||||
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G: %struct_type.i.as.Instance.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%Instance.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type.9b8: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.c6f: %Instance.WithSelf.G.type.9b8 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type.1a5: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.6bb: %Instance.WithSelf.G.type.1a5 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -280,8 +280,8 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%NonInstance.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%NonInstance.facet
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.0ea
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.c3f
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.18a
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.9c4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @NonInstance.WithSelf.F(constants.%NonInstance.facet) {}
|
||||
@@ -304,8 +304,8 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Instance.facet
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.9b8
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.c6f
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.1a5
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.6bb
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Instance.facet) {
|
||||
@@ -332,9 +332,9 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %assoc0: %NonInstance.assoc_type = assoc_entity element0, imports.%Main.import_ref.255 [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.impl_witness: <witness> = impl_witness imports.%NonInstance.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%NonInstance.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type.f88: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.b35: %NonInstance.WithSelf.F.type.f88 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a34: type = fn_type_with_self_type %NonInstance.WithSelf.F.type.f88, %NonInstance.facet [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type.4c0: type = fn_type @NonInstance.WithSelf.F, @NonInstance.WithSelf(%NonInstance.facet) [concrete]
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.c78: %NonInstance.WithSelf.F.type.4c0 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.30a: type = fn_type_with_self_type %NonInstance.WithSelf.F.type.4c0, %NonInstance.facet [concrete]
|
||||
// CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F.type: type = fn_type @struct_type.i.as.NonInstance.impl.F [concrete]
|
||||
// CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F: %struct_type.i.as.NonInstance.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -351,7 +351,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %Main.import_ref.9ad11e.2: %NonInstance.type = import_ref Main//lib, loc3_23, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.61e = import_ref Main//lib, loc3_23, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.255: @NonInstance.WithSelf.%NonInstance.WithSelf.F.type (%NonInstance.WithSelf.F.type.df3) = import_ref Main//lib, loc4_9, loaded [symbolic = @NonInstance.WithSelf.%NonInstance.WithSelf.F (constants.%NonInstance.WithSelf.F.62f)]
|
||||
// CHECK:STDOUT: %Main.import_ref.80b: <witness> = import_ref Main//lib, loc7_30, loaded [concrete = constants.%NonInstance.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.29e: <witness> = import_ref Main//lib, loc7_30, loaded [concrete = constants.%NonInstance.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.c9a: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i]
|
||||
// CHECK:STDOUT: %Main.import_ref.282: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.0d0: %struct_type.i.as.NonInstance.impl.F.type = import_ref Main//lib, loc8_10, loaded [concrete = constants.%struct_type.i.as.NonInstance.impl.F]
|
||||
@@ -381,7 +381,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @struct_type.i.as.NonInstance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.282 [from "lib.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.80b
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.29e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @NonInstanceCallImport() {
|
||||
@@ -393,7 +393,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.a5f [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (constants.%NonInstance.impl_witness) [concrete = constants.%NonInstance.facet]
|
||||
// CHECK:STDOUT: %.loc6_11: %NonInstance.type = converted %struct_type.i, %NonInstance.facet [concrete = constants.%NonInstance.facet]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a34 = impl_witness_access constants.%NonInstance.impl_witness, element0 [concrete = constants.%struct_type.i.as.NonInstance.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.30a = impl_witness_access constants.%NonInstance.impl_witness, element0 [concrete = constants.%struct_type.i.as.NonInstance.impl.F]
|
||||
// CHECK:STDOUT: %struct_type.i.as.NonInstance.impl.F.call: init %empty_tuple.type = call %impl.elem0()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -416,8 +416,8 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: specific @NonInstance.WithSelf(constants.%NonInstance.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%NonInstance.facet
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.f88
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.b35
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F.type => constants.%NonInstance.WithSelf.F.type.4c0
|
||||
// CHECK:STDOUT: %NonInstance.WithSelf.F => constants.%NonInstance.WithSelf.F.c78
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_import_non-instance.carbon
|
||||
@@ -628,9 +628,9 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b3c [concrete]
|
||||
// CHECK:STDOUT: %Instance.impl_witness: <witness> = impl_witness imports.%Instance.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%Instance.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type.551: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.fe9: %Instance.WithSelf.G.type.551 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.2e3: type = fn_type_with_self_type %Instance.WithSelf.G.type.551, %Instance.facet [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type.ff0: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Instance.facet) [concrete]
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.800: %Instance.WithSelf.G.type.ff0 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.760: type = fn_type_with_self_type %Instance.WithSelf.G.type.ff0, %Instance.facet [concrete]
|
||||
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.type: type = fn_type @struct_type.i.as.Instance.impl.G [concrete]
|
||||
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G: %struct_type.i.as.Instance.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %struct_type.i [concrete]
|
||||
@@ -654,7 +654,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %Main.import_ref.a85b8b.2: %Instance.type = import_ref Main//lib, loc11_20, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.2cd = import_ref Main//lib, loc11_20, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3c: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.8ba) = import_ref Main//lib, loc12_13, loaded [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.114)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b09: <witness> = import_ref Main//lib, loc15_27, loaded [concrete = constants.%Instance.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.9a5: <witness> = import_ref Main//lib, loc15_27, loaded [concrete = constants.%Instance.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.c9a: type = import_ref Main//lib, loc15_13, loaded [concrete = constants.%struct_type.i]
|
||||
// CHECK:STDOUT: %Main.import_ref.fd3: type = import_ref Main//lib, loc15_18, loaded [concrete = constants.%Instance.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.7e2: %struct_type.i.as.Instance.impl.G.type = import_ref Main//lib, loc16_21, loaded [concrete = constants.%struct_type.i.as.Instance.impl.G]
|
||||
@@ -709,7 +709,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.fd3 [from "lib.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.b09
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.9a5
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @InstanceCallImport(%n.param: %struct_type.i) {
|
||||
@@ -717,7 +717,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %n.ref: %struct_type.i = name_ref n, %n
|
||||
// CHECK:STDOUT: %Instance.ref: type = name_ref Instance, imports.%Main.Instance [concrete = constants.%Instance.type]
|
||||
// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.756 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.2e3 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem0: %.760 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %n.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.call: init %empty_tuple.type = call %bound_method(%n.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -741,7 +741,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %Instance.ref: type = name_ref Instance, imports.%Main.Instance [concrete = constants.%Instance.type]
|
||||
// CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.756 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %.loc10_4.1: ref %struct_type.i = deref %p.ref
|
||||
// CHECK:STDOUT: %impl.elem0: %.2e3 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem0: %.760 = impl_witness_access constants.%Instance.impl_witness, element0 [concrete = constants.%struct_type.i.as.Instance.impl.G]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc10_4.1, %impl.elem0
|
||||
// CHECK:STDOUT: %.loc10_4.2: ref %empty_tuple.type = struct_access %.loc10_4.1, element0
|
||||
// CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple]
|
||||
@@ -770,8 +770,8 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Instance.facet
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.551
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.fe9
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G.type => constants.%Instance.WithSelf.G.type.ff0
|
||||
// CHECK:STDOUT: %Instance.WithSelf.G => constants.%Instance.WithSelf.G.800
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_import_instance.carbon
|
||||
@@ -806,7 +806,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT: %Main.import_ref.a85b8b.2: %Instance.type = import_ref Main//lib, loc11_20, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.2cd = import_ref Main//lib, loc11_20, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3c: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type) = import_ref Main//lib, loc12_13, loaded [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G)]
|
||||
// CHECK:STDOUT: %Main.import_ref.e22 = import_ref Main//lib, loc15_27, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.fa7 = import_ref Main//lib, loc15_27, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.c9a: type = import_ref Main//lib, loc15_13, loaded [concrete = constants.%struct_type.i]
|
||||
// CHECK:STDOUT: %Main.import_ref.fd3: type = import_ref Main//lib, loc15_18, loaded [concrete = constants.%Instance.type]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -834,7 +834,7 @@ fn InstanceCallImportFail() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: imports.%Main.import_ref.c9a as imports.%Main.import_ref.fd3 [from "lib.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.e22
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.fa7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @InstanceCallImportFail() {
|
||||
|
||||
+13
-13
@@ -52,8 +52,8 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.064: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.513: %I.WithSelf.F.type.064 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.372: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.d46: %I.WithSelf.F.type.372 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -130,8 +130,8 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.064
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.513
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.372
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.d46
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {}
|
||||
@@ -160,9 +160,9 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9f7 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.e61: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.aba: %I.WithSelf.F.type.e61 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.92e: type = fn_type_with_self_type %I.WithSelf.F.type.e61, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.03f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.b7f: %I.WithSelf.F.type.03f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.77f: type = fn_type_with_self_type %I.WithSelf.F.type.03f, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -178,7 +178,7 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//extend_impl_library, loc4_13, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//extend_impl_library, loc4_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//extend_impl_library, loc5_9, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)]
|
||||
// CHECK:STDOUT: %Main.import_ref.255: <witness> = import_ref Main//extend_impl_library, loc9_20, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.62f: <witness> = import_ref Main//extend_impl_library, loc9_20, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.5dc: type = import_ref Main//extend_impl_library, loc9_15, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.c3f793.2: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.62a: %C.as.I.impl.F.type = import_ref Main//extend_impl_library, loc10_12, loaded [concrete = constants.%C.as.I.impl.F]
|
||||
@@ -213,7 +213,7 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.5dc as imports.%Main.import_ref.c3f793.2 [from "extend_impl_library.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.255
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.62f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @C [from "extend_impl_library.carbon"] {
|
||||
@@ -229,11 +229,11 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, imports.%Main.C [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %F.ref.loc7: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc7: %.92e = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc7: %.77f = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.call.loc7: init %empty_tuple.type = call %impl.elem0.loc7()
|
||||
// CHECK:STDOUT: %c.ref: %C = name_ref c, %c
|
||||
// CHECK:STDOUT: %F.ref.loc8: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc8: %.92e = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc8: %.77f = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.call.loc8: init %empty_tuple.type = call %impl.elem0.loc8()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -263,7 +263,7 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.e61
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.aba
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.03f
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b7f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+55
-55
@@ -908,16 +908,16 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %I.type.3fe: type = facet_type <@I, @I(%T)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.191: %I.type.3fe = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %.ece: <witness> = impl_self_witness %C, @I, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.fb7: <witness> = impl_witness @C.as.I.impl.da9.%I.impl_witness_table, @C.as.I.impl.da9(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.51e: <witness> = impl_witness @C.as.I.impl.da9.%I.impl_witness_table, @C.as.I.impl.da9(%T) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.45e: <witness> = require_complete_type %I.type.3fe [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.0de: %I.type.3fe = facet_value %C, (%I.impl_witness.fb7) [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.77c: %I.type.3fe = facet_value %C, (%I.impl_witness.51e) [symbolic]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic]
|
||||
// CHECK:STDOUT: %I.type.a76: type = facet_type <@I, @I(%ptr)> [symbolic]
|
||||
// CHECK:STDOUT: %.5ab: <witness> = impl_self_witness %C, @I, @I(%ptr) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.0d7: <witness> = impl_witness @C.as.I.impl.982.%I.impl_witness_table, @C.as.I.impl.982(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.7a8: <witness> = impl_witness @C.as.I.impl.982.%I.impl_witness_table, @C.as.I.impl.982(%T) [symbolic]
|
||||
// CHECK:STDOUT: %Self.0ef: %I.type.a76 = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.078: <witness> = require_complete_type %I.type.a76 [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.c1f: %I.type.a76 = facet_value %C, (%I.impl_witness.0d7) [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.0b6: %I.type.a76 = facet_value %C, (%I.impl_witness.7a8) [symbolic]
|
||||
// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %N.type.d68: type = facet_type <@N, @N(%T)> [symbolic]
|
||||
@@ -1066,14 +1066,14 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc8_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %I.type.loc8_31.2: type = facet_type <@I, @I(%T.loc8_15.2)> [symbolic = %I.type.loc8_31.2 (constants.%I.type.3fe)]
|
||||
// CHECK:STDOUT: %.loc8_32: <witness> = impl_self_witness constants.%C, @I, @I(%T.loc8_15.2) [symbolic = %.loc8_32 (constants.%.ece)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc8_32.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.da9(%T.loc8_15.2) [symbolic = %I.impl_witness.loc8_32.2 (constants.%I.impl_witness.fb7)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc8_32.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.da9(%T.loc8_15.2) [symbolic = %I.impl_witness.loc8_32.2 (constants.%I.impl_witness.51e)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type.loc8_31.2 [symbolic = %require_complete (constants.%require_complete.45e)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %C.ref.loc8 as %I.type.loc8_31.1 {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.da9 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc8_32.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.da9(constants.%T) [symbolic = %I.impl_witness.loc8_32.2 (constants.%I.impl_witness.fb7)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc8_32.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.da9(constants.%T) [symbolic = %I.impl_witness.loc8_32.2 (constants.%I.impl_witness.51e)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %I.type.loc8_31.1
|
||||
@@ -1087,14 +1087,14 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc12_31.2: type = ptr_type %T.loc12_15.2 [symbolic = %ptr.loc12_31.2 (constants.%ptr)]
|
||||
// CHECK:STDOUT: %I.type.loc12_32.2: type = facet_type <@I, @I(%ptr.loc12_31.2)> [symbolic = %I.type.loc12_32.2 (constants.%I.type.a76)]
|
||||
// CHECK:STDOUT: %.loc12_34: <witness> = impl_self_witness constants.%C, @I, @I(%ptr.loc12_31.2) [symbolic = %.loc12_34 (constants.%.5ab)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_34.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(%T.loc12_15.2) [symbolic = %I.impl_witness.loc12_34.2 (constants.%I.impl_witness.0d7)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_34.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(%T.loc12_15.2) [symbolic = %I.impl_witness.loc12_34.2 (constants.%I.impl_witness.7a8)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type.loc12_32.2 [symbolic = %require_complete (constants.%require_complete.078)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %C.ref as %I.type.loc12_32.1 {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.982 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_34.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(constants.%T) [symbolic = %I.impl_witness.loc12_34.2 (constants.%I.impl_witness.0d7)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_34.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(constants.%T) [symbolic = %I.impl_witness.loc12_34.2 (constants.%I.impl_witness.7a8)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %I.type.loc12_32.1
|
||||
@@ -1128,10 +1128,10 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc8_15.2 => constants.%T
|
||||
// CHECK:STDOUT: %I.type.loc8_31.2 => constants.%I.type.3fe
|
||||
// CHECK:STDOUT: %.loc8_32 => constants.%.ece
|
||||
// CHECK:STDOUT: %I.impl_witness.loc8_32.2 => constants.%I.impl_witness.fb7
|
||||
// CHECK:STDOUT: %I.impl_witness.loc8_32.2 => constants.%I.impl_witness.51e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%I.facet.0de) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%T, constants.%I.facet.77c) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1150,14 +1150,14 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc12_31.2 => constants.%ptr
|
||||
// CHECK:STDOUT: %I.type.loc12_32.2 => constants.%I.type.a76
|
||||
// CHECK:STDOUT: %.loc12_34 => constants.%.5ab
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_34.2 => constants.%I.impl_witness.0d7
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_34.2 => constants.%I.impl_witness.7a8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr, constants.%Self.191) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr, constants.%I.facet.c1f) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr, constants.%I.facet.0b6) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1190,13 +1190,13 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %.ece: <witness> = impl_self_witness %C, @I, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.17f: <witness> = impl_witness imports.%I.impl_witness_table.c49, @C.as.I.impl.119(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.66f: <witness> = impl_witness imports.%I.impl_witness_table.5a9, @C.as.I.impl.119(%T) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.45e: <witness> = require_complete_type %I.type.3fe [symbolic]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic]
|
||||
// CHECK:STDOUT: %.5ab: <witness> = impl_self_witness %C, @I, @I(%ptr) [symbolic]
|
||||
// CHECK:STDOUT: %I.type.a76: type = facet_type <@I, @I(%ptr)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.74c: %I.type.a76 = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.b8e: <witness> = impl_witness imports.%I.impl_witness_table.78a, @C.as.I.impl.238(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.500: <witness> = impl_witness imports.%I.impl_witness_table.6bd, @C.as.I.impl.238(%T) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.078: <witness> = require_complete_type %I.type.a76 [symbolic]
|
||||
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self]
|
||||
@@ -1215,16 +1215,16 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.N: %N.type.b76 = import_ref Main//import_generic, N, loaded [concrete = constants.%empty_struct]
|
||||
// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//import_generic, loc5_22, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic, loc5_14, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.c0d = import_ref Main//import_generic, loc8_32, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3f8 = import_ref Main//import_generic, loc8_32, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//import_generic, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//import_generic, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %I.impl_witness_table.c49 = impl_witness_table (), @C.as.I.impl.119 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness_table.5a9 = impl_witness_table (), @C.as.I.impl.119 [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.335f1c.1: type = import_ref Main//import_generic, loc8_23, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.e015f6.1: type = import_ref Main//import_generic, loc8_31, loaded [symbolic = @C.as.I.impl.119.%I.type (constants.%I.type.3fe)]
|
||||
// CHECK:STDOUT: %Main.import_ref.e87 = import_ref Main//import_generic, loc8_31, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic, loc8_15, loaded [symbolic = @C.as.I.impl.119.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.496 = import_ref Main//import_generic, loc12_34, unloaded
|
||||
// CHECK:STDOUT: %I.impl_witness_table.78a = impl_witness_table (), @C.as.I.impl.238 [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.766 = import_ref Main//import_generic, loc12_34, unloaded
|
||||
// CHECK:STDOUT: %I.impl_witness_table.6bd = impl_witness_table (), @C.as.I.impl.238 [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.335f1c.2: type = import_ref Main//import_generic, loc12_23, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.a08: type = import_ref Main//import_generic, loc12_32, loaded [symbolic = @C.as.I.impl.238.%I.type (constants.%I.type.a76)]
|
||||
// CHECK:STDOUT: %Main.import_ref.891 = import_ref Main//import_generic, loc12_32, unloaded
|
||||
@@ -1385,7 +1385,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness constants.%C, @I, @I(%T) [symbolic = %.1 (constants.%.ece)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table.c49, @C.as.I.impl.119(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.17f)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table.5a9, @C.as.I.impl.119(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.66f)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.45e)]
|
||||
@@ -1393,7 +1393,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.335f1c.1 as imports.%Main.import_ref.e015f6.1 {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend imports.%Main.import_ref.e87
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.c0d
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.3f8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1403,7 +1403,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic = %ptr (constants.%ptr)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%ptr)> [symbolic = %I.type (constants.%I.type.a76)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness constants.%C, @I, @I(%ptr) [symbolic = %.1 (constants.%.5ab)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table.78a, @C.as.I.impl.238(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.b8e)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table.6bd, @C.as.I.impl.238(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.500)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.078)]
|
||||
@@ -1411,7 +1411,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.335f1c.2 as imports.%Main.import_ref.a08 {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend imports.%Main.import_ref.891
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.496
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.766
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1509,7 +1509,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.3fe
|
||||
// CHECK:STDOUT: %.1 => constants.%.ece
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.17f
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.66f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I(constants.%ptr) {
|
||||
@@ -1527,7 +1527,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr => constants.%ptr
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.a76
|
||||
// CHECK:STDOUT: %.1 => constants.%.5ab
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.b8e
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.500
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C.as.I.impl.da9cee.1(constants.%T) {
|
||||
@@ -1840,17 +1840,17 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %.ece: <witness> = impl_self_witness %C, @I, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.17f: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.119(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.66f: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.119(%T) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.45e: <witness> = require_complete_type %I.type.3fe [symbolic]
|
||||
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic]
|
||||
// CHECK:STDOUT: %I.type.a76: type = facet_type <@I, @I(%ptr.e8f)> [symbolic]
|
||||
// CHECK:STDOUT: %.5ab: <witness> = impl_self_witness %C, @I, @I(%ptr.e8f) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.0d7: <witness> = impl_witness @C.as.I.impl.982.%I.impl_witness_table, @C.as.I.impl.982(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.7a8: <witness> = impl_witness @C.as.I.impl.982.%I.impl_witness_table, @C.as.I.impl.982(%T) [symbolic]
|
||||
// CHECK:STDOUT: %Self.74c: %I.type.a76 = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.078: <witness> = require_complete_type %I.type.a76 [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.c1f: %I.type.a76 = facet_value %C, (%I.impl_witness.0d7) [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.0b6: %I.type.a76 = facet_value %C, (%I.impl_witness.7a8) [symbolic]
|
||||
// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %N.type.b76 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %N.type.d682d6.1: type = facet_type <@N, @N(%T)> [symbolic]
|
||||
@@ -1862,10 +1862,10 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %I.type.0a0: type = facet_type <@I, @I(%ptr.125)> [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.6fb: <witness> = require_complete_type %I.type.0a0 [symbolic]
|
||||
// CHECK:STDOUT: %.d9e: <witness> = impl_self_witness %C, @I, @I(%ptr.125) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.b48: <witness> = impl_witness @C.as.I.impl.042.%I.impl_witness_table, @C.as.I.impl.042(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.6e9: <witness> = impl_witness @C.as.I.impl.042.%I.impl_witness_table, @C.as.I.impl.042(%T) [symbolic]
|
||||
// CHECK:STDOUT: %Self.e1f642.2: %N.type.d682d6.2 = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.533: <witness> = require_complete_type %N.type.d682d6.2 [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.e2e: %I.type.0a0 = facet_value %C, (%I.impl_witness.b48) [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.e71: %I.type.0a0 = facet_value %C, (%I.impl_witness.6e9) [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -1874,7 +1874,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.N: %N.type.b76 = import_ref Main//import_generic_with_different_specific, N, loaded [concrete = constants.%empty_struct]
|
||||
// CHECK:STDOUT: %Main.import_ref.a43 = import_ref Main//import_generic_with_different_specific, loc5_22, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic_with_different_specific, loc5_14, loaded [symbolic = @I.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.c0d = import_ref Main//import_generic_with_different_specific, loc7_33, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.3f8 = import_ref Main//import_generic_with_different_specific, loc7_33, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//import_generic_with_different_specific, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.e47 = import_ref Main//import_generic_with_different_specific, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.119 [concrete]
|
||||
@@ -1982,7 +1982,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.3fe)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness constants.%C, @I, @I(%T) [symbolic = %.1 (constants.%.ece)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.119(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.17f)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl.119(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.66f)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.45e)]
|
||||
@@ -1990,7 +1990,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.335 as imports.%Main.import_ref.e015f6.1 {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend imports.%Main.import_ref.e87
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.c0d
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.3f8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -2000,14 +2000,14 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc5_31.2: type = ptr_type %T.loc5_15.2 [symbolic = %ptr.loc5_31.2 (constants.%ptr.e8f)]
|
||||
// CHECK:STDOUT: %I.type.loc5_32.2: type = facet_type <@I, @I(%ptr.loc5_31.2)> [symbolic = %I.type.loc5_32.2 (constants.%I.type.a76)]
|
||||
// CHECK:STDOUT: %.loc5_34: <witness> = impl_self_witness constants.%C, @I, @I(%ptr.loc5_31.2) [symbolic = %.loc5_34 (constants.%.5ab)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc5_34.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(%T.loc5_15.2) [symbolic = %I.impl_witness.loc5_34.2 (constants.%I.impl_witness.0d7)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc5_34.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(%T.loc5_15.2) [symbolic = %I.impl_witness.loc5_34.2 (constants.%I.impl_witness.7a8)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type.loc5_32.2 [symbolic = %require_complete (constants.%require_complete.078)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %C.ref as %I.type.loc5_32.1 {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.982 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc5_34.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(constants.%T) [symbolic = %I.impl_witness.loc5_34.2 (constants.%I.impl_witness.0d7)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc5_34.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.982(constants.%T) [symbolic = %I.impl_witness.loc5_34.2 (constants.%I.impl_witness.7a8)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %I.type.loc5_32.1
|
||||
@@ -2022,14 +2022,14 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc6_32.2: type = ptr_type %ptr.loc6_31.2 [symbolic = %ptr.loc6_32.2 (constants.%ptr.125)]
|
||||
// CHECK:STDOUT: %N.type.loc6_33.2: type = facet_type <@N, @N(%ptr.loc6_32.2)> [symbolic = %N.type.loc6_33.2 (constants.%N.type.d682d6.2)]
|
||||
// CHECK:STDOUT: %.loc6_35: <witness> = impl_self_witness constants.%C, @I, @I(%ptr.loc6_32.2) [symbolic = %.loc6_35 (constants.%.d9e)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc6_35.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.042(%T.loc6_15.2) [symbolic = %I.impl_witness.loc6_35.2 (constants.%I.impl_witness.b48)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc6_35.2: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.042(%T.loc6_15.2) [symbolic = %I.impl_witness.loc6_35.2 (constants.%I.impl_witness.6e9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %N.type.loc6_33.2 [symbolic = %require_complete (constants.%require_complete.533)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %C.ref as %N.type.loc6_33.1 {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (), @C.as.I.impl.042 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc6_35.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.042(constants.%T) [symbolic = %I.impl_witness.loc6_35.2 (constants.%I.impl_witness.b48)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc6_35.1: <witness> = impl_witness %I.impl_witness_table, @C.as.I.impl.042(constants.%T) [symbolic = %I.impl_witness.loc6_35.2 (constants.%I.impl_witness.6e9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %N.type.loc6_33.1
|
||||
@@ -2062,7 +2062,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.3fe
|
||||
// CHECK:STDOUT: %.1 => constants.%.ece
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.17f
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.66f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I(constants.%ptr.e8f) {
|
||||
@@ -2080,14 +2080,14 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc5_31.2 => constants.%ptr.e8f
|
||||
// CHECK:STDOUT: %I.type.loc5_32.2 => constants.%I.type.a76
|
||||
// CHECK:STDOUT: %.loc5_34 => constants.%.5ab
|
||||
// CHECK:STDOUT: %I.impl_witness.loc5_34.2 => constants.%I.impl_witness.0d7
|
||||
// CHECK:STDOUT: %I.impl_witness.loc5_34.2 => constants.%I.impl_witness.7a8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.e8f, constants.%Self.a67) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.e8f, constants.%I.facet.c1f) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.e8f, constants.%I.facet.0b6) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -2142,7 +2142,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc6_32.2 => constants.%ptr.125
|
||||
// CHECK:STDOUT: %N.type.loc6_33.2 => constants.%N.type.d682d6.2
|
||||
// CHECK:STDOUT: %.loc6_35 => constants.%.d9e
|
||||
// CHECK:STDOUT: %I.impl_witness.loc6_35.2 => constants.%I.impl_witness.b48
|
||||
// CHECK:STDOUT: %I.impl_witness.loc6_35.2 => constants.%I.impl_witness.6e9
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @N.WithSelf(constants.%ptr.125, constants.%Self.e1f642.1) {
|
||||
@@ -2152,7 +2152,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %require_complete => constants.%require_complete.6fb
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.125, constants.%I.facet.e2e) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%ptr.125, constants.%I.facet.e71) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -2177,11 +2177,11 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Self.22b: %N.type.d68 = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.22b [symbolic]
|
||||
// CHECK:STDOUT: %.1a5: <witness> = impl_self_witness %D, @J, @J(%T) [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.7d7: <witness> = impl_witness @D.as.J.impl.5a5.%J.impl_witness_table, @D.as.J.impl.5a5(%T) [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.669: <witness> = impl_witness @D.as.J.impl.5a5.%J.impl_witness_table, @D.as.J.impl.5a5(%T) [symbolic]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic]
|
||||
// CHECK:STDOUT: %J.type.c71: type = facet_type <@J, @J(%ptr)> [symbolic]
|
||||
// CHECK:STDOUT: %.7a3: <witness> = impl_self_witness %D, @J, @J(%ptr) [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.4af: <witness> = impl_witness @D.as.J.impl.101.%J.impl_witness_table, @D.as.J.impl.101(%T) [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.ee0: <witness> = impl_witness @D.as.J.impl.101.%J.impl_witness_table, @D.as.J.impl.101(%T) [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -2311,7 +2311,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc15_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %J.type.loc15_31.2: type = facet_type <@J, @J(%T.loc15_15.2)> [symbolic = %J.type.loc15_31.2 (constants.%J.type.5c8)]
|
||||
// CHECK:STDOUT: %.loc15_32: <witness> = impl_self_witness constants.%D, @J, @J(%T.loc15_15.2) [symbolic = %.loc15_32 (constants.%.1a5)]
|
||||
// CHECK:STDOUT: %J.impl_witness.loc15_32.2: <witness> = impl_witness %J.impl_witness_table, @D.as.J.impl.5a5(%T.loc15_15.2) [symbolic = %J.impl_witness.loc15_32.2 (constants.%J.impl_witness.7d7)]
|
||||
// CHECK:STDOUT: %J.impl_witness.loc15_32.2: <witness> = impl_witness %J.impl_witness_table, @D.as.J.impl.5a5(%T.loc15_15.2) [symbolic = %J.impl_witness.loc15_32.2 (constants.%J.impl_witness.669)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %D.ref as %J.type.loc15_31.1;
|
||||
// CHECK:STDOUT: }
|
||||
@@ -2322,7 +2322,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc21_31.2: type = ptr_type %T.loc21_15.2 [symbolic = %ptr.loc21_31.2 (constants.%ptr)]
|
||||
// CHECK:STDOUT: %J.type.loc21_32.2: type = facet_type <@J, @J(%ptr.loc21_31.2)> [symbolic = %J.type.loc21_32.2 (constants.%J.type.c71)]
|
||||
// CHECK:STDOUT: %.loc21_33: <witness> = impl_self_witness constants.%D, @J, @J(%ptr.loc21_31.2) [symbolic = %.loc21_33 (constants.%.7a3)]
|
||||
// CHECK:STDOUT: %J.impl_witness.loc21_33.2: <witness> = impl_witness %J.impl_witness_table, @D.as.J.impl.101(%T.loc21_15.2) [symbolic = %J.impl_witness.loc21_33.2 (constants.%J.impl_witness.4af)]
|
||||
// CHECK:STDOUT: %J.impl_witness.loc21_33.2: <witness> = impl_witness %J.impl_witness_table, @D.as.J.impl.101(%T.loc21_15.2) [symbolic = %J.impl_witness.loc21_33.2 (constants.%J.impl_witness.ee0)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %D.ref as %J.type.loc21_32.1;
|
||||
// CHECK:STDOUT: }
|
||||
@@ -2368,7 +2368,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T.loc15_15.2 => constants.%T
|
||||
// CHECK:STDOUT: %J.type.loc15_31.2 => constants.%J.type.5c8
|
||||
// CHECK:STDOUT: %.loc15_32 => constants.%.1a5
|
||||
// CHECK:STDOUT: %J.impl_witness.loc15_32.2 => constants.%J.impl_witness.7d7
|
||||
// CHECK:STDOUT: %J.impl_witness.loc15_32.2 => constants.%J.impl_witness.669
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J(constants.%ptr) {
|
||||
@@ -2382,7 +2382,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr.loc21_31.2 => constants.%ptr
|
||||
// CHECK:STDOUT: %J.type.loc21_32.2 => constants.%J.type.c71
|
||||
// CHECK:STDOUT: %.loc21_33 => constants.%.7a3
|
||||
// CHECK:STDOUT: %J.impl_witness.loc21_33.2 => constants.%J.impl_witness.4af
|
||||
// CHECK:STDOUT: %J.impl_witness.loc21_33.2 => constants.%J.impl_witness.ee0
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_import_generic_decl.impl.carbon
|
||||
@@ -2399,11 +2399,11 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %.1a5: <witness> = impl_self_witness %D, @J, @J(%T) [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.699: <witness> = impl_witness imports.%J.impl_witness_table.a64, @D.as.J.impl.bdb(%T) [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.cb2: <witness> = impl_witness imports.%J.impl_witness_table.494, @D.as.J.impl.bdb(%T) [symbolic]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic]
|
||||
// CHECK:STDOUT: %.7a3: <witness> = impl_self_witness %D, @J, @J(%ptr) [symbolic]
|
||||
// CHECK:STDOUT: %J.type.c71: type = facet_type <@J, @J(%ptr)> [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.73b: <witness> = impl_witness imports.%J.impl_witness_table.93d, @D.as.J.impl.fa6(%T) [symbolic]
|
||||
// CHECK:STDOUT: %J.impl_witness.90a: <witness> = impl_witness imports.%J.impl_witness_table.dd7, @D.as.J.impl.fa6(%T) [symbolic]
|
||||
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %N.type.b76: type = generic_named_constaint_type @N [concrete]
|
||||
@@ -2425,11 +2425,11 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic_decl, loc5_14, loaded [symbolic = @J.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f2: <witness> = import_ref Main//import_generic_decl, loc4_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//import_generic_decl, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %J.impl_witness_table.a64 = impl_witness_table (), @D.as.J.impl.bdb [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness_table.494 = impl_witness_table (), @D.as.J.impl.bdb [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.2e2cf0.1: type = import_ref Main//import_generic_decl, loc15_23, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.import_ref.1936e1.1: type = import_ref Main//import_generic_decl, loc15_31, loaded [symbolic = @D.as.J.impl.bdb.%J.type (constants.%J.type.5c8)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_decl, loc15_15, loaded [symbolic = @D.as.J.impl.bdb.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %J.impl_witness_table.93d = impl_witness_table (), @D.as.J.impl.fa6 [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness_table.dd7 = impl_witness_table (), @D.as.J.impl.fa6 [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.2e2cf0.2: type = import_ref Main//import_generic_decl, loc21_23, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %Main.import_ref.5a0: type = import_ref Main//import_generic_decl, loc21_32, loaded [symbolic = @D.as.J.impl.fa6.%J.type (constants.%J.type.c71)]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic_decl, loc21_15, loaded [symbolic = @D.as.J.impl.fa6.%T (constants.%T)]
|
||||
@@ -2589,7 +2589,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.5c8)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness constants.%D, @J, @J(%T) [symbolic = %.1 (constants.%.1a5)]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness imports.%J.impl_witness_table.a64, @D.as.J.impl.bdb(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.699)]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness imports.%J.impl_witness_table.494, @D.as.J.impl.bdb(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.cb2)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.2e2cf0.1 as imports.%Main.import_ref.1936e1.1;
|
||||
// CHECK:STDOUT: }
|
||||
@@ -2600,7 +2600,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic = %ptr (constants.%ptr)]
|
||||
// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%ptr)> [symbolic = %J.type (constants.%J.type.c71)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness constants.%D, @J, @J(%ptr) [symbolic = %.1 (constants.%.7a3)]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness imports.%J.impl_witness_table.93d, @D.as.J.impl.fa6(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.73b)]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness imports.%J.impl_witness_table.dd7, @D.as.J.impl.fa6(%T) [symbolic = %J.impl_witness (constants.%J.impl_witness.90a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.2e2cf0.2 as imports.%Main.import_ref.5a0;
|
||||
// CHECK:STDOUT: }
|
||||
@@ -2711,7 +2711,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.5c8
|
||||
// CHECK:STDOUT: %.1 => constants.%.1a5
|
||||
// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.699
|
||||
// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.cb2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J(constants.%ptr) {
|
||||
@@ -2725,7 +2725,7 @@ impl forall [T: type] D as N(T*) {}
|
||||
// CHECK:STDOUT: %ptr => constants.%ptr
|
||||
// CHECK:STDOUT: %J.type => constants.%J.type.c71
|
||||
// CHECK:STDOUT: %.1 => constants.%.7a3
|
||||
// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.73b
|
||||
// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.90a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @D.as.J.impl.5a5643.1(constants.%T) {
|
||||
|
||||
@@ -552,8 +552,8 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %.00f: <witness> = impl_self_witness %.Self, @I [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.c0c: type = impl_witness_access %.00f, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0.c0c = %empty_struct_type> [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.877: <witness> = impl_witness @C3.as.I.impl.a518fc.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C3, (%I.impl_witness.877) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.e7ce0e.2: <witness> = impl_witness @C3.as.I.impl.a518fc.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C3, (%I.impl_witness.e7ce0e.2) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -617,7 +617,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C3.as.I.impl.a518fc.2: %C3.ref as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C3.as.I.impl.a518fc.2 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.877]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.e7ce0e.2]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -668,8 +668,8 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %.911: <witness> = impl_self_witness %C4, @I [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
|
||||
// CHECK:STDOUT: %I_where.type.d99: type = facet_type <@I where %impl.elem0.c0c = %empty_tuple.type> [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.4a9: <witness> = impl_witness @C4.as.I.impl.c5f663.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C4, (%I.impl_witness.4a9) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.50654e.2: <witness> = impl_witness @C4.as.I.impl.c5f663.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C4, (%I.impl_witness.50654e.2) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -749,7 +749,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C4.as.I.impl.c5f663.2: %C4.ref as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C4.as.I.impl.c5f663.2 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.4a9]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.50654e.2]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -976,8 +976,8 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %impl.elem0.c0c: type = impl_witness_access %.00f, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0.c0c = %empty_struct_type> [concrete]
|
||||
// CHECK:STDOUT: %.7ff: <witness> = impl_self_witness %C6, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.a68: <witness> = impl_witness @C6.as.I.impl.e1b87a.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C6, (%I.impl_witness.a68) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.5ea304.2: <witness> = impl_witness @C6.as.I.impl.e1b87a.2.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C6, (%I.impl_witness.5ea304.2) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -1041,7 +1041,7 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C6.as.I.impl.e1b87a.2: %C6.ref as %I.ref {
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (<error>), @C6.as.I.impl.e1b87a.2 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.a68]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.5ea304.2]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %I.ref
|
||||
@@ -1798,8 +1798,8 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: %CD.as.IF.impl.F.type: type = fn_type @CD.as.IF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %CD.as.IF.impl.F: %CD.as.IF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %IF.facet: %IF.type = facet_value %CD, (%IF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %IF.WithSelf.F.type.41b: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%IF.facet) [concrete]
|
||||
// CHECK:STDOUT: %IF.WithSelf.F.24b: %IF.WithSelf.F.type.41b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %IF.WithSelf.F.type.4f8: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%IF.facet) [concrete]
|
||||
// CHECK:STDOUT: %IF.WithSelf.F.742: %IF.WithSelf.F.type.4f8 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -1898,8 +1898,8 @@ impl CD as IF where .F = 0 {
|
||||
// CHECK:STDOUT: specific @IF.WithSelf(constants.%IF.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%IF.facet
|
||||
// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.41b
|
||||
// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.24b
|
||||
// CHECK:STDOUT: %IF.WithSelf.F.type => constants.%IF.WithSelf.F.type.4f8
|
||||
// CHECK:STDOUT: %IF.WithSelf.F => constants.%IF.WithSelf.F.742
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @IF.WithSelf.F(constants.%IF.facet) {}
|
||||
|
||||
+6
-6
@@ -180,8 +180,8 @@ fn F(x: C, y: C) -> C {
|
||||
// CHECK:STDOUT: %C.as.Add.impl.Op.type: type = fn_type @C.as.Add.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %C.as.Add.impl.Op: %C.as.Add.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %C, (%Add.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op.type.9f5: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet) [concrete]
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op.196: %Add.WithSelf.Op.type.9f5 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op.type.314: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet) [concrete]
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op.ddf: %Add.WithSelf.Op.type.314 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %return.patt.18a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, invalid [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.4db: %C = tuple_value () [concrete]
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.98b = value_param_pattern [concrete]
|
||||
@@ -192,7 +192,7 @@ fn F(x: C, y: C) -> C {
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, imports.%Main.import_ref.f19 [concrete]
|
||||
// CHECK:STDOUT: %.698: type = fn_type_with_self_type %Add.WithSelf.Op.type.9f5, %Add.facet [concrete]
|
||||
// CHECK:STDOUT: %.1d3: type = fn_type_with_self_type %Add.WithSelf.Op.type.314, %Add.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -329,7 +329,7 @@ fn F(x: C, y: C) -> C {
|
||||
// CHECK:STDOUT: %x.ref: %C = name_ref x, %x
|
||||
// CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%Main.Add [concrete = constants.%Add.type]
|
||||
// CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, imports.%Main.import_ref.d84 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.698 = impl_witness_access constants.%Add.impl_witness, element0 [concrete = constants.%C.as.Add.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1d3 = impl_witness_access constants.%Add.impl_witness, element0 [concrete = constants.%C.as.Add.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %x.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %y.ref: %C = name_ref y, %y
|
||||
// CHECK:STDOUT: %C.as.Add.impl.Op.call: init %C = call %bound_method(%x.ref, %y.ref)
|
||||
@@ -359,8 +359,8 @@ fn F(x: C, y: C) -> C {
|
||||
// CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Add.facet
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.9f5
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.196
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op.type => constants.%Add.WithSelf.Op.type.314
|
||||
// CHECK:STDOUT: %Add.WithSelf.Op => constants.%Add.WithSelf.Op.ddf
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet) {
|
||||
|
||||
+52
-52
@@ -80,8 +80,8 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %.0ce: <witness> = impl_self_witness %U, @Z [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.4e2: <witness> = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.156: %Z.type = facet_value %U, (%Z.impl_witness.4e2) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.bc3: <witness> = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.6fa: %Z.type = facet_value %U, (%Z.impl_witness.bc3) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.5d7: type = pattern_type %Z.type [concrete]
|
||||
// CHECK:STDOUT: %V.patt: %pattern_type.5d7 = symbolic_binding_pattern V, 0 [symbolic]
|
||||
// CHECK:STDOUT: %V: %Z.type = symbolic_binding V, 0 [symbolic]
|
||||
@@ -100,7 +100,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0 [symbolic]
|
||||
// CHECK:STDOUT: %Z.lookup_impl_witness: <witness> = lookup_impl_witness %impl.elem0, @Z [symbolic]
|
||||
// CHECK:STDOUT: %.516: <witness> = impl_self_witness %as_type, @Z [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.5d1: <witness> = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.95f: <witness> = impl_witness @U.as.Z.impl.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic]
|
||||
// CHECK:STDOUT: %.5b1: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.4d3: %Z.type = facet_value %as_type, (%Z.lookup_impl_witness) [symbolic]
|
||||
// CHECK:STDOUT: %C.e8d: type = class_type @C, @C(%Z.facet.4d3) [symbolic]
|
||||
@@ -240,13 +240,13 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %U.patt.loc9_15.2: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc9_15.2 (constants.%U.patt)]
|
||||
// CHECK:STDOUT: %U.loc9_15.2: type = symbolic_binding U, 0 [symbolic = %U.loc9_15.2 (constants.%U)]
|
||||
// CHECK:STDOUT: %.loc9_30: <witness> = impl_self_witness %U.loc9_15.2, @Z [symbolic = %.loc9_30 (constants.%.0ce)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.2: <witness> = impl_witness %Z.impl_witness_table, @U.as.Z.impl(%U.loc9_15.2) [symbolic = %Z.impl_witness.loc9_30.2 (constants.%Z.impl_witness.4e2)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.2: <witness> = impl_witness %Z.impl_witness_table, @U.as.Z.impl(%U.loc9_15.2) [symbolic = %Z.impl_witness.loc9_30.2 (constants.%Z.impl_witness.bc3)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %U.ref as %Z.ref {
|
||||
// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @U.as.Z.impl [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.1: <witness> = impl_witness %Z.impl_witness_table, @U.as.Z.impl(constants.%U) [symbolic = %Z.impl_witness.loc9_30.2 (constants.%Z.impl_witness.4e2)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.1: <witness> = impl_witness %Z.impl_witness_table, @U.as.Z.impl(constants.%U) [symbolic = %Z.impl_witness.loc9_30.2 (constants.%Z.impl_witness.bc3)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: extend %Z.ref
|
||||
@@ -311,10 +311,10 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %U.patt.loc9_15.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc9_15.2 => constants.%U
|
||||
// CHECK:STDOUT: %.loc9_30 => constants.%.0ce
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.2 => constants.%Z.impl_witness.4e2
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.2 => constants.%Z.impl_witness.bc3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.156) {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.6fa) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -329,7 +329,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %U.patt.loc9_15.2 => constants.%U.patt
|
||||
// CHECK:STDOUT: %U.loc9_15.2 => constants.%as_type
|
||||
// CHECK:STDOUT: %.loc9_30 => constants.%.516
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.2 => constants.%Z.impl_witness.5d1
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_30.2 => constants.%Z.impl_witness.95f
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
@@ -393,11 +393,11 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %c.patt.2df: %pattern_type.d24 = at_binding_pattern c, %c.param_patt.6ae [symbolic]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %.0ce: <witness> = impl_self_witness %U, @Z [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.824: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.d6c: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic]
|
||||
// CHECK:STDOUT: %.68b: require_specific_def_type = require_specific_def @U.as.Z.impl(%as_type) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.6f3: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.65d: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%as_type) [symbolic]
|
||||
// CHECK:STDOUT: %.7e3: <witness> = impl_self_witness %as_type, @Z [symbolic]
|
||||
// CHECK:STDOUT: %.Self.frozen.3a0: %I.type = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.183: type = fn_type @I.WithSelf.F, @I.WithSelf(%.Self.frozen.3a0) [symbolic_self]
|
||||
@@ -410,11 +410,11 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %.fdf: <witness> = impl_self_witness %T, @Y [symbolic]
|
||||
// CHECK:STDOUT: %Y.impl_witness.3d4: <witness> = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %Y.impl_witness.383: <witness> = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %.fa3: <witness> = impl_self_witness %empty_tuple.type, @Y [concrete]
|
||||
// CHECK:STDOUT: %Y.impl_witness.2e8: <witness> = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%empty_tuple.type) [concrete]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %empty_tuple.type, (%Y.impl_witness.2e8) [concrete]
|
||||
// CHECK:STDOUT: %Y.impl_witness.91c: <witness> = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%empty_tuple.type) [concrete]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %empty_tuple.type, (%Y.impl_witness.91c) [concrete]
|
||||
// CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %.00f: <witness> = impl_self_witness %.Self, @I [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.e02: %Y.type = impl_witness_access %.00f, element0 [symbolic_self]
|
||||
@@ -422,18 +422,18 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %.a26: <witness> = impl_self_witness %D, @I [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @D.as.I.impl.%I.impl_witness_table, @D.as.I.impl(%N) [symbolic]
|
||||
// CHECK:STDOUT: %.78e: <witness> = impl_self_witness %empty_tuple.type, @Z [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.1c1: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%empty_tuple.type) [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.9f1: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%empty_tuple.type) [concrete]
|
||||
// CHECK:STDOUT: %.dd0: require_specific_def_type = require_specific_def @U.as.Z.impl(%empty_tuple.type) [concrete]
|
||||
// CHECK:STDOUT: %Z.facet.39d: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.1c1) [concrete]
|
||||
// CHECK:STDOUT: %C.00e: type = class_type @C, @C(%Z.facet.39d) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.78f: type = pattern_type %C.00e [concrete]
|
||||
// CHECK:STDOUT: %c.param_patt.d23: %pattern_type.78f = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %c.patt.152: %pattern_type.78f = at_binding_pattern c, %c.param_patt.d23 [concrete]
|
||||
// CHECK:STDOUT: %Z.facet.c6a: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness.9f1) [concrete]
|
||||
// CHECK:STDOUT: %C.82a: type = class_type @C, @C(%Z.facet.c6a) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.3b9: type = pattern_type %C.82a [concrete]
|
||||
// CHECK:STDOUT: %c.param_patt.6af: %pattern_type.3b9 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %c.patt.dab: %pattern_type.3b9 = at_binding_pattern c, %c.param_patt.6af [concrete]
|
||||
// CHECK:STDOUT: %D.as.I.impl.F.type: type = fn_type @D.as.I.impl.F, @D.as.I.impl(%N) [symbolic]
|
||||
// CHECK:STDOUT: %D.as.I.impl.F: %D.as.I.impl.F.type = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %D, (%I.impl_witness) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.9aa: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.a83: %I.WithSelf.F.type.9aa = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.b73: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.f74: %I.WithSelf.F.type.b73 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -450,7 +450,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %Main.import_ref.3fc: <witness> = import_ref Main//impl_def, loc13_1, loaded [concrete = constants.%complete_type.782]
|
||||
// CHECK:STDOUT: %Main.import_ref.b5a = import_ref Main//impl_def, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.65b: %Z.type = import_ref Main//impl_def, loc11_10, loaded [symbolic = @C.%V (constants.%V)]
|
||||
// CHECK:STDOUT: %Main.import_ref.f68: <witness> = import_ref Main//impl_def, loc9_30, loaded [symbolic = @U.as.Z.impl.%Z.impl_witness (constants.%Z.impl_witness.824)]
|
||||
// CHECK:STDOUT: %Main.import_ref.3dd: <witness> = import_ref Main//impl_def, loc9_30, loaded [symbolic = @U.as.Z.impl.%Z.impl_witness (constants.%Z.impl_witness.d6c)]
|
||||
// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @U.as.Z.impl [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.b7a: type = import_ref Main//impl_def, loc9_23, loaded [symbolic = @U.as.Z.impl.%U (constants.%U)]
|
||||
// CHECK:STDOUT: %Main.import_ref.fbe: type = import_ref Main//impl_def, loc9_28, loaded [concrete = constants.%Z.type]
|
||||
@@ -459,7 +459,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//impl_def, loc15_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.d73: %Y.type = import_ref Main//impl_def, loc16_12, loaded [concrete = %Assoc]
|
||||
// CHECK:STDOUT: %Assoc: %Y.type = assoc_const_decl @Assoc [concrete] {}
|
||||
// CHECK:STDOUT: %Main.import_ref.201: <witness> = import_ref Main//impl_def, loc5_30, loaded [symbolic = @T.as.Y.impl.%Y.impl_witness (constants.%Y.impl_witness.3d4)]
|
||||
// CHECK:STDOUT: %Main.import_ref.320: <witness> = import_ref Main//impl_def, loc5_30, loaded [symbolic = @T.as.Y.impl.%Y.impl_witness (constants.%Y.impl_witness.383)]
|
||||
// CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (), @T.as.Y.impl [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.68d: type = import_ref Main//impl_def, loc5_23, loaded [symbolic = @T.as.Y.impl.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.81e: type = import_ref Main//impl_def, loc5_28, loaded [concrete = constants.%Y.type]
|
||||
@@ -501,7 +501,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %Assoc.ref: %I.assoc_type = name_ref Assoc, imports.%Main.import_ref.f32 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc20_36.1: %Y.type = impl_witness_access constants.%.f01, element0 [symbolic_self = constants.%impl.elem0.7a5]
|
||||
// CHECK:STDOUT: %.loc20_46.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value constants.%empty_tuple.type, (constants.%Y.impl_witness.2e8) [concrete = constants.%Y.facet]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value constants.%empty_tuple.type, (constants.%Y.impl_witness.91c) [concrete = constants.%Y.facet]
|
||||
// CHECK:STDOUT: %.loc20_46.2: %Y.type = converted %.loc20_46.1, %Y.facet [concrete = constants.%Y.facet]
|
||||
// CHECK:STDOUT: %rewrite.loc20_43.1 = requirement_rewrite %impl.elem0.loc20_36.1, %.loc20_46.2 [concrete]
|
||||
// CHECK:STDOUT: %impl.elem0.loc20_36.2: %Y.type = impl_witness_access constants.%.00f, element0 [symbolic_self = constants.%impl.elem0.e02]
|
||||
@@ -550,13 +550,13 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic = %U.patt (constants.%U.patt)]
|
||||
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness %U, @Z [symbolic = %.1 (constants.%.0ce)]
|
||||
// CHECK:STDOUT: %Z.impl_witness: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.824)]
|
||||
// CHECK:STDOUT: %Z.impl_witness: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.d6c)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.b7a as imports.%Main.import_ref.fbe {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.f68
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.3dd
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -564,13 +564,13 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt (constants.%T.patt)]
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness %T, @Y [symbolic = %.1 (constants.%.fdf)]
|
||||
// CHECK:STDOUT: %Y.impl_witness: <witness> = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic = %Y.impl_witness (constants.%Y.impl_witness.3d4)]
|
||||
// CHECK:STDOUT: %Y.impl_witness: <witness> = impl_witness imports.%Y.impl_witness_table, @T.as.Y.impl(%T) [symbolic = %Y.impl_witness (constants.%Y.impl_witness.383)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.68d as imports.%Main.import_ref.81e {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.201
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.320
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -587,18 +587,18 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %D.loc20_23.2 as %I.ref {
|
||||
// CHECK:STDOUT: %D.as.I.impl.F.decl: @D.as.I.impl.%D.as.I.impl.F.type (%D.as.I.impl.F.type) = fn_decl @D.as.I.impl.F [symbolic = @D.as.I.impl.%D.as.I.impl.F (constants.%D.as.I.impl.F)] {
|
||||
// CHECK:STDOUT: %c.param_patt: %pattern_type.78f = value_param_pattern [concrete = constants.%c.param_patt.d23]
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.78f = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.152]
|
||||
// CHECK:STDOUT: %c.param_patt: %pattern_type.3b9 = value_param_pattern [concrete = constants.%c.param_patt.6af]
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.3b9 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.dab]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %c.param: %C.00e = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc21_22.1: type = splice_block %C [concrete = constants.%C.00e] {
|
||||
// CHECK:STDOUT: %c.param: %C.82a = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc21_22.1: type = splice_block %C [concrete = constants.%C.82a] {
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %.loc21_21: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.1c1) [concrete = constants.%Z.facet.39d]
|
||||
// CHECK:STDOUT: %.loc21_22.2: %Z.type = converted %.loc21_21, %Z.facet [concrete = constants.%Z.facet.39d]
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%Z.facet.39d) [concrete = constants.%C.00e]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%empty_tuple.type, (constants.%Z.impl_witness.9f1) [concrete = constants.%Z.facet.c6a]
|
||||
// CHECK:STDOUT: %.loc21_22.2: %Z.type = converted %.loc21_21, %Z.facet [concrete = constants.%Z.facet.c6a]
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%Z.facet.c6a) [concrete = constants.%C.82a]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %c: %C.00e = wrapper_binding c, %c.param
|
||||
// CHECK:STDOUT: %c: %C.82a = wrapper_binding c, %c.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant, %D.as.I.impl.F.decl), @D.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc20_48.1: <witness> = impl_witness %I.impl_witness_table, @D.as.I.impl(constants.%N) [symbolic = %I.impl_witness.loc20_48.2 (constants.%I.impl_witness)]
|
||||
@@ -668,7 +668,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: generic fn @D.as.I.impl.F(@D.as.I.impl.%N.loc20_15.2: %E) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%c.param: %C.00e) {
|
||||
// CHECK:STDOUT: fn(%c.param: %C.82a) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -708,14 +708,14 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %U.patt => constants.%U.patt
|
||||
// CHECK:STDOUT: %U => constants.%U
|
||||
// CHECK:STDOUT: %.1 => constants.%.0ce
|
||||
// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.824
|
||||
// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.d6c
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @U.as.Z.impl(constants.%as_type) {
|
||||
// CHECK:STDOUT: %U.patt => constants.%U.patt
|
||||
// CHECK:STDOUT: %U => constants.%as_type
|
||||
// CHECK:STDOUT: %.1 => constants.%.7e3
|
||||
// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.6f3
|
||||
// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.65d
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
@@ -745,14 +745,14 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %T.patt => constants.%T.patt
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %.1 => constants.%.fdf
|
||||
// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.3d4
|
||||
// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.383
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T.as.Y.impl(constants.%empty_tuple.type) {
|
||||
// CHECK:STDOUT: %T.patt => constants.%T.patt
|
||||
// CHECK:STDOUT: %T => constants.%empty_tuple.type
|
||||
// CHECK:STDOUT: %.1 => constants.%.fa3
|
||||
// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.2e8
|
||||
// CHECK:STDOUT: %Y.impl_witness => constants.%Y.impl_witness.91c
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
@@ -773,14 +773,14 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %U.patt => constants.%U.patt
|
||||
// CHECK:STDOUT: %U => constants.%empty_tuple.type
|
||||
// CHECK:STDOUT: %.1 => constants.%.78e
|
||||
// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.1c1
|
||||
// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.9f1
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C(constants.%Z.facet.39d) {
|
||||
// CHECK:STDOUT: specific @C(constants.%Z.facet.c6a) {
|
||||
// CHECK:STDOUT: %V.patt => constants.%V.patt
|
||||
// CHECK:STDOUT: %V => constants.%Z.facet.39d
|
||||
// CHECK:STDOUT: %V => constants.%Z.facet.c6a
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
@@ -790,8 +790,8 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.9aa
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a83
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b73
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.f74
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {
|
||||
@@ -800,11 +800,11 @@ impl forall [N: E] D(N) as I where .Assoc = () {
|
||||
// CHECK:STDOUT: %impl.elem0 => constants.%Y.facet
|
||||
// CHECK:STDOUT: %as_type => constants.%empty_tuple.type
|
||||
// CHECK:STDOUT: %.1 => constants.%.dd0
|
||||
// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.impl_witness.1c1
|
||||
// CHECK:STDOUT: %Z.facet => constants.%Z.facet.39d
|
||||
// CHECK:STDOUT: %C => constants.%C.00e
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.78f
|
||||
// CHECK:STDOUT: %c.param_patt => constants.%c.param_patt.d23
|
||||
// CHECK:STDOUT: %c.patt => constants.%c.patt.152
|
||||
// CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.impl_witness.9f1
|
||||
// CHECK:STDOUT: %Z.facet => constants.%Z.facet.c6a
|
||||
// CHECK:STDOUT: %C => constants.%C.82a
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9
|
||||
// CHECK:STDOUT: %c.param_patt => constants.%c.param_patt.6af
|
||||
// CHECK:STDOUT: %c.patt => constants.%c.patt.dab
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+25
-25
@@ -141,8 +141,8 @@ fn G() {
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.9a27ec.1: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.84dd70.1: %C.as.I.impl.F.type.9a27ec.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.6b1ed7.2, (%I.impl_witness) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.535: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.6f0: %I.WithSelf.F.type.535 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.ca5: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.a9c: %I.WithSelf.F.type.ca5 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.9a27ec.2: type = fn_type @C.as.I.impl.F.loc8_24.2, @C.as.I.impl(%Y) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.84dd70.2: %C.as.I.impl.F.type.9a27ec.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %C.6b1ed7.2 [symbolic]
|
||||
@@ -403,8 +403,8 @@ fn G() {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.535
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.6f0
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.ca5
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a9c
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {}
|
||||
@@ -435,7 +435,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic]
|
||||
// CHECK:STDOUT: %C.6b1ed7.2: type = class_type @C, @C(%Y) [symbolic]
|
||||
// CHECK:STDOUT: %.4ce: <witness> = impl_self_witness %C.6b1ed7.2, @I [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.95e: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.079: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.c7d3b5.1: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%Y) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.c1d971.1: %C.as.I.impl.F.type.c7d3b5.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.c7d3b5.2: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic]
|
||||
@@ -445,7 +445,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %Y.patt: %pattern_type.cb1 = symbolic_binding_pattern Y, 0 [symbolic]
|
||||
// CHECK:STDOUT: %x.patt.cc8: %pattern_type.d0f = at_binding_pattern x, %x.param_patt.bc9 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %C.6b1ed7.2 [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.cee: %I.type = facet_value %C.6b1ed7.2, (%I.impl_witness.95e) [symbolic]
|
||||
// CHECK:STDOUT: %I.facet.38e: %I.type = facet_value %C.6b1ed7.2, (%I.impl_witness.079) [symbolic]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Destroy.lookup_impl_witness: <witness> = lookup_impl_witness %C.6b1ed7.2, @Destroy [symbolic]
|
||||
// CHECK:STDOUT: %Destroy.facet.886: %Destroy.type = facet_value %C.6b1ed7.2, (%Destroy.lookup_impl_witness) [symbolic]
|
||||
@@ -459,15 +459,15 @@ fn G() {
|
||||
// CHECK:STDOUT: %bound_method.3e7: <bound method> = bound_method %.e66, %impl.elem0 [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.79d: <specific function> = specific_function %C.as.I.impl.F.c1d971.2, @C.as.I.impl.F.2(%Y) [symbolic]
|
||||
// CHECK:STDOUT: %.3b5: <witness> = impl_self_witness %C.2c9, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.953: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_tuple) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.973: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_tuple) [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.42776e.1: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%empty_tuple) [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.4ca3bc.1: %C.as.I.impl.F.type.42776e.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.42776e.2: type = fn_type @C.as.I.impl.F.1, @C.as.I.impl(%empty_tuple) [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.4ca3bc.2: %C.as.I.impl.F.type.42776e.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.01a: %I.type = facet_value %C.2c9, (%I.impl_witness.953) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.fbb: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.01a) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.c63: %I.WithSelf.F.type.fbb = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.1e5: type = fn_type_with_self_type %I.WithSelf.F.type.fbb, %I.facet.01a [concrete]
|
||||
// CHECK:STDOUT: %I.facet.b89: %I.type = facet_value %C.2c9, (%I.impl_witness.973) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.ae4: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.b89) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.c0f: %I.WithSelf.F.type.ae4 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.902: type = fn_type_with_self_type %I.WithSelf.F.type.ae4, %I.facet.b89 [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.e3e0cd.1: <specific function> = specific_function %C.as.I.impl.F.4ca3bc.2, @C.as.I.impl.F.1(%empty_tuple) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.7b9: type = pattern_type %C.2c9 [concrete]
|
||||
@@ -502,7 +502,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//a, loc4_13, loaded [symbolic = constants.%Self.dda]
|
||||
// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//a, loc4_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//a, loc5_14, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)]
|
||||
// CHECK:STDOUT: %Main.import_ref.9c4: <witness> = import_ref Main//b, loc7_31, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.95e)]
|
||||
// CHECK:STDOUT: %Main.import_ref.294: <witness> = import_ref Main//b, loc7_31, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.079)]
|
||||
// CHECK:STDOUT: %Main.import_ref.718: @C.as.I.impl.%C.as.I.impl.F.type.2 (%C.as.I.impl.F.type.c7d3b5.1) = import_ref Main//b, loc8_24, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.2 (constants.%C.as.I.impl.F.c1d971.1)]
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.718), @C.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.c90e1a.2: %empty_tuple.type = import_ref Main//b, loc7_15, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)]
|
||||
@@ -540,7 +540,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)]
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.6b1ed7.2)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness %C, @I [symbolic = %.1 (constants.%.4ce)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic = %I.impl_witness (constants.%I.impl_witness.95e)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic = %I.impl_witness (constants.%I.impl_witness.079)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.1: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type.1 (constants.%C.as.I.impl.F.type.c7d3b5.2)]
|
||||
@@ -550,7 +550,7 @@ fn G() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.ff4 as imports.%Main.import_ref.e90 {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.9c4
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.294
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -577,9 +577,9 @@ fn G() {
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_tuple) [concrete = constants.%C.2c9]
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %F.ref.loc7_11: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0.232]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.953) [concrete = constants.%I.facet.01a]
|
||||
// CHECK:STDOUT: %.loc7_8: %I.type = converted %C, %I.facet [concrete = constants.%I.facet.01a]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1e5 = impl_witness_access constants.%I.impl_witness.953, element0 [concrete = constants.%C.as.I.impl.F.4ca3bc.2]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.973) [concrete = constants.%I.facet.b89]
|
||||
// CHECK:STDOUT: %.loc7_8: %I.type = converted %C, %I.facet [concrete = constants.%I.facet.b89]
|
||||
// CHECK:STDOUT: %impl.elem0: %.902 = impl_witness_access constants.%I.impl_witness.973, element0 [concrete = constants.%C.as.I.impl.F.4ca3bc.2]
|
||||
// CHECK:STDOUT: %.loc7_16.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct]
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @C.as.I.impl.F.1(constants.%empty_tuple) [concrete = constants.%C.as.I.impl.F.specific_fn.e3e0cd.1]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct]
|
||||
@@ -620,7 +620,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %specific_impl_fn: <specific function> = specific_impl_function %impl.elem0, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn (constants.%specific_impl_fn)]
|
||||
// CHECK:STDOUT: %bound_method.2: <bound method> = bound_method %.1, %specific_impl_fn [symbolic = %bound_method.2 (constants.%bound_method.ef4)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn [thunk imports.%Main.F.b80 for imports.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.cee)];
|
||||
// CHECK:STDOUT: fn [thunk imports.%Main.F.b80 for imports.%I.WithSelf.F.decl, @I.WithSelf.F(constants.%I.facet.38e)];
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @C.as.I.impl.F.2(imports.%Main.import_ref.c90e1a.2: %empty_tuple.type) [from "b.carbon"] {
|
||||
@@ -676,7 +676,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %Y => constants.%Y
|
||||
// CHECK:STDOUT: %C => constants.%C.6b1ed7.2
|
||||
// CHECK:STDOUT: %.1 => constants.%.4ce
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.95e
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.079
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.1 => constants.%C.as.I.impl.F.type.c7d3b5.2
|
||||
@@ -696,7 +696,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %require_complete => constants.%require_complete
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.cee) {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.38e) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C.as.I.impl.F.1(constants.%Y) {}
|
||||
// CHECK:STDOUT:
|
||||
@@ -705,7 +705,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %Y => constants.%empty_tuple
|
||||
// CHECK:STDOUT: %C => constants.%C.2c9
|
||||
// CHECK:STDOUT: %.1 => constants.%.3b5
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.953
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.973
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.1 => constants.%C.as.I.impl.F.type.42776e.1
|
||||
@@ -714,11 +714,11 @@ fn G() {
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.2 => constants.%C.as.I.impl.F.4ca3bc.2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.01a) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.b89) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.01a
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.fbb
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c63
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.b89
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.ae4
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c0f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C.as.I.impl.F.1(constants.%empty_tuple) {
|
||||
|
||||
+19
-19
@@ -77,8 +77,8 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.09e: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.ad6: %I.WithSelf.F.type.09e = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.b7f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [symbolic]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.454: %I.WithSelf.F.type.b7f = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -210,8 +210,8 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.09e
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.ad6
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.b7f
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.454
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {}
|
||||
@@ -243,17 +243,17 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.41f: <witness> = impl_self_witness %C.1d0, @I [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.5b2: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.c4a: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.86f: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.45f: %C.as.I.impl.F.type.86f = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %.0b2: <witness> = impl_self_witness %C.d8e, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.a73: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.873: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type.7ce: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.899: %C.as.I.impl.F.type.7ce = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.d8e, (%I.impl_witness.a73) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.f26: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.c12: %I.WithSelf.F.type.f26 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.2c7: type = fn_type_with_self_type %I.WithSelf.F.type.f26, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.d8e, (%I.impl_witness.873) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.3f0: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.c10: %I.WithSelf.F.type.3f0 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.c92: type = fn_type_with_self_type %I.WithSelf.F.type.3f0, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.specific_fn: <specific function> = specific_function %C.as.I.impl.F.899, @C.as.I.impl.F(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %H.type: type = fn_type @H [concrete]
|
||||
// CHECK:STDOUT: %H: %H.type = struct_value () [concrete]
|
||||
@@ -270,7 +270,7 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//import_generic, loc6_13, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//import_generic, loc6_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//import_generic, loc7_9, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)]
|
||||
// CHECK:STDOUT: %Main.import_ref.57e: <witness> = import_ref Main//import_generic, loc10_33, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.5b2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.2bb: <witness> = import_ref Main//import_generic, loc10_33, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.c4a)]
|
||||
// CHECK:STDOUT: %Main.import_ref.bec: @C.as.I.impl.%C.as.I.impl.F.type (%C.as.I.impl.F.type.86f) = import_ref Main//import_generic, loc11_10, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F (constants.%C.as.I.impl.F.45f)]
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.bec), @C.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//import_generic, loc10_15, loaded [symbolic = @C.as.I.impl.%T (constants.%T)]
|
||||
@@ -318,9 +318,9 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.d8e]
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.a73) [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (constants.%I.impl_witness.873) [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %.loc25_16: %I.type = converted %C, %I.facet [concrete = constants.%I.facet]
|
||||
// CHECK:STDOUT: %impl.elem0: %.2c7 = impl_witness_access constants.%I.impl_witness.a73, element0 [concrete = constants.%C.as.I.impl.F.899]
|
||||
// CHECK:STDOUT: %impl.elem0: %.c92 = impl_witness_access constants.%I.impl_witness.873, element0 [concrete = constants.%C.as.I.impl.F.899]
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @C.as.I.impl.F(constants.%empty_struct_type) [concrete = constants.%C.as.I.impl.F.specific_fn]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %specific_fn()
|
||||
// CHECK:STDOUT: %.loc25_23: type = converted %C.as.I.impl.F.call, <error> [concrete = <error>]
|
||||
@@ -342,7 +342,7 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1d0)]
|
||||
// CHECK:STDOUT: %.1: <witness> = impl_self_witness %C, @I [symbolic = %.1 (constants.%.41f)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.5b2)]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.c4a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F, @C.as.I.impl(%T) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.86f)]
|
||||
@@ -350,7 +350,7 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: imports.%Main.import_ref.4aa as imports.%Main.import_ref.c3f {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.57e
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.2bb
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -421,7 +421,7 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %C => constants.%C.1d0
|
||||
// CHECK:STDOUT: %.1 => constants.%.41f
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.5b2
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.c4a
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.86f
|
||||
@@ -435,7 +435,7 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: %T => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %C => constants.%C.d8e
|
||||
// CHECK:STDOUT: %.1 => constants.%.0b2
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.a73
|
||||
// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.873
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type => constants.%C.as.I.impl.F.type.7ce
|
||||
@@ -445,8 +445,8 @@ fn H() -> C({}).(I.F)() {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.f26
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c12
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.3f0
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.c10
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C.as.I.impl.F(constants.%empty_struct_type) {
|
||||
|
||||
+40
-40
@@ -277,13 +277,13 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %A.as.Action.impl.Op.type: type = fn_type @A.as.Action.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %A.as.Action.impl.Op: %A.as.Action.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Action.facet: %Action.type.5d2 = facet_value %A, (%Action.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type.e59: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.c3b: %Action.WithSelf.Op.type.e59 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type.606: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.e27: %Action.WithSelf.Op.type.606 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.898: type = fn_type_with_self_type %Action.WithSelf.Op.type.e59, %Action.facet [concrete]
|
||||
// CHECK:STDOUT: %.a0a: type = fn_type_with_self_type %Action.WithSelf.Op.type.606, %Action.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -436,7 +436,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.5d2]
|
||||
// CHECK:STDOUT: %.loc16: %Action.assoc_type.4ce = specific_constant @Action.WithSelf.%assoc0.loc5_14.1, @Action.WithSelf(constants.%B, constants.%Self.67c) [concrete = constants.%assoc0.005]
|
||||
// CHECK:STDOUT: %Op.ref: %Action.assoc_type.4ce = name_ref Op, %.loc16 [concrete = constants.%assoc0.005]
|
||||
// CHECK:STDOUT: %impl.elem0: %.898 = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a0a = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %a.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %A.as.Action.impl.Op.call: init %empty_tuple.type = call %bound_method(%a.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -484,8 +484,8 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %T => constants.%B
|
||||
// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2
|
||||
// CHECK:STDOUT: %Self => constants.%Action.facet
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.e59
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.c3b
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.606
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.e27
|
||||
// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.4ce
|
||||
// CHECK:STDOUT: %assoc0.loc5_14.2 => constants.%assoc0.005
|
||||
// CHECK:STDOUT: }
|
||||
@@ -536,9 +536,9 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %assoc0.029: %Action.assoc_type.1c3 = assoc_entity element0, imports.%Main.import_ref.b3a [symbolic]
|
||||
// CHECK:STDOUT: %Action.impl_witness: <witness> = impl_witness imports.%Action.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Action.facet: %Action.type.5d2 = facet_value %A, (%Action.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type.8c0: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.031: %Action.WithSelf.Op.type.8c0 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.1f3: type = fn_type_with_self_type %Action.WithSelf.Op.type.8c0, %Action.facet [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type.2e1: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete]
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.5ec: %Action.WithSelf.Op.type.2e1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.007: type = fn_type_with_self_type %Action.WithSelf.Op.type.2e1, %Action.facet [concrete]
|
||||
// CHECK:STDOUT: %A.as.Action.impl.Op.type: type = fn_type @A.as.Action.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %A.as.Action.impl.Op: %A.as.Action.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -562,7 +562,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Main.import_ref.7dfc68.2: @Action.%Action.type (%Action.type.cbf) = import_ref Main//action, loc4_27, loaded [symbolic = @Action.%Self (constants.%Self.ea2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.422 = import_ref Main//action, loc4_27, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//action, loc4_19, loaded [symbolic = @Action.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.371: <witness> = import_ref Main//action, loc12_21, loaded [concrete = constants.%Action.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.484: <witness> = import_ref Main//action, loc12_21, loaded [concrete = constants.%Action.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A]
|
||||
@@ -619,7 +619,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Op = imports.%Main.import_ref.294
|
||||
// CHECK:STDOUT: extend imports.%Main.import_ref.07b
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.371
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.484
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @B [from "action.carbon"] {
|
||||
@@ -656,7 +656,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.5d2]
|
||||
// CHECK:STDOUT: %.loc4: %Action.assoc_type.4ce = specific_constant imports.%Main.import_ref.00f, @Action.WithSelf(constants.%B, constants.%Self.ea2) [concrete = constants.%assoc0.2d9]
|
||||
// CHECK:STDOUT: %Op.ref: %Action.assoc_type.4ce = name_ref Op, %.loc4 [concrete = constants.%assoc0.2d9]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1f3 = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0: %.007 = impl_witness_access constants.%Action.impl_witness, element0 [concrete = constants.%A.as.Action.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %a.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %A.as.Action.impl.Op.call: init %empty_tuple.type = call %bound_method(%a.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -706,8 +706,8 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %T => constants.%B
|
||||
// CHECK:STDOUT: %Action.type => constants.%Action.type.5d2
|
||||
// CHECK:STDOUT: %Self => constants.%Action.facet
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.8c0
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.031
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op.type => constants.%Action.WithSelf.Op.type.2e1
|
||||
// CHECK:STDOUT: %Action.WithSelf.Op => constants.%Action.WithSelf.Op.5ec
|
||||
// CHECK:STDOUT: %Action.assoc_type => constants.%Action.assoc_type.4ce
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.2d9
|
||||
// CHECK:STDOUT: }
|
||||
@@ -769,7 +769,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Main.import_ref.7dfc68.2: @Action.%Action.type (%Action.type.cbf) = import_ref Main//action, loc4_27, loaded [symbolic = @Action.%Self (constants.%Self.ea2)]
|
||||
// CHECK:STDOUT: %Main.import_ref.422 = import_ref Main//action, loc4_27, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//action, loc4_19, loaded [symbolic = @Action.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.640 = import_ref Main//action, loc12_21, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.62f = import_ref Main//action, loc12_21, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//action, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A]
|
||||
@@ -826,7 +826,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Op = imports.%Main.import_ref.294
|
||||
// CHECK:STDOUT: extend imports.%Main.import_ref.07b
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.640
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.62f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @B [from "action.carbon"] {
|
||||
@@ -973,10 +973,10 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Method.type: type = fn_type @A.as.Factory.impl.Method [concrete]
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Method: %A.as.Factory.impl.Method.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Factory.facet: %Factory.type.5e3 = facet_value %A, (%Factory.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type.0c4: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.f30: %Factory.WithSelf.Make.type.0c4 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type.99a: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.637: %Factory.WithSelf.Method.type.99a = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type.2c3: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.cae: %Factory.WithSelf.Make.type.2c3 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type.5e3: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.372: %Factory.WithSelf.Method.type.5e3 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -1209,12 +1209,12 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %T => constants.%B
|
||||
// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3
|
||||
// CHECK:STDOUT: %Self => constants.%Factory.facet
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.0c4
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.f30
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.2c3
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.cae
|
||||
// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.8bd
|
||||
// CHECK:STDOUT: %assoc0.loc6_17.2 => constants.%assoc0.012
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.99a
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.637
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.5e3
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.372
|
||||
// CHECK:STDOUT: %assoc1.loc8_23.2 => constants.%assoc1.682
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1285,11 +1285,11 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %assoc0.c0a: %Factory.assoc_type.0ed = assoc_entity element0, imports.%Main.import_ref.587 [symbolic]
|
||||
// CHECK:STDOUT: %Factory.impl_witness: <witness> = impl_witness imports.%Factory.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Factory.facet: %Factory.type.5e3 = facet_value %A, (%Factory.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type.f93: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.57a: %Factory.WithSelf.Make.type.f93 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type.053: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.d76: %Factory.WithSelf.Method.type.053 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.9f3: type = fn_type_with_self_type %Factory.WithSelf.Make.type.f93, %Factory.facet [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type.1e5: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.3ca: %Factory.WithSelf.Make.type.1e5 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type.510: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%B, %Factory.facet) [concrete]
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.ef3: %Factory.WithSelf.Method.type.510 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a03: type = fn_type_with_self_type %Factory.WithSelf.Make.type.1e5, %Factory.facet [concrete]
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Make.type: type = fn_type @A.as.Factory.impl.Make [concrete]
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Make: %A.as.Factory.impl.Make.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
|
||||
@@ -1298,7 +1298,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %InstanceB.type: type = fn_type @InstanceB [concrete]
|
||||
// CHECK:STDOUT: %InstanceB: %InstanceB.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %assoc1.c00: %Factory.assoc_type.0ed = assoc_entity element1, imports.%Main.import_ref.82f [symbolic]
|
||||
// CHECK:STDOUT: %.076: type = fn_type_with_self_type %Factory.WithSelf.Method.type.053, %Factory.facet [concrete]
|
||||
// CHECK:STDOUT: %.0a9: type = fn_type_with_self_type %Factory.WithSelf.Method.type.510, %Factory.facet [concrete]
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Method.type: type = fn_type @A.as.Factory.impl.Method [concrete]
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Method: %A.as.Factory.impl.Method.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1325,7 +1325,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Main.import_ref.0f8e01.3: @Factory.%Factory.type (%Factory.type.711) = import_ref Main//factory, loc4_28, loaded [symbolic = @Factory.%Self (constants.%Self.3e3)]
|
||||
// CHECK:STDOUT: %Main.import_ref.a45 = import_ref Main//factory, loc4_28, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.8c3: <witness> = import_ref Main//factory, loc14_22, loaded [concrete = constants.%Factory.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.7a7: <witness> = import_ref Main//factory, loc14_22, loaded [concrete = constants.%Factory.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A]
|
||||
@@ -1401,7 +1401,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: .Make = imports.%Main.import_ref.213
|
||||
// CHECK:STDOUT: .Method = imports.%Main.import_ref.1ee
|
||||
// CHECK:STDOUT: extend imports.%Main.import_ref.ebb
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.8c3
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.7a7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @B [from "factory.carbon"] {
|
||||
@@ -1454,7 +1454,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Make.ref: %Factory.assoc_type.8bd = name_ref Make, %.loc5_23 [concrete = constants.%assoc0.e71]
|
||||
// CHECK:STDOUT: %Factory.facet: %Factory.type.5e3 = facet_value %A.ref, (constants.%Factory.impl_witness) [concrete = constants.%Factory.facet]
|
||||
// CHECK:STDOUT: %.loc5_11: %Factory.type.5e3 = converted %A.ref, %Factory.facet [concrete = constants.%Factory.facet]
|
||||
// CHECK:STDOUT: %impl.elem0: %.9f3 = impl_witness_access constants.%Factory.impl_witness, element0 [concrete = constants.%A.as.Factory.impl.Make]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a03 = impl_witness_access constants.%Factory.impl_witness, element0 [concrete = constants.%A.as.Factory.impl.Make]
|
||||
// CHECK:STDOUT: %.loc4_15.1: ref %B = splice_block %return.param {}
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Make.call: init %B to %.loc4_15.1 = call %impl.elem0()
|
||||
// CHECK:STDOUT: return %A.as.Factory.impl.Make.call to %return.param
|
||||
@@ -1470,7 +1470,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.5e3]
|
||||
// CHECK:STDOUT: %.loc8: %Factory.assoc_type.8bd = specific_constant imports.%Main.import_ref.1ef, @Factory.WithSelf(constants.%B, constants.%Self.3e3) [concrete = constants.%assoc1.e2e]
|
||||
// CHECK:STDOUT: %Method.ref: %Factory.assoc_type.8bd = name_ref Method, %.loc8 [concrete = constants.%assoc1.e2e]
|
||||
// CHECK:STDOUT: %impl.elem1: %.076 = impl_witness_access constants.%Factory.impl_witness, element1 [concrete = constants.%A.as.Factory.impl.Method]
|
||||
// CHECK:STDOUT: %impl.elem1: %.0a9 = impl_witness_access constants.%Factory.impl_witness, element1 [concrete = constants.%A.as.Factory.impl.Method]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %a.ref, %impl.elem1
|
||||
// CHECK:STDOUT: %.loc7_23.1: ref %B = splice_block %return.param {}
|
||||
// CHECK:STDOUT: %A.as.Factory.impl.Method.call: init %B to %.loc7_23.1 = call %bound_method(%a.ref)
|
||||
@@ -1536,12 +1536,12 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %T => constants.%B
|
||||
// CHECK:STDOUT: %Factory.type => constants.%Factory.type.5e3
|
||||
// CHECK:STDOUT: %Self => constants.%Factory.facet
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.f93
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.57a
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make.type => constants.%Factory.WithSelf.Make.type.1e5
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Make => constants.%Factory.WithSelf.Make.3ca
|
||||
// CHECK:STDOUT: %Factory.assoc_type => constants.%Factory.assoc_type.8bd
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.e71
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.053
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.d76
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method.type => constants.%Factory.WithSelf.Method.type.510
|
||||
// CHECK:STDOUT: %Factory.WithSelf.Method => constants.%Factory.WithSelf.Method.ef3
|
||||
// CHECK:STDOUT: %assoc1 => constants.%assoc1.e2e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1622,7 +1622,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: %Main.import_ref.0f8e01.3: @Factory.%Factory.type (%Factory.type.711) = import_ref Main//factory, loc4_28, loaded [symbolic = @Factory.%Self (constants.%Self.3e3)]
|
||||
// CHECK:STDOUT: %Main.import_ref.a45 = import_ref Main//factory, loc4_28, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//factory, loc4_20, loaded [symbolic = @Factory.%T (constants.%T)]
|
||||
// CHECK:STDOUT: %Main.import_ref.97f = import_ref Main//factory, loc14_22, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.b13 = import_ref Main//factory, loc14_22, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.0ee = import_ref Main//factory, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.239: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A]
|
||||
@@ -1697,7 +1697,7 @@ fn InstanceC(a: A) -> C {
|
||||
// CHECK:STDOUT: .Make = imports.%Main.import_ref.213
|
||||
// CHECK:STDOUT: .Method = imports.%Main.import_ref.1ee
|
||||
// CHECK:STDOUT: extend imports.%Main.import_ref.ebb
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.97f
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.b13
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @B [from "factory.carbon"] {
|
||||
|
||||
+7
-7
@@ -47,14 +47,14 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.263: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.3c7: %HasF.WithSelf.F.type.263 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.722: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.689: %HasF.WithSelf.F.type.722 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete]
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.34f: type = fn_type_with_self_type %HasF.WithSelf.F.type.263, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %.697: type = fn_type_with_self_type %HasF.WithSelf.F.type.722, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -133,11 +133,11 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %C.ref.loc28: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %G.ref.loc28: %HasF.assoc_type = name_ref G, @C.%G [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc28: %.34f = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc28: %.697 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.call.loc28: init %empty_tuple.type = call %impl.elem0.loc28()
|
||||
// CHECK:STDOUT: %c.ref: %C = name_ref c, %c
|
||||
// CHECK:STDOUT: %G.ref.loc29: %HasF.assoc_type = name_ref G, @C.%G [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc29: %.34f = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc29: %.697 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.call.loc29: init %empty_tuple.type = call %impl.elem0.loc29()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -154,8 +154,8 @@ fn G(c: C) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.263
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.3c7
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.722
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.689
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) {}
|
||||
|
||||
@@ -78,8 +78,8 @@ fn G() {
|
||||
// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.impl_witness: <witness> = impl_witness imports.%BitAndWith.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.76f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.eef: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.76f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: <bound method> = bound_method %I.type, %type.as.BitAndWith.impl.Op [concrete]
|
||||
@@ -119,16 +119,16 @@ fn G() {
|
||||
// CHECK:STDOUT: %self.patt.947: %pattern_type.f79 = at_binding_pattern self, %self.param_patt.dfa [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.II.type: type = fn_type @C.as.I.impl.II [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.II: %C.as.I.impl.II.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.947: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.II.type.9c8: type = fn_type @I.WithSelf.II, @I.WithSelf(%I.facet.947) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.II.622: %I.WithSelf.II.type.9c8 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.bae: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.II.type.ffc: type = fn_type @I.WithSelf.II, @I.WithSelf(%I.facet.bae) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.II.263: %I.WithSelf.II.type.ffc = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.196: <witness> = impl_self_witness %C, @J [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness: <witness> = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %C.as.J.impl.JJ.type: type = fn_type @C.as.J.impl.JJ [concrete]
|
||||
// CHECK:STDOUT: %C.as.J.impl.JJ: %C.as.J.impl.JJ.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.a74: %J.type = facet_value %C, (%J.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.type.95f: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.a74) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.d09: %J.WithSelf.JJ.type.95f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.85d: %J.type = facet_value %C, (%J.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.type.088: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.85d) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.e4e: %J.WithSelf.JJ.type.088 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
@@ -139,7 +139,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.87d: %J.WithSelf.JJ.type.383 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.II.type.92c: type = fn_type @I.WithSelf.II, @I.WithSelf(%C.type.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.II.03d: %I.WithSelf.II.type.92c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.dd2: type = fn_type_with_self_type %J.WithSelf.JJ.type.95f, %J.facet.a74 [concrete]
|
||||
// CHECK:STDOUT: %.c59: type = fn_type_with_self_type %J.WithSelf.JJ.type.088, %J.facet.85d [concrete]
|
||||
// CHECK:STDOUT: %C.as.J.impl.JJ.bound: <bound method> = bound_method %.5d3, %C.as.J.impl.JJ [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc40_8.2 [concrete]
|
||||
@@ -184,7 +184,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
|
||||
// CHECK:STDOUT: %I.ref.loc22: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %J.ref.loc22: type = name_ref J, file.%J.decl [concrete = constants.%J.type]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22: %.eef = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method.loc22: <bound method> = bound_method %I.ref.loc22, %impl.elem0.loc22 [concrete = constants.%type.as.BitAndWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call: init type = call %bound_method.loc22(%I.ref.loc22, %J.ref.loc22) [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: %.loc22_19.2: type = value_of_initializer %type.as.BitAndWith.impl.Op.call [concrete = constants.%facet_type]
|
||||
@@ -408,31 +408,31 @@ fn G() {
|
||||
// CHECK:STDOUT: %.loc40_8.1: init %C = converted %.loc40_6.1, %.loc40_6.3 [concrete = constants.%C.val]
|
||||
// CHECK:STDOUT: %C.ref.loc40_24: type = name_ref C, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %I.ref.loc40_29: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %I.facet.loc40_26: %I.type = facet_value %C.ref.loc40_24, (constants.%I.impl_witness) [concrete = constants.%I.facet.947]
|
||||
// CHECK:STDOUT: %.loc40_26: %I.type = converted %C.ref.loc40_24, %I.facet.loc40_26 [concrete = constants.%I.facet.947]
|
||||
// CHECK:STDOUT: %I.facet.loc40_26: %I.type = facet_value %C.ref.loc40_24, (constants.%I.impl_witness) [concrete = constants.%I.facet.bae]
|
||||
// CHECK:STDOUT: %.loc40_26: %I.type = converted %C.ref.loc40_24, %I.facet.loc40_26 [concrete = constants.%I.facet.bae]
|
||||
// CHECK:STDOUT: %.loc40_35: type = type_literal type [concrete = type]
|
||||
// CHECK:STDOUT: %as_type.loc40_32: type = facet_access_type %.loc40_26 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc40_32: type = converted %.loc40_26, %as_type.loc40_32 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %J.ref.loc40_44: type = name_ref J, file.%J.decl [concrete = constants.%J.type]
|
||||
// CHECK:STDOUT: %J.facet.loc40_41: %J.type = facet_value %.loc40_32, (constants.%J.impl_witness) [concrete = constants.%J.facet.a74]
|
||||
// CHECK:STDOUT: %.loc40_41: %J.type = converted %.loc40_32, %J.facet.loc40_41 [concrete = constants.%J.facet.a74]
|
||||
// CHECK:STDOUT: %J.facet.loc40_41: %J.type = facet_value %.loc40_32, (constants.%J.impl_witness) [concrete = constants.%J.facet.85d]
|
||||
// CHECK:STDOUT: %.loc40_41: %J.type = converted %.loc40_32, %J.facet.loc40_41 [concrete = constants.%J.facet.85d]
|
||||
// CHECK:STDOUT: %.loc40_50: type = type_literal type [concrete = type]
|
||||
// CHECK:STDOUT: %as_type.loc40_47: type = facet_access_type %.loc40_41 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc40_47: type = converted %.loc40_41, %as_type.loc40_47 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %I.ref.loc40_59: type = name_ref I, file.%I.decl [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %I.facet.loc40_56: %I.type = facet_value %.loc40_47, (constants.%I.impl_witness) [concrete = constants.%I.facet.947]
|
||||
// CHECK:STDOUT: %.loc40_56: %I.type = converted %.loc40_47, %I.facet.loc40_56 [concrete = constants.%I.facet.947]
|
||||
// CHECK:STDOUT: %I.facet.loc40_56: %I.type = facet_value %.loc40_47, (constants.%I.impl_witness) [concrete = constants.%I.facet.bae]
|
||||
// CHECK:STDOUT: %.loc40_56: %I.type = converted %.loc40_47, %I.facet.loc40_56 [concrete = constants.%I.facet.bae]
|
||||
// CHECK:STDOUT: %.loc40_65: type = type_literal type [concrete = type]
|
||||
// CHECK:STDOUT: %as_type.loc40_62: type = facet_access_type %.loc40_56 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc40_62: type = converted %.loc40_56, %as_type.loc40_62 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %J.ref.loc40_74: type = name_ref J, file.%J.decl [concrete = constants.%J.type]
|
||||
// CHECK:STDOUT: %J.facet.loc40_71: %J.type = facet_value %.loc40_62, (constants.%J.impl_witness) [concrete = constants.%J.facet.a74]
|
||||
// CHECK:STDOUT: %.loc40_71: %J.type = converted %.loc40_62, %J.facet.loc40_71 [concrete = constants.%J.facet.a74]
|
||||
// CHECK:STDOUT: %J.facet.loc40_71: %J.type = facet_value %.loc40_62, (constants.%J.impl_witness) [concrete = constants.%J.facet.85d]
|
||||
// CHECK:STDOUT: %.loc40_71: %J.type = converted %.loc40_62, %J.facet.loc40_71 [concrete = constants.%J.facet.85d]
|
||||
// CHECK:STDOUT: %as_type.loc40_75: type = facet_access_type %.loc40_71 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc40_75: type = converted %.loc40_71, %as_type.loc40_75 [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %.loc40_8.2: ref %C = temporary %.loc40_6.2, %.loc40_8.1 [concrete = constants.%.5d3]
|
||||
// CHECK:STDOUT: %JJ.ref: %J.assoc_type = name_ref JJ, @J.WithSelf.%assoc0 [concrete = constants.%assoc0.7d8]
|
||||
// CHECK:STDOUT: %impl.elem0: %.dd2 = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%C.as.J.impl.JJ]
|
||||
// CHECK:STDOUT: %impl.elem0: %.c59 = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%C.as.J.impl.JJ]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc40_8.2, %impl.elem0 [concrete = constants.%C.as.J.impl.JJ.bound]
|
||||
// CHECK:STDOUT: %.loc40_8.3: %C = acquire_value %.loc40_8.2 [concrete = constants.%C.val]
|
||||
// CHECK:STDOUT: %C.as.J.impl.JJ.call: init %empty_tuple.type = call %bound_method(%.loc40_8.3)
|
||||
@@ -543,30 +543,30 @@ fn G() {
|
||||
// CHECK:STDOUT: %self.patt.loc19_9.2 => constants.%self.patt.1c9
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.947) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.bae) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.947
|
||||
// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.9c8
|
||||
// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.622
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.bae
|
||||
// CHECK:STDOUT: %I.WithSelf.II.type => constants.%I.WithSelf.II.type.ffc
|
||||
// CHECK:STDOUT: %I.WithSelf.II => constants.%I.WithSelf.II.263
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.II(constants.%I.facet.947) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.947
|
||||
// CHECK:STDOUT: specific @I.WithSelf.II(constants.%I.facet.bae) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.bae
|
||||
// CHECK:STDOUT: %Self.as_type.loc16_9.1 => constants.%C
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f79
|
||||
// CHECK:STDOUT: %self.param_patt.loc16_9.2 => constants.%self.param_patt.dfa
|
||||
// CHECK:STDOUT: %self.patt.loc16_9.2 => constants.%self.patt.947
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.a74) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.85d) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.a74
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.95f
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.d09
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.85d
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.088
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.e4e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.a74) {
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.a74
|
||||
// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.85d) {
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.85d
|
||||
// CHECK:STDOUT: %Self.as_type.loc19_9.1 => constants.%C
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f79
|
||||
// CHECK:STDOUT: %self.param_patt.loc19_9.2 => constants.%self.param_patt.dfa
|
||||
@@ -598,11 +598,11 @@ fn G() {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type
|
||||
// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness
|
||||
// CHECK:STDOUT: %I.facet.loc26_18.2 => constants.%I.facet.947
|
||||
// CHECK:STDOUT: %I.facet.loc26_18.2 => constants.%I.facet.bae
|
||||
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness
|
||||
// CHECK:STDOUT: %J.facet.loc26_33.2 => constants.%J.facet.a74
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.95f
|
||||
// CHECK:STDOUT: %.loc26_69 => constants.%.dd2
|
||||
// CHECK:STDOUT: %J.facet.loc26_33.2 => constants.%J.facet.85d
|
||||
// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.088
|
||||
// CHECK:STDOUT: %.loc26_69 => constants.%.c59
|
||||
// CHECK:STDOUT: %impl.elem0.loc26_69.2 => constants.%C.as.J.impl.JJ
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc26_69.2 => constants.%C.as.J.impl.JJ
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -59,7 +59,7 @@ fn G() {
|
||||
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
||||
// CHECK:STDOUT: %.b7f: <witness> = impl_self_witness %C, @I [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.4e9: <witness> = impl_witness @C.as.I.impl.ac9.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.490: <witness> = impl_witness @C.as.I.impl.ac9.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
|
||||
@@ -68,16 +68,16 @@ fn G() {
|
||||
// CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.b04: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.cef: %I.WithSelf.F.type.b04 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.029: %I.type = facet_value %C, (%I.impl_witness.4e9) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.d7f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.029) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.1f7: %I.WithSelf.F.type.d7f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.010: type = fn_type_with_self_type %I.WithSelf.F.type.d7f, %I.facet.029 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.d1b: <witness> = impl_witness @C.as.I.impl.e10.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet.aa5: %I.type = facet_value %C, (%I.impl_witness.490) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.372: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.aa5) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.d46: %I.WithSelf.F.type.372 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a89: type = fn_type_with_self_type %I.WithSelf.F.type.372, %I.facet.aa5 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.df5: <witness> = impl_witness @C.as.I.impl.e10.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.c86: %I.type = facet_value %C, (%I.impl_witness.d1b) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.51c: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.c86) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.179: %I.WithSelf.F.type.51c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.a71: %I.type = facet_value %C, (%I.impl_witness.df5) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.cb9: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.a71) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.a58: %I.WithSelf.F.type.cb9 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -121,7 +121,7 @@ fn G() {
|
||||
// CHECK:STDOUT: impl @C.as.I.impl.e10: %C.ref as %I.ref {
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] {} {}
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%C.as.I.impl.F.decl), @C.as.I.impl.e10 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.d1b]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.df5]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %C.as.I.impl.F.decl
|
||||
@@ -153,7 +153,7 @@ fn G() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.010 = impl_witness_access constants.%I.impl_witness.4e9, element0 [concrete = <error>]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a89 = impl_witness_access constants.%I.impl_witness.490, element0 [concrete = <error>]
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -166,7 +166,7 @@ fn G() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.010 = impl_witness_access constants.%I.impl_witness.4e9, element0 [concrete = <error>]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a89 = impl_witness_access constants.%I.impl_witness.490, element0 [concrete = <error>]
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -186,19 +186,19 @@ fn G() {
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.cef
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.029) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.aa5) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.029
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.d7f
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.1f7
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.aa5
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.372
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.d46
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.c86) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.a71) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.c86
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.51c
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.179
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet.a71
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.cb9
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a58
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.c86) {}
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.a71) {}
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+109
-109
@@ -148,15 +148,15 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %.989: <witness> = impl_self_witness %T, @HasF [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.ebe: <witness> = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.c4c: <witness> = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
|
||||
// CHECK:STDOUT: %self.param_patt.b7c: %pattern_type.51d = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %self.patt.7e4: %pattern_type.51d = at_binding_pattern self, %self.param_patt.b7c [symbolic]
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.type.195: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.863: %T.as.HasF.impl.F.type.195 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.805: %HasF.type = facet_value %T, (%HasF.impl_witness.ebe) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.b00: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.805) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.33f: %HasF.WithSelf.F.type.b00 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.d3e: %HasF.type = facet_value %T, (%HasF.impl_witness.c4c) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.48c: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.d3e) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.6a2: %HasF.WithSelf.F.type.48c = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
@@ -166,13 +166,13 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.94a: <witness> = impl_self_witness %empty_struct_type, @HasF [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.aaf: <witness> = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.85b: <witness> = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.type.d06: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.e31: %T.as.HasF.impl.F.type.d06 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.b0f: %HasF.type = facet_value %empty_struct_type, (%HasF.impl_witness.aaf) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.476: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.b0f) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.141: %HasF.WithSelf.F.type.476 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.be5: type = fn_type_with_self_type %HasF.WithSelf.F.type.476, %HasF.facet.b0f [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.db1: %HasF.type = facet_value %empty_struct_type, (%HasF.impl_witness.85b) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.c41: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.db1) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.e57: %HasF.WithSelf.F.type.c41 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.376: type = fn_type_with_self_type %HasF.WithSelf.F.type.c41, %HasF.facet.db1 [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.482: %pattern_type.a96 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.b63: %pattern_type.a96 = at_binding_pattern self, %self.param_patt.482 [concrete]
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.specific_fn: <specific function> = specific_function %T.as.HasF.impl.F.e31, @T.as.HasF.impl.F(%empty_struct_type) [concrete]
|
||||
@@ -250,7 +250,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.patt.loc8_15.2: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_15.2 (constants.%T.patt)]
|
||||
// CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.1 (constants.%T)]
|
||||
// CHECK:STDOUT: %.loc8_33: <witness> = impl_self_witness %T.loc8_15.1, @HasF [symbolic = %.loc8_33 (constants.%.989)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.2: <witness> = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_33.2 (constants.%HasF.impl_witness.ebe)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.2: <witness> = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_33.2 (constants.%HasF.impl_witness.c4c)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T.loc8_15.1) [symbolic = %T.as.HasF.impl.F.type (constants.%T.as.HasF.impl.F.type.195)]
|
||||
@@ -266,7 +266,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %self: @T.as.HasF.impl.F.%T (%T) = wrapper_binding self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%T.as.HasF.impl.F.decl), @T.as.HasF.impl [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.1: <witness> = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_33.2 (constants.%HasF.impl_witness.ebe)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.1: <witness> = impl_witness %HasF.impl_witness_table, @T.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_33.2 (constants.%HasF.impl_witness.c4c)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %T.as.HasF.impl.F.decl
|
||||
@@ -305,7 +305,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %x.ref: %empty_struct_type = name_ref x, %x
|
||||
// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.be5 = impl_witness_access constants.%HasF.impl_witness.aaf, element0 [concrete = constants.%T.as.HasF.impl.F.e31]
|
||||
// CHECK:STDOUT: %impl.elem0: %.376 = impl_witness_access constants.%HasF.impl_witness.85b, element0 [concrete = constants.%T.as.HasF.impl.F.e31]
|
||||
// CHECK:STDOUT: %bound_method.loc13_4: <bound method> = bound_method %x.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @T.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%T.as.HasF.impl.F.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc13_14: <bound method> = bound_method %x.ref, %specific_fn
|
||||
@@ -332,7 +332,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.patt.loc8_15.2 => constants.%T.patt
|
||||
// CHECK:STDOUT: %T.loc8_15.1 => constants.%T
|
||||
// CHECK:STDOUT: %.loc8_33 => constants.%.989
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.2 => constants.%HasF.impl_witness.ebe
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.2 => constants.%HasF.impl_witness.c4c
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.type => constants.%T.as.HasF.impl.F.type.195
|
||||
@@ -346,15 +346,15 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %self.patt.loc9_15.2 => constants.%self.patt.7e4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.805) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.d3e) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.805
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.b00
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.33f
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.d3e
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.48c
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.6a2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.805) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.805
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.d3e) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.d3e
|
||||
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%T
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
|
||||
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.b7c
|
||||
@@ -365,18 +365,18 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.patt.loc8_15.2 => constants.%T.patt
|
||||
// CHECK:STDOUT: %T.loc8_15.1 => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %.loc8_33 => constants.%.94a
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.2 => constants.%HasF.impl_witness.aaf
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_33.2 => constants.%HasF.impl_witness.85b
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.type => constants.%T.as.HasF.impl.F.type.d06
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F => constants.%T.as.HasF.impl.F.e31
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.b0f) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.db1) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.b0f
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.476
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.141
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.db1
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.c41
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.e57
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T.as.HasF.impl.F(constants.%empty_struct_type) {
|
||||
@@ -412,7 +412,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic]
|
||||
// CHECK:STDOUT: %.1c9: <witness> = impl_self_witness %ptr.e8f, @HasF [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.672: <witness> = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.bd4: <witness> = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic]
|
||||
// CHECK:STDOUT: %self.param_patt.921: %pattern_type.4f4 = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %self.patt.99b: %pattern_type.4f4 = at_binding_pattern self, %self.param_patt.921 [symbolic]
|
||||
@@ -421,9 +421,9 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %return.patt.d67: %pattern_type.4f4 = return_slot_pattern %return.param_patt.27f, %ptr.e8f [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.type.d5f: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.be3: %ptr.as.HasF.impl.F.type.d5f = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.3fb: %HasF.type = facet_value %ptr.e8f, (%HasF.impl_witness.672) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.7fc: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.3fb) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.cbb: %HasF.WithSelf.F.type.7fc = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.b7c: %HasF.type = facet_value %ptr.e8f, (%HasF.impl_witness.bd4) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.517: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.b7c) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.e3a: %HasF.WithSelf.F.type.517 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.ef1: <witness> = require_complete_type %ptr.e8f [symbolic]
|
||||
// CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.ff5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic]
|
||||
@@ -447,24 +447,24 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.897: <witness> = impl_self_witness %ptr.c28, @HasF [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.e43: <witness> = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.6e1: <witness> = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.type.03e: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.156: %ptr.as.HasF.impl.F.type.03e = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.7a9: %HasF.type = facet_value %ptr.c28, (%HasF.impl_witness.e43) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.c4f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.7a9) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.814: %HasF.WithSelf.F.type.c4f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.2ad: type = fn_type_with_self_type %HasF.WithSelf.F.type.c4f, %HasF.facet.7a9 [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.84d: %HasF.type = facet_value %ptr.c28, (%HasF.impl_witness.6e1) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.470: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.84d) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.8ab: %HasF.WithSelf.F.type.470 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.41a: type = fn_type_with_self_type %HasF.WithSelf.F.type.470, %HasF.facet.84d [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.4b0: %pattern_type.1cc = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.254: %pattern_type.1cc = at_binding_pattern self, %self.param_patt.4b0 [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.specific_fn: <specific function> = specific_function %ptr.as.HasF.impl.F.156, @ptr.as.HasF.impl.F(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %ptr.c28 [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.1c2: <witness> = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.e8f: <witness> = impl_witness imports.%Copy.impl_witness_table.fb0, @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.9ed: %ptr.as.Copy.impl.Op.type.6c5 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a81: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet.80f: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.1c2) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.8a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.80f) [concrete]
|
||||
// CHECK:STDOUT: %.523: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8a4, %Copy.facet.80f [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet.8c1: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.e8f) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.42f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.8c1) [concrete]
|
||||
// CHECK:STDOUT: %.f18: type = fn_type_with_self_type %Copy.WithSelf.Op.type.42f, %Copy.facet.8c1 [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %ptr.as.Copy.impl.Op.9ed, @ptr.as.Copy.impl.Op(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -476,7 +476,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type]
|
||||
// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce9)]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.fb0 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -563,7 +563,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.1 (constants.%T.67d)]
|
||||
// CHECK:STDOUT: %ptr.loc8_24.1: type = ptr_type %T.loc8_15.1 [symbolic = %ptr.loc8_24.1 (constants.%ptr.e8f)]
|
||||
// CHECK:STDOUT: %.loc8_34: <witness> = impl_self_witness %ptr.loc8_24.1, @HasF [symbolic = %.loc8_34 (constants.%.1c9)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2: <witness> = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.672)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2: <witness> = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.bd4)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.type: type = fn_type @ptr.as.HasF.impl.F, @ptr.as.HasF.impl(%T.loc8_15.1) [symbolic = %ptr.as.HasF.impl.F.type (constants.%ptr.as.HasF.impl.F.type.d5f)]
|
||||
@@ -586,7 +586,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %return: ref @ptr.as.HasF.impl.F.%ptr.loc9_8 (%ptr.e8f) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%ptr.as.HasF.impl.F.decl), @ptr.as.HasF.impl [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.1: <witness> = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(constants.%T.67d) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.672)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.1: <witness> = impl_witness %HasF.impl_witness_table, @ptr.as.HasF.impl(constants.%T.67d) [symbolic = %HasF.impl_witness.loc8_34.2 (constants.%HasF.impl_witness.bd4)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .T = <poisoned>
|
||||
@@ -650,7 +650,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %x.ref: %ptr.c28 = name_ref x, %x
|
||||
// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.a0c]
|
||||
// CHECK:STDOUT: %impl.elem0: %.2ad = impl_witness_access constants.%HasF.impl_witness.e43, element0 [concrete = constants.%ptr.as.HasF.impl.F.156]
|
||||
// CHECK:STDOUT: %impl.elem0: %.41a = impl_witness_access constants.%HasF.impl_witness.6e1, element0 [concrete = constants.%ptr.as.HasF.impl.F.156]
|
||||
// CHECK:STDOUT: %bound_method.loc13_11: <bound method> = bound_method %x.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @ptr.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%ptr.as.HasF.impl.F.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc13_21: <bound method> = bound_method %x.ref, %specific_fn
|
||||
@@ -681,7 +681,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc8_15.1 => constants.%T.67d
|
||||
// CHECK:STDOUT: %ptr.loc8_24.1 => constants.%ptr.e8f
|
||||
// CHECK:STDOUT: %.loc8_34 => constants.%.1c9
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.672
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.bd4
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.type => constants.%ptr.as.HasF.impl.F.type.d5f
|
||||
@@ -699,15 +699,15 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %return.patt.loc9_14.2 => constants.%return.patt.d67
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.3fb) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.b7c) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.3fb
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.7fc
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.cbb
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.b7c
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.517
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.e3a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.3fb) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.3fb
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.b7c) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.b7c
|
||||
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%ptr.e8f
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4
|
||||
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.921
|
||||
@@ -722,18 +722,18 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc8_15.1 => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %ptr.loc8_24.1 => constants.%ptr.c28
|
||||
// CHECK:STDOUT: %.loc8_34 => constants.%.897
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.e43
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_34.2 => constants.%HasF.impl_witness.6e1
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F.type => constants.%ptr.as.HasF.impl.F.type.03e
|
||||
// CHECK:STDOUT: %ptr.as.HasF.impl.F => constants.%ptr.as.HasF.impl.F.156
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.7a9) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.84d) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.7a9
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.c4f
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.814
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.84d
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.470
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8ab
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @ptr.as.HasF.impl.F(constants.%empty_struct_type) {
|
||||
@@ -749,10 +749,10 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type
|
||||
// CHECK:STDOUT: %.loc9_29.3 => constants.%.a81
|
||||
// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1c2
|
||||
// CHECK:STDOUT: %Copy.facet.loc9_29.3 => constants.%Copy.facet.80f
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.8a4
|
||||
// CHECK:STDOUT: %.loc9_29.4 => constants.%.523
|
||||
// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.e8f
|
||||
// CHECK:STDOUT: %Copy.facet.loc9_29.3 => constants.%Copy.facet.8c1
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.42f
|
||||
// CHECK:STDOUT: %.loc9_29.4 => constants.%.f18
|
||||
// CHECK:STDOUT: %impl.elem0.loc9_29.2 => constants.%ptr.as.Copy.impl.Op.9ed
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc9_29.2 => constants.%ptr.as.Copy.impl.Op.specific_fn
|
||||
// CHECK:STDOUT: }
|
||||
@@ -782,15 +782,15 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %.9f4: <witness> = impl_self_witness %C.1d0, @HasF [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.4e6: <witness> = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.cc9: <witness> = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.ebe: type = pattern_type %C.1d0 [symbolic]
|
||||
// CHECK:STDOUT: %self.param_patt.5bc: %pattern_type.ebe = value_param_pattern [symbolic]
|
||||
// CHECK:STDOUT: %self.patt.6f1: %pattern_type.ebe = at_binding_pattern self, %self.param_patt.5bc [symbolic]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type.67f: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.7ba: %C.as.HasF.impl.F.type.67f = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.0c3: %HasF.type = facet_value %C.1d0, (%HasF.impl_witness.4e6) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.2db: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.0c3) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.5ef: %HasF.WithSelf.F.type.2db = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.831: %HasF.type = facet_value %C.1d0, (%HasF.impl_witness.cc9) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.8e1: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.831) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.733: %HasF.WithSelf.F.type.8e1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %C.1d0 [symbolic]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.d8e: type = class_type @C, @C(%empty_struct_type) [concrete]
|
||||
@@ -800,13 +800,13 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.014: <witness> = impl_self_witness %C.d8e, @HasF [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.f0d: <witness> = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.820: <witness> = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type.edc: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.612: %C.as.HasF.impl.F.type.edc = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.132: %HasF.type = facet_value %C.d8e, (%HasF.impl_witness.f0d) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.938: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.132) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.787: %HasF.WithSelf.F.type.938 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.bf7: type = fn_type_with_self_type %HasF.WithSelf.F.type.938, %HasF.facet.132 [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.cc9: %HasF.type = facet_value %C.d8e, (%HasF.impl_witness.820) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.abd: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet.cc9) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.f56: %HasF.WithSelf.F.type.abd = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.286: type = fn_type_with_self_type %HasF.WithSelf.F.type.abd, %HasF.facet.cc9 [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.12a: %pattern_type.2fd = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.ac5: %pattern_type.2fd = at_binding_pattern self, %self.param_patt.12a [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.specific_fn: <specific function> = specific_function %C.as.HasF.impl.F.612, @C.as.HasF.impl.F(%empty_struct_type) [concrete]
|
||||
@@ -898,7 +898,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc10_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc10_15.1 (constants.%T)]
|
||||
// CHECK:STDOUT: %C.loc10_26.1: type = class_type @C, @C(%T.loc10_15.1) [symbolic = %C.loc10_26.1 (constants.%C.1d0)]
|
||||
// CHECK:STDOUT: %.loc10_36: <witness> = impl_self_witness %C.loc10_26.1, @HasF [symbolic = %.loc10_36 (constants.%.9f4)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.2: <witness> = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(%T.loc10_15.1) [symbolic = %HasF.impl_witness.loc10_36.2 (constants.%HasF.impl_witness.4e6)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.2: <witness> = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(%T.loc10_15.1) [symbolic = %HasF.impl_witness.loc10_36.2 (constants.%HasF.impl_witness.cc9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%T.loc10_15.1) [symbolic = %C.as.HasF.impl.F.type (constants.%C.as.HasF.impl.F.type.67f)]
|
||||
@@ -914,7 +914,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %self: @C.as.HasF.impl.F.%C (%C.1d0) = wrapper_binding self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%C.as.HasF.impl.F.decl), @C.as.HasF.impl [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.1: <witness> = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc10_36.2 (constants.%HasF.impl_witness.4e6)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.1: <witness> = impl_witness %HasF.impl_witness_table, @C.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc10_36.2 (constants.%HasF.impl_witness.cc9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %C.as.HasF.impl.F.decl
|
||||
@@ -969,7 +969,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %x.ref: %C.d8e = name_ref x, %x
|
||||
// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.bf7 = impl_witness_access constants.%HasF.impl_witness.f0d, element0 [concrete = constants.%C.as.HasF.impl.F.612]
|
||||
// CHECK:STDOUT: %impl.elem0: %.286 = impl_witness_access constants.%HasF.impl_witness.820, element0 [concrete = constants.%C.as.HasF.impl.F.612]
|
||||
// CHECK:STDOUT: %bound_method.loc15_4: <bound method> = bound_method %x.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @C.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%C.as.HasF.impl.F.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc15_14: <bound method> = bound_method %x.ref, %specific_fn
|
||||
@@ -1004,7 +1004,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc10_15.1 => constants.%T
|
||||
// CHECK:STDOUT: %C.loc10_26.1 => constants.%C.1d0
|
||||
// CHECK:STDOUT: %.loc10_36 => constants.%.9f4
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.2 => constants.%HasF.impl_witness.4e6
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.2 => constants.%HasF.impl_witness.cc9
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type => constants.%C.as.HasF.impl.F.type.67f
|
||||
@@ -1019,15 +1019,15 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %self.patt.loc11_15.2 => constants.%self.patt.6f1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.0c3) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.831) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.0c3
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.2db
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.5ef
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.831
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.8e1
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.733
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.0c3) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.0c3
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.831) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.831
|
||||
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%C.1d0
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ebe
|
||||
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.5bc
|
||||
@@ -1046,18 +1046,18 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc10_15.1 => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %C.loc10_26.1 => constants.%C.d8e
|
||||
// CHECK:STDOUT: %.loc10_36 => constants.%.014
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.2 => constants.%HasF.impl_witness.f0d
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc10_36.2 => constants.%HasF.impl_witness.820
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type => constants.%C.as.HasF.impl.F.type.edc
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F => constants.%C.as.HasF.impl.F.612
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.132) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.cc9) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.132
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.938
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.787
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.cc9
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.abd
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.f56
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C.as.HasF.impl.F(constants.%empty_struct_type) {
|
||||
@@ -1095,16 +1095,16 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.500: <witness> = impl_self_witness %empty_struct_type, @HasF, @HasF(%T) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.932: <witness> = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.5f9: <witness> = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %HasF.type.daf [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.482: %pattern_type.a96 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.b63: %pattern_type.a96 = at_binding_pattern self, %self.param_patt.482 [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type.5ee: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.b79: %empty_struct_type.as.HasF.impl.F.type.5ee = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.9f2: %HasF.type.daf = facet_value %empty_struct_type, (%HasF.impl_witness.932) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.dd7: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet.9f2) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.7b3: %HasF.WithSelf.F.type.dd7 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet.5dc: %HasF.type.daf = facet_value %empty_struct_type, (%HasF.impl_witness.5f9) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.c8f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet.5dc) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.c26: %HasF.WithSelf.F.type.c8f = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete]
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
|
||||
@@ -1116,14 +1116,14 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %HasF.assoc_type.1d0: type = assoc_entity_type @HasF, @HasF(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.3f7: %HasF.assoc_type.1d0 = assoc_entity element0, @HasF.WithSelf.%HasF.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %.232: <witness> = impl_self_witness %empty_struct_type, @HasF, @HasF(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.7f1: <witness> = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.38f: <witness> = impl_witness @empty_struct_type.as.HasF.impl.%HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %HasF.type.b91 [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type.6cf: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.0aa: %empty_struct_type.as.HasF.impl.F.type.6cf = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.b45: %HasF.type.b91 = facet_value %empty_struct_type, (%HasF.impl_witness.7f1) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.1ff: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%empty_struct_type, %HasF.facet.b45) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.260: %HasF.WithSelf.F.type.1ff = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.abf: type = fn_type_with_self_type %HasF.WithSelf.F.type.1ff, %HasF.facet.b45 [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet.4e5: %HasF.type.b91 = facet_value %empty_struct_type, (%HasF.impl_witness.38f) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.48c: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%empty_struct_type, %HasF.facet.4e5) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.077: %HasF.WithSelf.F.type.48c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.6a4: type = fn_type_with_self_type %HasF.WithSelf.F.type.48c, %HasF.facet.4e5 [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.specific_fn: <specific function> = specific_function %empty_struct_type.as.HasF.impl.F.0aa, @empty_struct_type.as.HasF.impl.F(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1220,7 +1220,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc8_15.1: type = symbolic_binding T, 0 [symbolic = %T.loc8_15.1 (constants.%T)]
|
||||
// CHECK:STDOUT: %HasF.type.loc8_35.1: type = facet_type <@HasF, @HasF(%T.loc8_15.1)> [symbolic = %HasF.type.loc8_35.1 (constants.%HasF.type.daf)]
|
||||
// CHECK:STDOUT: %.loc8_37: <witness> = impl_self_witness constants.%empty_struct_type, @HasF, @HasF(%T.loc8_15.1) [symbolic = %.loc8_37 (constants.%.500)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.2: <witness> = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_37.2 (constants.%HasF.impl_witness.932)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.2: <witness> = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(%T.loc8_15.1) [symbolic = %HasF.impl_witness.loc8_37.2 (constants.%HasF.impl_witness.5f9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %HasF.type.loc8_35.1 [symbolic = %require_complete (constants.%require_complete)]
|
||||
@@ -1237,7 +1237,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %self: %empty_struct_type = wrapper_binding self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %HasF.impl_witness_table = impl_witness_table (%empty_struct_type.as.HasF.impl.F.decl), @empty_struct_type.as.HasF.impl [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.1: <witness> = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_37.2 (constants.%HasF.impl_witness.932)]
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.1: <witness> = impl_witness %HasF.impl_witness_table, @empty_struct_type.as.HasF.impl(constants.%T) [symbolic = %HasF.impl_witness.loc8_37.2 (constants.%HasF.impl_witness.5f9)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %empty_struct_type.as.HasF.impl.F.decl
|
||||
@@ -1276,7 +1276,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%empty_struct_type)> [concrete = constants.%HasF.type.b91]
|
||||
// CHECK:STDOUT: %.loc13_14: %HasF.assoc_type.1d0 = specific_constant @HasF.WithSelf.%assoc0.loc5_13.1, @HasF.WithSelf(constants.%empty_struct_type, constants.%Self.822) [concrete = constants.%assoc0.3f7]
|
||||
// CHECK:STDOUT: %F.ref: %HasF.assoc_type.1d0 = name_ref F, %.loc13_14 [concrete = constants.%assoc0.3f7]
|
||||
// CHECK:STDOUT: %impl.elem0: %.abf = impl_witness_access constants.%HasF.impl_witness.7f1, element0 [concrete = constants.%empty_struct_type.as.HasF.impl.F.0aa]
|
||||
// CHECK:STDOUT: %impl.elem0: %.6a4 = impl_witness_access constants.%HasF.impl_witness.38f, element0 [concrete = constants.%empty_struct_type.as.HasF.impl.F.0aa]
|
||||
// CHECK:STDOUT: %bound_method.loc13_4: <bound method> = bound_method %x.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @empty_struct_type.as.HasF.impl.F(constants.%empty_struct_type) [concrete = constants.%empty_struct_type.as.HasF.impl.F.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc13_18: <bound method> = bound_method %x.ref, %specific_fn
|
||||
@@ -1319,7 +1319,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc8_15.1 => constants.%T
|
||||
// CHECK:STDOUT: %HasF.type.loc8_35.1 => constants.%HasF.type.daf
|
||||
// CHECK:STDOUT: %.loc8_37 => constants.%.500
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.2 => constants.%HasF.impl_witness.932
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.2 => constants.%HasF.impl_witness.5f9
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete => constants.%require_complete
|
||||
@@ -1329,21 +1329,21 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl.F(constants.%T) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%HasF.facet.9f2) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%HasF.facet.5dc) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.9f2
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.dd7
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.7b3
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.5dc
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.c8f
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.c26
|
||||
// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.ddf
|
||||
// CHECK:STDOUT: %assoc0.loc5_13.2 => constants.%assoc0.e9a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%HasF.facet.9f2) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%T, constants.%HasF.facet.5dc) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.9f2
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.5dc
|
||||
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a96
|
||||
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.482
|
||||
@@ -1375,7 +1375,7 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.loc8_15.1 => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %HasF.type.loc8_35.1 => constants.%HasF.type.b91
|
||||
// CHECK:STDOUT: %.loc8_37 => constants.%.232
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.2 => constants.%HasF.impl_witness.7f1
|
||||
// CHECK:STDOUT: %HasF.impl_witness.loc8_37.2 => constants.%HasF.impl_witness.38f
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type
|
||||
@@ -1383,13 +1383,13 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F => constants.%empty_struct_type.as.HasF.impl.F.0aa
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%empty_struct_type, constants.%HasF.facet.b45) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%empty_struct_type, constants.%HasF.facet.4e5) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T => constants.%empty_struct_type
|
||||
// CHECK:STDOUT: %HasF.type => constants.%HasF.type.b91
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.b45
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.1ff
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.260
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet.4e5
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.48c
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.077
|
||||
// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.1d0
|
||||
// CHECK:STDOUT: %assoc0.loc5_13.2 => constants.%assoc0.3f7
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1636,8 +1636,8 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T) [symbolic]
|
||||
// CHECK:STDOUT: %T.as.HasF.impl.F: %T.as.HasF.impl.F.type = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type.daf = facet_value %T, (%HasF.impl_witness) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.f9f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.3d5: %HasF.WithSelf.F.type.f9f = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.260: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet) [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.8f7: %HasF.WithSelf.F.type.260 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.944: <witness> = require_complete_type %T [symbolic]
|
||||
// CHECK:STDOUT: %A: type = class_type @A [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
@@ -1884,8 +1884,8 @@ fn G(x: A) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %HasF.type => constants.%HasF.type.daf
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f9f
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.3d5
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.260
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8f7
|
||||
// CHECK:STDOUT: %HasF.assoc_type => constants.%HasF.assoc_type.ddf
|
||||
// CHECK:STDOUT: %assoc0.loc5_13.2 => constants.%assoc0.e9a
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+21
-21
@@ -61,7 +61,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %A.47a1de.2: type = class_type @A, @A(%V.67d) [symbolic]
|
||||
// CHECK:STDOUT: %I.type.3fe556.2: type = facet_type <@I, @I(%V.67d)> [symbolic]
|
||||
// CHECK:STDOUT: %.dcb87d.1: <witness> = impl_self_witness %A.47a1de.2, @I, @I(%V.67d) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.25d8bb.1: <witness> = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%V.67d) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.ee9f63.1: <witness> = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%V.67d) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.45eab2.1: <witness> = require_complete_type %I.type.3fe556.2 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.44a178.1: type = pattern_type %A.47a1de.2 [symbolic]
|
||||
// CHECK:STDOUT: %self.param_patt.a903c4.1: %pattern_type.44a178.1 = ref_param_pattern [symbolic]
|
||||
@@ -104,7 +104,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %require_complete.45eab2.2: <witness> = require_complete_type %I.type.3fe556.3 [symbolic]
|
||||
// CHECK:STDOUT: %I.lookup_impl_witness: <witness> = lookup_impl_witness %A.47a1de.3, @I, @I(%W) [symbolic]
|
||||
// CHECK:STDOUT: %.dcb87d.2: <witness> = impl_self_witness %A.47a1de.3, @I, @I(%W) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.25d8bb.2: <witness> = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%W) [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness.ee9f63.2: <witness> = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%W) [symbolic]
|
||||
// CHECK:STDOUT: %A.as.I.impl.F.type.d1ec9e.2: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%W) [symbolic]
|
||||
// CHECK:STDOUT: %A.as.I.impl.F.d83bf5.2: %A.as.I.impl.F.type.d1ec9e.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %.346: require_specific_def_type = require_specific_def @A.as.I.impl(%W) [symbolic]
|
||||
@@ -126,13 +126,13 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %I.assoc_type.cd3: type = assoc_entity_type @I, @I(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.a4c: %I.assoc_type.cd3 = assoc_entity element0, @I.WithSelf.%I.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %.91b: <witness> = impl_self_witness %A.940, @I, @I(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.e69: <witness> = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.a45: <witness> = impl_witness @A.as.I.impl.%I.impl_witness_table, @A.as.I.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %complete_type.7da: <witness> = complete_type_witness %I.type.81d [concrete]
|
||||
// CHECK:STDOUT: %A.as.I.impl.F.type.a42: type = fn_type @A.as.I.impl.F, @A.as.I.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %A.as.I.impl.F.837: %A.as.I.impl.F.type.a42 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet.3f4: %I.type.81d = facet_value %A.940, (%I.impl_witness.e69) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.071: type = fn_type @I.WithSelf.F, @I.WithSelf(%empty_struct_type, %I.facet.3f4) [concrete]
|
||||
// CHECK:STDOUT: %.6b2: type = fn_type_with_self_type %I.WithSelf.F.type.071, %I.facet.3f4 [concrete]
|
||||
// CHECK:STDOUT: %I.facet.cc9: %I.type.81d = facet_value %A.940, (%I.impl_witness.a45) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.2da: type = fn_type @I.WithSelf.F, @I.WithSelf(%empty_struct_type, %I.facet.cc9) [concrete]
|
||||
// CHECK:STDOUT: %.f98: type = fn_type_with_self_type %I.WithSelf.F.type.2da, %I.facet.cc9 [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.1ff: type = pattern_type %A.940 [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.0f0: %pattern_type.1ff = ref_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.975: %pattern_type.1ff = at_binding_pattern self, %self.param_patt.0f0 [concrete]
|
||||
@@ -141,19 +141,19 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %struct_type.n.91c: type = struct_type {.n: %empty_struct_type} [concrete]
|
||||
// CHECK:STDOUT: %complete_type.0a6: <witness> = complete_type_witness %struct_type.n.91c [concrete]
|
||||
// CHECK:STDOUT: %complete_type.38e: <witness> = complete_type_witness %ptr.c28 [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.1c2: <witness> = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.e8f: <witness> = impl_witness imports.%Copy.impl_witness_table.fb0, @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.6c5: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.9ed: %ptr.as.Copy.impl.Op.type.6c5 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a81: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet.80f: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.1c2) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.8a4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.80f) [concrete]
|
||||
// CHECK:STDOUT: %.523: type = fn_type_with_self_type %Copy.WithSelf.Op.type.8a4, %Copy.facet.80f [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet.8c1: %Copy.type = facet_value %ptr.c28, (%Copy.impl_witness.e8f) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.42f: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.8c1) [concrete]
|
||||
// CHECK:STDOUT: %.f18: type = fn_type_with_self_type %Copy.WithSelf.Op.type.42f, %Copy.facet.8c1 [concrete]
|
||||
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %ptr.as.Copy.impl.Op.9ed, @ptr.as.Copy.impl.Op(%empty_struct_type) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Core.import_ref.e5f: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.ff5f0d.1) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.ce912e.1)]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.4f1 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.fb0 = impl_witness_table (%Core.import_ref.e5f), @ptr.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -181,7 +181,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %A.loc12_26.1: type = class_type @A, @A(%V.loc12_15.1) [symbolic = %A.loc12_26.1 (constants.%A.47a1de.2)]
|
||||
// CHECK:STDOUT: %I.type.loc12_34.1: type = facet_type <@I, @I(%V.loc12_15.1)> [symbolic = %I.type.loc12_34.1 (constants.%I.type.3fe556.2)]
|
||||
// CHECK:STDOUT: %.loc12_36: <witness> = impl_self_witness %A.loc12_26.1, @I, @I(%V.loc12_15.1) [symbolic = %.loc12_36 (constants.%.dcb87d.1)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2: <witness> = impl_witness %I.impl_witness_table, @A.as.I.impl(%V.loc12_15.1) [symbolic = %I.impl_witness.loc12_36.2 (constants.%I.impl_witness.25d8bb.1)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2: <witness> = impl_witness %I.impl_witness_table, @A.as.I.impl(%V.loc12_15.1) [symbolic = %I.impl_witness.loc12_36.2 (constants.%I.impl_witness.ee9f63.1)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type.loc12_34.1 [symbolic = %require_complete (constants.%require_complete.45eab2.1)]
|
||||
@@ -205,7 +205,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %return: ref @A.as.I.impl.F.%ptr.loc13_22.1 (%ptr.e8f8f9.2) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%A.as.I.impl.F.decl), @A.as.I.impl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.1: <witness> = impl_witness %I.impl_witness_table, @A.as.I.impl(constants.%V.67d) [symbolic = %I.impl_witness.loc12_36.2 (constants.%I.impl_witness.25d8bb.1)]
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.1: <witness> = impl_witness %I.impl_witness_table, @A.as.I.impl(constants.%V.67d) [symbolic = %I.impl_witness.loc12_36.2 (constants.%I.impl_witness.ee9f63.1)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .V = <poisoned>
|
||||
@@ -303,7 +303,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %.loc27_19: %I.assoc_type.cd3 = specific_constant @I.WithSelf.%assoc0.loc8_23.1, @I.WithSelf(constants.%empty_struct_type, constants.%Self.1916c4.1) [concrete = constants.%assoc0.a4c]
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type.cd3 = name_ref F, %.loc27_19 [concrete = constants.%assoc0.a4c]
|
||||
// CHECK:STDOUT: %.loc27_11: ref %A.940 = deref %a.ref
|
||||
// CHECK:STDOUT: %impl.elem0: %.6b2 = impl_witness_access constants.%I.impl_witness.e69, element0 [concrete = constants.%A.as.I.impl.F.837]
|
||||
// CHECK:STDOUT: %impl.elem0: %.f98 = impl_witness_access constants.%I.impl_witness.a45, element0 [concrete = constants.%A.as.I.impl.F.837]
|
||||
// CHECK:STDOUT: %bound_method.loc27_11: <bound method> = bound_method %.loc27_11, %impl.elem0
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @A.as.I.impl.F(constants.%empty_struct_type) [concrete = constants.%A.as.I.impl.F.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc27_23: <bound method> = bound_method %.loc27_11, %specific_fn
|
||||
@@ -317,7 +317,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %A.loc12_26.1 => constants.%A.47a1de.2
|
||||
// CHECK:STDOUT: %I.type.loc12_34.1 => constants.%I.type.3fe556.2
|
||||
// CHECK:STDOUT: %.loc12_36 => constants.%.dcb87d.1
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2 => constants.%I.impl_witness.25d8bb.1
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2 => constants.%I.impl_witness.ee9f63.1
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete => constants.%require_complete.45eab2.1
|
||||
@@ -359,7 +359,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %A.loc12_26.1 => constants.%A.47a1de.3
|
||||
// CHECK:STDOUT: %I.type.loc12_34.1 => constants.%I.type.3fe556.3
|
||||
// CHECK:STDOUT: %.loc12_36 => constants.%.dcb87d.2
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2 => constants.%I.impl_witness.25d8bb.2
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2 => constants.%I.impl_witness.ee9f63.2
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete => constants.%require_complete.45eab2.2
|
||||
@@ -373,7 +373,7 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %A.loc12_26.1 => constants.%A.940
|
||||
// CHECK:STDOUT: %I.type.loc12_34.1 => constants.%I.type.81d
|
||||
// CHECK:STDOUT: %.loc12_36 => constants.%.91b
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2 => constants.%I.impl_witness.e69
|
||||
// CHECK:STDOUT: %I.impl_witness.loc12_36.2 => constants.%I.impl_witness.a45
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type.7da
|
||||
@@ -398,10 +398,10 @@ fn TestSpecific(a: A({})*) -> {}* {
|
||||
// CHECK:STDOUT: %require_complete.loc13_18 => constants.%complete_type.38e
|
||||
// CHECK:STDOUT: %A.elem => constants.%A.elem.339
|
||||
// CHECK:STDOUT: %.loc14_12.3 => constants.%.a81
|
||||
// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.1c2
|
||||
// CHECK:STDOUT: %Copy.facet.loc14_12.3 => constants.%Copy.facet.80f
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.8a4
|
||||
// CHECK:STDOUT: %.loc14_12.4 => constants.%.523
|
||||
// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.e8f
|
||||
// CHECK:STDOUT: %Copy.facet.loc14_12.3 => constants.%Copy.facet.8c1
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.42f
|
||||
// CHECK:STDOUT: %.loc14_12.4 => constants.%.f18
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_12.2 => constants.%ptr.as.Copy.impl.Op.9ed
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc14_12.2 => constants.%ptr.as.Copy.impl.Op.specific_fn
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+114
-114
@@ -248,8 +248,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.75e: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.365: %HasF.WithSelf.F.type.75e = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.748: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.0aa: %HasF.WithSelf.F.type.748 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -361,8 +361,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.75e
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.365
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.748
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.0aa
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) {
|
||||
@@ -391,15 +391,15 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
||||
// CHECK:STDOUT: %.feb: <witness> = impl_self_witness %C, @HasG [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness.992: <witness> = impl_witness @C.as.HasG.impl.%HasG.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness.c19: <witness> = impl_witness @C.as.HasG.impl.%HasG.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.f0b: %pattern_type.866 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.c87: %pattern_type.866 = at_binding_pattern self, %self.param_patt.f0b [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G.type: type = fn_type @C.as.HasG.impl.G [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G: %C.as.HasG.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasG.facet.fa2: %HasG.type = facet_value %C, (%HasG.impl_witness.992) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.9e7: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.fa2) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.553: %HasG.WithSelf.G.type.9e7 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasG.facet.d2f: %HasG.type = facet_value %C, (%HasG.impl_witness.c19) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.7d7: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.d2f) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.bc6: %HasG.WithSelf.G.type.7d7 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete]
|
||||
// CHECK:STDOUT: %Self.4dc: %HasF.type = symbolic_binding Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.c4f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.4dc) [symbolic]
|
||||
@@ -416,15 +416,15 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %D.as.HasF.impl.F.type: type = fn_type @D.as.HasF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasF.impl.F: %D.as.HasF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%HasF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.bf9: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.715: %HasF.WithSelf.F.type.bf9 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.715: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.b2e: %HasF.WithSelf.F.type.715 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a1f: <witness> = impl_self_witness %D, @HasG [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness.e55: <witness> = impl_witness @D.as.HasG.impl.%HasG.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness.49e: <witness> = impl_witness @D.as.HasG.impl.%HasG.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasG.impl.G.type: type = fn_type @D.as.HasG.impl.G [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasG.impl.G: %D.as.HasG.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasG.facet.16a: %HasG.type = facet_value %D, (%HasG.impl_witness.e55) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.933: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.16a) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.67e: %HasG.WithSelf.G.type.933 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasG.facet.114: %HasG.type = facet_value %D, (%HasG.impl_witness.49e) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.94e: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet.114) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.20a: %HasG.WithSelf.G.type.94e = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -523,7 +523,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %self: %C = wrapper_binding self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%C.as.HasG.impl.G.decl), @C.as.HasG.impl [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness: <witness> = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.992]
|
||||
// CHECK:STDOUT: %HasG.impl_witness: <witness> = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.c19]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .G = %C.as.HasG.impl.G.decl
|
||||
@@ -559,7 +559,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %self: %D = wrapper_binding self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %HasG.impl_witness_table = impl_witness_table (%D.as.HasG.impl.G.decl), @D.as.HasG.impl [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness: <witness> = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.e55]
|
||||
// CHECK:STDOUT: %HasG.impl_witness: <witness> = impl_witness %HasG.impl_witness_table [concrete = constants.%HasG.impl_witness.49e]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .G = %D.as.HasG.impl.G.decl
|
||||
@@ -632,15 +632,15 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %self.patt.loc7_8.2 => constants.%self.patt.054
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.fa2) {
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.d2f) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.fa2
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.9e7
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.553
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.d2f
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.7d7
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.bc6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.fa2) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.fa2
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.d2f) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.d2f
|
||||
// CHECK:STDOUT: %Self.as_type.loc7_8.1 => constants.%C
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.866
|
||||
// CHECK:STDOUT: %self.param_patt.loc7_8.2 => constants.%self.param_patt.f0b
|
||||
@@ -665,8 +665,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.bf9
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.715
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.715
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.b2e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) {
|
||||
@@ -677,15 +677,15 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %self.patt => constants.%self.patt.6ac
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.16a) {
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.114) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.16a
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.933
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.67e
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.114
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.94e
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.20a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.16a) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.16a
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.114) {
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet.114
|
||||
// CHECK:STDOUT: %Self.as_type.loc7_8.1 => constants.%D
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.709
|
||||
// CHECK:STDOUT: %self.param_patt.loc7_8.2 => constants.%self.param_patt.68d
|
||||
@@ -716,9 +716,9 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.91e [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness: <witness> = impl_witness imports.%HasF.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.005: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.5fa: %HasF.WithSelf.F.type.005 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.4f9: type = fn_type_with_self_type %HasF.WithSelf.F.type.005, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.858: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.4f6: %HasF.WithSelf.F.type.858 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a6e: type = fn_type_with_self_type %HasF.WithSelf.F.type.858, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -742,7 +742,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageA.import_ref.b7072f.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.15c = import_ref PackageA//default, loc4_16, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.91e: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.c4f) = import_ref PackageA//default, loc5_13, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c56)]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.7b8: <witness> = import_ref PackageA//default, loc11_16, loaded [concrete = constants.%HasF.impl_witness]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.a3c: <witness> = import_ref PackageA//default, loc11_16, loaded [concrete = constants.%HasF.impl_witness]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.364: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e71: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.448: %C.as.HasF.impl.F.type = import_ref PackageA//default, loc12_21, loaded [concrete = constants.%C.as.HasF.impl.F]
|
||||
@@ -781,7 +781,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.HasF.impl: imports.%PackageA.import_ref.364 as imports.%PackageA.import_ref.e71 [from "package_a.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageA.import_ref.7b8
|
||||
// CHECK:STDOUT: witness = imports.%PackageA.import_ref.a3c
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @C [from "package_a.carbon"] {
|
||||
@@ -797,7 +797,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageA.ref.loc7: <namespace> = name_ref PackageA, imports.%PackageA [concrete = imports.%PackageA]
|
||||
// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%PackageA.HasF [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.dff [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.4f9 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a6e = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %c.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.call: init %empty_tuple.type = call %bound_method(%c.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -833,8 +833,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.005
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.5fa
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.858
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.4f6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- use_df.carbon
|
||||
@@ -862,9 +862,9 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
||||
// CHECK:STDOUT: %HasF.impl_witness: <witness> = impl_witness imports.%HasF.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%HasF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.0da: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.8b9: %HasF.WithSelf.F.type.0da = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.322: type = fn_type_with_self_type %HasF.WithSelf.F.type.0da, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.f88: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.7c4: %HasF.WithSelf.F.type.f88 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a1b: type = fn_type_with_self_type %HasF.WithSelf.F.type.f88, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasF.impl.F.type: type = fn_type @D.as.HasF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasF.impl.F: %D.as.HasF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -891,12 +891,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageA.import_ref.b7072f.2: %HasF.type = import_ref PackageA//default, loc4_16, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.15c = import_ref PackageA//default, loc4_16, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.91e: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.c4f) = import_ref PackageA//default, loc5_13, loaded [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.c56)]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.b97 = import_ref PackageA//default, loc11_16, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.985 = import_ref PackageA//default, loc11_16, unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.8f2: <witness> = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.ce9 = import_ref PackageA//default, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageA.import_ref.364: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageA.import_ref.e71: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.b78: <witness> = import_ref PackageB//default, loc18_25, loaded [concrete = constants.%HasF.impl_witness]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.b1f: <witness> = import_ref PackageB//default, loc18_25, loaded [concrete = constants.%HasF.impl_witness]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.624: type = import_ref PackageB//default, loc18_6, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.876: type = import_ref PackageB//default, loc18_19, loaded [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.2df: %D.as.HasF.impl.F.type = import_ref PackageB//default, loc19_21, loaded [concrete = constants.%D.as.HasF.impl.F]
|
||||
@@ -937,12 +937,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.HasF.impl: imports.%PackageA.import_ref.364 as imports.%PackageA.import_ref.e71 [from "package_a.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageA.import_ref.b97
|
||||
// CHECK:STDOUT: witness = imports.%PackageA.import_ref.985
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @D.as.HasF.impl: imports.%PackageB.import_ref.624 as imports.%PackageB.import_ref.876 [from "package_b.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.b78
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.b1f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @D [from "package_b.carbon"] {
|
||||
@@ -965,7 +965,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageA.ref: <namespace> = name_ref PackageA, imports.%PackageA [concrete = imports.%PackageA]
|
||||
// CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%PackageA.HasF [concrete = constants.%HasF.type]
|
||||
// CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.dff [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.322 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%D.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a1b = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%D.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %d.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %D.as.HasF.impl.F.call: init %empty_tuple.type = call %bound_method(%d.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -1001,8 +1001,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.0da
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.8b9
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.f88
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.7c4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- use_cg.carbon
|
||||
@@ -1030,9 +1030,9 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %D: type = class_type @D [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness: <witness> = impl_witness imports.%HasG.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%HasG.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.49f: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.aaf: %HasG.WithSelf.G.type.49f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.87e: type = fn_type_with_self_type %HasG.WithSelf.G.type.49f, %HasG.facet [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.075: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.5ef: %HasG.WithSelf.G.type.075 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.c0d: type = fn_type_with_self_type %HasG.WithSelf.G.type.075, %HasG.facet [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G.type: type = fn_type @C.as.HasG.impl.G [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G: %C.as.HasG.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1059,10 +1059,10 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageB.import_ref.10cb76.2: %HasG.type = import_ref PackageB//default, loc6_16, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.d8d = import_ref PackageB//default, loc6_16, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.89b: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.95e) = import_ref PackageB//default, loc7_13, loaded [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.50a)]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.588: <witness> = import_ref PackageB//default, loc13_25, loaded [concrete = constants.%HasG.impl_witness]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.b32: <witness> = import_ref PackageB//default, loc13_25, loaded [concrete = constants.%HasG.impl_witness]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.473: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.e35e93.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8cf = import_ref PackageB//default, loc23_16, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.779 = import_ref PackageB//default, loc23_16, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8f2: <witness> = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.26f = import_ref PackageB//default, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.624: type = import_ref PackageB//default, loc23_6, loaded [concrete = constants.%D]
|
||||
@@ -1105,12 +1105,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.HasG.impl: imports.%PackageB.import_ref.473 as imports.%PackageB.import_ref.e35e93.1 [from "package_b.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.588
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.b32
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @D.as.HasG.impl: imports.%PackageB.import_ref.624 as imports.%PackageB.import_ref.e35e93.2 [from "package_b.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.8cf
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.779
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @C [from "package_a.carbon"] {
|
||||
@@ -1133,7 +1133,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageB.ref: <namespace> = name_ref PackageB, imports.%PackageB [concrete = imports.%PackageB]
|
||||
// CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%PackageB.HasG [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.d25 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.87e = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem0: %.c0d = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %c.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G.call: init %empty_tuple.type = call %bound_method(%c.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -1169,8 +1169,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.49f
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.aaf
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.075
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.5ef
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- use_dg.carbon
|
||||
@@ -1198,9 +1198,9 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness: <witness> = impl_witness imports.%HasG.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %D, (%HasG.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.ef9: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.482: %HasG.WithSelf.G.type.ef9 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.009: type = fn_type_with_self_type %HasG.WithSelf.G.type.ef9, %HasG.facet [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.d83: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.f2d: %HasG.WithSelf.G.type.d83 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.47e: type = fn_type_with_self_type %HasG.WithSelf.G.type.d83, %HasG.facet [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasG.impl.G.type: type = fn_type @D.as.HasG.impl.G [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasG.impl.G: %D.as.HasG.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1224,12 +1224,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageB.import_ref.10cb76.2: %HasG.type = import_ref PackageB//default, loc6_16, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.d8d = import_ref PackageB//default, loc6_16, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.89b: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.95e) = import_ref PackageB//default, loc7_13, loaded [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.50a)]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.720 = import_ref PackageB//default, loc13_25, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.c91 = import_ref PackageB//default, loc13_25, unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.8db: <witness> = import_ref PackageB//default, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.ded = import_ref PackageB//default, inst{{[0-9A-F]+}} [indirect], unloaded
|
||||
// CHECK:STDOUT: %PackageB.import_ref.473: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.e35e93.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.3cd: <witness> = import_ref PackageB//default, loc23_16, loaded [concrete = constants.%HasG.impl_witness]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.e79: <witness> = import_ref PackageB//default, loc23_16, loaded [concrete = constants.%HasG.impl_witness]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.624: type = import_ref PackageB//default, loc23_6, loaded [concrete = constants.%D]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.e35e93.2: type = import_ref PackageB//default, loc23_11, loaded [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %PackageB.import_ref.98c: %D.as.HasG.impl.G.type = import_ref PackageB//default, loc24_21, loaded [concrete = constants.%D.as.HasG.impl.G]
|
||||
@@ -1268,12 +1268,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.HasG.impl: imports.%PackageB.import_ref.473 as imports.%PackageB.import_ref.e35e93.1 [from "package_b.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.720
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.c91
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @D.as.HasG.impl: imports.%PackageB.import_ref.624 as imports.%PackageB.import_ref.e35e93.2 [from "package_b.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.3cd
|
||||
// CHECK:STDOUT: witness = imports.%PackageB.import_ref.e79
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @D [from "package_b.carbon"] {
|
||||
@@ -1296,7 +1296,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageB.ref.loc7: <namespace> = name_ref PackageB, imports.%PackageB [concrete = imports.%PackageB]
|
||||
// CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%PackageB.HasG [concrete = constants.%HasG.type]
|
||||
// CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.d25 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.009 = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%D.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem0: %.47e = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%D.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %d.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %D.as.HasG.impl.G.call: init %empty_tuple.type = call %bound_method(%d.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -1332,8 +1332,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.ef9
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.482
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.d83
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.f2d
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- associated_interface.carbon
|
||||
@@ -1359,8 +1359,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.type: type = fn_type @empty_tuple.type.as.Z.impl.H [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H: %empty_tuple.type.as.Z.impl.H.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type.c57: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.148: %Z.WithSelf.H.type.c57 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type.136: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.b20: %Z.WithSelf.H.type.136 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -1463,8 +1463,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Z.facet
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.c57
|
||||
// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.148
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.136
|
||||
// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.b20
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf.H(constants.%Z.facet) {
|
||||
@@ -1494,9 +1494,9 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, imports.%PackageAssociatedInterface.import_ref.635 [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness: <witness> = impl_witness imports.%Z.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type.ff3: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.d80: %Z.WithSelf.H.type.ff3 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.1e6: type = fn_type_with_self_type %Z.WithSelf.H.type.ff3, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type.c4f: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Z.facet) [concrete]
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.4a7: %Z.WithSelf.H.type.c4f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.1cc: type = fn_type_with_self_type %Z.WithSelf.H.type.c4f, %Z.facet [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.type: type = fn_type @empty_tuple.type.as.Z.impl.H [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H: %empty_tuple.type.as.Z.impl.H.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.bound: <bound method> = bound_method %empty_tuple, %empty_tuple.type.as.Z.impl.H [concrete]
|
||||
@@ -1517,7 +1517,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.f4f417.2: %Z.type = import_ref PackageAssociatedInterface//default, loc4_13, loaded [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.503 = import_ref PackageAssociatedInterface//default, loc4_13, unloaded
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.635: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.e28) = import_ref PackageAssociatedInterface//default, loc5_13, loaded [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.6ec)]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.6bc: <witness> = import_ref PackageAssociatedInterface//default, loc8_14, loaded [concrete = constants.%Z.impl_witness]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.e90: <witness> = import_ref PackageAssociatedInterface//default, loc8_14, loaded [concrete = constants.%Z.impl_witness]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.e5c: type = import_ref PackageAssociatedInterface//default, loc8_7, loaded [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.72a: type = import_ref PackageAssociatedInterface//default, loc8_12, loaded [concrete = constants.%Z.type]
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.7f2: %empty_tuple.type.as.Z.impl.H.type = import_ref PackageAssociatedInterface//default, loc9_21, loaded [concrete = constants.%empty_tuple.type.as.Z.impl.H]
|
||||
@@ -1546,7 +1546,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @empty_tuple.type.as.Z.impl: imports.%PackageAssociatedInterface.import_ref.e5c as imports.%PackageAssociatedInterface.import_ref.72a [from "associated_interface.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageAssociatedInterface.import_ref.6bc
|
||||
// CHECK:STDOUT: witness = imports.%PackageAssociatedInterface.import_ref.e90
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @J() {
|
||||
@@ -1555,7 +1555,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageAssociatedInterface.ref: <namespace> = name_ref PackageAssociatedInterface, imports.%PackageAssociatedInterface [concrete = imports.%PackageAssociatedInterface]
|
||||
// CHECK:STDOUT: %Z.ref: type = name_ref Z, imports.%PackageAssociatedInterface.Z [concrete = constants.%Z.type]
|
||||
// CHECK:STDOUT: %H.ref: %Z.assoc_type = name_ref H, imports.%PackageAssociatedInterface.import_ref.a7b [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1e6 = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.Z.impl.H]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1cc = impl_witness_access constants.%Z.impl_witness, element0 [concrete = constants.%empty_tuple.type.as.Z.impl.H]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc7_4.1, %impl.elem0 [concrete = constants.%empty_tuple.type.as.Z.impl.H.bound]
|
||||
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc7_4.2: %empty_tuple.type = converted %.loc7_4.1, %empty_tuple [concrete = constants.%empty_tuple]
|
||||
@@ -1593,8 +1593,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Z.facet
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.ff3
|
||||
// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.d80
|
||||
// CHECK:STDOUT: %Z.WithSelf.H.type => constants.%Z.WithSelf.H.type.c4f
|
||||
// CHECK:STDOUT: %Z.WithSelf.H => constants.%Z.WithSelf.H.4a7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- has_param.carbon
|
||||
@@ -1784,8 +1784,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete]
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.591, (%Y.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.cd7: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.8fc: %Y.WithSelf.K.type.cd7 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.bd4: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.e27: %Y.WithSelf.K.type.bd4 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %L.type: type = fn_type @L [concrete]
|
||||
// CHECK:STDOUT: %L: %L.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %obj.patt: %pattern_type.f0f = ref_binding_pattern obj [concrete]
|
||||
@@ -1794,7 +1794,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %AnyParam.val: %AnyParam.591 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete]
|
||||
// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete]
|
||||
// CHECK:STDOUT: %.3eb: type = fn_type_with_self_type %Y.WithSelf.K.type.cd7, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %.5a4: type = fn_type_with_self_type %Y.WithSelf.K.type.bd4, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_3.2 [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete]
|
||||
@@ -1959,7 +1959,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.ref.loc14: <namespace> = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam]
|
||||
// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970]
|
||||
// CHECK:STDOUT: %impl.elem0: %.3eb = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %impl.elem0: %.5a4 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %obj.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %.loc14: %AnyParam.591 = acquire_value %obj.ref
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc14)
|
||||
@@ -2018,8 +2018,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Y.facet
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.cd7
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.8fc
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.bd4
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.e27
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Y.facet) {
|
||||
@@ -2073,9 +2073,9 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete]
|
||||
// CHECK:STDOUT: %Y.impl_witness: <witness> = impl_witness imports.%Y.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.591, (%Y.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.44d: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.077: %Y.WithSelf.K.type.44d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.8a0: type = fn_type_with_self_type %Y.WithSelf.K.type.44d, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.a87: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.1e1: %Y.WithSelf.K.type.a87 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.f2f: type = fn_type_with_self_type %Y.WithSelf.K.type.a87, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete]
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
@@ -2112,7 +2112,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.fa191b.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.aff]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.2ff = import_ref PackageHasParam//default, loc6_13, unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.ee7: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, loc7_21, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.b38: <witness> = import_ref PackageGenericInterface//default, loc8_70, loaded [concrete = constants.%Y.impl_witness]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.6fb: <witness> = import_ref PackageGenericInterface//default, loc8_70, loaded [concrete = constants.%Y.impl_witness]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.82e: type = import_ref PackageGenericInterface//default, loc8_47, loaded [concrete = constants.%AnyParam.591]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.482: type = import_ref PackageGenericInterface//default, loc8_67, loaded [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %PackageGenericInterface.import_ref.49f: %AnyParam.as.Y.impl.K.type = import_ref PackageGenericInterface//default, loc9_21, loaded [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
@@ -2161,7 +2161,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @AnyParam.as.Y.impl: imports.%PackageGenericInterface.import_ref.82e as imports.%PackageGenericInterface.import_ref.482 [from "has_generic_interface.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageGenericInterface.import_ref.b38
|
||||
// CHECK:STDOUT: witness = imports.%PackageGenericInterface.import_ref.6fb
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic class @AnyParam(imports.%PackageHasParam.import_ref.b3b: type, imports.%PackageHasParam.import_ref.b42: @AnyParam.%T (%T)) [from "has_param.carbon"] {
|
||||
@@ -2204,7 +2204,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.ref.loc10: <namespace> = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam]
|
||||
// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970]
|
||||
// CHECK:STDOUT: %impl.elem0: %.8a0 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %impl.elem0: %.f2f = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %obj.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %.loc10: %AnyParam.591 = acquire_value %obj.ref
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc10)
|
||||
@@ -2278,8 +2278,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Y.facet
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.44d
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.077
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.a87
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.1e1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- has_generic_class.carbon
|
||||
@@ -2323,8 +2323,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete]
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.21c, (%Y.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.020: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.658: %Y.WithSelf.K.type.020 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.2f6: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.1da: %Y.WithSelf.K.type.2f6 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %L.type: type = fn_type @L [concrete]
|
||||
// CHECK:STDOUT: %L: %L.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %obj.patt: %pattern_type.005 = ref_binding_pattern obj [concrete]
|
||||
@@ -2333,7 +2333,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %AnyParam.val: %AnyParam.21c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete]
|
||||
// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete]
|
||||
// CHECK:STDOUT: %.ca2: type = fn_type_with_self_type %Y.WithSelf.K.type.020, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %.66a: type = fn_type_with_self_type %Y.WithSelf.K.type.2f6, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc13_3.2 [concrete]
|
||||
// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete]
|
||||
@@ -2493,7 +2493,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.ref.loc14: <namespace> = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam]
|
||||
// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970]
|
||||
// CHECK:STDOUT: %impl.elem0: %.ca2 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %impl.elem0: %.66a = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %obj.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %.loc14: %AnyParam.21c = acquire_value %obj.ref
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc14)
|
||||
@@ -2550,8 +2550,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Y.facet
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.020
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.658
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.2f6
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.1da
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Y.facet) {
|
||||
@@ -2603,9 +2603,9 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete]
|
||||
// CHECK:STDOUT: %Y.impl_witness: <witness> = impl_witness imports.%Y.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.21c, (%Y.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.7da: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.c9c: %Y.WithSelf.K.type.7da = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.f07: type = fn_type_with_self_type %Y.WithSelf.K.type.7da, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type.4f4: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Y.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.4aa: %Y.WithSelf.K.type.4f4 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.dff: type = fn_type_with_self_type %Y.WithSelf.K.type.4f4, %Y.facet [concrete]
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete]
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
@@ -2643,7 +2643,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.fa191b.2: %Y.type = import_ref PackageHasParam//default, loc6_13, loaded [symbolic = constants.%Self.aff]
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.2ff = import_ref PackageHasParam//default, loc6_13, unloaded
|
||||
// CHECK:STDOUT: %PackageHasParam.import_ref.ee7: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type.977) = import_ref PackageHasParam//default, loc7_21, loaded [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K.d2d)]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.28c: <witness> = import_ref PackageGenericClass//default, loc8_66, loaded [concrete = constants.%Y.impl_witness]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.b64: <witness> = import_ref PackageGenericClass//default, loc8_66, loaded [concrete = constants.%Y.impl_witness]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.c77: type = import_ref PackageGenericClass//default, loc8_43, loaded [concrete = constants.%AnyParam.21c]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.482: type = import_ref PackageGenericClass//default, loc8_63, loaded [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %PackageGenericClass.import_ref.64c: %AnyParam.as.Y.impl.K.type = import_ref PackageGenericClass//default, loc9_21, loaded [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
@@ -2675,7 +2675,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @AnyParam.as.Y.impl: imports.%PackageGenericClass.import_ref.c77 as imports.%PackageGenericClass.import_ref.482 [from "has_generic_class.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%PackageGenericClass.import_ref.28c
|
||||
// CHECK:STDOUT: witness = imports.%PackageGenericClass.import_ref.b64
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic class @AnyParam(imports.%PackageHasParam.import_ref.b3b: type, imports.%PackageHasParam.import_ref.b42: @AnyParam.%T (%T)) [from "has_param.carbon"] {
|
||||
@@ -2732,7 +2732,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %PackageHasParam.ref.loc9: <namespace> = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam]
|
||||
// CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type]
|
||||
// CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.03c [concrete = constants.%assoc0.970]
|
||||
// CHECK:STDOUT: %impl.elem0: %.f07 = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %impl.elem0: %.dff = impl_witness_access constants.%Y.impl_witness, element0 [concrete = constants.%AnyParam.as.Y.impl.K]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %obj.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %.loc9: %AnyParam.21c = acquire_value %obj.ref
|
||||
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method(%.loc9)
|
||||
@@ -2804,8 +2804,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%Y.facet
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.7da
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.c9c
|
||||
// CHECK:STDOUT: %Y.WithSelf.K.type => constants.%Y.WithSelf.K.type.4f4
|
||||
// CHECK:STDOUT: %Y.WithSelf.K => constants.%Y.WithSelf.K.4aa
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- has_extra_interfaces.carbon
|
||||
@@ -2859,8 +2859,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.279, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.291: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.9e8: %I.WithSelf.F.type.291 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.513: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.d3b: %I.WithSelf.F.type.513 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -3130,8 +3130,8 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.291
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.9e8
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.513
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.d3b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {
|
||||
@@ -3208,7 +3208,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.51a236.2: %I.type = import_ref HasExtraInterfaces//default, loc14_13, loaded [symbolic = constants.%Self.b29]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.ca1 = import_ref HasExtraInterfaces//default, loc14_13, unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f85: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = import_ref HasExtraInterfaces//default, loc14_25, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)]
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.16c = import_ref HasExtraInterfaces//default, loc16_79, unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.32f = import_ref HasExtraInterfaces//default, loc16_79, unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.9a3 = import_ref HasExtraInterfaces//default, loc11_18, unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.c9e = import_ref HasExtraInterfaces//default, loc10_18, unloaded
|
||||
// CHECK:STDOUT: %HasExtraInterfaces.import_ref.8b3 = import_ref HasExtraInterfaces//default, loc9_18, unloaded
|
||||
@@ -3319,7 +3319,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.I.impl: imports.%HasExtraInterfaces.import_ref.f05 as imports.%HasExtraInterfaces.import_ref.d6f [from "has_extra_interfaces.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%HasExtraInterfaces.import_ref.16c
|
||||
// CHECK:STDOUT: witness = imports.%HasExtraInterfaces.import_ref.32f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic class @C(imports.%HasExtraInterfaces.import_ref.b3b: type) [from "has_extra_interfaces.carbon"] {
|
||||
|
||||
@@ -59,8 +59,8 @@ fn F(c: C) -> i32 {
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.064: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.513: %I.WithSelf.F.type.064 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.372: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.d46: %I.WithSelf.F.type.372 = struct_value () [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: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete]
|
||||
@@ -71,7 +71,7 @@ fn F(c: C) -> i32 {
|
||||
// CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.b04: type = fn_type @I.WithSelf.F, @I.WithSelf(%C.type.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.cef: %I.WithSelf.F.type.b04 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.ea0: type = fn_type_with_self_type %I.WithSelf.F.type.064, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %.a89: type = fn_type_with_self_type %I.WithSelf.F.type.372, %I.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -199,7 +199,7 @@ fn F(c: C) -> i32 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %c.ref: %C = name_ref c, %c
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0: %.ea0 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a89 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %c.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.call: init %i32 = call %bound_method(%c.ref)
|
||||
// CHECK:STDOUT: return %C.as.I.impl.F.call
|
||||
@@ -223,8 +223,8 @@ fn F(c: C) -> i32 {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.064
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.513
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.372
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.d46
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {
|
||||
|
||||
+91
-91
@@ -498,8 +498,8 @@ fn F() {
|
||||
// CHECK:STDOUT: %impl.elem0.aaa: type = impl_witness_access %.a5c, element0 [symbolic]
|
||||
// CHECK:STDOUT: %Y_where.type.cb4: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.aaa = %empty_tuple.type> [symbolic]
|
||||
// CHECK:STDOUT: %.8e6: <witness> = impl_self_witness %C.147, @Y, @Y(%OuterParam) [symbolic]
|
||||
// CHECK:STDOUT: %Y.impl_witness.b49: <witness> = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic]
|
||||
// CHECK:STDOUT: %Y.facet.253: %Y.type.6da = facet_value %C.147, (%Y.impl_witness.b49) [symbolic]
|
||||
// CHECK:STDOUT: %Y.impl_witness.2b5: <witness> = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic]
|
||||
// CHECK:STDOUT: %Y.facet.5f1: %Y.type.6da = facet_value %C.147, (%Y.impl_witness.2b5) [symbolic]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %.9a5: <witness> = impl_self_witness %empty_tuple.type, @Z1 [concrete]
|
||||
@@ -515,41 +515,41 @@ fn F() {
|
||||
// CHECK:STDOUT: %BitAndWith.type.802: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.impl_witness: <witness> = impl_witness imports.%BitAndWith.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.facet: %BitAndWith.type.802 = facet_value type, (%BitAndWith.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.38f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.d56: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.38f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %BitAndWith.WithSelf.Op.type.76f: type = fn_type @BitAndWith.WithSelf.Op, @BitAndWith.WithSelf(type, %BitAndWith.facet) [concrete]
|
||||
// CHECK:STDOUT: %.eef: type = fn_type_with_self_type %BitAndWith.WithSelf.Op.type.76f, %BitAndWith.facet [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.type: type = fn_type @type.as.BitAndWith.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op: %type.as.BitAndWith.impl.Op.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: <bound method> = bound_method %Z1.type, %type.as.BitAndWith.impl.Op [concrete]
|
||||
// CHECK:STDOUT: %facet_type: type = facet_type <@Z1 & @Z2> [concrete]
|
||||
// CHECK:STDOUT: %facet_value.af0: %facet_type = facet_value %empty_tuple.type, (%Z1.impl_witness, %Z2.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Outer.22e: type = class_type @Outer, @Outer(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.type.b7c: type = facet_type <@Y, @Y(%Z1.facet)> [concrete]
|
||||
// CHECK:STDOUT: %Outer.G.type.8ce: type = fn_type @Outer.G, @Outer(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Outer.G.20a: %Outer.G.type.8ce = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.5e2: type = class_type @C, @C(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %.Self.b06: %Y.type.b7c = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.d61: <witness> = lookup_impl_witness %.Self.b06, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.400: type = impl_witness_access %Y.lookup_impl_witness.d61, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Y_where.type.8eb: type = facet_type <@Y, @Y(%Z1.facet) where %impl.elem0.400 = %empty_tuple.type> [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen.70d: %Y.type.b7c = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %Self.0e0: %Y.type.b7c = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Y.assoc_type.d53: type = assoc_entity_type @Y, @Y(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.ef6: %Y.assoc_type.d53 = assoc_entity element0, @Y.WithSelf.%T [concrete]
|
||||
// CHECK:STDOUT: %complete_type.c4c: <witness> = complete_type_witness %Y.type.b7c [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen.as_type.1e5: type = facet_access_type %.Self.frozen.70d [symbolic_self]
|
||||
// CHECK:STDOUT: %.177: <witness> = impl_self_witness %.Self.frozen.70d, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.d83: type = impl_witness_access %.177, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %.c6a: <witness> = impl_self_witness %.Self.b06, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.c60: type = impl_witness_access %.c6a, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Y_where.type.0d1: type = facet_type <@Y, @Y(%Z1.facet) where %impl.elem0.c60 = %empty_tuple.type> [concrete]
|
||||
// CHECK:STDOUT: %.808: <witness> = impl_self_witness %C.5e2, @Y, @Y(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.impl_witness.5cc: <witness> = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %facet_value.3eb: %Y_where.type.8eb = facet_value %C.5e2, (%Y.impl_witness.5cc) [concrete]
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.fb3: <witness> = lookup_impl_witness %.Self.frozen.70d, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.73b: type = impl_witness_access %Y.lookup_impl_witness.fb3, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %pattern_type.692: type = pattern_type %Y_where.type.8eb [concrete]
|
||||
// CHECK:STDOUT: %H.patt.a46: %pattern_type.692 = symbolic_binding_pattern H, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Outer.G.specific_fn: <specific function> = specific_function %Outer.G.20a, @Outer.G(%Z1.facet, %facet_value.3eb) [concrete]
|
||||
// CHECK:STDOUT: %facet_value.794: %facet_type = facet_value %empty_tuple.type, (%Z1.impl_witness, %Z2.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Outer.be4: type = class_type @Outer, @Outer(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.type.2d4: type = facet_type <@Y, @Y(%Z1.facet)> [concrete]
|
||||
// CHECK:STDOUT: %Outer.G.type.86e: type = fn_type @Outer.G, @Outer(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Outer.G.5ca: %Outer.G.type.86e = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.857: type = class_type @C, @C(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %.Self.e84: %Y.type.2d4 = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.a85: <witness> = lookup_impl_witness %.Self.e84, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.3da: type = impl_witness_access %Y.lookup_impl_witness.a85, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Y_where.type.50c: type = facet_type <@Y, @Y(%Z1.facet) where %impl.elem0.3da = %empty_tuple.type> [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen.e6a: %Y.type.2d4 = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %Self.b58: %Y.type.2d4 = symbolic_binding Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Y.assoc_type.976: type = assoc_entity_type @Y, @Y(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.ed0: %Y.assoc_type.976 = assoc_entity element0, @Y.WithSelf.%T [concrete]
|
||||
// CHECK:STDOUT: %complete_type.19b: <witness> = complete_type_witness %Y.type.2d4 [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen.as_type.6ef: type = facet_access_type %.Self.frozen.e6a [symbolic_self]
|
||||
// CHECK:STDOUT: %.196: <witness> = impl_self_witness %.Self.frozen.e6a, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.070: type = impl_witness_access %.196, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %.120: <witness> = impl_self_witness %.Self.e84, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.75e: type = impl_witness_access %.120, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Y_where.type.b2e: type = facet_type <@Y, @Y(%Z1.facet) where %impl.elem0.75e = %empty_tuple.type> [concrete]
|
||||
// CHECK:STDOUT: %.ce5: <witness> = impl_self_witness %C.857, @Y, @Y(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %Y.impl_witness.ab4: <witness> = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%Z1.facet) [concrete]
|
||||
// CHECK:STDOUT: %facet_value.554: %Y_where.type.50c = facet_value %C.857, (%Y.impl_witness.ab4) [concrete]
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.7a6: <witness> = lookup_impl_witness %.Self.frozen.e6a, @Y, @Y(%Z1.facet) [symbolic_self]
|
||||
// CHECK:STDOUT: %impl.elem0.b35: type = impl_witness_access %Y.lookup_impl_witness.7a6, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %pattern_type.330: type = pattern_type %Y_where.type.50c [concrete]
|
||||
// CHECK:STDOUT: %H.patt.c56: %pattern_type.330 = symbolic_binding_pattern H, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Outer.G.specific_fn: <specific function> = specific_function %Outer.G.5ca, @Outer.G(%Z1.facet, %facet_value.554) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -660,13 +660,13 @@ fn F() {
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_21.4: type = impl_witness_access %.loc14_21.4, element0 [symbolic = %impl.elem0.loc14_21.4 (constants.%impl.elem0.aaa)]
|
||||
// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc14_21.4 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.cb4)]
|
||||
// CHECK:STDOUT: %.loc14_29: <witness> = impl_self_witness %C, @Y, @Y(%OuterParam) [symbolic = %.loc14_29 (constants.%.8e6)]
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.2: <witness> = impl_witness %Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.b49)]
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.2: <witness> = impl_witness %Y.impl_witness_table, @C.as.Y.impl(%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.2b5)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %C.ref as %Y.ref {
|
||||
// CHECK:STDOUT: %Y.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @C.as.Y.impl [concrete]
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.1: <witness> = impl_witness %Y.impl_witness_table, @C.as.Y.impl(constants.%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.b49)]
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.1: <witness> = impl_witness %Y.impl_witness_table, @C.as.Y.impl(constants.%OuterParam) [symbolic = %Y.impl_witness.loc14_29.2 (constants.%Y.impl_witness.2b5)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -804,39 +804,39 @@ fn F() {
|
||||
// CHECK:STDOUT: %.loc21_10: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %Z1.ref.loc21_16: type = name_ref Z1, file.%Z1.decl [concrete = constants.%Z1.type]
|
||||
// CHECK:STDOUT: %Z2.ref.loc21_21: type = name_ref Z2, file.%Z2.decl [concrete = constants.%Z2.type]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21_19: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21_19: %.eef = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method.loc21_19: <bound method> = bound_method %Z1.ref.loc21_16, %impl.elem0.loc21_19 [concrete = constants.%type.as.BitAndWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc21_19: init type = call %bound_method.loc21_19(%Z1.ref.loc21_16, %Z2.ref.loc21_21) [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: %.loc21_23.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc21_19 [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: %.loc21_23.2: type = converted %type.as.BitAndWith.impl.Op.call.loc21_19, %.loc21_23.1 [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: %facet_value.loc21_12: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.af0]
|
||||
// CHECK:STDOUT: %.loc21_12: %facet_type = converted %.loc21_10, %facet_value.loc21_12 [concrete = constants.%facet_value.af0]
|
||||
// CHECK:STDOUT: %facet_value.loc21_12: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.794]
|
||||
// CHECK:STDOUT: %.loc21_12: %facet_type = converted %.loc21_10, %facet_value.loc21_12 [concrete = constants.%facet_value.794]
|
||||
// CHECK:STDOUT: %as_type.loc21_24: type = facet_access_type %.loc21_12 [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %Z1.facet.loc21_24: %Z1.type = facet_value %as_type.loc21_24, (constants.%Z1.impl_witness) [concrete = constants.%Z1.facet]
|
||||
// CHECK:STDOUT: %.loc21_24: %Z1.type = converted %.loc21_12, %Z1.facet.loc21_24 [concrete = constants.%Z1.facet]
|
||||
// CHECK:STDOUT: %Outer.loc21_24: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.22e]
|
||||
// CHECK:STDOUT: %.loc21_25: %Outer.G.type.8ce = specific_constant @Outer.%Outer.G.decl, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.G.20a]
|
||||
// CHECK:STDOUT: %G.ref: %Outer.G.type.8ce = name_ref G, %.loc21_25 [concrete = constants.%Outer.G.20a]
|
||||
// CHECK:STDOUT: %Outer.loc21_24: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.be4]
|
||||
// CHECK:STDOUT: %.loc21_25: %Outer.G.type.86e = specific_constant @Outer.%Outer.G.decl, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.G.5ca]
|
||||
// CHECK:STDOUT: %G.ref: %Outer.G.type.86e = name_ref G, %.loc21_25 [concrete = constants.%Outer.G.5ca]
|
||||
// CHECK:STDOUT: %Outer.ref.loc21_28: %Outer.type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer.generic]
|
||||
// CHECK:STDOUT: %.loc21_35: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %Z1.ref.loc21_41: type = name_ref Z1, file.%Z1.decl [concrete = constants.%Z1.type]
|
||||
// CHECK:STDOUT: %Z2.ref.loc21_46: type = name_ref Z2, file.%Z2.decl [concrete = constants.%Z2.type]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21_44: %.d56 = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21_44: %.eef = impl_witness_access constants.%BitAndWith.impl_witness, element0 [concrete = constants.%type.as.BitAndWith.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method.loc21_44: <bound method> = bound_method %Z1.ref.loc21_41, %impl.elem0.loc21_44 [concrete = constants.%type.as.BitAndWith.impl.Op.bound]
|
||||
// CHECK:STDOUT: %type.as.BitAndWith.impl.Op.call.loc21_44: init type = call %bound_method.loc21_44(%Z1.ref.loc21_41, %Z2.ref.loc21_46) [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: %.loc21_48.1: type = value_of_initializer %type.as.BitAndWith.impl.Op.call.loc21_44 [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: %.loc21_48.2: type = converted %type.as.BitAndWith.impl.Op.call.loc21_44, %.loc21_48.1 [concrete = constants.%facet_type]
|
||||
// CHECK:STDOUT: %facet_value.loc21_37: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.af0]
|
||||
// CHECK:STDOUT: %.loc21_37: %facet_type = converted %.loc21_35, %facet_value.loc21_37 [concrete = constants.%facet_value.af0]
|
||||
// CHECK:STDOUT: %facet_value.loc21_37: %facet_type = facet_value constants.%empty_tuple.type, (constants.%Z1.impl_witness, constants.%Z2.impl_witness) [concrete = constants.%facet_value.794]
|
||||
// CHECK:STDOUT: %.loc21_37: %facet_type = converted %.loc21_35, %facet_value.loc21_37 [concrete = constants.%facet_value.794]
|
||||
// CHECK:STDOUT: %as_type.loc21_49: type = facet_access_type %.loc21_37 [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %Z1.facet.loc21_49: %Z1.type = facet_value %as_type.loc21_49, (constants.%Z1.impl_witness) [concrete = constants.%Z1.facet]
|
||||
// CHECK:STDOUT: %.loc21_49: %Z1.type = converted %.loc21_37, %Z1.facet.loc21_49 [concrete = constants.%Z1.facet]
|
||||
// CHECK:STDOUT: %Outer.loc21_49: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.22e]
|
||||
// CHECK:STDOUT: %.loc21_50: type = specific_constant @Outer.%C.decl, @Outer(constants.%Z1.facet) [concrete = constants.%C.5e2]
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc21_50 [concrete = constants.%C.5e2]
|
||||
// CHECK:STDOUT: %facet_value.loc21_52: %Y_where.type.8eb = facet_value constants.%C.5e2, (constants.%Y.impl_witness.5cc) [concrete = constants.%facet_value.3eb]
|
||||
// CHECK:STDOUT: %.loc21_52: %Y_where.type.8eb = converted constants.%C.5e2, %facet_value.loc21_52 [concrete = constants.%facet_value.3eb]
|
||||
// CHECK:STDOUT: %Outer.G.specific_fn: <specific function> = specific_function %G.ref, @Outer.G(constants.%Z1.facet, constants.%facet_value.3eb) [concrete = constants.%Outer.G.specific_fn]
|
||||
// CHECK:STDOUT: %Outer.loc21_49: type = class_type @Outer, @Outer(constants.%Z1.facet) [concrete = constants.%Outer.be4]
|
||||
// CHECK:STDOUT: %.loc21_50: type = specific_constant @Outer.%C.decl, @Outer(constants.%Z1.facet) [concrete = constants.%C.857]
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, %.loc21_50 [concrete = constants.%C.857]
|
||||
// CHECK:STDOUT: %facet_value.loc21_52: %Y_where.type.50c = facet_value constants.%C.857, (constants.%Y.impl_witness.ab4) [concrete = constants.%facet_value.554]
|
||||
// CHECK:STDOUT: %.loc21_52: %Y_where.type.50c = converted constants.%C.857, %facet_value.loc21_52 [concrete = constants.%facet_value.554]
|
||||
// CHECK:STDOUT: %Outer.G.specific_fn: <specific function> = specific_function %G.ref, @Outer.G(constants.%Z1.facet, constants.%facet_value.554) [concrete = constants.%Outer.G.specific_fn]
|
||||
// CHECK:STDOUT: %Outer.G.call: init %empty_tuple.type = call %Outer.G.specific_fn()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -918,10 +918,10 @@ fn F() {
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_21.4 => constants.%impl.elem0.aaa
|
||||
// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.cb4
|
||||
// CHECK:STDOUT: %.loc14_29 => constants.%.8e6
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.b49
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.2b5
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Y.facet.253) {
|
||||
// CHECK:STDOUT: specific @Y.WithSelf(constants.%OuterParam, constants.%Y.facet.5f1) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %OuterParam => constants.%OuterParam
|
||||
// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.9e3
|
||||
@@ -941,38 +941,38 @@ fn F() {
|
||||
// CHECK:STDOUT: %OuterParam.loc6_23.1 => constants.%Z1.facet
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c
|
||||
// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.8ce
|
||||
// CHECK:STDOUT: %Outer.G => constants.%Outer.G.20a
|
||||
// CHECK:STDOUT: %C => constants.%C.5e2
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.2d4
|
||||
// CHECK:STDOUT: %Outer.G.type => constants.%Outer.G.type.86e
|
||||
// CHECK:STDOUT: %Outer.G => constants.%Outer.G.5ca
|
||||
// CHECK:STDOUT: %C => constants.%C.857
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Y(constants.%Z1.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %OuterParam => constants.%Z1.facet
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c
|
||||
// CHECK:STDOUT: %Self.loc7_15.2 => constants.%Self.0e0
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.2d4
|
||||
// CHECK:STDOUT: %Self.loc7_15.2 => constants.%Self.b58
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C(constants.%Z1.facet) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @C.as.Y.impl(constants.%Z1.facet) {
|
||||
// CHECK:STDOUT: %OuterParam => constants.%Z1.facet
|
||||
// CHECK:STDOUT: %C => constants.%C.5e2
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c
|
||||
// CHECK:STDOUT: %.Self.frozen.loc14_15.2 => constants.%.Self.frozen.70d
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type.c4c
|
||||
// CHECK:STDOUT: %.Self.frozen.as_type => constants.%.Self.frozen.as_type.1e5
|
||||
// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.d53
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6
|
||||
// CHECK:STDOUT: %.loc14_21.3 => constants.%.177
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_21.3 => constants.%impl.elem0.d83
|
||||
// CHECK:STDOUT: %.Self => constants.%.Self.b06
|
||||
// CHECK:STDOUT: %.loc14_21.4 => constants.%.c6a
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_21.4 => constants.%impl.elem0.c60
|
||||
// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.0d1
|
||||
// CHECK:STDOUT: %.loc14_29 => constants.%.808
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.5cc
|
||||
// CHECK:STDOUT: %C => constants.%C.857
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.2d4
|
||||
// CHECK:STDOUT: %.Self.frozen.loc14_15.2 => constants.%.Self.frozen.e6a
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type.19b
|
||||
// CHECK:STDOUT: %.Self.frozen.as_type => constants.%.Self.frozen.as_type.6ef
|
||||
// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.976
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.ed0
|
||||
// CHECK:STDOUT: %.loc14_21.3 => constants.%.196
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_21.3 => constants.%impl.elem0.070
|
||||
// CHECK:STDOUT: %.Self => constants.%.Self.e84
|
||||
// CHECK:STDOUT: %.loc14_21.4 => constants.%.120
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_21.4 => constants.%impl.elem0.75e
|
||||
// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.b2e
|
||||
// CHECK:STDOUT: %.loc14_29 => constants.%.ce5
|
||||
// CHECK:STDOUT: %Y.impl_witness.loc14_29.2 => constants.%Y.impl_witness.ab4
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
@@ -980,27 +980,27 @@ fn F() {
|
||||
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Z1.facet, constants.%Self.b90) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %OuterParam => constants.%Z1.facet
|
||||
// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.d53
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6
|
||||
// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.976
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.ed0
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Outer.G(constants.%Z1.facet, constants.%facet_value.3eb) {
|
||||
// CHECK:STDOUT: specific @Outer.G(constants.%Z1.facet, constants.%facet_value.554) {
|
||||
// CHECK:STDOUT: %OuterParam => constants.%Z1.facet
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.b7c
|
||||
// CHECK:STDOUT: %.Self.frozen.loc11_28.1 => constants.%.Self.frozen.70d
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type.c4c
|
||||
// CHECK:STDOUT: %.Self.frozen.as_type => constants.%.Self.frozen.as_type.1e5
|
||||
// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.d53
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.ef6
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.loc11_34.1 => constants.%Y.lookup_impl_witness.fb3
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_34.1 => constants.%impl.elem0.73b
|
||||
// CHECK:STDOUT: %.Self => constants.%.Self.b06
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.loc11_34.2 => constants.%Y.lookup_impl_witness.d61
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_34.2 => constants.%impl.elem0.400
|
||||
// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.8eb
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.692
|
||||
// CHECK:STDOUT: %H.patt.loc11_24.2 => constants.%H.patt.a46
|
||||
// CHECK:STDOUT: %H.loc11_24.1 => constants.%facet_value.3eb
|
||||
// CHECK:STDOUT: %Y.type => constants.%Y.type.2d4
|
||||
// CHECK:STDOUT: %.Self.frozen.loc11_28.1 => constants.%.Self.frozen.e6a
|
||||
// CHECK:STDOUT: %require_complete => constants.%complete_type.19b
|
||||
// CHECK:STDOUT: %.Self.frozen.as_type => constants.%.Self.frozen.as_type.6ef
|
||||
// CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.976
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.ed0
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.loc11_34.1 => constants.%Y.lookup_impl_witness.7a6
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_34.1 => constants.%impl.elem0.b35
|
||||
// CHECK:STDOUT: %.Self => constants.%.Self.e84
|
||||
// CHECK:STDOUT: %Y.lookup_impl_witness.loc11_34.2 => constants.%Y.lookup_impl_witness.a85
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_34.2 => constants.%impl.elem0.3da
|
||||
// CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.50c
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.330
|
||||
// CHECK:STDOUT: %H.patt.loc11_24.2 => constants.%H.patt.c56
|
||||
// CHECK:STDOUT: %H.loc11_24.1 => constants.%facet_value.554
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+60
-60
@@ -130,8 +130,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.6e9: type = impl_witness_access %.29c, element0 [symbolic]
|
||||
// CHECK:STDOUT: %Z_where.type.28d: type = facet_type <@Z, @Z(%S) where %impl.elem0.6e9 = %empty_tuple.type> [symbolic]
|
||||
// CHECK:STDOUT: %.18b: <witness> = impl_self_witness %T.67d, @Z, @Z(%S) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.1cd: <witness> = impl_witness @T.as.Z.impl.3c5.%Z.impl_witness_table, @T.as.Z.impl.3c5(%T.67d, %S) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.794: %Z.type.78b = facet_value %T.67d, (%Z.impl_witness.1cd) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.e1a: <witness> = impl_witness @T.as.Z.impl.3c5.%Z.impl_witness_table, @T.as.Z.impl.3c5(%T.67d, %S) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.192: %Z.type.78b = facet_value %T.67d, (%Z.impl_witness.e1a) [symbolic]
|
||||
// CHECK:STDOUT: %Z.type.963: type = facet_type <@Z, @Z(%C)> [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen.16f: %Z.type.963 = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %Self.ae2: %Z.type.963 = symbolic_binding Self, 1 [symbolic]
|
||||
@@ -145,8 +145,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.f68: type = impl_witness_access %.286, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Z_where.type.26f: type = facet_type <@Z, @Z(%C) where %impl.elem0.f68 = %T.67d> [symbolic]
|
||||
// CHECK:STDOUT: %.c1d: <witness> = impl_self_witness %T.67d, @Z, @Z(%C) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.cb6: <witness> = impl_witness @T.as.Z.impl.dc2.%Z.impl_witness_table, @T.as.Z.impl.dc2(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.624: %Z.type.963 = facet_value %T.67d, (%Z.impl_witness.cb6) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.12f: <witness> = impl_witness @T.as.Z.impl.dc2.%Z.impl_witness_table, @T.as.Z.impl.dc2(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.fe0: %Z.type.963 = facet_value %T.67d, (%Z.impl_witness.12f) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.d7e: type = pattern_type %Z.type.963 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.4cc: %pattern_type.d7e = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.4b3: %Z.type.963 = symbolic_binding T, 0 [symbolic]
|
||||
@@ -159,7 +159,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %require_complete.df7: <witness> = require_complete_type %T.as_type [symbolic]
|
||||
// CHECK:STDOUT: %Z_where.type.147: type = facet_type <@Z, @Z(%C) where %impl.elem0.f68 = %T.as_type> [symbolic]
|
||||
// CHECK:STDOUT: %.eef: <witness> = impl_self_witness %T.as_type, @Z, @Z(%C) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.bed: <witness> = impl_witness @T.as.Z.impl.dc2.%Z.impl_witness_table, @T.as.Z.impl.dc2(%T.as_type) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.4cd: <witness> = impl_witness @T.as.Z.impl.dc2.%Z.impl_witness_table, @T.as.Z.impl.dc2(%T.as_type) [symbolic]
|
||||
// CHECK:STDOUT: %.ac3: require_specific_def_type = require_specific_def @T.as.Z.impl.dc2(%T.as_type) [symbolic]
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.d37 = value_binding_pattern a [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -322,13 +322,13 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.loc9_48.4: type = impl_witness_access %.loc9_48.4, element0 [symbolic = %impl.elem0.loc9_48.4 (constants.%impl.elem0.6e9)]
|
||||
// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc9_24.2) where %impl.elem0.loc9_48.4 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.28d)]
|
||||
// CHECK:STDOUT: %.loc9_56: <witness> = impl_self_witness %T.loc9_15.2, @Z, @Z(%S.loc9_24.2) [symbolic = %.loc9_56 (constants.%.18b)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_56.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(%T.loc9_15.2, %S.loc9_24.2) [symbolic = %Z.impl_witness.loc9_56.2 (constants.%Z.impl_witness.1cd)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_56.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(%T.loc9_15.2, %S.loc9_24.2) [symbolic = %Z.impl_witness.loc9_56.2 (constants.%Z.impl_witness.e1a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %T.ref as %Z.type.loc9_40.1 {
|
||||
// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.3c5 [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_56.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc9_56.2 (constants.%Z.impl_witness.1cd)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_56.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc9_56.2 (constants.%Z.impl_witness.e1a)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -342,13 +342,13 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.loc11_21.2: type = symbolic_binding T, 0 [symbolic = %T.loc11_21.2 (constants.%T.67d)]
|
||||
// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(constants.%C) where constants.%impl.elem0.f68 = %T.loc11_21.2> [symbolic = %Z_where.type (constants.%Z_where.type.26f)]
|
||||
// CHECK:STDOUT: %.loc11_52: <witness> = impl_self_witness %T.loc11_21.2, @Z, @Z(constants.%C) [symbolic = %.loc11_52 (constants.%.c1d)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(%T.loc11_21.2) [symbolic = %Z.impl_witness.loc11_52.2 (constants.%Z.impl_witness.cb6)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(%T.loc11_21.2) [symbolic = %Z.impl_witness.loc11_52.2 (constants.%Z.impl_witness.12f)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: final impl: %T.ref.loc11_29 as %Z.type {
|
||||
// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.dc2 [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(constants.%T.67d) [symbolic = %Z.impl_witness.loc11_52.2 (constants.%Z.impl_witness.cb6)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(constants.%T.67d) [symbolic = %Z.impl_witness.loc11_52.2 (constants.%Z.impl_witness.12f)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%T.67d [symbolic = %T.loc11_21.2 (constants.%T.67d)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -387,7 +387,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %.loc15_18.2: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc13_26.1 (constants.%T.as_type)]
|
||||
// CHECK:STDOUT: %.loc15_18.3: %Z.assoc_type.f4d = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%T.4b3) [concrete = constants.%assoc0.169]
|
||||
// CHECK:STDOUT: %X.ref: %Z.assoc_type.f4d = name_ref X, %.loc15_18.3 [concrete = constants.%assoc0.169]
|
||||
// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.bed, element0 [symbolic = %T.as_type.loc13_26.1 (constants.%T.as_type)]
|
||||
// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.4cd, element0 [symbolic = %T.as_type.loc13_26.1 (constants.%T.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: @F.%T.as_type.loc13_26.1 (%T.as_type) = wrapper_binding a, %t.ref
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
@@ -445,10 +445,10 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.loc9_48.4 => constants.%impl.elem0.6e9
|
||||
// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.28d
|
||||
// CHECK:STDOUT: %.loc9_56 => constants.%.18b
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_56.2 => constants.%Z.impl_witness.1cd
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc9_56.2 => constants.%Z.impl_witness.e1a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.794) {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.192) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T => constants.%S
|
||||
// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083
|
||||
@@ -483,10 +483,10 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.loc11_21.2 => constants.%T.67d
|
||||
// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.26f
|
||||
// CHECK:STDOUT: %.loc11_52 => constants.%.c1d
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.2 => constants.%Z.impl_witness.cb6
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.2 => constants.%Z.impl_witness.12f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.624) {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.fe0) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T => constants.%C
|
||||
// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d
|
||||
@@ -514,7 +514,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.loc11_21.2 => constants.%T.as_type
|
||||
// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.147
|
||||
// CHECK:STDOUT: %.loc11_52 => constants.%.eef
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.2 => constants.%Z.impl_witness.bed
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc11_52.2 => constants.%Z.impl_witness.4cd
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
@@ -556,8 +556,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.6e9: type = impl_witness_access %.29c, element0 [symbolic]
|
||||
// CHECK:STDOUT: %Z_where.type.28d: type = facet_type <@Z, @Z(%S) where %impl.elem0.6e9 = %empty_tuple.type> [symbolic]
|
||||
// CHECK:STDOUT: %.18b: <witness> = impl_self_witness %T.67d, @Z, @Z(%S) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.1cd: <witness> = impl_witness @T.as.Z.impl.3c5.%Z.impl_witness_table, @T.as.Z.impl.3c5(%T.67d, %S) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.794: %Z.type.78b = facet_value %T.67d, (%Z.impl_witness.1cd) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.e1a: <witness> = impl_witness @T.as.Z.impl.3c5.%Z.impl_witness_table, @T.as.Z.impl.3c5(%T.67d, %S) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.192: %Z.type.78b = facet_value %T.67d, (%Z.impl_witness.e1a) [symbolic]
|
||||
// CHECK:STDOUT: %Z.type.963: type = facet_type <@Z, @Z(%C)> [concrete]
|
||||
// CHECK:STDOUT: %.Self.frozen.16f: %Z.type.963 = symbolic_binding .Self [symbolic_self]
|
||||
// CHECK:STDOUT: %Self.ae2: %Z.type.963 = symbolic_binding Self, 1 [symbolic]
|
||||
@@ -571,8 +571,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.f68: type = impl_witness_access %.286, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Z_where.type.26f: type = facet_type <@Z, @Z(%C) where %impl.elem0.f68 = %T.67d> [symbolic]
|
||||
// CHECK:STDOUT: %.c1d: <witness> = impl_self_witness %T.67d, @Z, @Z(%C) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.cb6: <witness> = impl_witness @T.as.Z.impl.dc2.%Z.impl_witness_table, @T.as.Z.impl.dc2(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.624: %Z.type.963 = facet_value %T.67d, (%Z.impl_witness.cb6) [symbolic]
|
||||
// CHECK:STDOUT: %Z.impl_witness.12f: <witness> = impl_witness @T.as.Z.impl.dc2.%Z.impl_witness_table, @T.as.Z.impl.dc2(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Z.facet.fe0: %Z.type.963 = facet_value %T.67d, (%Z.impl_witness.12f) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.d7e: type = pattern_type %Z.type.963 [concrete]
|
||||
// CHECK:STDOUT: %T.patt.4cc: %pattern_type.d7e = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.4b3: %Z.type.963 = symbolic_binding T, 0 [symbolic]
|
||||
@@ -779,13 +779,13 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_48.4: type = impl_witness_access %.loc10_48.4, element0 [symbolic = %impl.elem0.loc10_48.4 (constants.%impl.elem0.6e9)]
|
||||
// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc10_24.2) where %impl.elem0.loc10_48.4 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.28d)]
|
||||
// CHECK:STDOUT: %.loc10_56: <witness> = impl_self_witness %T.loc10_15.2, @Z, @Z(%S.loc10_24.2) [symbolic = %.loc10_56 (constants.%.18b)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc10_56.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(%T.loc10_15.2, %S.loc10_24.2) [symbolic = %Z.impl_witness.loc10_56.2 (constants.%Z.impl_witness.1cd)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc10_56.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(%T.loc10_15.2, %S.loc10_24.2) [symbolic = %Z.impl_witness.loc10_56.2 (constants.%Z.impl_witness.e1a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %T.ref as %Z.type.loc10_40.1 {
|
||||
// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.3c5 [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc10_56.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc10_56.2 (constants.%Z.impl_witness.1cd)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc10_56.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.3c5(constants.%T.67d, constants.%S) [symbolic = %Z.impl_witness.loc10_56.2 (constants.%Z.impl_witness.e1a)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -799,13 +799,13 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.loc12_15.2: type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.67d)]
|
||||
// CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(constants.%C) where constants.%impl.elem0.f68 = %T.loc12_15.2> [symbolic = %Z_where.type (constants.%Z_where.type.26f)]
|
||||
// CHECK:STDOUT: %.loc12_46: <witness> = impl_self_witness %T.loc12_15.2, @Z, @Z(constants.%C) [symbolic = %.loc12_46 (constants.%.c1d)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc12_46.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(%T.loc12_15.2) [symbolic = %Z.impl_witness.loc12_46.2 (constants.%Z.impl_witness.cb6)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc12_46.2: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(%T.loc12_15.2) [symbolic = %Z.impl_witness.loc12_46.2 (constants.%Z.impl_witness.12f)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %T.ref.loc12_23 as %Z.type {
|
||||
// CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @T.as.Z.impl.dc2 [concrete]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc12_46.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(constants.%T.67d) [symbolic = %Z.impl_witness.loc12_46.2 (constants.%Z.impl_witness.cb6)]
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc12_46.1: <witness> = impl_witness %Z.impl_witness_table, @T.as.Z.impl.dc2(constants.%T.67d) [symbolic = %Z.impl_witness.loc12_46.2 (constants.%Z.impl_witness.12f)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%T.67d [symbolic = %T.loc12_15.2 (constants.%T.67d)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -915,10 +915,10 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.loc10_48.4 => constants.%impl.elem0.6e9
|
||||
// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.28d
|
||||
// CHECK:STDOUT: %.loc10_56 => constants.%.18b
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc10_56.2 => constants.%Z.impl_witness.1cd
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc10_56.2 => constants.%Z.impl_witness.e1a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.794) {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%S, constants.%Z.facet.192) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T => constants.%S
|
||||
// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.083
|
||||
@@ -953,10 +953,10 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.loc12_15.2 => constants.%T.67d
|
||||
// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.26f
|
||||
// CHECK:STDOUT: %.loc12_46 => constants.%.c1d
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc12_46.2 => constants.%Z.impl_witness.cb6
|
||||
// CHECK:STDOUT: %Z.impl_witness.loc12_46.2 => constants.%Z.impl_witness.12f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.624) {
|
||||
// CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%Z.facet.fe0) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T => constants.%C
|
||||
// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.f4d
|
||||
@@ -1001,8 +1001,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.406: type = impl_witness_access %.51f, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Ptr_where.type.774fa9.1: type = facet_type <@Ptr where %impl.elem0.406 = %ptr.e8f8f9.1> [symbolic]
|
||||
// CHECK:STDOUT: %.f8fe26.1: <witness> = impl_self_witness %U.67d, @Ptr [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.0fcac6.1: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet.5c0956.1: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.0fcac6.1) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.548f1d.1: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet.a0fe31.1: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.548f1d.1) [symbolic]
|
||||
// CHECK:STDOUT: %T.patt.d47: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T.67d [symbolic]
|
||||
@@ -1011,9 +1011,9 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.e8f8f9.2: type = ptr_type %T.67d [symbolic]
|
||||
// CHECK:STDOUT: %Ptr_where.type.774fa9.2: type = facet_type <@Ptr where %impl.elem0.406 = %ptr.e8f8f9.2> [symbolic]
|
||||
// CHECK:STDOUT: %.f8fe26.2: <witness> = impl_self_witness %T.67d, @Ptr [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.0fcac6.2: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.548f1d.2: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %.ed1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet.5c0956.2: %Ptr.type = facet_value %T.67d, (%Ptr.impl_witness.0fcac6.2) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet.a0fe31.2: %Ptr.type = facet_value %T.67d, (%Ptr.impl_witness.548f1d.2) [symbolic]
|
||||
// CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f8f9.2 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f8f9.2 [symbolic]
|
||||
// CHECK:STDOUT: %return.param_patt.27f: %pattern_type.4f4 = out_param_pattern [symbolic]
|
||||
@@ -1087,9 +1087,9 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.ref.loc9_28: type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.67d)]
|
||||
// CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type]
|
||||
// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a]
|
||||
// CHECK:STDOUT: %Ptr.facet.loc9_29.2: %Ptr.type = facet_value %T.ref.loc9_28, (constants.%Ptr.impl_witness.0fcac6.2) [symbolic = %Ptr.facet.loc9_29.1 (constants.%Ptr.facet.5c0956.2)]
|
||||
// CHECK:STDOUT: %.loc9_29.3: %Ptr.type = converted %T.ref.loc9_28, %Ptr.facet.loc9_29.2 [symbolic = %Ptr.facet.loc9_29.1 (constants.%Ptr.facet.5c0956.2)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.0fcac6.2, element0 [symbolic = %ptr (constants.%ptr.e8f8f9.2)]
|
||||
// CHECK:STDOUT: %Ptr.facet.loc9_29.2: %Ptr.type = facet_value %T.ref.loc9_28, (constants.%Ptr.impl_witness.548f1d.2) [symbolic = %Ptr.facet.loc9_29.1 (constants.%Ptr.facet.a0fe31.2)]
|
||||
// CHECK:STDOUT: %.loc9_29.3: %Ptr.type = converted %T.ref.loc9_28, %Ptr.facet.loc9_29.2 [symbolic = %Ptr.facet.loc9_29.1 (constants.%Ptr.facet.a0fe31.2)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.548f1d.2, element0 [symbolic = %ptr (constants.%ptr.e8f8f9.2)]
|
||||
// CHECK:STDOUT: %.loc9_29.4: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.cb6)]
|
||||
// CHECK:STDOUT: %.loc9_9.1: type = splice_block %.loc9_9.2 [concrete = type] {
|
||||
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen.197]
|
||||
@@ -1127,13 +1127,13 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2: type = ptr_type %U.loc7_21.2 [symbolic = %ptr.loc7_53.2 (constants.%ptr.e8f8f9.1)]
|
||||
// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.406 = %ptr.loc7_53.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.774fa9.1)]
|
||||
// CHECK:STDOUT: %.loc7_55: <witness> = impl_self_witness %U.loc7_21.2, @Ptr [symbolic = %.loc7_55 (constants.%.f8fe26.1)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.0fcac6.1)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.548f1d.1)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: final impl: %U.ref.loc7_29 as %Ptr.ref {
|
||||
// CHECK:STDOUT: %Ptr.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @U.as.Ptr.impl [concrete]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.1: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.0fcac6.1)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.1: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.548f1d.1)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.e8f8f9.1 [symbolic = %ptr.loc7_53.2 (constants.%ptr.e8f8f9.1)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -1149,8 +1149,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %t.patt.loc9_20.2: @F.%pattern_type.loc9_20 (%pattern_type.51d) = ref_binding_pattern t [symbolic = %t.patt.loc9_20.2 (constants.%t.patt)]
|
||||
// CHECK:STDOUT: %t.param_patt.loc9_15.2: @F.%pattern_type.loc9_20 (%pattern_type.51d) = var_param_pattern %t.patt.loc9_20.2 [symbolic = %t.param_patt.loc9_15.2 (constants.%t.param_patt)]
|
||||
// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.loc9_7.1) [symbolic = %.loc9_29.1 (constants.%.ed1)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.loc9_7.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.0fcac6.2)]
|
||||
// CHECK:STDOUT: %Ptr.facet.loc9_29.1: %Ptr.type = facet_value %T.loc9_7.1, (%Ptr.impl_witness) [symbolic = %Ptr.facet.loc9_29.1 (constants.%Ptr.facet.5c0956.2)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.loc9_7.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.548f1d.2)]
|
||||
// CHECK:STDOUT: %Ptr.facet.loc9_29.1: %Ptr.type = facet_value %T.loc9_7.1, (%Ptr.impl_witness) [symbolic = %Ptr.facet.loc9_29.1 (constants.%Ptr.facet.a0fe31.2)]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %T.loc9_7.1 [symbolic = %ptr (constants.%ptr.e8f8f9.2)]
|
||||
// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.cb6)]
|
||||
// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.4f4)]
|
||||
@@ -1199,10 +1199,10 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2 => constants.%ptr.e8f8f9.1
|
||||
// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.774fa9.1
|
||||
// CHECK:STDOUT: %.loc7_55 => constants.%.f8fe26.1
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.0fcac6.1
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.548f1d.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.5c0956.1) {
|
||||
// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.a0fe31.1) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1212,12 +1212,12 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2 => constants.%ptr.e8f8f9.2
|
||||
// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.774fa9.2
|
||||
// CHECK:STDOUT: %.loc7_55 => constants.%.f8fe26.2
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.0fcac6.2
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.548f1d.2
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.5c0956.2) {
|
||||
// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet.a0fe31.2) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1228,8 +1228,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %t.patt.loc9_20.2 => constants.%t.patt
|
||||
// CHECK:STDOUT: %t.param_patt.loc9_15.2 => constants.%t.param_patt
|
||||
// CHECK:STDOUT: %.loc9_29.1 => constants.%.ed1
|
||||
// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.0fcac6.2
|
||||
// CHECK:STDOUT: %Ptr.facet.loc9_29.1 => constants.%Ptr.facet.5c0956.2
|
||||
// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.548f1d.2
|
||||
// CHECK:STDOUT: %Ptr.facet.loc9_29.1 => constants.%Ptr.facet.a0fe31.2
|
||||
// CHECK:STDOUT: %ptr => constants.%ptr.e8f8f9.2
|
||||
// CHECK:STDOUT: %.loc9_29.2 => constants.%.cb6
|
||||
// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.4f4
|
||||
@@ -1259,8 +1259,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.406: type = impl_witness_access %.51f, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Ptr_where.type.774: type = facet_type <@Ptr where %impl.elem0.406 = %ptr.e8f8f9.1> [symbolic]
|
||||
// CHECK:STDOUT: %.f8f: <witness> = impl_self_witness %U.67d, @Ptr [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.0fc: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.0fc) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.548: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.548) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f5d: type = pattern_type %Ptr.type [concrete]
|
||||
// CHECK:STDOUT: %T.patt.a2e: %pattern_type.f5d = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.76f: %Ptr.type = symbolic_binding T, 0 [symbolic]
|
||||
@@ -1271,7 +1271,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.ac4: type = ptr_type %T.as_type.468 [symbolic]
|
||||
// CHECK:STDOUT: %Ptr_where.type.c27: type = facet_type <@Ptr where %impl.elem0.406 = %ptr.ac4> [symbolic]
|
||||
// CHECK:STDOUT: %.47c: <witness> = impl_self_witness %T.as_type.468, @Ptr [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.30f: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.468) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.8bb: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.468) [symbolic]
|
||||
// CHECK:STDOUT: %.166: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.468) [symbolic]
|
||||
// CHECK:STDOUT: %.e16: Core.Form = init_form %ptr.ac4 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f62: type = pattern_type %ptr.ac4 [symbolic]
|
||||
@@ -1347,7 +1347,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.as_type.loc9_28: type = facet_access_type %T.ref.loc9_27 [symbolic = %T.as_type.loc9_21.1 (constants.%T.as_type.468)]
|
||||
// CHECK:STDOUT: %.loc9_28.3: type = converted %T.ref.loc9_27, %T.as_type.loc9_28 [symbolic = %T.as_type.loc9_21.1 (constants.%T.as_type.468)]
|
||||
// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a]
|
||||
// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.30f, element0 [symbolic = %ptr (constants.%ptr.ac4)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.8bb, element0 [symbolic = %ptr (constants.%ptr.ac4)]
|
||||
// CHECK:STDOUT: %.loc9_28.4: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_28.2 (constants.%.e16)]
|
||||
// CHECK:STDOUT: %.loc9_9: type = splice_block %Ptr.ref [concrete = constants.%Ptr.type] {
|
||||
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen.197]
|
||||
@@ -1389,13 +1389,13 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2: type = ptr_type %U.loc7_21.2 [symbolic = %ptr.loc7_53.2 (constants.%ptr.e8f8f9.1)]
|
||||
// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.406 = %ptr.loc7_53.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.774)]
|
||||
// CHECK:STDOUT: %.loc7_55: <witness> = impl_self_witness %U.loc7_21.2, @Ptr [symbolic = %.loc7_55 (constants.%.f8f)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.0fc)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.548)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: final impl: %U.ref.loc7_29 as %Ptr.ref {
|
||||
// CHECK:STDOUT: %Ptr.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @U.as.Ptr.impl [concrete]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.1: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.0fc)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.1: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.548)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.e8f8f9.1 [symbolic = %ptr.loc7_53.2 (constants.%ptr.e8f8f9.1)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -1460,7 +1460,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2 => constants.%ptr.e8f8f9.1
|
||||
// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.774
|
||||
// CHECK:STDOUT: %.loc7_55 => constants.%.f8f
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.0fc
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.548
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet) {
|
||||
@@ -1477,7 +1477,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2 => constants.%ptr.ac4
|
||||
// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.c27
|
||||
// CHECK:STDOUT: %.loc7_55 => constants.%.47c
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.30f
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.8bb
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1519,8 +1519,8 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %impl.elem0.406: type = impl_witness_access %.51f, element0 [symbolic_self]
|
||||
// CHECK:STDOUT: %Ptr_where.type.774: type = facet_type <@Ptr where %impl.elem0.406 = %ptr.e8f8f9.1> [symbolic]
|
||||
// CHECK:STDOUT: %.f8f: <witness> = impl_self_witness %U.67d, @Ptr [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.0fc: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.0fc) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.548: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.67d) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.548) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f5d: type = pattern_type %Ptr.type [concrete]
|
||||
// CHECK:STDOUT: %T.patt.a2e: %pattern_type.f5d = symbolic_binding_pattern T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.76f: %Ptr.type = symbolic_binding T, 0 [symbolic]
|
||||
@@ -1531,7 +1531,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.ac4: type = ptr_type %T.as_type.468 [symbolic]
|
||||
// CHECK:STDOUT: %Ptr_where.type.c27: type = facet_type <@Ptr where %impl.elem0.406 = %ptr.ac4> [symbolic]
|
||||
// CHECK:STDOUT: %.47c: <witness> = impl_self_witness %T.as_type.468, @Ptr [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.30f: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.468) [symbolic]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.8bb: <witness> = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.468) [symbolic]
|
||||
// CHECK:STDOUT: %.166: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.468) [symbolic]
|
||||
// CHECK:STDOUT: %.e16: Core.Form = init_form %ptr.ac4 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f62: type = pattern_type %ptr.ac4 [symbolic]
|
||||
@@ -1606,7 +1606,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %T.ref.loc9_27: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.76f)]
|
||||
// CHECK:STDOUT: %Ptr.ref.loc9_30: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type]
|
||||
// CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.b1a]
|
||||
// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.30f, element0 [symbolic = %ptr (constants.%ptr.ac4)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.8bb, element0 [symbolic = %ptr (constants.%ptr.ac4)]
|
||||
// CHECK:STDOUT: %.loc9_28.3: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_28.2 (constants.%.e16)]
|
||||
// CHECK:STDOUT: %.loc9_9: type = splice_block %Ptr.ref.loc9_9 [concrete = constants.%Ptr.type] {
|
||||
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen.197]
|
||||
@@ -1648,13 +1648,13 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2: type = ptr_type %U.loc7_21.2 [symbolic = %ptr.loc7_53.2 (constants.%ptr.e8f8f9.1)]
|
||||
// CHECK:STDOUT: %Ptr_where.type: type = facet_type <@Ptr where constants.%impl.elem0.406 = %ptr.loc7_53.2> [symbolic = %Ptr_where.type (constants.%Ptr_where.type.774)]
|
||||
// CHECK:STDOUT: %.loc7_55: <witness> = impl_self_witness %U.loc7_21.2, @Ptr [symbolic = %.loc7_55 (constants.%.f8f)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.0fc)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(%U.loc7_21.2) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.548)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: final impl: %U.ref.loc7_29 as %Ptr.ref {
|
||||
// CHECK:STDOUT: %Ptr.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @U.as.Ptr.impl [concrete]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.1: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.0fc)]
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.1: <witness> = impl_witness %Ptr.impl_witness_table, @U.as.Ptr.impl(constants.%U.67d) [symbolic = %Ptr.impl_witness.loc7_55.2 (constants.%Ptr.impl_witness.548)]
|
||||
// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.e8f8f9.1 [symbolic = %ptr.loc7_53.2 (constants.%ptr.e8f8f9.1)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -1719,7 +1719,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2 => constants.%ptr.e8f8f9.1
|
||||
// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.774
|
||||
// CHECK:STDOUT: %.loc7_55 => constants.%.f8f
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.0fc
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.548
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Ptr.WithSelf(constants.%Ptr.facet) {
|
||||
@@ -1732,7 +1732,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
|
||||
// CHECK:STDOUT: %ptr.loc7_53.2 => constants.%ptr.ac4
|
||||
// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.c27
|
||||
// CHECK:STDOUT: %.loc7_55 => constants.%.47c
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.30f
|
||||
// CHECK:STDOUT: %Ptr.impl_witness.loc7_55.2 => constants.%Ptr.impl_witness.8bb
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+24
-24
@@ -239,8 +239,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type.ec4 = facet_value %X, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.dba: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.d4f: %I.WithSelf.F.type.dba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.31d: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.65e: %I.WithSelf.F.type.31d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -386,8 +386,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %T => constants.%InInterfaceArgs
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.ec4
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.dba
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.d4f
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.31d
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.65e
|
||||
// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.f32
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.d86
|
||||
// CHECK:STDOUT: }
|
||||
@@ -438,9 +438,9 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %assoc0.341: %I.assoc_type.b71 = assoc_entity element0, imports.%Main.import_ref.35c [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type.ec4 = facet_value %X, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.27c: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.f8d: %I.WithSelf.F.type.27c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.a22: type = fn_type_with_self_type %I.WithSelf.F.type.27c, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.c49: type = fn_type @I.WithSelf.F, @I.WithSelf(%InInterfaceArgs, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.507: %I.WithSelf.F.type.c49 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.1e5: type = fn_type_with_self_type %I.WithSelf.F.type.c49, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -462,7 +462,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.2: <witness> = import_ref Main//impl_in_interface_args, loc5_24, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.9ad = import_ref Main//impl_in_interface_args, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.35c = import_ref Main//types, loc4_34, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.743: <witness> = import_ref Main//impl_in_interface_args, loc7_30, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.df8: <witness> = import_ref Main//impl_in_interface_args, loc7_30, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.57b: type = import_ref Main//impl_in_interface_args, loc7_6, loaded [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %Main.import_ref.555: type = import_ref Main//impl_in_interface_args, loc7_28, loaded [concrete = constants.%I.type.ec4]
|
||||
// CHECK:STDOUT: %Main.import_ref.0d0: %X.as.I.impl.F.type = import_ref Main//impl_in_interface_args, loc7_50, loaded [concrete = constants.%X.as.I.impl.F]
|
||||
@@ -508,7 +508,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @X.as.I.impl: imports.%Main.import_ref.57b as imports.%Main.import_ref.555 [from "impl_in_interface_args.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.743
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.df8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @X [from "types.carbon"] {
|
||||
@@ -533,7 +533,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [concrete = constants.%I.type.ec4]
|
||||
// CHECK:STDOUT: %.loc6: %I.assoc_type.f32 = specific_constant imports.%Main.import_ref.c60, @I.WithSelf(constants.%InInterfaceArgs, constants.%Self.a67) [concrete = constants.%assoc0.7f7]
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type.f32 = name_ref F, %.loc6 [concrete = constants.%assoc0.7f7]
|
||||
// CHECK:STDOUT: %impl.elem0: %.a22 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%X.as.I.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1e5 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%X.as.I.impl.F]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %x.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %X.as.I.impl.F.call: init %empty_tuple.type = call %bound_method(%x.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -595,8 +595,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %T => constants.%InInterfaceArgs
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.ec4
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.27c
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.f8d
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.c49
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.507
|
||||
// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.f32
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.7f7
|
||||
// CHECK:STDOUT: }
|
||||
@@ -638,8 +638,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type.d91 = facet_value %C.165, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.426: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.864: %I.WithSelf.F.type.426 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.1e5: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.e41: %I.WithSelf.F.type.1e5 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -816,8 +816,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %T => constants.%X
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.d91
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.426
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.864
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.1e5
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.e41
|
||||
// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.696
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.a42
|
||||
// CHECK:STDOUT: }
|
||||
@@ -871,9 +871,9 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %assoc0.341: %I.assoc_type.b71 = assoc_entity element0, imports.%Main.import_ref.35c [symbolic]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type.d91 = facet_value %C.165, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.c23: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.80b: %I.WithSelf.F.type.c23 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.325: type = fn_type_with_self_type %I.WithSelf.F.type.c23, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.afb: type = fn_type @I.WithSelf.F, @I.WithSelf(%X, %I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.fe0: %I.WithSelf.F.type.afb = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.d7d: type = fn_type_with_self_type %I.WithSelf.F.type.afb, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -898,7 +898,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %Main.import_ref.8f24d3.3: <witness> = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type]
|
||||
// CHECK:STDOUT: %Main.import_ref.9c8 = import_ref Main//types, inst{{[0-9A-F]+}} [no loc], unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.35c = import_ref Main//types, loc4_34, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.d12: <witness> = import_ref Main//impl_in_class_args, loc7_29, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.710: <witness> = import_ref Main//impl_in_class_args, loc7_29, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.312: type = import_ref Main//impl_in_class_args, loc7_19, loaded [concrete = constants.%C.165]
|
||||
// CHECK:STDOUT: %Main.import_ref.ae9: type = import_ref Main//impl_in_class_args, loc7_27, loaded [concrete = constants.%I.type.d91]
|
||||
// CHECK:STDOUT: %Main.import_ref.0d0: %C.as.I.impl.F.type = import_ref Main//impl_in_class_args, loc7_49, loaded [concrete = constants.%C.as.I.impl.F]
|
||||
@@ -948,7 +948,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.312 as imports.%Main.import_ref.ae9 [from "impl_in_class_args.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.d12
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.710
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic class @C(imports.%Main.import_ref.b3bc94.1: type) [from "types.carbon"] {
|
||||
@@ -987,7 +987,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [concrete = constants.%I.type.d91]
|
||||
// CHECK:STDOUT: %.loc6_34: %I.assoc_type.696 = specific_constant imports.%Main.import_ref.c60, @I.WithSelf(constants.%X, constants.%Self.a67) [concrete = constants.%assoc0.563]
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type.696 = name_ref F, %.loc6_34 [concrete = constants.%assoc0.563]
|
||||
// CHECK:STDOUT: %impl.elem0: %.325 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.d7d = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %c.ref, %impl.elem0
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method(%c.ref)
|
||||
// CHECK:STDOUT: return
|
||||
@@ -1061,8 +1061,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
|
||||
// CHECK:STDOUT: %T => constants.%X
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.d91
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.c23
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.80b
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.afb
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.fe0
|
||||
// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.696
|
||||
// CHECK:STDOUT: %assoc0 => constants.%assoc0.563
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+12
-12
@@ -148,8 +148,8 @@ fn Call() {
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.51c: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.179: %I.WithSelf.F.type.51c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.cb9: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.a58: %I.WithSelf.F.type.cb9 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -248,8 +248,8 @@ fn Call() {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.51c
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.179
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.cb9
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.a58
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) {
|
||||
@@ -335,9 +335,9 @@ fn Call() {
|
||||
// CHECK:STDOUT: %assoc0.232: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9f7 [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.1e6: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.6d0: %I.WithSelf.F.type.1e6 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.fa9: type = fn_type_with_self_type %I.WithSelf.F.type.1e6, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type.03f: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet) [concrete]
|
||||
// CHECK:STDOUT: %I.WithSelf.F.b7f: %I.WithSelf.F.type.03f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.77f: type = fn_type_with_self_type %I.WithSelf.F.type.03f, %I.facet [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
@@ -360,7 +360,7 @@ fn Call() {
|
||||
// CHECK:STDOUT: %Main.import_ref.e59c42.2: %I.type = import_ref Main//i, loc4_13, loaded [symbolic = constants.%Self.dda]
|
||||
// CHECK:STDOUT: %Main.import_ref.223 = import_ref Main//i, loc4_13, unloaded
|
||||
// CHECK:STDOUT: %Main.import_ref.9f7: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.418) = import_ref Main//i, loc4_25, loaded [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ca5)]
|
||||
// CHECK:STDOUT: %Main.import_ref.dbc: <witness> = import_ref Main//c, loc7_13, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.627: <witness> = import_ref Main//c, loc7_13, loaded [concrete = constants.%I.impl_witness]
|
||||
// CHECK:STDOUT: %Main.import_ref.335: type = import_ref Main//c, loc7_6, loaded [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Main.import_ref.e90: type = import_ref Main//c, loc7_11, loaded [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %Main.import_ref.0d0: %C.as.I.impl.F.type = import_ref Main//c, loc7_33, loaded [concrete = constants.%C.as.I.impl.F]
|
||||
@@ -391,7 +391,7 @@ fn Call() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @C.as.I.impl: imports.%Main.import_ref.335 as imports.%Main.import_ref.e90 [from "c.carbon"] {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.dbc
|
||||
// CHECK:STDOUT: witness = imports.%Main.import_ref.627
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @C [from "get.carbon"] {
|
||||
@@ -408,7 +408,7 @@ fn Call() {
|
||||
// CHECK:STDOUT: %Get.call: init %C to %.loc9_7.1 = call %Get.ref()
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type]
|
||||
// CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.1b3 [concrete = constants.%assoc0.232]
|
||||
// CHECK:STDOUT: %impl.elem0: %.fa9 = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.77f = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%C.as.I.impl.F]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %Get.call, %impl.elem0
|
||||
// CHECK:STDOUT: %.loc9_7.2: ref %C = temporary %.loc9_7.1, %Get.call
|
||||
// CHECK:STDOUT: %.loc9_7.3: %C = acquire_value %.loc9_7.2
|
||||
@@ -457,7 +457,7 @@ fn Call() {
|
||||
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.1e6
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.6d0
|
||||
// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.03f
|
||||
// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.b7f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+41
-41
@@ -186,15 +186,15 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.58e: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.1cb: %HasF.WithSelf.F.type.58e = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.df2: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%HasF.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.11c: %HasF.WithSelf.F.type.df2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.e40: <witness> = impl_self_witness %C, @HasG [concrete]
|
||||
// CHECK:STDOUT: %HasG.impl_witness: <witness> = impl_witness @C.as.HasG.impl.%HasG.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G.type: type = fn_type @C.as.HasG.impl.G [concrete]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G: %C.as.HasG.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%HasG.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.a09: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.1c9: %HasG.WithSelf.G.type.a09 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type.1fc: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%HasG.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.bd5: %HasG.WithSelf.G.type.1fc = struct_value () [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: type = pattern_type %C [concrete]
|
||||
@@ -208,8 +208,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.008: %HasG.WithSelf.G.type.012 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type.b9d: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%C.type.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.ce1: %HasF.WithSelf.F.type.b9d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.479: type = fn_type_with_self_type %HasF.WithSelf.F.type.58e, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %.ccf: type = fn_type_with_self_type %HasG.WithSelf.G.type.a09, %HasG.facet [concrete]
|
||||
// CHECK:STDOUT: %.188: type = fn_type_with_self_type %HasF.WithSelf.F.type.df2, %HasF.facet [concrete]
|
||||
// CHECK:STDOUT: %.b5b: type = fn_type_with_self_type %HasG.WithSelf.G.type.1fc, %HasG.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -335,19 +335,19 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %C.ref.loc22: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.a0c]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22: %.479 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22: %.188 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.call.loc22: init %empty_tuple.type = call %impl.elem0.loc22()
|
||||
// CHECK:STDOUT: %c.ref.loc23: %C = name_ref c, %c
|
||||
// CHECK:STDOUT: %F.ref.loc23: %HasF.assoc_type = name_ref F, @HasF.WithSelf.%assoc0 [concrete = constants.%assoc0.a0c]
|
||||
// CHECK:STDOUT: %impl.elem0.loc23: %.479 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0.loc23: %.188 = impl_witness_access constants.%HasF.impl_witness, element0 [concrete = constants.%C.as.HasF.impl.F]
|
||||
// CHECK:STDOUT: %C.as.HasF.impl.F.call.loc23: init %empty_tuple.type = call %impl.elem0.loc23()
|
||||
// CHECK:STDOUT: %C.ref.loc24: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %G.ref.loc24: %HasG.assoc_type = name_ref G, @HasG.WithSelf.%assoc0 [concrete = constants.%assoc0.9a7]
|
||||
// CHECK:STDOUT: %impl.elem0.loc24: %.ccf = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem0.loc24: %.b5b = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G.call.loc24: init %empty_tuple.type = call %impl.elem0.loc24()
|
||||
// CHECK:STDOUT: %c.ref.loc25: %C = name_ref c, %c
|
||||
// CHECK:STDOUT: %G.ref.loc25: %HasG.assoc_type = name_ref G, @HasG.WithSelf.%assoc0 [concrete = constants.%assoc0.9a7]
|
||||
// CHECK:STDOUT: %impl.elem0.loc25: %.ccf = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem0.loc25: %.b5b = impl_witness_access constants.%HasG.impl_witness, element0 [concrete = constants.%C.as.HasG.impl.G]
|
||||
// CHECK:STDOUT: %C.as.HasG.impl.G.call.loc25: init %empty_tuple.type = call %impl.elem0.loc25()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -373,8 +373,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasF.facet
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.58e
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.1cb
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F.type => constants.%HasF.WithSelf.F.type.df2
|
||||
// CHECK:STDOUT: %HasF.WithSelf.F => constants.%HasF.WithSelf.F.11c
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) {}
|
||||
@@ -382,8 +382,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasG.facet
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.a09
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.1c9
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G.type => constants.%HasG.WithSelf.G.type.1fc
|
||||
// CHECK:STDOUT: %HasG.WithSelf.G => constants.%HasG.WithSelf.G.bd5
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet) {}
|
||||
@@ -423,15 +423,15 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: %D.as.HasA1.impl.A.type: type = fn_type @D.as.HasA1.impl.A [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasA1.impl.A: %D.as.HasA1.impl.A.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasA1.facet: %HasA1.type = facet_value %D, (%HasA1.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A.type.aa7: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%HasA1.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A.f21: %HasA1.WithSelf.A.type.aa7 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A.type.698: type = fn_type @HasA1.WithSelf.A, @HasA1.WithSelf(%HasA1.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A.408: %HasA1.WithSelf.A.type.698 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.b95: <witness> = impl_self_witness %D, @HasA2 [concrete]
|
||||
// CHECK:STDOUT: %HasA2.impl_witness: <witness> = impl_witness @D.as.HasA2.impl.%HasA2.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasA2.impl.A.type: type = fn_type @D.as.HasA2.impl.A [concrete]
|
||||
// CHECK:STDOUT: %D.as.HasA2.impl.A: %D.as.HasA2.impl.A.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasA2.facet: %HasA2.type = facet_value %D, (%HasA2.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A.type.828: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%HasA2.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A.be9: %HasA2.WithSelf.A.type.828 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A.type.d2c: type = fn_type @HasA2.WithSelf.A, @HasA2.WithSelf(%HasA2.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A.2b0: %HasA2.WithSelf.A.type.d2c = struct_value () [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: type = pattern_type %D [concrete]
|
||||
@@ -593,8 +593,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasA1.WithSelf(constants.%HasA1.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasA1.facet
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.aa7
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.f21
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A.type => constants.%HasA1.WithSelf.A.type.698
|
||||
// CHECK:STDOUT: %HasA1.WithSelf.A => constants.%HasA1.WithSelf.A.408
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasA1.WithSelf.A(constants.%HasA1.facet) {}
|
||||
@@ -602,8 +602,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasA2.WithSelf(constants.%HasA2.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasA2.facet
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.828
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.be9
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A.type => constants.%HasA2.WithSelf.A.type.d2c
|
||||
// CHECK:STDOUT: %HasA2.WithSelf.A => constants.%HasA2.WithSelf.A.2b0
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasA2.WithSelf.A(constants.%HasA2.facet) {}
|
||||
@@ -644,8 +644,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: %E.as.HasI.impl.I.type: type = fn_type @E.as.HasI.impl.I [concrete]
|
||||
// CHECK:STDOUT: %E.as.HasI.impl.I: %E.as.HasI.impl.I.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasI.facet: %HasI.type = facet_value %E, (%HasI.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.type.c55: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%HasI.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.7d0: %HasI.WithSelf.I.type.c55 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.type.56e: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%HasI.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.989: %HasI.WithSelf.I.type.56e = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete]
|
||||
// CHECK:STDOUT: %complete_type.c77: <witness> = complete_type_witness %struct_type.base.e05 [concrete]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %E [concrete]
|
||||
@@ -657,7 +657,7 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: %E.type.facet: %type = facet_value %E, () [concrete]
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.type.e5a: type = fn_type @HasI.WithSelf.I, @HasI.WithSelf(%E.type.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.e25: %HasI.WithSelf.I.type.e5a = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.f70: type = fn_type_with_self_type %HasI.WithSelf.I.type.c55, %HasI.facet [concrete]
|
||||
// CHECK:STDOUT: %.5c6: type = fn_type_with_self_type %HasI.WithSelf.I.type.56e, %HasI.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -760,11 +760,11 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %E.ref.loc20: type = name_ref E, file.%E.decl [concrete = constants.%E]
|
||||
// CHECK:STDOUT: %I.ref.loc20: %HasI.assoc_type = name_ref I, @HasI.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc20: %.f70 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I]
|
||||
// CHECK:STDOUT: %impl.elem0.loc20: %.5c6 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I]
|
||||
// CHECK:STDOUT: %E.as.HasI.impl.I.call.loc20: init %empty_tuple.type = call %impl.elem0.loc20()
|
||||
// CHECK:STDOUT: %e.ref.loc21: %E = name_ref e, %e
|
||||
// CHECK:STDOUT: %I.ref.loc21: %HasI.assoc_type = name_ref I, @HasI.WithSelf.%assoc0 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21: %.f70 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I]
|
||||
// CHECK:STDOUT: %impl.elem0.loc21: %.5c6 = impl_witness_access constants.%HasI.impl_witness, element0 [concrete = constants.%E.as.HasI.impl.I]
|
||||
// CHECK:STDOUT: %E.as.HasI.impl.I.call.loc21: init %empty_tuple.type = call %impl.elem0.loc21()
|
||||
// CHECK:STDOUT: %E.ref.loc22: type = name_ref E, file.%E.decl [concrete = constants.%E]
|
||||
// CHECK:STDOUT: %J.ref.loc22: %B.J.type = name_ref J, @B.%B.J.decl [concrete = constants.%B.J]
|
||||
@@ -787,8 +787,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasI.WithSelf(constants.%HasI.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasI.facet
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.c55
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.7d0
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I.type => constants.%HasI.WithSelf.I.type.56e
|
||||
// CHECK:STDOUT: %HasI.WithSelf.I => constants.%HasI.WithSelf.I.989
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasI.WithSelf.I(constants.%HasI.facet) {}
|
||||
@@ -821,8 +821,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: %L.as.HasK.impl.K.type: type = fn_type @L.as.HasK.impl.K [concrete]
|
||||
// CHECK:STDOUT: %L.as.HasK.impl.K: %L.as.HasK.impl.K.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasK.facet: %HasK.type = facet_value %L, (%HasK.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K.type.4ee: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%HasK.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K.e15: %HasK.WithSelf.K.type.4ee = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K.type.9bc: type = fn_type @HasK.WithSelf.K, @HasK.WithSelf(%HasK.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K.a24: %HasK.WithSelf.K.type.9bc = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete]
|
||||
// CHECK:STDOUT: %complete_type.c02: <witness> = complete_type_witness %struct_type.base.cae [concrete]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %L [concrete]
|
||||
@@ -950,8 +950,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasK.WithSelf(constants.%HasK.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasK.facet
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.4ee
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.e15
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K.type => constants.%HasK.WithSelf.K.type.9bc
|
||||
// CHECK:STDOUT: %HasK.WithSelf.K => constants.%HasK.WithSelf.K.a24
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasK.WithSelf.K(constants.%HasK.facet) {}
|
||||
@@ -991,15 +991,15 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: %O.as.HasN1.impl.N.type: type = fn_type @O.as.HasN1.impl.N [concrete]
|
||||
// CHECK:STDOUT: %O.as.HasN1.impl.N: %O.as.HasN1.impl.N.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasN1.facet: %HasN1.type = facet_value %O, (%HasN1.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N.type.446: type = fn_type @HasN1.WithSelf.N, @HasN1.WithSelf(%HasN1.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N.d2e: %HasN1.WithSelf.N.type.446 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N.type.4dc: type = fn_type @HasN1.WithSelf.N, @HasN1.WithSelf(%HasN1.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N.9aa: %HasN1.WithSelf.N.type.4dc = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.81b: <witness> = impl_self_witness %O, @HasN2 [concrete]
|
||||
// CHECK:STDOUT: %HasN2.impl_witness: <witness> = impl_witness @O.as.HasN2.impl.%HasN2.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %O.as.HasN2.impl.N.type: type = fn_type @O.as.HasN2.impl.N [concrete]
|
||||
// CHECK:STDOUT: %O.as.HasN2.impl.N: %O.as.HasN2.impl.N.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasN2.facet: %HasN2.type = facet_value %O, (%HasN2.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N.type.e3b: type = fn_type @HasN2.WithSelf.N, @HasN2.WithSelf(%HasN2.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N.be8: %HasN2.WithSelf.N.type.e3b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N.type.c56: type = fn_type @HasN2.WithSelf.N, @HasN2.WithSelf(%HasN2.facet) [concrete]
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N.44a: %HasN2.WithSelf.N.type.c56 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %O.N.type: type = fn_type @O.N [concrete]
|
||||
// CHECK:STDOUT: %O.N: %O.N.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %struct_type.base.40f: type = struct_type {.base: %NBase} [concrete]
|
||||
@@ -1186,8 +1186,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasN1.WithSelf(constants.%HasN1.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasN1.facet
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N.type => constants.%HasN1.WithSelf.N.type.446
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N => constants.%HasN1.WithSelf.N.d2e
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N.type => constants.%HasN1.WithSelf.N.type.4dc
|
||||
// CHECK:STDOUT: %HasN1.WithSelf.N => constants.%HasN1.WithSelf.N.9aa
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasN1.WithSelf.N(constants.%HasN1.facet) {}
|
||||
@@ -1195,8 +1195,8 @@ fn P(o: O) {
|
||||
// CHECK:STDOUT: specific @HasN2.WithSelf(constants.%HasN2.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%HasN2.facet
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N.type => constants.%HasN2.WithSelf.N.type.e3b
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N => constants.%HasN2.WithSelf.N.be8
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N.type => constants.%HasN2.WithSelf.N.type.c56
|
||||
// CHECK:STDOUT: %HasN2.WithSelf.N => constants.%HasN2.WithSelf.N.44a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @HasN2.WithSelf.N(constants.%HasN2.facet) {}
|
||||
|
||||
+4
-4
@@ -53,8 +53,8 @@ class A {
|
||||
// CHECK:STDOUT: %C.as.DefaultConstructible.impl.Make.type: type = fn_type @C.as.DefaultConstructible.impl.Make [concrete]
|
||||
// CHECK:STDOUT: %C.as.DefaultConstructible.impl.Make: %C.as.DefaultConstructible.impl.Make.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %DefaultConstructible.facet: %DefaultConstructible.type = facet_value %C, (%DefaultConstructible.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type.1d3: type = fn_type @DefaultConstructible.WithSelf.Make, @DefaultConstructible.WithSelf(%DefaultConstructible.facet) [concrete]
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.08d: %DefaultConstructible.WithSelf.Make.type.1d3 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type.b0c: type = fn_type @DefaultConstructible.WithSelf.Make, @DefaultConstructible.WithSelf(%DefaultConstructible.facet) [concrete]
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.12e: %DefaultConstructible.WithSelf.Make.type.b0c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.val: %C = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -176,8 +176,8 @@ class A {
|
||||
// CHECK:STDOUT: specific @DefaultConstructible.WithSelf(constants.%DefaultConstructible.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%DefaultConstructible.facet
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type => constants.%DefaultConstructible.WithSelf.Make.type.1d3
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make => constants.%DefaultConstructible.WithSelf.Make.08d
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type => constants.%DefaultConstructible.WithSelf.Make.type.b0c
|
||||
// CHECK:STDOUT: %DefaultConstructible.WithSelf.Make => constants.%DefaultConstructible.WithSelf.Make.12e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @DefaultConstructible.WithSelf.Make(constants.%DefaultConstructible.facet) {
|
||||
|
||||
+44
-44
@@ -65,7 +65,7 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %D: type = class_type @D [concrete]
|
||||
// CHECK:STDOUT: %.fa4: <witness> = impl_self_witness %C, @UseSelf [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness.046: <witness> = impl_witness @C.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness.fc2: <witness> = impl_witness @C.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.303: %pattern_type.98b = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.49a: %pattern_type.98b = at_binding_pattern self, %self.param_patt.303 [concrete]
|
||||
@@ -76,13 +76,13 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %return.patt.e4a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, %C [concrete]
|
||||
// CHECK:STDOUT: %C.as.UseSelf.impl.F.type: type = fn_type @C.as.UseSelf.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.UseSelf.impl.F: %C.as.UseSelf.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.facet.14b: %UseSelf.type = facet_value %C, (%UseSelf.impl_witness.046) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type.103: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.14b) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.e1d: %UseSelf.WithSelf.F.type.103 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.facet.dca: %UseSelf.type = facet_value %C, (%UseSelf.impl_witness.fc2) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type.5ab: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.dca) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.441: %UseSelf.WithSelf.F.type.5ab = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.val: %C = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.98f: <witness> = impl_self_witness %D, @UseSelf [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness.047: <witness> = impl_witness @D.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness.27c: <witness> = impl_witness @D.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.f16: %pattern_type.d8d = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.6c0: %pattern_type.d8d = at_binding_pattern self, %self.param_patt.f16 [concrete]
|
||||
@@ -93,9 +93,9 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %return.patt.e38: %pattern_type.d8d = return_slot_pattern %return.param_patt.eae, %D [concrete]
|
||||
// CHECK:STDOUT: %D.as.UseSelf.impl.F.type: type = fn_type @D.as.UseSelf.impl.F [concrete]
|
||||
// CHECK:STDOUT: %D.as.UseSelf.impl.F: %D.as.UseSelf.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.facet.64f: %UseSelf.type = facet_value %D, (%UseSelf.impl_witness.047) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type.bbe: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.64f) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.8b5: %UseSelf.WithSelf.F.type.bbe = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.facet.130: %UseSelf.type = facet_value %D, (%UseSelf.impl_witness.27c) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type.d6a: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%UseSelf.facet.130) [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.be5: %UseSelf.WithSelf.F.type.d6a = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %D.val: %D = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete]
|
||||
// CHECK:STDOUT: %Self.e81: %SelfNested.type = symbolic_binding Self, 0 [symbolic]
|
||||
@@ -114,7 +114,7 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete]
|
||||
// CHECK:STDOUT: %assoc0.219: %SelfNested.assoc_type = assoc_entity element0, @SelfNested.WithSelf.%SelfNested.WithSelf.F.decl [concrete]
|
||||
// CHECK:STDOUT: %.8a3: <witness> = impl_self_witness %C, @SelfNested [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.d40: <witness> = impl_witness @C.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.a49: <witness> = impl_witness @C.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
|
||||
// CHECK:STDOUT: %struct_type.x.y.ee7: type = struct_type {.x: %C, .y: %empty_tuple.type} [concrete]
|
||||
// CHECK:STDOUT: %tuple.562: %tuple.type.24b = tuple_value (%ptr.6b6, %struct_type.x.y.ee7) [concrete]
|
||||
@@ -124,11 +124,11 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %x.patt.99f: %pattern_type.79c = at_binding_pattern x, %x.param_patt.110 [concrete]
|
||||
// CHECK:STDOUT: %C.as.SelfNested.impl.F.type: type = fn_type @C.as.SelfNested.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.SelfNested.impl.F: %C.as.SelfNested.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.749: %SelfNested.type = facet_value %C, (%SelfNested.impl_witness.d40) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.369: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.749) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.0c3: %SelfNested.WithSelf.F.type.369 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.ec7: %SelfNested.type = facet_value %C, (%SelfNested.impl_witness.a49) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.5d7: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.ec7) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.de0: %SelfNested.WithSelf.F.type.5d7 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %.aec: <witness> = impl_self_witness %D, @SelfNested [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.ad8: <witness> = impl_witness @D.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness.ff1: <witness> = impl_witness @D.as.SelfNested.impl.%SelfNested.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %ptr.d57: type = ptr_type %D [concrete]
|
||||
// CHECK:STDOUT: %struct_type.x.y.e52: type = struct_type {.x: %D, .y: %empty_tuple.type} [concrete]
|
||||
// CHECK:STDOUT: %tuple.c73: %tuple.type.24b = tuple_value (%ptr.d57, %struct_type.x.y.e52) [concrete]
|
||||
@@ -138,9 +138,9 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %x.patt.766: %pattern_type.338 = at_binding_pattern x, %x.param_patt.a5b [concrete]
|
||||
// CHECK:STDOUT: %D.as.SelfNested.impl.F.type: type = fn_type @D.as.SelfNested.impl.F [concrete]
|
||||
// CHECK:STDOUT: %D.as.SelfNested.impl.F: %D.as.SelfNested.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.d22: %SelfNested.type = facet_value %D, (%SelfNested.impl_witness.ad8) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.f5f: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.d22) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.ece: %SelfNested.WithSelf.F.type.f5f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.facet.064: %SelfNested.type = facet_value %D, (%SelfNested.impl_witness.ff1) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.fef: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%SelfNested.facet.064) [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.e1a: %SelfNested.WithSelf.F.type.fef = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -279,7 +279,7 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %return: ref %C = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness_table = impl_witness_table (%C.as.UseSelf.impl.F.decl), @C.as.UseSelf.impl [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness: <witness> = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.046]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness: <witness> = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.fc2]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .C = <poisoned>
|
||||
@@ -309,7 +309,7 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %return: ref %D = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness_table = impl_witness_table (%D.as.UseSelf.impl.F.decl), @D.as.UseSelf.impl [concrete]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness: <witness> = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.047]
|
||||
// CHECK:STDOUT: %UseSelf.impl_witness: <witness> = impl_witness %UseSelf.impl_witness_table [concrete = constants.%UseSelf.impl_witness.27c]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %D.as.UseSelf.impl.F.decl
|
||||
@@ -336,7 +336,7 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %x: %tuple.type.746 = wrapper_binding x, %x.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%C.as.SelfNested.impl.F.decl), @C.as.SelfNested.impl [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.d40]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.a49]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .C = <poisoned>
|
||||
@@ -364,7 +364,7 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %x: %tuple.type.aaa = wrapper_binding x, %x.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness_table = impl_witness_table (%D.as.SelfNested.impl.F.decl), @D.as.SelfNested.impl [concrete]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.ad8]
|
||||
// CHECK:STDOUT: %SelfNested.impl_witness: <witness> = impl_witness %SelfNested.impl_witness_table [concrete = constants.%SelfNested.impl_witness.ff1]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %D.as.SelfNested.impl.F.decl
|
||||
@@ -457,15 +457,15 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %return.patt.loc16_23.2 => constants.%return.patt.8f7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.14b) {
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.dca) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.14b
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.103
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.e1d
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.dca
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.5ab
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.441
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.14b) {
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.14b
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.dca) {
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.dca
|
||||
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%C
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
|
||||
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.303
|
||||
@@ -477,15 +477,15 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %return.patt.loc16_23.2 => constants.%return.patt.e4a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.64f) {
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.130) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.64f
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.bbe
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.8b5
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.130
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F.type => constants.%UseSelf.WithSelf.F.type.d6a
|
||||
// CHECK:STDOUT: %UseSelf.WithSelf.F => constants.%UseSelf.WithSelf.F.be5
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.64f) {
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.64f
|
||||
// CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.130) {
|
||||
// CHECK:STDOUT: %Self => constants.%UseSelf.facet.130
|
||||
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%D
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d8d
|
||||
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.f16
|
||||
@@ -516,15 +516,15 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.792
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.749) {
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.ec7) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.749
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.369
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.0c3
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.ec7
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.5d7
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.de0
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.749) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.749
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.ec7) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.ec7
|
||||
// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%C
|
||||
// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.6b6
|
||||
// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.ee7
|
||||
@@ -535,15 +535,15 @@ impl D as SelfNested {
|
||||
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.99f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.d22) {
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.064) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.d22
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.f5f
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.ece
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.064
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F.type => constants.%SelfNested.WithSelf.F.type.fef
|
||||
// CHECK:STDOUT: %SelfNested.WithSelf.F => constants.%SelfNested.WithSelf.F.e1a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.d22) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.d22
|
||||
// CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.064) {
|
||||
// CHECK:STDOUT: %Self => constants.%SelfNested.facet.064
|
||||
// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%D
|
||||
// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.d57
|
||||
// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.e52
|
||||
|
||||
@@ -42,8 +42,8 @@ class X {
|
||||
// CHECK:STDOUT: %X.as.A.impl.F.type: type = fn_type @X.as.A.impl.F [concrete]
|
||||
// CHECK:STDOUT: %X.as.A.impl.F: %X.as.A.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.facet: %A.type = facet_value %X, (%A.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type.d09: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.e21: %A.WithSelf.B.type.d09 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type.210: type = fn_type @A.WithSelf.B, @A.WithSelf(%A.facet) [concrete]
|
||||
// CHECK:STDOUT: %A.WithSelf.B.11e: %A.WithSelf.B.type.210 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -126,8 +126,8 @@ class X {
|
||||
// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%A.facet
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.d09
|
||||
// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.e21
|
||||
// CHECK:STDOUT: %A.WithSelf.B.type => constants.%A.WithSelf.B.type.210
|
||||
// CHECK:STDOUT: %A.WithSelf.B => constants.%A.WithSelf.B.11e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @A.WithSelf.B(constants.%A.facet) {}
|
||||
|
||||
+64
-64
@@ -515,7 +515,7 @@ fn F() {
|
||||
// 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: %J.impl_witness.c56: <witness> = impl_witness @empty_tuple.type.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.a51: <witness> = impl_witness @empty_tuple.type.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.154: %pattern_type.cb1 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.8c1: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt.154 [concrete]
|
||||
@@ -527,31 +527,31 @@ fn F() {
|
||||
// CHECK:STDOUT: %return.patt.e1b: %pattern_type.6b6 = return_slot_pattern %return.param_patt.a9a, %i32 [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.J.impl.F.type: type = fn_type @empty_tuple.type.as.J.impl.F [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type.as.J.impl.F: %empty_tuple.type.as.J.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.a0d: %J.type = facet_value %empty_tuple.type, (%J.impl_witness.c56) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.ed9: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.a0d) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.b6c: %J.WithSelf.F.type.ed9 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.77b: %J.type = facet_value %empty_tuple.type, (%J.impl_witness.a51) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.4c8: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.77b) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.fca: %J.WithSelf.F.type.4c8 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Negate.impl.Op.type.874: type = fn_type @Int.as.Negate.impl.Op, @Int.as.Negate.impl(%N) [symbolic]
|
||||
// CHECK:STDOUT: %Int.as.Negate.impl.Op.9e8: %Int.as.Negate.impl.Op.type.874 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Negate.impl_witness.ebb: <witness> = impl_witness imports.%Negate.impl_witness_table, @Int.as.Negate.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Negate.impl_witness.bfc: <witness> = impl_witness imports.%Negate.impl_witness_table, @Int.as.Negate.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Negate.impl.Op.type.08d: type = fn_type @Int.as.Negate.impl.Op, @Int.as.Negate.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Negate.impl.Op.4f1: %Int.as.Negate.impl.Op.type.08d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %i32, (%Negate.impl_witness.ebb) [concrete]
|
||||
// CHECK:STDOUT: %Negate.WithSelf.Op.type.e34: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete]
|
||||
// CHECK:STDOUT: %.669: type = fn_type_with_self_type %Negate.WithSelf.Op.type.e34, %Negate.facet [concrete]
|
||||
// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %i32, (%Negate.impl_witness.bfc) [concrete]
|
||||
// CHECK:STDOUT: %Negate.WithSelf.Op.type.8bf: type = fn_type @Negate.WithSelf.Op, @Negate.WithSelf(%Negate.facet) [concrete]
|
||||
// CHECK:STDOUT: %.ed4: type = fn_type_with_self_type %Negate.WithSelf.Op.type.8bf, %Negate.facet [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Negate.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Negate.impl.Op.4f1, @Int.as.Negate.impl.Op(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %.7e2: type = fn_type_with_self_type %J.WithSelf.F.type.ed9, %J.facet.a0d [concrete]
|
||||
// CHECK:STDOUT: %.0d4: type = fn_type_with_self_type %J.WithSelf.F.type.4c8, %J.facet.77b [concrete]
|
||||
// CHECK:STDOUT: %int_40.f80: Core.IntLiteral = int_value 40 [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete]
|
||||
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a2a: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.1aa, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a2a) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b7a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8eb, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound: <bound method> = bound_method %int_40.f80, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: <specific function> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %int_40.f80, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete]
|
||||
@@ -559,7 +559,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %C: type = class_type @C [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.7a1: <witness> = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %J.impl_witness.90c: <witness> = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt.303: %pattern_type.98b = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %self.patt.49a: %pattern_type.98b = at_binding_pattern self, %self.param_patt.303 [concrete]
|
||||
@@ -570,9 +570,9 @@ fn F() {
|
||||
// CHECK:STDOUT: %return.patt.e4a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, %C [concrete]
|
||||
// CHECK:STDOUT: %C.as.J.impl.F.type: type = fn_type @C.as.J.impl.F [concrete]
|
||||
// CHECK:STDOUT: %C.as.J.impl.F: %C.as.J.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.305: %J.type = facet_value %C, (%J.impl_witness.7a1) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.d3f: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.305) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.07c: %J.WithSelf.F.type.d3f = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet.0da: %J.type = facet_value %C, (%J.impl_witness.90c) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.8a7: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet.0da) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.007: %J.WithSelf.F.type.8a7 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %C.val: %C = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -581,7 +581,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %Core.import_ref.bc0: @Int.as.Negate.impl.%Int.as.Negate.impl.Op.type (%Int.as.Negate.impl.Op.type.874) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Negate.impl.%Int.as.Negate.impl.Op (constants.%Int.as.Negate.impl.Op.9e8)]
|
||||
// CHECK:STDOUT: %Negate.impl_witness_table = impl_witness_table (%Core.import_ref.b4f, %Core.import_ref.bc0), @Int.as.Negate.impl [concrete]
|
||||
// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = 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.845)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @J {
|
||||
@@ -706,7 +706,7 @@ fn F() {
|
||||
// CHECK:STDOUT: fn @empty_tuple.type.as.J.impl.F(%self.param: %empty_tuple.type, %u.param: %i32) -> out %return.param: %i32 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u
|
||||
// CHECK:STDOUT: %impl.elem1: %.669 = impl_witness_access constants.%Negate.impl_witness.ebb, element1 [concrete = constants.%Int.as.Negate.impl.Op.4f1]
|
||||
// CHECK:STDOUT: %impl.elem1: %.ed4 = impl_witness_access constants.%Negate.impl_witness.bfc, element1 [concrete = constants.%Int.as.Negate.impl.Op.4f1]
|
||||
// CHECK:STDOUT: %bound_method.loc12_45.1: <bound method> = bound_method %u.ref, %impl.elem1
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem1, @Int.as.Negate.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Negate.impl.Op.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc12_45.2: <bound method> = bound_method %u.ref, %specific_fn
|
||||
@@ -719,10 +719,10 @@ fn F() {
|
||||
// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, %x
|
||||
// CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type]
|
||||
// CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.413]
|
||||
// CHECK:STDOUT: %impl.elem1: %.7e2 = impl_witness_access constants.%J.impl_witness.c56, element1 [concrete = constants.%empty_tuple.type.as.J.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem1: %.0d4 = impl_witness_access constants.%J.impl_witness.a51, element1 [concrete = constants.%empty_tuple.type.as.J.impl.F]
|
||||
// CHECK:STDOUT: %bound_method.loc18_11: <bound method> = bound_method %x.ref, %impl.elem1
|
||||
// CHECK:STDOUT: %int_40: Core.IntLiteral = int_value 40 [concrete = constants.%int_40.f80]
|
||||
// CHECK:STDOUT: %impl.elem0: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc18_18.1: <bound method> = bound_method %int_40, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound]
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc18_18.2: <bound method> = bound_method %int_40, %specific_fn [concrete = constants.%bound_method]
|
||||
@@ -773,20 +773,20 @@ fn F() {
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.76e
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.a0d) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.77b) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.a0d
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.ed9
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.b6c
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.77b
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.4c8
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.fca
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.a0d) {
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.a0d
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.77b) {
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.77b
|
||||
// CHECK:STDOUT: %Self.as_type.loc6_8.1 => constants.%empty_tuple.type
|
||||
// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.cb1
|
||||
// CHECK:STDOUT: %self.param_patt.loc6_8.2 => constants.%self.param_patt.154
|
||||
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.8c1
|
||||
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.c56
|
||||
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.a51
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_17.1 => constants.%i32
|
||||
// CHECK:STDOUT: %pattern_type.loc6_15 => constants.%pattern_type.6b6
|
||||
// CHECK:STDOUT: %u.param_patt.loc6_15.2 => constants.%u.param_patt.151
|
||||
@@ -796,20 +796,20 @@ fn F() {
|
||||
// CHECK:STDOUT: %return.patt.loc6_20.2 => constants.%return.patt.e1b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.305) {
|
||||
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.0da) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.305
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.d3f
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.07c
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.0da
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.8a7
|
||||
// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.007
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.305) {
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.305
|
||||
// CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.0da) {
|
||||
// CHECK:STDOUT: %Self => constants.%J.facet.0da
|
||||
// CHECK:STDOUT: %Self.as_type.loc6_8.1 => constants.%C
|
||||
// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.98b
|
||||
// CHECK:STDOUT: %self.param_patt.loc6_8.2 => constants.%self.param_patt.303
|
||||
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.49a
|
||||
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.7a1
|
||||
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.90c
|
||||
// CHECK:STDOUT: %impl.elem0.loc6_17.1 => constants.%C
|
||||
// CHECK:STDOUT: %pattern_type.loc6_15 => constants.%pattern_type.98b
|
||||
// CHECK:STDOUT: %u.param_patt.loc6_15.2 => constants.%u.param_patt.162
|
||||
@@ -836,27 +836,27 @@ fn F() {
|
||||
// CHECK:STDOUT: %E.as.J.impl.G.type: type = fn_type @E.as.J.impl.G [concrete]
|
||||
// CHECK:STDOUT: %E.as.J.impl.G: %E.as.J.impl.G.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.186: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.G.type.563: type = fn_type @J.WithSelf.G, @J.WithSelf(%J.facet) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.22a: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.G.type.93b: type = fn_type @J.WithSelf.G, @J.WithSelf(%J.facet) [concrete]
|
||||
// CHECK:STDOUT: %e1.patt: %pattern_type.6b6 = value_binding_pattern e1 [concrete]
|
||||
// CHECK:STDOUT: %.b2a: type = fn_type_with_self_type %J.WithSelf.F.type.186, %J.facet [concrete]
|
||||
// CHECK:STDOUT: %.8ca: type = fn_type_with_self_type %J.WithSelf.F.type.22a, %J.facet [concrete]
|
||||
// CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete]
|
||||
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.845: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a23: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.b3c, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.a2a: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.1aa, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.2ba = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a23) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.740: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.1c5: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.740, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.914 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.a2a) [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.8eb: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b7a: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.8eb, %ImplicitAs.facet [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3: <bound method> = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: <specific function> = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %bound_method.3cb: <bound method> = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete]
|
||||
// CHECK:STDOUT: %int_2.295: %i32 = int_value 2 [concrete]
|
||||
// CHECK:STDOUT: %e2.patt: %pattern_type.6b6 = value_binding_pattern e2 [concrete]
|
||||
// CHECK:STDOUT: %.53f: type = fn_type_with_self_type %J.WithSelf.G.type.563, %J.facet [concrete]
|
||||
// CHECK:STDOUT: %.9b7: type = fn_type_with_self_type %J.WithSelf.G.type.93b, %J.facet [concrete]
|
||||
// CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete]
|
||||
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485: <bound method> = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.e39 [concrete]
|
||||
// CHECK:STDOUT: %bound_method.763: <bound method> = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete]
|
||||
@@ -880,16 +880,16 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Core.import_ref.edf: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.e74) = 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.845)]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.b3c = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.1aa = impl_witness_table (%Core.import_ref.edf), @Core.IntLiteral.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @CallBoth(%e.param: %E) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %e.ref.loc22: %E = name_ref e, %e
|
||||
// CHECK:STDOUT: %F.ref.loc22: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.413]
|
||||
// CHECK:STDOUT: %impl.elem1.loc22: %.b2a = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem1.loc22: %.8ca = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc22: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc22_28.1: <bound method> = bound_method %int_2, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.9f3]
|
||||
// CHECK:STDOUT: %specific_fn.loc22: <specific function> = specific_function %impl.elem0.loc22, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc22_28.2: <bound method> = bound_method %int_2, %specific_fn.loc22 [concrete = constants.%bound_method.3cb]
|
||||
@@ -906,10 +906,10 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %e.ref.loc23: %E = name_ref e, %e
|
||||
// CHECK:STDOUT: %G.ref.loc23: %J.assoc_type = name_ref G, @J.WithSelf.%assoc2 [concrete = constants.%assoc2]
|
||||
// CHECK:STDOUT: %impl.elem2.loc23: %.53f = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem2.loc23: %.9b7 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G]
|
||||
// CHECK:STDOUT: %bound_method.loc23_25: <bound method> = bound_method %e.ref.loc23, %impl.elem2.loc23
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba]
|
||||
// CHECK:STDOUT: %impl.elem0.loc23: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc23: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc23_28.1: <bound method> = bound_method %int_3, %impl.elem0.loc23 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.485]
|
||||
// CHECK:STDOUT: %specific_fn.loc23: <specific function> = specific_function %impl.elem0.loc23, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc23_28.2: <bound method> = bound_method %int_3, %specific_fn.loc23 [concrete = constants.%bound_method.763]
|
||||
@@ -926,9 +926,9 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %E.ref.loc24: type = name_ref E, file.%E.decl [concrete = constants.%E]
|
||||
// CHECK:STDOUT: %F.ref.loc24: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.413]
|
||||
// CHECK:STDOUT: %impl.elem1.loc24: %.b2a = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem1.loc24: %.8ca = impl_witness_access constants.%J.impl_witness, element1 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1]
|
||||
// CHECK:STDOUT: %impl.elem0.loc24: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc24: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc24_28.1: <bound method> = bound_method %int_4, %impl.elem0.loc24 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aad]
|
||||
// CHECK:STDOUT: %specific_fn.loc24: <specific function> = specific_function %impl.elem0.loc24, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc24_28.2: <bound method> = bound_method %int_4, %specific_fn.loc24 [concrete = constants.%bound_method.b7a]
|
||||
@@ -946,10 +946,10 @@ fn F() {
|
||||
// CHECK:STDOUT: %e.ref.loc25: %E = name_ref e, %e
|
||||
// CHECK:STDOUT: %E.ref.loc25: type = name_ref E, file.%E.decl [concrete = constants.%E]
|
||||
// CHECK:STDOUT: %G.ref.loc25: %J.assoc_type = name_ref G, @J.WithSelf.%assoc2 [concrete = constants.%assoc2]
|
||||
// CHECK:STDOUT: %impl.elem2.loc25: %.53f = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem2.loc25: %.9b7 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G]
|
||||
// CHECK:STDOUT: %bound_method.loc25_25: <bound method> = bound_method %e.ref.loc25, %impl.elem2.loc25
|
||||
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b]
|
||||
// CHECK:STDOUT: %impl.elem0.loc25: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc25: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc25_32.1: <bound method> = bound_method %int_5, %impl.elem0.loc25 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.f6c]
|
||||
// CHECK:STDOUT: %specific_fn.loc25: <specific function> = specific_function %impl.elem0.loc25, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc25_32.2: <bound method> = bound_method %int_5, %specific_fn.loc25 [concrete = constants.%bound_method.c9d]
|
||||
@@ -967,10 +967,10 @@ fn F() {
|
||||
// CHECK:STDOUT: %e.ref.loc26: %E = name_ref e, %e
|
||||
// CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type]
|
||||
// CHECK:STDOUT: %G.ref.loc26: %J.assoc_type = name_ref G, @J.WithSelf.%assoc2 [concrete = constants.%assoc2]
|
||||
// CHECK:STDOUT: %impl.elem2.loc26: %.53f = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G]
|
||||
// CHECK:STDOUT: %impl.elem2.loc26: %.9b7 = impl_witness_access constants.%J.impl_witness, element2 [concrete = constants.%E.as.J.impl.G]
|
||||
// CHECK:STDOUT: %bound_method.loc26_25: <bound method> = bound_method %e.ref.loc26, %impl.elem2.loc26
|
||||
// CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462]
|
||||
// CHECK:STDOUT: %impl.elem0.loc26: %.1c5 = impl_witness_access constants.%ImplicitAs.impl_witness.a23, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %impl.elem0.loc26: %.b7a = impl_witness_access constants.%ImplicitAs.impl_witness.a2a, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.e39]
|
||||
// CHECK:STDOUT: %bound_method.loc26_32.1: <bound method> = bound_method %int_6, %impl.elem0.loc26 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.13d]
|
||||
// CHECK:STDOUT: %specific_fn.loc26: <specific function> = specific_function %impl.elem0.loc26, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc26_32.2: <bound method> = bound_method %int_6, %specific_fn.loc26 [concrete = constants.%bound_method.be9]
|
||||
@@ -1038,18 +1038,18 @@ fn F() {
|
||||
// CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.ac8: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.5e0: %Int.as.Copy.impl.Op.type.ac8 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.0e0: <witness> = impl_witness imports.%Copy.impl_witness_table.367, @Int.as.Copy.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.b51: <witness> = impl_witness imports.%Copy.impl_witness_table.8d2, @Int.as.Copy.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.type.3f6: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.4f6: %Int.as.Copy.impl.Op.type.3f6 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.0e0) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.b51) [concrete]
|
||||
// CHECK:STDOUT: %Copy.WithSelf.Op.type.381: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete]
|
||||
// CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
// CHECK:STDOUT: %Core.import_ref.cd6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.ac8) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.5e0)]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.367 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness_table.8d2 = impl_witness_table (%Core.import_ref.cd6), @Int.as.Copy.impl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @E.as.J.impl: %Self.ref as %J.ref {
|
||||
@@ -1097,7 +1097,7 @@ fn F() {
|
||||
// CHECK:STDOUT: fn @E.as.J.impl.F(%u.param: %i32) -> out %return.param: %i32 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u
|
||||
// CHECK:STDOUT: %impl.elem0.loc12: %.7a6 = impl_witness_access constants.%Copy.impl_witness.0e0, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6]
|
||||
// CHECK:STDOUT: %impl.elem0.loc12: %.737 = impl_witness_access constants.%Copy.impl_witness.b51, element0 [concrete = constants.%Int.as.Copy.impl.Op.4f6]
|
||||
// CHECK:STDOUT: %bound_method.loc12_14.1: <bound method> = bound_method %u.ref, %impl.elem0.loc12
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0.loc12, @Int.as.Copy.impl.Op(constants.%int_32) [concrete = constants.%Int.as.Copy.impl.Op.specific_fn]
|
||||
// CHECK:STDOUT: %bound_method.loc12_14.2: <bound method> = bound_method %u.ref, %specific_fn
|
||||
@@ -1115,8 +1115,8 @@ fn F() {
|
||||
// CHECK:STDOUT: %E.as.J.impl.F.type: type = fn_type @E.as.J.impl.F [concrete]
|
||||
// CHECK:STDOUT: %E.as.J.impl.F: %E.as.J.impl.F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.ee0: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete]
|
||||
// CHECK:STDOUT: %.b5e: type = fn_type_with_self_type %J.WithSelf.F.type.ee0, %J.facet [concrete]
|
||||
// CHECK:STDOUT: %J.WithSelf.F.type.22a: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [concrete]
|
||||
// CHECK:STDOUT: %.8ca: type = fn_type_with_self_type %J.WithSelf.F.type.22a, %J.facet [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @E {
|
||||
@@ -1135,8 +1135,8 @@ fn F() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %J.facet: %J.type = facet_value constants.%E, (constants.%J.impl_witness) [concrete = constants.%J.facet]
|
||||
// CHECK:STDOUT: %.loc14: %J.type = converted constants.%E, %J.facet [concrete = constants.%J.facet]
|
||||
// CHECK:STDOUT: %impl.elem0: %.b5e = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %F.ref: %.b5e = name_ref F, %impl.elem0 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %impl.elem0: %.8ca = impl_witness_access constants.%J.impl_witness, element0 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %F.ref: %.8ca = name_ref F, %impl.elem0 [concrete = constants.%E.as.J.impl.F]
|
||||
// CHECK:STDOUT: %E.as.J.impl.F.call: init %empty_tuple.type = call %F.ref()
|
||||
// CHECK:STDOUT: <elided>
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
Reference in New Issue
Block a user