Don't elide Self when dumping the interface/constraint (#6297)

We give `Self` in an interface/constraint a location so it's not elided
when trying to dump the interface/constraint. We use the location of the
start of the definition, which is the scope for which the `Self` is
constructed and is available in.
This commit is contained in:
Dana Jansens
2025-10-30 20:47:16 +00:00
committed by GitHub
parent 656150593c
commit f272198ce5
54 changed files with 481 additions and 478 deletions
@@ -89,14 +89,14 @@ fn H() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_13.1)> [symbolic = %I.type (constants.%I.type.070)]
// CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.070) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.269)]
// CHECK:STDOUT: %Self.loc15_23.2: @I.%I.type (%I.type.070) = symbolic_binding Self, 1 [symbolic = %Self.loc15_23.2 (constants.%Self.269)]
// CHECK:STDOUT: %I.F.type: type = fn_type @I.F, @I(%T.loc15_13.1) [symbolic = %I.F.type (constants.%I.F.type.76d)]
// CHECK:STDOUT: %I.F: @I.%I.F.type (%I.F.type.76d) = struct_value () [symbolic = %I.F (constants.%I.F.dde)]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc15_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.b65)]
// CHECK:STDOUT: %assoc0.loc16_22.2: @I.%I.assoc_type (%I.assoc_type.b65) = assoc_entity element0, %I.F.decl [symbolic = %assoc0.loc16_22.2 (constants.%assoc0.b4f)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.070) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.269)]
// CHECK:STDOUT: %Self.loc15_23.1: @I.%I.type (%I.type.070) = symbolic_binding Self, 1 [symbolic = %Self.loc15_23.2 (constants.%Self.269)]
// CHECK:STDOUT: %I.F.decl: @I.%I.F.type (%I.F.type.76d) = fn_decl @I.F [symbolic = @I.%I.F (constants.%I.F.dde)] {
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete]
// CHECK:STDOUT: %return.patt: @I.F.%pattern_type (%pattern_type.533) = return_slot_pattern [concrete]
@@ -111,13 +111,13 @@ fn H() {
// CHECK:STDOUT: %assoc0.loc16_22.1: @I.%I.assoc_type (%I.assoc_type.b65) = assoc_entity element0, %I.F.decl [symbolic = %assoc0.loc16_22.2 (constants.%assoc0.b4f)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc15_23.1
// CHECK:STDOUT: .F = %assoc0.loc16_22.1
// CHECK:STDOUT: witness = (%I.F.decl)
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @I.F(@I.%T.loc15_13.2: type, @I.%Self.1: @I.%I.type (%I.type.070), %U.loc16_8.2: type) {
// CHECK:STDOUT: generic fn @I.F(@I.%T.loc15_13.2: type, @I.%Self.loc15_23.1: @I.%I.type (%I.type.070), %U.loc16_8.2: type) {
// CHECK:STDOUT: %U.loc16_8.1: type = symbolic_binding U, 2 [symbolic = %U.loc16_8.1 (constants.%U)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.loc16_8.1 [symbolic = %pattern_type (constants.%pattern_type.533)]
// CHECK:STDOUT:
@@ -160,7 +160,7 @@ fn H() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %I.type => constants.%I.type.070
// CHECK:STDOUT: %Self.2 => constants.%Self.269
// CHECK:STDOUT: %Self.loc15_23.2 => constants.%Self.269
// CHECK:STDOUT: %I.F.type => constants.%I.F.type.76d
// CHECK:STDOUT: %I.F => constants.%I.F.dde
// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.b65
@@ -192,7 +192,7 @@ fn H() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %I.type => constants.%I.type.399
// CHECK:STDOUT: %Self.2 => constants.%Self.32d
// CHECK:STDOUT: %Self.loc15_23.2 => constants.%Self.32d
// CHECK:STDOUT: %I.F.type => constants.%I.F.type.684
// CHECK:STDOUT: %I.F => constants.%I.F.a8d
// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.22c
+1 -1
View File
@@ -72,7 +72,7 @@ fn UseEmpty(i: I) {}
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Main.I: type = import_ref Main//base, I, loaded [concrete = constants.%I.type]
// CHECK:STDOUT: %Main.import_ref = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref = import_ref Main//base, loc4_13, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
@@ -85,18 +85,18 @@ interface Outer {
// CHECK:STDOUT:
// CHECK:STDOUT: generic interface @Inner(@Outer.%Self: %Outer.type) {
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Self.2: %Outer.type = symbolic_binding Self, 0 [symbolic = %Self.2 (constants.%Self.b6a)]
// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.2)> [symbolic = %Inner.type (constants.%Inner.type)]
// CHECK:STDOUT: %Self.3: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.3 (constants.%Self.bcd)]
// CHECK:STDOUT: %Inner.F.type: type = fn_type @Inner.F.loc30, @Inner(%Self.2) [symbolic = %Inner.F.type (constants.%Inner.F.type.cda642.1)]
// CHECK:STDOUT: %Self.loc25_19.2: %Outer.type = symbolic_binding Self, 0 [symbolic = %Self.loc25_19.2 (constants.%Self.b6a)]
// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.loc25_19.2)> [symbolic = %Inner.type (constants.%Inner.type)]
// CHECK:STDOUT: %Self.loc25_19.3: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.loc25_19.3 (constants.%Self.bcd)]
// CHECK:STDOUT: %Inner.F.type: type = fn_type @Inner.F.loc30, @Inner(%Self.loc25_19.2) [symbolic = %Inner.F.type (constants.%Inner.F.type.cda642.1)]
// CHECK:STDOUT: %Inner.F: @Inner.%Inner.F.type (%Inner.F.type.cda642.1) = struct_value () [symbolic = %Inner.F (constants.%Inner.F.f944d2.1)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.3 (constants.%Self.bcd)]
// CHECK:STDOUT: %Self.loc25_19.1: @Inner.%Inner.type (%Inner.type) = symbolic_binding Self, 1 [symbolic = %Self.loc25_19.3 (constants.%Self.bcd)]
// CHECK:STDOUT: %Inner.F.decl: @Inner.%Inner.F.type (%Inner.F.type.cda642.1) = fn_decl @Inner.F.loc30 [symbolic = @Inner.%Inner.F (constants.%Inner.F.f944d2.1)] {} {}
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc25_19.1
// CHECK:STDOUT: .F = @Outer.%Inner.F.decl
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
@@ -111,11 +111,11 @@ interface Outer {
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @Inner.F.loc30(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type)) {
// CHECK:STDOUT: generic fn @Inner.F.loc30(@Outer.%Self: %Outer.type, @Inner.%Self.loc25_19.1: @Inner.%Inner.type (%Inner.type)) {
// CHECK:STDOUT: fn();
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @Inner.F.loc36(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type)) {
// CHECK:STDOUT: generic fn @Inner.F.loc36(@Outer.%Self: %Outer.type, @Inner.%Self.loc25_19.1: @Inner.%Inner.type (%Inner.type)) {
// CHECK:STDOUT: fn();
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -123,9 +123,9 @@ interface Outer {
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Inner(constants.%Self.b6a) {
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Self.2 => constants.%Self.b6a
// CHECK:STDOUT: %Self.loc25_19.2 => constants.%Self.b6a
// CHECK:STDOUT: %Inner.type => constants.%Inner.type
// CHECK:STDOUT: %Self.3 => constants.%Self.bcd
// CHECK:STDOUT: %Self.loc25_19.3 => constants.%Self.bcd
// CHECK:STDOUT: %Inner.F.type => constants.%Inner.F.type.cda642.1
// CHECK:STDOUT: %Inner.F => constants.%Inner.F.f944d2.1
// CHECK:STDOUT: }
@@ -123,14 +123,14 @@ interface C {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest.loc3_22.1)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.841)]
// CHECK:STDOUT: %Self.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.841) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc3_35.2: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.841) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)]
// CHECK:STDOUT: %ImplicitAs.Convert.type: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %ImplicitAs.Convert.type (constants.%ImplicitAs.Convert.type)]
// CHECK:STDOUT: %ImplicitAs.Convert: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type) = struct_value () [symbolic = %ImplicitAs.Convert (constants.%ImplicitAs.Convert)]
// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest.loc3_22.1) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type)]
// CHECK:STDOUT: %assoc0.loc4_35.2: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type) = assoc_entity element0, %ImplicitAs.Convert.decl [symbolic = %assoc0.loc4_35.2 (constants.%assoc0)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.841) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.841) = symbolic_binding Self, 1 [symbolic = %Self.loc3_35.2 (constants.%Self)]
// CHECK:STDOUT: %ImplicitAs.Convert.decl: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type) = fn_decl @ImplicitAs.Convert [symbolic = @ImplicitAs.%ImplicitAs.Convert (constants.%ImplicitAs.Convert)] {
// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.4e2) = value_binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.4e2) = value_param_pattern %self.patt, call_param0 [concrete]
@@ -140,7 +140,7 @@ interface C {
// CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)]
// CHECK:STDOUT: %self.param: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] {
// CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.841) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)]
// CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.841) = specific_constant @ImplicitAs.%Self.loc3_35.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)]
// CHECK:STDOUT: %Self.ref: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.841) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)]
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)]
@@ -152,14 +152,14 @@ interface C {
// CHECK:STDOUT: %assoc0.loc4_35.1: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type) = assoc_entity element0, %ImplicitAs.Convert.decl [symbolic = %assoc0.loc4_35.2 (constants.%assoc0)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc3_35.1
// CHECK:STDOUT: .Dest = <poisoned>
// CHECK:STDOUT: .Convert = %assoc0.loc4_35.1
// CHECK:STDOUT: witness = (%ImplicitAs.Convert.decl)
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @ImplicitAs.Convert(@ImplicitAs.%Dest.loc3_22.2: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.841)) {
// CHECK:STDOUT: generic fn @ImplicitAs.Convert(@ImplicitAs.%Dest.loc3_22.2: type, @ImplicitAs.%Self.loc3_35.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.841)) {
// CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)]
// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.841)]
// CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.841) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)]
@@ -114,13 +114,13 @@ interface DifferentParams(T:! ()) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.loc23_22.1)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.50a)]
// CHECK:STDOUT: %Self.2: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.50a) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.242)]
// CHECK:STDOUT: %Self.loc23_32.2: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.50a) = symbolic_binding Self, 1 [symbolic = %Self.loc23_32.2 (constants.%Self.242)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.50a) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.242)]
// CHECK:STDOUT: %Self.loc23_32.1: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.50a) = symbolic_binding Self, 1 [symbolic = %Self.loc23_32.2 (constants.%Self.242)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc23_32.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -150,13 +150,13 @@ interface DifferentParams(T:! ()) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %DifferentParams.type: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.loc43_27.1)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.0ec)]
// CHECK:STDOUT: %Self.2: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.0ec) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.c69)]
// CHECK:STDOUT: %Self.loc43_35.2: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.0ec) = symbolic_binding Self, 1 [symbolic = %Self.loc43_35.2 (constants.%Self.c69)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.0ec) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.c69)]
// CHECK:STDOUT: %Self.loc43_35.1: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.0ec) = symbolic_binding Self, 1 [symbolic = %Self.loc43_35.2 (constants.%Self.c69)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc43_35.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
+16 -16
View File
@@ -193,13 +193,13 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Simple.type: type = facet_type <@Simple, @Simple(%T.loc4_18.1)> [symbolic = %Simple.type (constants.%Simple.type.85b)]
// CHECK:STDOUT: %Self.2: @Simple.%Simple.type (%Simple.type.85b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.355)]
// CHECK:STDOUT: %Self.loc4_28.2: @Simple.%Simple.type (%Simple.type.85b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.355)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Simple.%Simple.type (%Simple.type.85b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.355)]
// CHECK:STDOUT: %Self.loc4_28.1: @Simple.%Simple.type (%Simple.type.85b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_28.2 (constants.%Self.355)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc4_28.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -209,14 +209,14 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_23.1)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.507)]
// CHECK:STDOUT: %Self.2: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.507) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.33c)]
// CHECK:STDOUT: %Self.loc8_33.2: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.507) = symbolic_binding Self, 1 [symbolic = %Self.loc8_33.2 (constants.%Self.33c)]
// CHECK:STDOUT: %WithAssocFn.F.type: type = fn_type @WithAssocFn.F, @WithAssocFn(%T.loc8_23.1) [symbolic = %WithAssocFn.F.type (constants.%WithAssocFn.F.type.c9b)]
// CHECK:STDOUT: %WithAssocFn.F: @WithAssocFn.%WithAssocFn.F.type (%WithAssocFn.F.type.c9b) = struct_value () [symbolic = %WithAssocFn.F (constants.%WithAssocFn.F.deb)]
// CHECK:STDOUT: %WithAssocFn.assoc_type: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%T.loc8_23.1) [symbolic = %WithAssocFn.assoc_type (constants.%WithAssocFn.assoc_type.7e6)]
// CHECK:STDOUT: %assoc0.loc10_14.2: @WithAssocFn.%WithAssocFn.assoc_type (%WithAssocFn.assoc_type.7e6) = assoc_entity element0, %WithAssocFn.F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.141)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.507) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.33c)]
// CHECK:STDOUT: %Self.loc8_33.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.507) = symbolic_binding Self, 1 [symbolic = %Self.loc8_33.2 (constants.%Self.33c)]
// CHECK:STDOUT: %WithAssocFn.F.decl: @WithAssocFn.%WithAssocFn.F.type (%WithAssocFn.F.type.c9b) = fn_decl @WithAssocFn.F [symbolic = @WithAssocFn.%WithAssocFn.F (constants.%WithAssocFn.F.deb)] {
// CHECK:STDOUT: %return.patt: %pattern_type.019 = return_slot_pattern [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.019 = out_param_pattern %return.patt, call_param0 [concrete]
@@ -228,7 +228,7 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT: %assoc0.loc10_14.1: @WithAssocFn.%WithAssocFn.assoc_type (%WithAssocFn.assoc_type.7e6) = assoc_entity element0, %WithAssocFn.F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.141)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc8_33.1
// CHECK:STDOUT: .X = <poisoned>
// CHECK:STDOUT: .F = %assoc0.loc10_14.1
// CHECK:STDOUT: witness = (%WithAssocFn.F.decl)
@@ -300,7 +300,7 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT: .X = <poisoned>
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @WithAssocFn.F(@WithAssocFn.%T.loc8_23.2: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.507)) {
// CHECK:STDOUT: generic fn @WithAssocFn.F(@WithAssocFn.%T.loc8_23.2: type, @WithAssocFn.%Self.loc8_33.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.507)) {
// CHECK:STDOUT: fn() -> %return.param: %X;
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -354,7 +354,7 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Simple.type => constants.%Simple.type.ebf
// CHECK:STDOUT: %Self.2 => constants.%Self.671
// CHECK:STDOUT: %Self.loc4_28.2 => constants.%Self.671
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @WithAssocFn(constants.%C) {
@@ -362,7 +362,7 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %WithAssocFn.type => constants.%WithAssocFn.type.fc9
// CHECK:STDOUT: %Self.2 => constants.%Self.669
// CHECK:STDOUT: %Self.loc8_33.2 => constants.%Self.669
// CHECK:STDOUT: %WithAssocFn.F.type => constants.%WithAssocFn.F.type.18c
// CHECK:STDOUT: %WithAssocFn.F => constants.%WithAssocFn.F.e46
// CHECK:STDOUT: %WithAssocFn.assoc_type => constants.%WithAssocFn.assoc_type.9ea
@@ -461,13 +461,13 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc4_19.1)> [symbolic = %Generic.type (constants.%Generic.type.68b)]
// CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.fc1)]
// CHECK:STDOUT: %Self.loc4_29.2: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.fc1)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.fc1)]
// CHECK:STDOUT: %Self.loc4_29.1: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self.fc1)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc4_29.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -526,7 +526,7 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Generic.type => constants.%Generic.type.227
// CHECK:STDOUT: %Self.2 => constants.%Self.fc0
// CHECK:STDOUT: %Self.loc4_29.2 => constants.%Self.fc0
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @G(constants.%T.7ca) {
@@ -578,13 +578,13 @@ fn F(T:! Generic((), ())) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Generic.type: type = facet_type <@Generic, @Generic(%T.loc3_19.1)> [symbolic = %Generic.type (constants.%Generic.type.68b)]
// CHECK:STDOUT: %Self.2: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc3_29.2: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.loc3_29.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc3_29.1: @Generic.%Generic.type (%Generic.type.68b) = symbolic_binding Self, 1 [symbolic = %Self.loc3_29.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc3_29.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
+6 -6
View File
@@ -65,25 +65,25 @@ impl C as AddWith(C) {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T.loc4_19.1)> [symbolic = %AddWith.type (constants.%AddWith.type.302)]
// CHECK:STDOUT: %Self.2: @AddWith.%AddWith.type (%AddWith.type.302) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc4_29.2: @AddWith.%AddWith.type (%AddWith.type.302) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self)]
// CHECK:STDOUT: %AddWith.F.type: type = fn_type @AddWith.F, @AddWith(%T.loc4_19.1) [symbolic = %AddWith.F.type (constants.%AddWith.F.type)]
// CHECK:STDOUT: %AddWith.F: @AddWith.%AddWith.F.type (%AddWith.F.type) = struct_value () [symbolic = %AddWith.F (constants.%AddWith.F)]
// CHECK:STDOUT: %AddWith.assoc_type: type = assoc_entity_type @AddWith, @AddWith(%T.loc4_19.1) [symbolic = %AddWith.assoc_type (constants.%AddWith.assoc_type)]
// CHECK:STDOUT: %assoc0.loc5_9.2: @AddWith.%AddWith.assoc_type (%AddWith.assoc_type) = assoc_entity element0, %AddWith.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @AddWith.%AddWith.type (%AddWith.type.302) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc4_29.1: @AddWith.%AddWith.type (%AddWith.type.302) = symbolic_binding Self, 1 [symbolic = %Self.loc4_29.2 (constants.%Self)]
// CHECK:STDOUT: %AddWith.F.decl: @AddWith.%AddWith.F.type (%AddWith.F.type) = fn_decl @AddWith.F [symbolic = @AddWith.%AddWith.F (constants.%AddWith.F)] {} {}
// CHECK:STDOUT: %assoc0.loc5_9.1: @AddWith.%AddWith.assoc_type (%AddWith.assoc_type) = assoc_entity element0, %AddWith.F.decl [symbolic = %assoc0.loc5_9.2 (constants.%assoc0)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc4_29.1
// CHECK:STDOUT: .F = %assoc0.loc5_9.1
// CHECK:STDOUT: witness = (%AddWith.F.decl)
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @AddWith.F(@AddWith.%T.loc4_19.2: type, @AddWith.%Self.1: @AddWith.%AddWith.type (%AddWith.type.302)) {
// CHECK:STDOUT: generic fn @AddWith.F(@AddWith.%T.loc4_19.2: type, @AddWith.%Self.loc4_29.1: @AddWith.%AddWith.type (%AddWith.type.302)) {
// CHECK:STDOUT: fn();
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -123,11 +123,11 @@ impl C as AddWith(C) {
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Main.AddWith: %AddWith.type.b35 = import_ref Main//a, AddWith, loaded [concrete = constants.%AddWith.generic]
// CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//a, loc4_19, loaded [symbolic = @AddWith.%T (constants.%T)]
// CHECK:STDOUT: %Main.import_ref.833 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.833 = import_ref Main//a, loc4_29, unloaded
// CHECK:STDOUT: %Main.import_ref.073 = import_ref Main//a, loc5_9, unloaded
// CHECK:STDOUT: %Main.F: @AddWith.%AddWith.F.type (%AddWith.F.type.d64) = import_ref Main//a, F, loaded [symbolic = @AddWith.%AddWith.F (constants.%AddWith.F.fa8)]
// CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//a, loc4_19, loaded [symbolic = @AddWith.%T (constants.%T)]
// CHECK:STDOUT: %Main.import_ref.2bd: @AddWith.%AddWith.type (%AddWith.type.302) = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], loaded [symbolic = @AddWith.%Self (constants.%Self.236)]
// CHECK:STDOUT: %Main.import_ref.2bd: @AddWith.%AddWith.type (%AddWith.type.302) = import_ref Main//a, loc4_29, loaded [symbolic = @AddWith.%Self (constants.%Self.236)]
// CHECK:STDOUT: %Main.import_ref.543 = import_ref Main//a, loc5_9, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
+13 -13
View File
@@ -269,14 +269,14 @@ fn CallIndirect() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.1)> [symbolic = %A.type (constants.%A.type.c1c)]
// CHECK:STDOUT: %Self.2: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.27c)]
// CHECK:STDOUT: %Self.loc5_23.2: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.27c)]
// CHECK:STDOUT: %A.F.type: type = fn_type @A.F, @A(%T.loc5_13.1) [symbolic = %A.F.type (constants.%A.F.type.de8)]
// CHECK:STDOUT: %A.F: @A.%A.F.type (%A.F.type.de8) = struct_value () [symbolic = %A.F (constants.%A.F.bd2)]
// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.1) [symbolic = %A.assoc_type (constants.%A.assoc_type.23a)]
// CHECK:STDOUT: %assoc0.loc6_41.2: @A.%A.assoc_type (%A.assoc_type.23a) = assoc_entity element0, %A.F.decl [symbolic = %assoc0.loc6_41.2 (constants.%assoc0.1c7)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.27c)]
// CHECK:STDOUT: %Self.loc5_23.1: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.27c)]
// CHECK:STDOUT: %A.F.decl: @A.%A.F.type (%A.F.type.de8) = fn_decl @A.F [symbolic = @A.%A.F (constants.%A.F.bd2)] {
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete]
// CHECK:STDOUT: %u.patt: @A.F.%pattern_type.loc6_18 (%pattern_type.854) = value_binding_pattern u [concrete]
@@ -285,7 +285,7 @@ fn CallIndirect() {
// CHECK:STDOUT: %return.param_patt: @A.F.%pattern_type.loc6_25 (%pattern_type.85c) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.d9f)]
// CHECK:STDOUT: %.loc6_32: @A.F.%A.type (%A.type.c1c) = specific_constant @A.%Self.1, @A(constants.%T.d9f) [symbolic = %Self (constants.%Self.27c)]
// CHECK:STDOUT: %.loc6_32: @A.F.%A.type (%A.type.c1c) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.d9f) [symbolic = %Self (constants.%Self.27c)]
// CHECK:STDOUT: %Self.ref: @A.F.%A.type (%A.type.c1c) = name_ref Self, %.loc6_32 [symbolic = %Self (constants.%Self.27c)]
// CHECK:STDOUT: %U.ref.loc6_38: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.63a)]
// CHECK:STDOUT: %ptr.loc6_39: type = ptr_type %U.ref.loc6_38 [symbolic = %ptr.loc6_22.1 (constants.%ptr.e49)]
@@ -307,7 +307,7 @@ fn CallIndirect() {
// CHECK:STDOUT: %assoc0.loc6_41.1: @A.%A.assoc_type (%A.assoc_type.23a) = assoc_entity element0, %A.F.decl [symbolic = %assoc0.loc6_41.2 (constants.%assoc0.1c7)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc5_23.1
// CHECK:STDOUT: .T = <poisoned>
// CHECK:STDOUT: .F = %assoc0.loc6_41.1
// CHECK:STDOUT: witness = (%A.F.decl)
@@ -371,7 +371,7 @@ fn CallIndirect() {
// CHECK:STDOUT: .Self = constants.%Z
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @A.F(@A.%T.loc5_13.2: type, @A.%Self.1: @A.%A.type (%A.type.c1c), %U.loc6_8.2: type) {
// CHECK:STDOUT: generic fn @A.F(@A.%T.loc5_13.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.c1c), %U.loc6_8.2: type) {
// CHECK:STDOUT: %U.loc6_8.1: type = symbolic_binding U, 2 [symbolic = %U.loc6_8.1 (constants.%U.63a)]
// CHECK:STDOUT: %ptr.loc6_22.1: type = ptr_type %U.loc6_8.1 [symbolic = %ptr.loc6_22.1 (constants.%ptr.e49)]
// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %ptr.loc6_22.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.854)]
@@ -559,7 +559,7 @@ fn CallIndirect() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %A.type => constants.%A.type.0a4
// CHECK:STDOUT: %Self.2 => constants.%Self.789
// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.789
// CHECK:STDOUT: %A.F.type => constants.%A.F.type.13d
// CHECK:STDOUT: %A.F => constants.%A.F.d83
// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.296
@@ -853,14 +853,14 @@ fn CallIndirect() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.1)> [symbolic = %A.type (constants.%A.type.c1c)]
// CHECK:STDOUT: %Self.2: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.27c)]
// CHECK:STDOUT: %Self.loc5_23.2: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.27c)]
// CHECK:STDOUT: %A.F.type: type = fn_type @A.F, @A(%T.loc5_13.1) [symbolic = %A.F.type (constants.%A.F.type.de8)]
// CHECK:STDOUT: %A.F: @A.%A.F.type (%A.F.type.de8) = struct_value () [symbolic = %A.F (constants.%A.F.bd2)]
// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.1) [symbolic = %A.assoc_type (constants.%A.assoc_type.23a)]
// CHECK:STDOUT: %assoc0.loc6_39.2: @A.%A.assoc_type (%A.assoc_type.23a) = assoc_entity element0, %A.F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.1c7)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.27c)]
// CHECK:STDOUT: %Self.loc5_23.1: @A.%A.type (%A.type.c1c) = symbolic_binding Self, 1 [symbolic = %Self.loc5_23.2 (constants.%Self.27c)]
// CHECK:STDOUT: %A.F.decl: @A.%A.F.type (%A.F.type.de8) = fn_decl @A.F [symbolic = @A.%A.F (constants.%A.F.bd2)] {
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete]
// CHECK:STDOUT: %u.patt: @A.F.%pattern_type.loc6_18 (%pattern_type.533) = value_binding_pattern u [concrete]
@@ -869,7 +869,7 @@ fn CallIndirect() {
// CHECK:STDOUT: %return.param_patt: @A.F.%pattern_type.loc6_24 (%pattern_type.845) = out_param_pattern %return.patt, call_param1 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.d9f)]
// CHECK:STDOUT: %.loc6_31: @A.F.%A.type (%A.type.c1c) = specific_constant @A.%Self.1, @A(constants.%T.d9f) [symbolic = %Self (constants.%Self.27c)]
// CHECK:STDOUT: %.loc6_31: @A.F.%A.type (%A.type.c1c) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.d9f) [symbolic = %Self (constants.%Self.27c)]
// CHECK:STDOUT: %Self.ref: @A.F.%A.type (%A.type.c1c) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.27c)]
// CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.63a)]
// CHECK:STDOUT: %.loc6_38.1: @A.F.%tuple.type.loc6_38.1 (%tuple.type.004) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37)
@@ -887,7 +887,7 @@ fn CallIndirect() {
// CHECK:STDOUT: %assoc0.loc6_39.1: @A.%A.assoc_type (%A.assoc_type.23a) = assoc_entity element0, %A.F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.1c7)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc5_23.1
// CHECK:STDOUT: .T = <poisoned>
// CHECK:STDOUT: .F = %assoc0.loc6_39.1
// CHECK:STDOUT: witness = (%A.F.decl)
@@ -973,7 +973,7 @@ fn CallIndirect() {
// CHECK:STDOUT: .Self = constants.%Z
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic fn @A.F(@A.%T.loc5_13.2: type, @A.%Self.1: @A.%A.type (%A.type.c1c), %U.loc6_8.2: type) {
// CHECK:STDOUT: generic fn @A.F(@A.%T.loc5_13.2: type, @A.%Self.loc5_23.1: @A.%A.type (%A.type.c1c), %U.loc6_8.2: type) {
// CHECK:STDOUT: %U.loc6_8.1: type = symbolic_binding U, 2 [symbolic = %U.loc6_8.1 (constants.%U.63a)]
// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.533)]
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.d9f)]
@@ -1147,7 +1147,7 @@ fn CallIndirect() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %A.type => constants.%A.type.2ec
// CHECK:STDOUT: %Self.2 => constants.%Self.b6c
// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.b6c
// CHECK:STDOUT: %A.F.type => constants.%A.F.type.f65
// CHECK:STDOUT: %A.F => constants.%A.F.d51
// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.abb
@@ -1203,7 +1203,7 @@ fn CallIndirect() {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %A.type => constants.%A.type.0a4
// CHECK:STDOUT: %Self.2 => constants.%Self.789
// CHECK:STDOUT: %Self.loc5_23.2 => constants.%Self.789
// CHECK:STDOUT: %A.F.type => constants.%A.F.type.13d
// CHECK:STDOUT: %A.F => constants.%A.F.d83
// CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.296
+15 -15
View File
@@ -207,13 +207,13 @@ interface Bar[T:! type] {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T.loc6_28.1)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.741)]
// CHECK:STDOUT: %Self.2: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.741) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.a56)]
// CHECK:STDOUT: %Self.loc6_38.2: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.741) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.a56)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.741) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.a56)]
// CHECK:STDOUT: %Self.loc6_38.1: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.741) = symbolic_binding Self, 1 [symbolic = %Self.loc6_38.2 (constants.%Self.a56)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc6_38.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -222,13 +222,13 @@ interface Bar[T:! type] {}
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.672)]
// CHECK:STDOUT: %Self.2: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.672) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.ed2)]
// CHECK:STDOUT: %Self.loc9_29.2: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.672) = symbolic_binding Self, 1 [symbolic = %Self.loc9_29.2 (constants.%Self.ed2)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.672) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.ed2)]
// CHECK:STDOUT: %Self.loc9_29.1: @GenericNoParams.%GenericNoParams.type (%GenericNoParams.type.672) = symbolic_binding Self, 1 [symbolic = %Self.loc9_29.2 (constants.%Self.ed2)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc9_29.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -239,13 +239,13 @@ interface Bar[T:! type] {}
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U.loc10_30.1)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.506)]
// CHECK:STDOUT: %Self.2: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.506) = symbolic_binding Self, 2 [symbolic = %Self.2 (constants.%Self.202)]
// CHECK:STDOUT: %Self.loc10_40.2: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.506) = symbolic_binding Self, 2 [symbolic = %Self.loc10_40.2 (constants.%Self.202)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.506) = symbolic_binding Self, 2 [symbolic = %Self.2 (constants.%Self.202)]
// CHECK:STDOUT: %Self.loc10_40.1: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.506) = symbolic_binding Self, 2 [symbolic = %Self.loc10_40.2 (constants.%Self.202)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc10_40.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -328,7 +328,7 @@ interface Bar[T:! type] {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.674
// CHECK:STDOUT: %Self.2 => constants.%Self.1d4
// CHECK:STDOUT: %Self.loc6_38.2 => constants.%Self.1d4
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C(constants.%X) {
@@ -344,7 +344,7 @@ interface Bar[T:! type] {}
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %T => constants.%X
// CHECK:STDOUT: %GenericNoParams.type => constants.%GenericNoParams.type.7ce
// CHECK:STDOUT: %Self.2 => constants.%Self.96e
// CHECK:STDOUT: %Self.loc9_29.2 => constants.%Self.96e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @GenericAndParams.loc10(constants.%X, constants.%X) {
@@ -353,7 +353,7 @@ interface Bar[T:! type] {}
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %T => constants.%X
// CHECK:STDOUT: %GenericAndParams.type => constants.%GenericAndParams.type.e77
// CHECK:STDOUT: %Self.2 => constants.%Self.b70
// CHECK:STDOUT: %Self.loc10_40.2 => constants.%Self.b70
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- fail_non_generic_implicit_params.carbon
@@ -458,13 +458,13 @@ interface Bar[T:! type] {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%T.loc8_15.1)> [symbolic = %Bar.type (constants.%Bar.type.70d)]
// CHECK:STDOUT: %Self.2: @Bar.%Bar.type (%Bar.type.70d) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc8_25.2: @Bar.%Bar.type (%Bar.type.70d) = symbolic_binding Self, 1 [symbolic = %Self.loc8_25.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Bar.%Bar.type (%Bar.type.70d) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc8_25.1: @Bar.%Bar.type (%Bar.type.70d) = symbolic_binding Self, 1 [symbolic = %Self.loc8_25.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc8_25.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
+3 -3
View File
@@ -220,13 +220,13 @@ var f: ForwardDeclared* = &f_ref.f;
// CHECK:STDOUT: import Core//prelude
// CHECK:STDOUT: import Core//prelude/...
// CHECK:STDOUT: }
// CHECK:STDOUT: %Main.import_ref.257 = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.58d = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.257 = import_ref Main//a, loc4_17, unloaded
// CHECK:STDOUT: %Main.import_ref.58d = import_ref Main//a, loc7_17, unloaded
// CHECK:STDOUT: %Main.import_ref.3d5: %Basic.assoc_type = import_ref Main//a, loc8_8, loaded [concrete = constants.%assoc0.fee]
// CHECK:STDOUT: %Main.import_ref.760: %Basic.assoc_type = import_ref Main//a, loc9_9, loaded [concrete = constants.%assoc1.4ea]
// CHECK:STDOUT: %Main.T.44f = import_ref Main//a, T, unloaded
// CHECK:STDOUT: %Main.F.eea = import_ref Main//a, F, unloaded
// CHECK:STDOUT: %Main.import_ref.60d = import_ref Main//a, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.60d = import_ref Main//a, loc15_27, unloaded
// CHECK:STDOUT: %Main.import_ref.ad1: %ForwardDeclared.assoc_type = import_ref Main//a, loc16_8, loaded [concrete = constants.%assoc0.d40]
// CHECK:STDOUT: %Main.import_ref.339: %ForwardDeclared.assoc_type = import_ref Main//a, loc17_9, loaded [concrete = constants.%assoc1.e3d]
// CHECK:STDOUT: %Main.T.6ee = import_ref Main//a, T, unloaded
+2 -2
View File
@@ -214,7 +214,7 @@ private interface Redecl {}
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [concrete = constants.%Def.type]
// CHECK:STDOUT: %Test.import_ref = import_ref Test//def, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Test.import_ref = import_ref Test//def, loc4_23, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
@@ -322,7 +322,7 @@ private interface Redecl {}
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [concrete = constants.%ForwardWithDef.type]
// CHECK:STDOUT: %Test.import_ref = import_ref Test//forward_with_def, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Test.import_ref = import_ref Test//forward_with_def, loc6_26, unloaded
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
@@ -102,7 +102,7 @@ impl library "[[@TEST_NAME]]";
// CHECK:STDOUT:
// CHECK:STDOUT: imports {
// CHECK:STDOUT: %Main.B = import_ref Main//b, B, unloaded
// CHECK:STDOUT: %Main.import_ref.5c0 = import_ref Main//b, inst{{[0-9A-F]+}} [no loc], unloaded
// CHECK:STDOUT: %Main.import_ref.5c0 = import_ref Main//b, loc2_13, unloaded
// CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//b, loc7_7, loaded [concrete = constants.%empty_tuple.type]
// CHECK:STDOUT: %Main.import_ref.171: type = import_ref Main//b, loc7_12, loaded [concrete = constants.%B.type]
// CHECK:STDOUT: }
+12 -12
View File
@@ -188,25 +188,25 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.1)> [symbolic = %Interface.type (constants.%Interface.type.06b)]
// CHECK:STDOUT: %Self.2: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.d36)]
// CHECK:STDOUT: %Self.loc4_31.2: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.d36)]
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc4_21.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.e9d)]
// CHECK:STDOUT: %assoc0: @Interface.%Interface.assoc_type (%Interface.assoc_type.e9d) = assoc_entity element0, %X [symbolic = %assoc0 (constants.%assoc0.39b)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.d36)]
// CHECK:STDOUT: %Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.d36)]
// CHECK:STDOUT: %X: @X.%ptr (%ptr.4f0) = assoc_const_decl @X [concrete] {
// CHECK:STDOUT: %assoc0: @Interface.%Interface.assoc_type (%Interface.assoc_type.e9d) = assoc_entity element0, @Interface.%X [symbolic = @Interface.%assoc0 (constants.%assoc0.39b)]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc4_31.1
// CHECK:STDOUT: .T = <poisoned>
// CHECK:STDOUT: .X = @X.%assoc0
// CHECK:STDOUT: witness = (%X)
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.2: type, @Interface.%Self.1: @Interface.%Interface.type (%Interface.type.06b)) {
// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.2: type, @Interface.%Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.06b)) {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.d9f)]
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic = %ptr (constants.%ptr.4f0)]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %ptr [symbolic = %require_complete (constants.%require_complete.482)]
@@ -287,7 +287,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Interface.type => constants.%Interface.type.06b
// CHECK:STDOUT: %Self.2 => constants.%Self.d36
// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.d36
// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.e9d
// CHECK:STDOUT: %assoc0 => constants.%assoc0.39b
// CHECK:STDOUT: }
@@ -318,7 +318,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Interface.type => constants.%Interface.type.02f
// CHECK:STDOUT: %Self.2 => constants.%Self.1f1
// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.1f1
// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.aaa
// CHECK:STDOUT: %assoc0 => constants.%assoc0.c50
// CHECK:STDOUT: }
@@ -437,18 +437,18 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface, @Interface(%T.loc4_21.1)> [symbolic = %Interface.type (constants.%Interface.type.06b)]
// CHECK:STDOUT: %Self.2: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.d36)]
// CHECK:STDOUT: %Self.loc4_31.2: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.d36)]
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc4_21.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.e9d)]
// CHECK:STDOUT: %assoc0: @Interface.%Interface.assoc_type (%Interface.assoc_type.e9d) = assoc_entity element0, %X [symbolic = %assoc0 (constants.%assoc0.39b)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.d36)]
// CHECK:STDOUT: %Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.06b) = symbolic_binding Self, 1 [symbolic = %Self.loc4_31.2 (constants.%Self.d36)]
// CHECK:STDOUT: %X: @X.%ptr (%ptr) = assoc_const_decl @X [concrete] {
// CHECK:STDOUT: %assoc0: @Interface.%Interface.assoc_type (%Interface.assoc_type.e9d) = assoc_entity element0, @Interface.%X [symbolic = @Interface.%assoc0 (constants.%assoc0.39b)]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc4_31.1
// CHECK:STDOUT: .T = <poisoned>
// CHECK:STDOUT: .X = @X.%assoc0
// CHECK:STDOUT: .nonesuch = <poisoned>
@@ -456,7 +456,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.2: type, @Interface.%Self.1: @Interface.%Interface.type (%Interface.type.06b)) {
// CHECK:STDOUT: generic assoc_const @X(@Interface.%T.loc4_21.2: type, @Interface.%Self.loc4_31.1: @Interface.%Interface.type (%Interface.type.06b)) {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic = %ptr (constants.%ptr)]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %ptr [symbolic = %require_complete (constants.%require_complete.482)]
@@ -501,7 +501,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Interface.type => constants.%Interface.type.06b
// CHECK:STDOUT: %Self.2 => constants.%Self.d36
// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.d36
// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.e9d
// CHECK:STDOUT: %assoc0 => constants.%assoc0.39b
// CHECK:STDOUT: }
@@ -525,7 +525,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 {
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Interface.type => constants.%Interface.type.02f
// CHECK:STDOUT: %Self.2 => constants.%Self.1f1
// CHECK:STDOUT: %Self.loc4_31.2 => constants.%Self.1f1
// CHECK:STDOUT: %Interface.assoc_type => constants.%Interface.assoc_type.aaa
// CHECK:STDOUT: %assoc0 => constants.%assoc0.c50
// CHECK:STDOUT: }
+7 -7
View File
@@ -185,7 +185,7 @@ fn F(T:! Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Z {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}.loc8_13
// CHECK:STDOUT: witness = invalid
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -196,7 +196,7 @@ fn F(T:! Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Z {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}.loc8_13
// CHECK:STDOUT: witness = invalid
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -207,7 +207,7 @@ fn F(T:! Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Z {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}.loc8_13
// CHECK:STDOUT: witness = invalid
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -218,7 +218,7 @@ fn F(T:! Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Z {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}.loc6_13
// CHECK:STDOUT: witness = invalid
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -233,7 +233,7 @@ fn F(T:! Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}.loc6_23
// CHECK:STDOUT: witness = invalid
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -253,7 +253,7 @@ fn F(T:! Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}.loc6_23
// CHECK:STDOUT: witness = invalid
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -269,7 +269,7 @@ fn F(T:! Z) {
// CHECK:STDOUT:
// CHECK:STDOUT: interface @Z {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}
// CHECK:STDOUT: .Self = <unexpected>.inst{{[0-9A-F]+}}.loc8_13
// CHECK:STDOUT: witness = invalid
// CHECK:STDOUT: }
// CHECK:STDOUT:
+36 -36
View File
@@ -263,13 +263,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc7_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.1d4)]
// CHECK:STDOUT: %Self.loc8_22.2: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc8_22.2 (constants.%Self.1d4)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.1d4)]
// CHECK:STDOUT: %Self.loc8_22.1: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc8_22.2 (constants.%Self.1d4)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc8_22.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -279,13 +279,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar, @Bar(%a.loc10_15.1)> [symbolic = %Bar.type (constants.%Bar.type.3d8)]
// CHECK:STDOUT: %Self.2: @Bar.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.3a7)]
// CHECK:STDOUT: %Self.loc11_22.2: @Bar.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.loc11_22.2 (constants.%Self.3a7)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Bar.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.3a7)]
// CHECK:STDOUT: %Self.loc11_22.1: @Bar.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.loc11_22.2 (constants.%Self.3a7)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc11_22.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -353,13 +353,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_21.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc7_24.2: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc7_24.1: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc7_24.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -431,13 +431,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.loc14.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc14_24.2: @Foo.loc14.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.loc14.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc14_24.1: @Foo.loc14.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc14_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc14_24.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -505,13 +505,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo, @Foo(%a.loc6_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc7_24.2: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc7_24.1: @Foo.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc7_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc7_24.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -677,13 +677,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc12, @Foo.loc12(%a.loc12_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.loc12.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.1d4)]
// CHECK:STDOUT: %Self.loc12_22.2: @Foo.loc12.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc12_22.2 (constants.%Self.1d4)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.loc12.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.1d4)]
// CHECK:STDOUT: %Self.loc12_22.1: @Foo.loc12.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc12_22.2 (constants.%Self.1d4)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc12_22.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -699,13 +699,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.loc21, @Bar.loc21(%a.loc21_15.1)> [symbolic = %Bar.type (constants.%Bar.type.3d8)]
// CHECK:STDOUT: %Self.2: @Bar.loc21.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.3a7)]
// CHECK:STDOUT: %Self.loc21_22.2: @Bar.loc21.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.loc21_22.2 (constants.%Self.3a7)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Bar.loc21.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self.3a7)]
// CHECK:STDOUT: %Self.loc21_22.1: @Bar.loc21.%Bar.type (%Bar.type.3d8) = symbolic_binding Self, 1 [symbolic = %Self.loc21_22.2 (constants.%Self.3a7)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc21_22.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -792,13 +792,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%b.loc15_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc15_22.2: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc15_22.1: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc15_22.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -877,13 +877,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc15_22.2: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc15_22.1: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc15_22.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc15_22.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -962,13 +962,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc15_24.2: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc15_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc15_24.1: @Foo.loc15.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc15_24.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc15_24.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -1096,13 +1096,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc17, @Foo.loc17(%a.loc17_15.1)> [symbolic = %Foo.type (constants.%Foo.type.354)]
// CHECK:STDOUT: %Self.2: @Foo.loc17.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc17_22.2: @Foo.loc17.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc17_22.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.loc17.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc17_22.1: @Foo.loc17.%Foo.type (%Foo.type.354) = symbolic_binding Self, 1 [symbolic = %Self.loc17_22.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc17_22.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }
@@ -1180,13 +1180,13 @@ interface Foo(a:! const (const C)) {}
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc18, @Foo.loc18(%a.loc18_15.1)> [symbolic = %Foo.type (constants.%Foo.type.2e2)]
// CHECK:STDOUT: %Self.2: @Foo.loc18.%Foo.type (%Foo.type.2e2) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc18_36.2: @Foo.loc18.%Foo.type (%Foo.type.2e2) = symbolic_binding Self, 1 [symbolic = %Self.loc18_36.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: interface {
// CHECK:STDOUT: %Self.1: @Foo.loc18.%Foo.type (%Foo.type.2e2) = symbolic_binding Self, 1 [symbolic = %Self.2 (constants.%Self)]
// CHECK:STDOUT: %Self.loc18_36.1: @Foo.loc18.%Foo.type (%Foo.type.2e2) = symbolic_binding Self, 1 [symbolic = %Self.loc18_36.2 (constants.%Self)]
// CHECK:STDOUT:
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = %Self.1
// CHECK:STDOUT: .Self = %Self.loc18_36.1
// CHECK:STDOUT: witness = ()
// CHECK:STDOUT: }
// CHECK:STDOUT: }