@@ -265,6 +265,8 @@ impl forall [T:! type] D as N(T*) {}
265265// CHECK:STDOUT: !definition:
266266// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T.loc14_14.1)> [symbolic = %N.type (constants.%N.type.b8d)]
267267// CHECK:STDOUT: %Self.loc14_24.2: @N.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self.aa1)]
268+ // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc14_14.1)> [symbolic = %I.type (constants.%I.type.070)]
269+ // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.c94)]
268270// CHECK:STDOUT:
269271// CHECK:STDOUT: constraint {
270272// CHECK:STDOUT: %Self.loc14_24.1: @N.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self.aa1)]
@@ -295,7 +297,6 @@ impl forall [T:! type] D as N(T*) {}
295297// CHECK:STDOUT: %Self: @N.require0.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1)]
296298// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
297299// CHECK:STDOUT: %I.type.loc15_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.070)]
298- // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type.loc15_27.2 [symbolic = %require_complete (constants.%require_complete.c94)]
299300// CHECK:STDOUT: }
300301// CHECK:STDOUT:
301302// CHECK:STDOUT: generic impl @C.as.I.impl.f3e(%T.loc8_14.1: type) {
@@ -375,7 +376,6 @@ impl forall [T:! type] D as N(T*) {}
375376// CHECK:STDOUT: %Self => constants.%Self.aa1
376377// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
377378// CHECK:STDOUT: %I.type.loc15_27.2 => constants.%I.type.070
378- // CHECK:STDOUT: %require_complete => constants.%require_complete.c94
379379// CHECK:STDOUT: }
380380// CHECK:STDOUT:
381381// CHECK:STDOUT: --- fail_import_generic.impl.carbon
@@ -533,6 +533,8 @@ impl forall [T:! type] D as N(T*) {}
533533// CHECK:STDOUT: !definition:
534534// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.b8d23b.1)]
535535// CHECK:STDOUT: %Self: @N.%N.type (%N.type.b8d23b.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1)]
536+ // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.070)]
537+ // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.c94)]
536538// CHECK:STDOUT:
537539// CHECK:STDOUT: constraint {
538540// CHECK:STDOUT: !members:
@@ -551,7 +553,6 @@ impl forall [T:! type] D as N(T*) {}
551553// CHECK:STDOUT: %Self: @N.require0.%N.type (%N.type.b8d23b.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1)]
552554// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
553555// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.070)]
554- // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.c94)]
555556// CHECK:STDOUT: }
556557// CHECK:STDOUT:
557558// CHECK:STDOUT: generic impl @C.as.I.impl.f3ed6b.1(imports.%Main.import_ref.efcd44.2: type) [from "import_generic.carbon"] {
@@ -709,7 +710,6 @@ impl forall [T:! type] D as N(T*) {}
709710// CHECK:STDOUT: %Self => constants.%Self.aa1
710711// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
711712// CHECK:STDOUT: %I.type => constants.%I.type.070
712- // CHECK:STDOUT: %require_complete => constants.%require_complete.c94
713713// CHECK:STDOUT: }
714714// CHECK:STDOUT:
715715// CHECK:STDOUT: specific @C.as.I.impl.3f8440.1(constants.%T) {
@@ -809,6 +809,8 @@ impl forall [T:! type] D as N(T*) {}
809809// CHECK:STDOUT: !definition:
810810// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T.loc9_14.1)> [symbolic = %N.type (constants.%N.type.b8d)]
811811// CHECK:STDOUT: %Self.loc9_24.2: @N.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self.loc9_24.2 (constants.%Self.aa1)]
812+ // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc9_14.1)> [symbolic = %I.type (constants.%I.type.070)]
813+ // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete)]
812814// CHECK:STDOUT:
813815// CHECK:STDOUT: constraint {
814816// CHECK:STDOUT: %Self.loc9_24.1: @N.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self.loc9_24.2 (constants.%Self.aa1)]
@@ -839,7 +841,6 @@ impl forall [T:! type] D as N(T*) {}
839841// CHECK:STDOUT: %Self: @N.require0.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1)]
840842// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
841843// CHECK:STDOUT: %I.type.loc10_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.070)]
842- // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type.loc10_27.2 [symbolic = %require_complete (constants.%require_complete)]
843844// CHECK:STDOUT: }
844845// CHECK:STDOUT:
845846// CHECK:STDOUT: generic impl @C.as.I.impl(%T.loc7_14.1: type) {
@@ -889,7 +890,6 @@ impl forall [T:! type] D as N(T*) {}
889890// CHECK:STDOUT: %Self => constants.%Self.aa1
890891// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
891892// CHECK:STDOUT: %I.type.loc10_27.2 => constants.%I.type.070
892- // CHECK:STDOUT: %require_complete => constants.%require_complete
893893// CHECK:STDOUT: }
894894// CHECK:STDOUT:
895895// CHECK:STDOUT: --- import_generic_with_different_specific.impl.carbon
@@ -920,9 +920,9 @@ impl forall [T:! type] D as N(T*) {}
920920// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.aa1546.1 [symbolic]
921921// CHECK:STDOUT: %ptr.3f2: type = ptr_type %ptr.4f0 [symbolic]
922922// CHECK:STDOUT: %N.type.b8d23b.2: type = facet_type <@N, @N(%ptr.3f2)> [symbolic]
923+ // CHECK:STDOUT: %Self.aa1546.2: %N.type.b8d23b.2 = symbolic_binding Self, 1 [symbolic]
923924// CHECK:STDOUT: %I.type.71a: type = facet_type <@I, @I(%ptr.3f2)> [symbolic]
924925// CHECK:STDOUT: %require_complete.08c: <witness> = require_complete_type %I.type.71a [symbolic]
925- // CHECK:STDOUT: %Self.aa1546.2: %N.type.b8d23b.2 = symbolic_binding Self, 1 [symbolic]
926926// CHECK:STDOUT: %require_complete.a37: <witness> = require_complete_type %N.type.b8d23b.2 [symbolic]
927927// CHECK:STDOUT: %I.impl_witness.524: <witness> = impl_witness file.%I.impl_witness_table.loc6, @C.as.I.impl.3f8(%T) [symbolic]
928928// CHECK:STDOUT: }
@@ -1006,6 +1006,8 @@ impl forall [T:! type] D as N(T*) {}
10061006// CHECK:STDOUT: !definition:
10071007// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.b8d23b.1)]
10081008// CHECK:STDOUT: %Self: @N.%N.type (%N.type.b8d23b.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1546.1)]
1009+ // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.070)]
1010+ // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.c94)]
10091011// CHECK:STDOUT:
10101012// CHECK:STDOUT: constraint {
10111013// CHECK:STDOUT: !members:
@@ -1024,7 +1026,6 @@ impl forall [T:! type] D as N(T*) {}
10241026// CHECK:STDOUT: %Self: @N.require0.%N.type (%N.type.b8d23b.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1546.1)]
10251027// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
10261028// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.070)]
1027- // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.type [symbolic = %require_complete (constants.%require_complete.c94)]
10281029// CHECK:STDOUT: }
10291030// CHECK:STDOUT:
10301031// CHECK:STDOUT: generic impl @C.as.I.impl.f3e(imports.%Main.import_ref.efcd44.2: type) [from "import_generic_with_different_specific.carbon"] {
@@ -1120,7 +1121,6 @@ impl forall [T:! type] D as N(T*) {}
11201121// CHECK:STDOUT: %Self => constants.%Self.aa1546.1
11211122// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
11221123// CHECK:STDOUT: %I.type => constants.%I.type.070
1123- // CHECK:STDOUT: %require_complete => constants.%require_complete.c94
11241124// CHECK:STDOUT: }
11251125// CHECK:STDOUT:
11261126// CHECK:STDOUT: specific @N(constants.%ptr.3f2) {
@@ -1129,6 +1129,8 @@ impl forall [T:! type] D as N(T*) {}
11291129// CHECK:STDOUT: !definition:
11301130// CHECK:STDOUT: %N.type => constants.%N.type.b8d23b.2
11311131// CHECK:STDOUT: %Self => constants.%Self.aa1546.2
1132+ // CHECK:STDOUT: %I.type => constants.%I.type.71a
1133+ // CHECK:STDOUT: %require_complete => constants.%require_complete.08c
11321134// CHECK:STDOUT: }
11331135// CHECK:STDOUT:
11341136// CHECK:STDOUT: specific @C.as.I.impl.3f8(constants.%T) {
@@ -1140,15 +1142,6 @@ impl forall [T:! type] D as N(T*) {}
11401142// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.524
11411143// CHECK:STDOUT: }
11421144// CHECK:STDOUT:
1143- // CHECK:STDOUT: specific @N.require0(constants.%ptr.3f2, constants.%Self.aa1546.1) {
1144- // CHECK:STDOUT: %T => constants.%ptr.3f2
1145- // CHECK:STDOUT: %N.type => constants.%N.type.b8d23b.2
1146- // CHECK:STDOUT: %Self => constants.%Self.aa1546.1
1147- // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
1148- // CHECK:STDOUT: %I.type => constants.%I.type.71a
1149- // CHECK:STDOUT: %require_complete => constants.%require_complete.08c
1150- // CHECK:STDOUT: }
1151- // CHECK:STDOUT:
11521145// CHECK:STDOUT: specific @I(constants.%ptr.3f2) {
11531146// CHECK:STDOUT: %T => constants.%ptr.3f2
11541147// CHECK:STDOUT: }
@@ -1249,6 +1242,8 @@ impl forall [T:! type] D as N(T*) {}
12491242// CHECK:STDOUT: !definition:
12501243// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T.loc7_14.1)> [symbolic = %N.type (constants.%N.type.b8d)]
12511244// CHECK:STDOUT: %Self.loc7_24.2: @N.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self.aa1)]
1245+ // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T.loc7_14.1)> [symbolic = %J.type (constants.%J.type.8ec)]
1246+ // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %J.type [symbolic = %require_complete (constants.%require_complete)]
12521247// CHECK:STDOUT:
12531248// CHECK:STDOUT: constraint {
12541249// CHECK:STDOUT: %Self.loc7_24.1: @N.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self.aa1)]
@@ -1279,7 +1274,6 @@ impl forall [T:! type] D as N(T*) {}
12791274// CHECK:STDOUT: %Self: @N.require0.%N.type (%N.type.b8d) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1)]
12801275// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
12811276// CHECK:STDOUT: %J.type.loc8_27.2: type = facet_type <@J, @J(%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.8ec)]
1282- // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %J.type.loc8_27.2 [symbolic = %require_complete (constants.%require_complete)]
12831277// CHECK:STDOUT: }
12841278// CHECK:STDOUT:
12851279// CHECK:STDOUT: generic impl @D.as.J.impl.b47(%T.loc15_14.1: type) {
@@ -1325,7 +1319,6 @@ impl forall [T:! type] D as N(T*) {}
13251319// CHECK:STDOUT: %Self => constants.%Self.aa1
13261320// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
13271321// CHECK:STDOUT: %J.type.loc8_27.2 => constants.%J.type.8ec
1328- // CHECK:STDOUT: %require_complete => constants.%require_complete
13291322// CHECK:STDOUT: }
13301323// CHECK:STDOUT:
13311324// CHECK:STDOUT: specific @D.as.J.impl.b47(constants.%T) {
@@ -1372,8 +1365,8 @@ impl forall [T:! type] D as N(T*) {}
13721365// CHECK:STDOUT: %require_complete.a37d6c.1: <witness> = require_complete_type %N.type.b8d23b.1 [symbolic]
13731366// CHECK:STDOUT: %J.impl_witness.b5245e.1: <witness> = impl_witness file.%J.impl_witness_table.loc29, @D.as.J.impl.3b0484.1(%T) [symbolic]
13741367// CHECK:STDOUT: %N.type.b8d23b.2: type = facet_type <@N, @N(%ptr)> [symbolic]
1375- // CHECK:STDOUT: %require_complete.d4d: <witness> = require_complete_type %J.type.4fa [symbolic]
13761368// CHECK:STDOUT: %Self.aa1546.2: %N.type.b8d23b.2 = symbolic_binding Self, 1 [symbolic]
1369+ // CHECK:STDOUT: %require_complete.d4d: <witness> = require_complete_type %J.type.4fa [symbolic]
13771370// CHECK:STDOUT: %require_complete.a37d6c.2: <witness> = require_complete_type %N.type.b8d23b.2 [symbolic]
13781371// CHECK:STDOUT: %J.impl_witness.b5245e.2: <witness> = impl_witness file.%J.impl_witness_table.loc39, @D.as.J.impl.3b0484.2(%T) [symbolic]
13791372// CHECK:STDOUT: }
@@ -1500,6 +1493,8 @@ impl forall [T:! type] D as N(T*) {}
15001493// CHECK:STDOUT: !definition:
15011494// CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.b8d23b.1)]
15021495// CHECK:STDOUT: %Self: @N.%N.type (%N.type.b8d23b.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1546.1)]
1496+ // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.8ec)]
1497+ // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %J.type [symbolic = %require_complete (constants.%require_complete.387)]
15031498// CHECK:STDOUT:
15041499// CHECK:STDOUT: constraint {
15051500// CHECK:STDOUT: !members:
@@ -1518,7 +1513,6 @@ impl forall [T:! type] D as N(T*) {}
15181513// CHECK:STDOUT: %Self: @N.require0.%N.type (%N.type.b8d23b.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.aa1546.1)]
15191514// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
15201515// CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.8ec)]
1521- // CHECK:STDOUT: %require_complete: <witness> = require_complete_type %J.type [symbolic = %require_complete (constants.%require_complete.387)]
15221516// CHECK:STDOUT: }
15231517// CHECK:STDOUT:
15241518// CHECK:STDOUT: generic impl @D.as.J.impl.b470bf.1(imports.%Main.import_ref.efcd44.2: type) [from "fail_import_generic_decl.carbon"] {
@@ -1667,6 +1661,8 @@ impl forall [T:! type] D as N(T*) {}
16671661// CHECK:STDOUT: !definition:
16681662// CHECK:STDOUT: %N.type => constants.%N.type.b8d23b.1
16691663// CHECK:STDOUT: %Self => constants.%Self.aa1546.1
1664+ // CHECK:STDOUT: %J.type => constants.%J.type.8ec
1665+ // CHECK:STDOUT: %require_complete => constants.%require_complete.387
16701666// CHECK:STDOUT: }
16711667// CHECK:STDOUT:
16721668// CHECK:STDOUT: specific @N.require0(constants.%T, constants.%Self.aa1546.1) {
@@ -1675,7 +1671,6 @@ impl forall [T:! type] D as N(T*) {}
16751671// CHECK:STDOUT: %Self => constants.%Self.aa1546.1
16761672// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
16771673// CHECK:STDOUT: %J.type => constants.%J.type.8ec
1678- // CHECK:STDOUT: %require_complete => constants.%require_complete.387
16791674// CHECK:STDOUT: }
16801675// CHECK:STDOUT:
16811676// CHECK:STDOUT: specific @D.as.J.impl.3b0484.1(constants.%T) {
@@ -1691,6 +1686,8 @@ impl forall [T:! type] D as N(T*) {}
16911686// CHECK:STDOUT: !definition:
16921687// CHECK:STDOUT: %N.type => constants.%N.type.b8d23b.2
16931688// CHECK:STDOUT: %Self => constants.%Self.aa1546.2
1689+ // CHECK:STDOUT: %J.type => constants.%J.type.4fa
1690+ // CHECK:STDOUT: %require_complete => constants.%require_complete.d4d
16941691// CHECK:STDOUT: }
16951692// CHECK:STDOUT:
16961693// CHECK:STDOUT: specific @D.as.J.impl.3b0484.2(constants.%T) {
@@ -1701,12 +1698,3 @@ impl forall [T:! type] D as N(T*) {}
17011698// CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness.b5245e.2
17021699// CHECK:STDOUT: }
17031700// CHECK:STDOUT:
1704- // CHECK:STDOUT: specific @N.require0(constants.%ptr, constants.%Self.aa1546.1) {
1705- // CHECK:STDOUT: %T => constants.%ptr
1706- // CHECK:STDOUT: %N.type => constants.%N.type.b8d23b.2
1707- // CHECK:STDOUT: %Self => constants.%Self.aa1546.1
1708- // CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type
1709- // CHECK:STDOUT: %J.type => constants.%J.type.4fa
1710- // CHECK:STDOUT: %require_complete => constants.%require_complete.d4d
1711- // CHECK:STDOUT: }
1712- // CHECK:STDOUT:
0 commit comments