mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Use declaration locations for formatting entities (#5799)
This is just trying to address the location TODO.
This commit is contained in:
@@ -1204,7 +1204,7 @@ fn Works() {
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete]
|
||||
// CHECK:STDOUT: %Self.31d: %A.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %G.type.c3a: type = fn_type @G.1 [concrete]
|
||||
// CHECK:STDOUT: %G.type.c3a: type = fn_type @G.loc4 [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
||||
// CHECK:STDOUT: %G.11a: %G.type.c3a = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete]
|
||||
@@ -1213,7 +1213,7 @@ fn Works() {
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %A.impl_witness: <witness> = impl_witness file.%A.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %G.type.486: type = fn_type @G.2 [concrete]
|
||||
// CHECK:STDOUT: %G.type.486: type = fn_type @G.loc9 [concrete]
|
||||
// CHECK:STDOUT: %G.001: %G.type.486 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.facet: %A.type = facet_value %C, (%A.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Fails.type: type = fn_type @Fails [concrete]
|
||||
@@ -1274,7 +1274,7 @@ fn Works() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @A {
|
||||
// CHECK:STDOUT: %Self: %A.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.31d]
|
||||
// CHECK:STDOUT: %G.decl: %G.type.c3a = fn_decl @G.1 [concrete = constants.%G.11a] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type.c3a = fn_decl @G.loc4 [concrete = constants.%G.11a] {} {}
|
||||
// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %G.decl [concrete = constants.%assoc0.d52]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -1284,7 +1284,7 @@ fn Works() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @A.impl: %C.ref as %A.ref {
|
||||
// CHECK:STDOUT: %G.decl: %G.type.486 = fn_decl @G.2 [concrete = constants.%G.001] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type.486 = fn_decl @G.loc9 [concrete = constants.%G.001] {} {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .G = %G.decl
|
||||
@@ -1300,11 +1300,11 @@ fn Works() {
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @G.1(@A.%Self: %A.type) {
|
||||
// CHECK:STDOUT: generic fn @G.loc4(@A.%Self: %A.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G.2() {
|
||||
// CHECK:STDOUT: fn @G.loc9() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1388,16 +1388,16 @@ fn Works() {
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.1(constants.%Self.31d) {}
|
||||
// CHECK:STDOUT: specific @G.loc4(constants.%Self.31d) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.1(constants.%A.facet) {}
|
||||
// CHECK:STDOUT: specific @G.loc4(constants.%A.facet) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- allowed_combine_non_instance.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete]
|
||||
// CHECK:STDOUT: %Self.31d: %A.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %G.type.c3a: type = fn_type @G.1 [concrete]
|
||||
// CHECK:STDOUT: %G.type.c3a: type = fn_type @G.loc4 [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
||||
// CHECK:STDOUT: %G.11a: %G.type.c3a = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete]
|
||||
@@ -1406,7 +1406,7 @@ fn Works() {
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %A.impl_witness: <witness> = impl_witness file.%A.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %G.type.486: type = fn_type @G.2 [concrete]
|
||||
// CHECK:STDOUT: %G.type.486: type = fn_type @G.loc9 [concrete]
|
||||
// CHECK:STDOUT: %G.001: %G.type.486 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.facet: %A.type = facet_value %C, (%A.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %Works.type: type = fn_type @Works [concrete]
|
||||
@@ -1456,7 +1456,7 @@ fn Works() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @A {
|
||||
// CHECK:STDOUT: %Self: %A.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.31d]
|
||||
// CHECK:STDOUT: %G.decl: %G.type.c3a = fn_decl @G.1 [concrete = constants.%G.11a] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type.c3a = fn_decl @G.loc4 [concrete = constants.%G.11a] {} {}
|
||||
// CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, %G.decl [concrete = constants.%assoc0.d52]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -1466,7 +1466,7 @@ fn Works() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @A.impl: %C.ref as %A.ref {
|
||||
// CHECK:STDOUT: %G.decl: %G.type.486 = fn_decl @G.2 [concrete = constants.%G.001] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type.486 = fn_decl @G.loc9 [concrete = constants.%G.001] {} {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .G = %G.decl
|
||||
@@ -1482,11 +1482,11 @@ fn Works() {
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @G.1(@A.%Self: %A.type) {
|
||||
// CHECK:STDOUT: generic fn @G.loc4(@A.%Self: %A.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G.2() {
|
||||
// CHECK:STDOUT: fn @G.loc9() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1539,7 +1539,7 @@ fn Works() {
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.1(constants.%Self.31d) {}
|
||||
// CHECK:STDOUT: specific @G.loc4(constants.%Self.31d) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.1(constants.%A.facet) {}
|
||||
// CHECK:STDOUT: specific @G.loc4(constants.%A.facet) {}
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+13
-13
@@ -35,14 +35,14 @@ class C {
|
||||
// CHECK:STDOUT: %Self.6ef: %I.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Self.as_type.390: type = facet_access_type %Self.6ef [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.b2f: type = pattern_type %Self.as_type.390 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.0b5: type = fn_type @F.1 [concrete]
|
||||
// CHECK:STDOUT: %F.type.0b5: type = fn_type @F.loc18 [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
||||
// CHECK:STDOUT: %F.20c: %F.type.0b5 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
|
||||
// CHECK:STDOUT: %assoc0.a33: %I.assoc_type = assoc_entity element0, @I.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %F.type.4a2: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.4a2: type = fn_type @F.loc26 [concrete]
|
||||
// CHECK:STDOUT: %F.eb2: %F.type.4a2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
@@ -77,17 +77,17 @@ class C {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.6ef]
|
||||
// CHECK:STDOUT: %F.decl: %F.type.0b5 = fn_decl @F.1 [concrete = constants.%F.20c] {
|
||||
// CHECK:STDOUT: %self.patt: @F.1.%pattern_type (%pattern_type.b2f) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @F.1.%pattern_type (%pattern_type.b2f) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %F.decl: %F.type.0b5 = fn_decl @F.loc18 [concrete = constants.%F.20c] {
|
||||
// CHECK:STDOUT: %self.patt: @F.loc18.%pattern_type (%pattern_type.b2f) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @F.loc18.%pattern_type (%pattern_type.b2f) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc18_16.1 (%Self.as_type.390) = value_param call_param0
|
||||
// CHECK:STDOUT: %self.param: @F.loc18.%Self.as_type.loc18_16.1 (%Self.as_type.390) = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc18_16.1: type = splice_block %.loc18_16.2 [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)] {
|
||||
// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.6ef)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc18_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)]
|
||||
// CHECK:STDOUT: %.loc18_16.2: type = converted %Self.ref, %Self.as_type.loc18_16.2 [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %self: @F.1.%Self.as_type.loc18_16.1 (%Self.as_type.390) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %self: @F.loc18.%Self.as_type.loc18_16.1 (%Self.as_type.390) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.a33]
|
||||
// CHECK:STDOUT:
|
||||
@@ -100,7 +100,7 @@ class C {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @I.impl: %C.ref as %I.ref {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.4a2 = fn_decl @F.2 [concrete = constants.%F.eb2] {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.4a2 = fn_decl @F.loc26 [concrete = constants.%F.eb2] {
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.c48 = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: %pattern_type.c48 = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
@@ -132,7 +132,7 @@ class C {
|
||||
// CHECK:STDOUT: .C = <poisoned>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@I.%Self: %I.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc18(@I.%Self: %I.type) {
|
||||
// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.6ef)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc18_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.390)]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_16.1 [symbolic = %pattern_type (constants.%pattern_type.b2f)]
|
||||
@@ -140,7 +140,7 @@ class C {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.loc18_16.1 [symbolic = %require_complete (constants.%require_complete.8cb)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%self.param: @F.1.%Self.as_type.loc18_16.1 (%Self.as_type.390)) {
|
||||
// CHECK:STDOUT: fn(%self.param: @F.loc18.%Self.as_type.loc18_16.1 (%Self.as_type.390)) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.c48 = binding_pattern c [concrete]
|
||||
@@ -169,18 +169,18 @@ class C {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F.2(%self.param: %C) {
|
||||
// CHECK:STDOUT: fn @F.loc26(%self.param: %C) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%Self.6ef) {
|
||||
// CHECK:STDOUT: specific @F.loc18(constants.%Self.6ef) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self.6ef
|
||||
// CHECK:STDOUT: %Self.as_type.loc18_16.1 => constants.%Self.as_type.390
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b2f
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%I.facet) {
|
||||
// CHECK:STDOUT: specific @F.loc18(constants.%I.facet) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %Self.as_type.loc18_16.1 => constants.%C
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48
|
||||
|
||||
+13
-13
@@ -41,15 +41,15 @@ interface Outer {
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete]
|
||||
// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.1ad: type = fn_type @F.1 [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad: type = fn_type @F.loc21 [concrete]
|
||||
// CHECK:STDOUT: %F.5d3: %F.type.1ad = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Outer.type: type = facet_type <@Outer> [concrete]
|
||||
// CHECK:STDOUT: %Self.277: %Outer.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%Self.277)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.b60: %Inner.type = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.82c77c.1: type = fn_type @F.2, @Inner(%Self.277) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.82c77c.1: type = fn_type @F.loc30, @Inner(%Self.277) [symbolic]
|
||||
// CHECK:STDOUT: %F.9789e2.1: %F.type.82c77c.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %F.type.82c77c.2: type = fn_type @F.3, @Inner(%Self.277) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.82c77c.2: type = fn_type @F.loc36, @Inner(%Self.277) [symbolic]
|
||||
// CHECK:STDOUT: %F.9789e2.2: %F.type.82c77c.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -59,7 +59,7 @@ interface Outer {
|
||||
// CHECK:STDOUT: .Outer = %Outer.decl
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad = fn_decl @F.1 [concrete = constants.%F.5d3] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad = fn_decl @F.loc21 [concrete = constants.%F.5d3] {} {}
|
||||
// CHECK:STDOUT: %Outer.decl: type = interface_decl @Outer [concrete = constants.%Outer.type] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -75,7 +75,7 @@ interface Outer {
|
||||
// CHECK:STDOUT: interface @Outer {
|
||||
// CHECK:STDOUT: %Self: %Outer.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.277]
|
||||
// CHECK:STDOUT: %Inner.decl: type = interface_decl @Inner [symbolic = constants.%Inner.type] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.82c77c.2 = fn_decl @F.3 [symbolic = constants.%F.9789e2.2] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.82c77c.2 = fn_decl @F.loc36 [symbolic = constants.%F.9789e2.2] {} {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self
|
||||
@@ -88,12 +88,12 @@ interface Outer {
|
||||
// CHECK:STDOUT: %Self.2: %Outer.type = bind_symbolic_name Self, 0 [symbolic = %Self.2 (constants.%Self.277)]
|
||||
// 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) = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.b60)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.2, @Inner(%Self.2) [symbolic = %F.type (constants.%F.type.82c77c.1)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.loc30, @Inner(%Self.2) [symbolic = %F.type (constants.%F.type.82c77c.1)]
|
||||
// CHECK:STDOUT: %F: @Inner.%F.type (%F.type.82c77c.1) = struct_value () [symbolic = %F (constants.%F.9789e2.1)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Inner.%Inner.type (%Inner.type) = bind_symbolic_name Self, 1 [symbolic = %Self.3 (constants.%Self.b60)]
|
||||
// CHECK:STDOUT: %F.decl: @Inner.%F.type (%F.type.82c77c.1) = fn_decl @F.2 [symbolic = @Inner.%F (constants.%F.9789e2.1)] {} {}
|
||||
// CHECK:STDOUT: %F.decl: @Inner.%F.type (%F.type.82c77c.1) = fn_decl @F.loc30 [symbolic = @Inner.%F (constants.%F.9789e2.1)] {} {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -102,7 +102,7 @@ interface Outer {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc21(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn() {
|
||||
@@ -111,15 +111,15 @@ interface Outer {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.2(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type)) {
|
||||
// CHECK:STDOUT: generic fn @F.loc30(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type)) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.3(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type)) {
|
||||
// CHECK:STDOUT: generic fn @F.loc36(@Outer.%Self: %Outer.type, @Inner.%Self.1: @Inner.%Inner.type (%Inner.type)) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%Self.719) {}
|
||||
// CHECK:STDOUT: specific @F.loc21(constants.%Self.719) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Inner(constants.%Self.277) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
@@ -130,7 +130,7 @@ interface Outer {
|
||||
// CHECK:STDOUT: %F => constants.%F.9789e2.1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%Self.277, constants.%Self.b60) {}
|
||||
// CHECK:STDOUT: specific @F.loc30(constants.%Self.277, constants.%Self.b60) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.3(constants.%Self.277, constants.%Self.b60) {}
|
||||
// CHECK:STDOUT: specific @F.loc36(constants.%Self.277, constants.%Self.b60) {}
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -52,7 +52,7 @@ interface I {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %I.type.733a85.1: type = facet_type <@I.1> [concrete]
|
||||
// CHECK:STDOUT: %I.type.733a85.2: type = facet_type <@I.2> [concrete]
|
||||
// CHECK:STDOUT: %I.type.733a85.2: type = facet_type <@I.loc13> [concrete]
|
||||
// CHECK:STDOUT: %Self: %I.type.733a85.2 = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -65,12 +65,12 @@ interface I {}
|
||||
// CHECK:STDOUT: .I = imports.%Main.I
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %default.import = import <none>
|
||||
// CHECK:STDOUT: %I.decl: type = interface_decl @I.2 [concrete = constants.%I.type.733a85.2] {} {}
|
||||
// CHECK:STDOUT: %I.decl: type = interface_decl @I.loc13 [concrete = constants.%I.type.733a85.2] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I.1 [from "a.carbon"];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I.2 {
|
||||
// CHECK:STDOUT: interface @I.loc13 {
|
||||
// CHECK:STDOUT: %Self: %I.type.733a85.2 = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
|
||||
+31
-31
@@ -77,25 +77,25 @@ interface Class { }
|
||||
// CHECK:STDOUT: --- fail_redefine_without_dependents.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.1: type = facet_type <@Interface.1> [concrete]
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.1: type = facet_type <@Interface.loc4> [concrete]
|
||||
// CHECK:STDOUT: %Self.719cbb.1: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.2: type = facet_type <@Interface.2> [concrete]
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.2: type = facet_type <@Interface.loc13> [concrete]
|
||||
// CHECK:STDOUT: %Self.719cbb.2: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.2 [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.2.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.loc13 [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.loc13.%F.decl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
|
||||
// CHECK:STDOUT: .Interface = %Interface.decl.loc4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.1 [concrete = constants.%Interface.type.d726c6.1] {} {}
|
||||
// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.2 [concrete = constants.%Interface.type.d726c6.2] {} {}
|
||||
// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.loc4 [concrete = constants.%Interface.type.d726c6.1] {} {}
|
||||
// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.loc13 [concrete = constants.%Interface.type.d726c6.2] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Interface.1 {
|
||||
// CHECK:STDOUT: interface @Interface.loc4 {
|
||||
// CHECK:STDOUT: %Self: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.1]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -103,7 +103,7 @@ interface Class { }
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Interface.2 {
|
||||
// CHECK:STDOUT: interface @Interface.loc13 {
|
||||
// CHECK:STDOUT: %Self: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.2]
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {}
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0]
|
||||
@@ -114,7 +114,7 @@ interface Class { }
|
||||
// CHECK:STDOUT: witness = (%F.decl)
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F(@Interface.2.%Self: %Interface.type.d726c6.2) {
|
||||
// CHECK:STDOUT: generic fn @F(@Interface.loc13.%Self: %Interface.type.d726c6.2) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -123,27 +123,27 @@ interface Class { }
|
||||
// CHECK:STDOUT: --- fail_redefine_with_dependents.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.1: type = facet_type <@Interface.1> [concrete]
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.1: type = facet_type <@Interface.loc4> [concrete]
|
||||
// CHECK:STDOUT: %Self.719cbb.1: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.2: type = facet_type <@Interface.2> [concrete]
|
||||
// CHECK:STDOUT: %Interface.type.d726c6.2: type = facet_type <@Interface.loc13> [concrete]
|
||||
// CHECK:STDOUT: %Self.719cbb.2: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.719cbb.2 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.2 [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.2.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.loc13 [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.loc13.%F.decl [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
|
||||
// CHECK:STDOUT: .Interface = %Interface.decl.loc4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.1 [concrete = constants.%Interface.type.d726c6.1] {} {}
|
||||
// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.2 [concrete = constants.%Interface.type.d726c6.2] {} {}
|
||||
// CHECK:STDOUT: %Interface.decl.loc4: type = interface_decl @Interface.loc4 [concrete = constants.%Interface.type.d726c6.1] {} {}
|
||||
// CHECK:STDOUT: %Interface.decl.loc13: type = interface_decl @Interface.loc13 [concrete = constants.%Interface.type.d726c6.2] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Interface.1 {
|
||||
// CHECK:STDOUT: interface @Interface.loc4 {
|
||||
// CHECK:STDOUT: %Self: %Interface.type.d726c6.1 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.1]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -151,7 +151,7 @@ interface Class { }
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Interface.2 {
|
||||
// CHECK:STDOUT: interface @Interface.loc13 {
|
||||
// CHECK:STDOUT: %Self: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719cbb.2]
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %self.patt: @F.%pattern_type (%pattern_type) = binding_pattern self [concrete]
|
||||
@@ -159,7 +159,7 @@ interface Class { }
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: @F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] {
|
||||
// CHECK:STDOUT: %Self.ref: %Interface.type.d726c6.2 = name_ref Self, @Interface.2.%Self [symbolic = %Self (constants.%Self.719cbb.2)]
|
||||
// CHECK:STDOUT: %Self.ref: %Interface.type.d726c6.2 = name_ref Self, @Interface.loc13.%Self [symbolic = %Self (constants.%Self.719cbb.2)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %Self.as_type.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -173,7 +173,7 @@ interface Class { }
|
||||
// CHECK:STDOUT: witness = (%F.decl)
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F(@Interface.2.%Self: %Interface.type.d726c6.2) {
|
||||
// CHECK:STDOUT: generic fn @F(@Interface.loc13.%Self: %Interface.type.d726c6.2) {
|
||||
// CHECK:STDOUT: %Self: %Interface.type.d726c6.2 = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.719cbb.2)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_14.1 [symbolic = %pattern_type (constants.%pattern_type)]
|
||||
@@ -190,28 +190,28 @@ interface Class { }
|
||||
// CHECK:STDOUT: --- fail_name_conflict_with_fn.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Function.type.b14: type = fn_type @Function.1 [concrete]
|
||||
// CHECK:STDOUT: %Function.type.b14: type = fn_type @Function.loc4 [concrete]
|
||||
// CHECK:STDOUT: %Function: %Function.type.b14 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Function.type.f90: type = facet_type <@Function.2> [concrete]
|
||||
// CHECK:STDOUT: %Function.type.f90: type = facet_type <@Function.loc13> [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
|
||||
// CHECK:STDOUT: .Function = %Function.decl.loc4
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Function.decl.loc4: %Function.type.b14 = fn_decl @Function.1 [concrete = constants.%Function] {} {}
|
||||
// CHECK:STDOUT: %Function.decl.loc13: type = interface_decl @Function.2 [concrete = constants.%Function.type.f90] {} {}
|
||||
// CHECK:STDOUT: %Function.decl.loc4: %Function.type.b14 = fn_decl @Function.loc4 [concrete = constants.%Function] {} {}
|
||||
// CHECK:STDOUT: %Function.decl.loc13: type = interface_decl @Function.loc13 [concrete = constants.%Function.type.f90] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Function.2;
|
||||
// CHECK:STDOUT: interface @Function.loc13;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Function.1();
|
||||
// CHECK:STDOUT: fn @Function.loc4();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_name_conflict_with_class.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Class: type = class_type @Class.1 [concrete]
|
||||
// CHECK:STDOUT: %Class.type: type = facet_type <@Class.2> [concrete]
|
||||
// CHECK:STDOUT: %Class: type = class_type @Class.loc2 [concrete]
|
||||
// CHECK:STDOUT: %Class.type: type = facet_type <@Class.loc11> [concrete]
|
||||
// CHECK:STDOUT: %Self: %Class.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -219,11 +219,11 @@ interface Class { }
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
|
||||
// CHECK:STDOUT: .Class = %Class.decl.loc2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Class.decl.loc2: type = class_decl @Class.1 [concrete = constants.%Class] {} {}
|
||||
// CHECK:STDOUT: %Class.decl.loc11: type = interface_decl @Class.2 [concrete = constants.%Class.type] {} {}
|
||||
// CHECK:STDOUT: %Class.decl.loc2: type = class_decl @Class.loc2 [concrete = constants.%Class] {} {}
|
||||
// CHECK:STDOUT: %Class.decl.loc11: type = interface_decl @Class.loc11 [concrete = constants.%Class.type] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Class.2 {
|
||||
// CHECK:STDOUT: interface @Class.loc11 {
|
||||
// CHECK:STDOUT: %Self: %Class.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -231,5 +231,5 @@ interface Class { }
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @Class.1;
|
||||
// CHECK:STDOUT: class @Class.loc2;
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -45,25 +45,25 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: --- fail_generic_redeclaration.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %NotGeneric.type.10e: type = facet_type <@NotGeneric.1> [concrete]
|
||||
// CHECK:STDOUT: %NotGeneric.type.10e: type = facet_type <@NotGeneric.loc15> [concrete]
|
||||
// CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %NotGeneric.type.93b: type = generic_interface_type @NotGeneric.2 [concrete]
|
||||
// CHECK:STDOUT: %NotGeneric.type.93b: type = generic_interface_type @NotGeneric.loc23 [concrete]
|
||||
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
|
||||
// CHECK:STDOUT: %NotGeneric.generic: %NotGeneric.type.93b = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %NotGeneric.type.8cb: type = facet_type <@NotGeneric.2, @NotGeneric.2(%T.8b3)> [symbolic]
|
||||
// CHECK:STDOUT: %NotGeneric.type.8cb: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.8b3)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.c08: %NotGeneric.type.8cb = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Generic.type.c21: type = generic_interface_type @Generic.1 [concrete]
|
||||
// CHECK:STDOUT: %Generic.type.c21: type = generic_interface_type @Generic.loc25 [concrete]
|
||||
// CHECK:STDOUT: %Generic.generic: %Generic.type.c21 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Generic.type.c99: type = facet_type <@Generic.2> [concrete]
|
||||
// CHECK:STDOUT: %Generic.type.c99: type = facet_type <@Generic.loc33> [concrete]
|
||||
// CHECK:STDOUT: %Self.5ae: %Generic.type.c99 = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %DifferentParams.type.d40e5c.1: type = generic_interface_type @DifferentParams.1 [concrete]
|
||||
// CHECK:STDOUT: %DifferentParams.type.d40e5c.1: type = generic_interface_type @DifferentParams.loc35 [concrete]
|
||||
// CHECK:STDOUT: %DifferentParams.generic.d33670.1: %DifferentParams.type.d40e5c.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %T.7a6: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
|
||||
// CHECK:STDOUT: %DifferentParams.type.d40e5c.2: type = generic_interface_type @DifferentParams.2 [concrete]
|
||||
// CHECK:STDOUT: %DifferentParams.type.d40e5c.2: type = generic_interface_type @DifferentParams.loc43 [concrete]
|
||||
// CHECK:STDOUT: %DifferentParams.generic.d33670.2: %DifferentParams.type.d40e5c.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %DifferentParams.type.12c: type = facet_type <@DifferentParams.2, @DifferentParams.2(%T.7a6)> [symbolic]
|
||||
// CHECK:STDOUT: %DifferentParams.type.12c: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.7a6)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.8d7: %DifferentParams.type.12c = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -73,24 +73,24 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: .Generic = %Generic.decl.loc25
|
||||
// CHECK:STDOUT: .DifferentParams = %DifferentParams.decl.loc35
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %NotGeneric.decl.loc15: type = interface_decl @NotGeneric.1 [concrete = constants.%NotGeneric.type.10e] {} {}
|
||||
// CHECK:STDOUT: %NotGeneric.decl.loc23: %NotGeneric.type.93b = interface_decl @NotGeneric.2 [concrete = constants.%NotGeneric.generic] {
|
||||
// CHECK:STDOUT: %NotGeneric.decl.loc15: type = interface_decl @NotGeneric.loc15 [concrete = constants.%NotGeneric.type.10e] {} {}
|
||||
// CHECK:STDOUT: %NotGeneric.decl.loc23: %NotGeneric.type.93b = interface_decl @NotGeneric.loc23 [concrete = constants.%NotGeneric.generic] {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.loc23_22.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_22.2 (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Generic.decl.loc25: %Generic.type.c21 = interface_decl @Generic.1 [concrete = constants.%Generic.generic] {
|
||||
// CHECK:STDOUT: %Generic.decl.loc25: %Generic.type.c21 = interface_decl @Generic.loc25 [concrete = constants.%Generic.generic] {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.loc25_19.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc25_19.2 (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Generic.decl.loc33: type = interface_decl @Generic.2 [concrete = constants.%Generic.type.c99] {} {}
|
||||
// CHECK:STDOUT: %DifferentParams.decl.loc35: %DifferentParams.type.d40e5c.1 = interface_decl @DifferentParams.1 [concrete = constants.%DifferentParams.generic.d33670.1] {
|
||||
// CHECK:STDOUT: %Generic.decl.loc33: type = interface_decl @Generic.loc33 [concrete = constants.%Generic.type.c99] {} {}
|
||||
// CHECK:STDOUT: %DifferentParams.decl.loc35: %DifferentParams.type.d40e5c.1 = interface_decl @DifferentParams.loc35 [concrete = constants.%DifferentParams.generic.d33670.1] {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.loc35_27.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc35_27.2 (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %DifferentParams.decl.loc43: %DifferentParams.type.d40e5c.2 = interface_decl @DifferentParams.2 [concrete = constants.%DifferentParams.generic.d33670.2] {
|
||||
// CHECK:STDOUT: %DifferentParams.decl.loc43: %DifferentParams.type.d40e5c.2 = interface_decl @DifferentParams.loc43 [concrete = constants.%DifferentParams.generic.d33670.2] {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.cb1 = symbolic_binding_pattern T, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc43_32.1: type = splice_block %.loc43_32.3 [concrete = constants.%empty_tuple.type] {
|
||||
@@ -101,17 +101,17 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @NotGeneric.1;
|
||||
// CHECK:STDOUT: interface @NotGeneric.loc15;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @NotGeneric.2(%T.loc23_22.1: type) {
|
||||
// CHECK:STDOUT: generic interface @NotGeneric.loc23(%T.loc23_22.1: type) {
|
||||
// CHECK:STDOUT: %T.loc23_22.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc23_22.2 (constants.%T.8b3)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.2, @NotGeneric.2(%T.loc23_22.2)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.8cb)]
|
||||
// CHECK:STDOUT: %Self.2: @NotGeneric.2.%NotGeneric.type (%NotGeneric.type.8cb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c08)]
|
||||
// CHECK:STDOUT: %NotGeneric.type: type = facet_type <@NotGeneric.loc23, @NotGeneric.loc23(%T.loc23_22.2)> [symbolic = %NotGeneric.type (constants.%NotGeneric.type.8cb)]
|
||||
// CHECK:STDOUT: %Self.2: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.8cb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c08)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @NotGeneric.2.%NotGeneric.type (%NotGeneric.type.8cb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c08)]
|
||||
// CHECK:STDOUT: %Self.1: @NotGeneric.loc23.%NotGeneric.type (%NotGeneric.type.8cb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c08)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -119,13 +119,13 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Generic.1(%T.loc25_19.1: type) {
|
||||
// CHECK:STDOUT: generic interface @Generic.loc25(%T.loc25_19.1: type) {
|
||||
// CHECK:STDOUT: %T.loc25_19.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc25_19.2 (constants.%T.8b3)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Generic.2 {
|
||||
// CHECK:STDOUT: interface @Generic.loc33 {
|
||||
// CHECK:STDOUT: %Self: %Generic.type.c99 = bind_symbolic_name Self, 0 [symbolic = constants.%Self.5ae]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -133,21 +133,21 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @DifferentParams.1(%T.loc35_27.1: type) {
|
||||
// CHECK:STDOUT: generic interface @DifferentParams.loc35(%T.loc35_27.1: type) {
|
||||
// CHECK:STDOUT: %T.loc35_27.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc35_27.2 (constants.%T.8b3)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @DifferentParams.2(%T.loc43_27.1: %empty_tuple.type) {
|
||||
// CHECK:STDOUT: generic interface @DifferentParams.loc43(%T.loc43_27.1: %empty_tuple.type) {
|
||||
// CHECK:STDOUT: %T.loc43_27.2: %empty_tuple.type = bind_symbolic_name T, 0 [symbolic = %T.loc43_27.2 (constants.%T.7a6)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %DifferentParams.type: type = facet_type <@DifferentParams.2, @DifferentParams.2(%T.loc43_27.2)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.12c)]
|
||||
// CHECK:STDOUT: %Self.2: @DifferentParams.2.%DifferentParams.type (%DifferentParams.type.12c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.8d7)]
|
||||
// CHECK:STDOUT: %DifferentParams.type: type = facet_type <@DifferentParams.loc43, @DifferentParams.loc43(%T.loc43_27.2)> [symbolic = %DifferentParams.type (constants.%DifferentParams.type.12c)]
|
||||
// CHECK:STDOUT: %Self.2: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.12c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.8d7)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @DifferentParams.2.%DifferentParams.type (%DifferentParams.type.12c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.8d7)]
|
||||
// CHECK:STDOUT: %Self.1: @DifferentParams.loc43.%DifferentParams.type (%DifferentParams.type.12c) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.8d7)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -155,19 +155,19 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @NotGeneric.2(constants.%T.8b3) {
|
||||
// CHECK:STDOUT: specific @NotGeneric.loc23(constants.%T.8b3) {
|
||||
// CHECK:STDOUT: %T.loc23_22.2 => constants.%T.8b3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Generic.1(constants.%T.8b3) {
|
||||
// CHECK:STDOUT: specific @Generic.loc25(constants.%T.8b3) {
|
||||
// CHECK:STDOUT: %T.loc25_19.2 => constants.%T.8b3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @DifferentParams.1(constants.%T.8b3) {
|
||||
// CHECK:STDOUT: specific @DifferentParams.loc35(constants.%T.8b3) {
|
||||
// CHECK:STDOUT: %T.loc35_27.2 => constants.%T.8b3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @DifferentParams.2(constants.%T.7a6) {
|
||||
// CHECK:STDOUT: specific @DifferentParams.loc43(constants.%T.7a6) {
|
||||
// CHECK:STDOUT: %T.loc43_27.2 => constants.%T.7a6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -51,12 +51,12 @@ fn G(U:! Different) -> U.(Interface.T);
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete]
|
||||
// CHECK:STDOUT: %Self.719: %Interface.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.1ad: type = fn_type @F.1 [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad: type = fn_type @F.loc4 [concrete]
|
||||
// CHECK:STDOUT: %F.5d3: %F.type.1ad = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface [concrete]
|
||||
// CHECK:STDOUT: %assoc0.b4c: %Interface.assoc_type = assoc_entity element0, @Interface.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.%T [concrete]
|
||||
// CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.b25: type = fn_type @F.loc9 [concrete]
|
||||
// CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete]
|
||||
// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete]
|
||||
@@ -90,7 +90,7 @@ fn G(U:! Different) -> U.(Interface.T);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.2 [concrete = constants.%F.c41] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.b25 = fn_decl @F.loc9 [concrete = constants.%F.c41] {} {}
|
||||
// CHECK:STDOUT: %Different.decl: type = interface_decl @Different [concrete = constants.%Different.type] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.855 = symbolic_binding_pattern U, 0 [concrete]
|
||||
@@ -109,7 +109,7 @@ fn G(U:! Different) -> U.(Interface.T);
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Interface {
|
||||
// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.719]
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad = fn_decl @F.1 [concrete = constants.%F.5d3] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad = fn_decl @F.loc4 [concrete = constants.%F.5d3] {} {}
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0.b4c]
|
||||
// CHECK:STDOUT: %T: type = assoc_const_decl @T [concrete] {
|
||||
// CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.%T [concrete = constants.%assoc1]
|
||||
@@ -134,11 +134,11 @@ fn G(U:! Different) -> U.(Interface.T);
|
||||
// CHECK:STDOUT: assoc_const T:! type;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc4(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F.2() {
|
||||
// CHECK:STDOUT: fn @F.loc9() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %Interface.ref.loc14: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type]
|
||||
// CHECK:STDOUT: %F.ref: %Interface.assoc_type = name_ref F, @Interface.%assoc0 [concrete = constants.%assoc0.b4c]
|
||||
@@ -162,7 +162,7 @@ fn G(U:! Different) -> U.(Interface.T);
|
||||
// CHECK:STDOUT: fn() -> <error>;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%Self.719) {}
|
||||
// CHECK:STDOUT: specific @F.loc4(constants.%Self.719) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T(constants.%Self.719) {}
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -29,11 +29,11 @@ interface Interface {
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete]
|
||||
// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.1: type = fn_type @F.1 [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.1: type = fn_type @F.loc16 [concrete]
|
||||
// CHECK:STDOUT: %F.5d382e.1: %F.type.1ad64d.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.%F.decl.loc16 [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.2: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.2: type = fn_type @F.loc24 [concrete]
|
||||
// CHECK:STDOUT: %F.5d382e.2: %F.type.1ad64d.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -46,9 +46,9 @@ interface Interface {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Interface {
|
||||
// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %F.decl.loc16: %F.type.1ad64d.1 = fn_decl @F.1 [concrete = constants.%F.5d382e.1] {} {}
|
||||
// CHECK:STDOUT: %F.decl.loc16: %F.type.1ad64d.1 = fn_decl @F.loc16 [concrete = constants.%F.5d382e.1] {} {}
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl.loc16 [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %F.decl.loc24: %F.type.1ad64d.2 = fn_decl @F.2 [concrete = constants.%F.5d382e.2] {} {}
|
||||
// CHECK:STDOUT: %F.decl.loc24: %F.type.1ad64d.2 = fn_decl @F.loc24 [concrete = constants.%F.5d382e.2] {} {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self
|
||||
@@ -56,15 +56,15 @@ interface Interface {
|
||||
// CHECK:STDOUT: witness = (%F.decl.loc16)
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc16(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.2(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc24(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%Self) {}
|
||||
// CHECK:STDOUT: specific @F.loc16(constants.%Self) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%Self) {}
|
||||
// CHECK:STDOUT: specific @F.loc24(constants.%Self) {}
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+16
-16
@@ -73,7 +73,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Interface.type: type = facet_type <@Interface> [concrete]
|
||||
// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.1: type = fn_type @F.1 [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.1: type = fn_type @F.loc7 [concrete]
|
||||
// CHECK:STDOUT: %F.5d382e.1: %F.type.1ad64d.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, @Interface.%F.decl [concrete]
|
||||
@@ -82,12 +82,12 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete]
|
||||
// CHECK:STDOUT: %G.type.ef383d.1: type = fn_type @G.1 [concrete]
|
||||
// CHECK:STDOUT: %G.type.ef383d.1: type = fn_type @G.loc13 [concrete]
|
||||
// CHECK:STDOUT: %G.362a5a.1: %G.type.ef383d.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %assoc1: %Interface.assoc_type = assoc_entity element1, @Interface.%G.decl [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.2: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.1ad64d.2: type = fn_type @F.loc23 [concrete]
|
||||
// CHECK:STDOUT: %F.5d382e.2: %F.type.1ad64d.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %G.type.ef383d.2: type = fn_type @G.2 [concrete]
|
||||
// CHECK:STDOUT: %G.type.ef383d.2: type = fn_type @G.loc32 [concrete]
|
||||
// CHECK:STDOUT: %G.362a5a.2: %G.type.ef383d.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -107,8 +107,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Interface.decl: type = interface_decl @Interface [concrete = constants.%Interface.type] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad64d.2 = fn_decl @F.2 [concrete = constants.%F.5d382e.2] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type.ef383d.2 = fn_decl @G.2 [concrete = constants.%G.362a5a.2] {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad64d.2 = fn_decl @F.loc23 [concrete = constants.%F.5d382e.2] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type.ef383d.2 = fn_decl @G.loc32 [concrete = constants.%G.362a5a.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b [concrete]
|
||||
@@ -137,9 +137,9 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Interface {
|
||||
// CHECK:STDOUT: %Self: %Interface.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad64d.1 = fn_decl @F.1 [concrete = constants.%F.5d382e.1] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1ad64d.1 = fn_decl @F.loc7 [concrete = constants.%F.5d382e.1] {} {}
|
||||
// CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %F.decl [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT: %G.decl: %G.type.ef383d.1 = fn_decl @G.1 [concrete = constants.%G.362a5a.1] {
|
||||
// CHECK:STDOUT: %G.decl: %G.type.ef383d.1 = fn_decl @G.loc13 [concrete = constants.%G.362a5a.1] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b [concrete]
|
||||
@@ -173,15 +173,15 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: witness = (%F.decl, %G.decl)
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc7(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @G.1(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @G.loc13(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: fn(%a.param: %i32, %b.param: %i32) -> %i32;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.2(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc23(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn() {
|
||||
@@ -190,19 +190,19 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @G.2(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: generic fn @G.loc32(@Interface.%Self: %Interface.type) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%a.param: %i32, %b.param: %i32) -> %i32 = "int.sadd";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%Self) {}
|
||||
// CHECK:STDOUT: specific @F.loc7(constants.%Self) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.1(constants.%Self) {}
|
||||
// CHECK:STDOUT: specific @G.loc13(constants.%Self) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%Self) {}
|
||||
// CHECK:STDOUT: specific @F.loc23(constants.%Self) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.2(constants.%Self) {}
|
||||
// CHECK:STDOUT: specific @G.loc32(constants.%Self) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- dependent_return_type.carbon
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -37,11 +37,11 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: %Self: %I.type.325 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.4be: type = pattern_type %Self.as_type [symbolic]
|
||||
// CHECK:STDOUT: %F.type.2aef59.1: type = fn_type @F.1, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.2aef59.1: type = fn_type @F.loc17, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %F.bb2dd4.1: %F.type.2aef59.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%F.decl [symbolic]
|
||||
// CHECK:STDOUT: %F.type.2aef59.2: type = fn_type @F.2, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.2aef59.2: type = fn_type @F.loc27, @I(%T) [symbolic]
|
||||
// CHECK:STDOUT: %F.bb2dd4.2: %F.type.2aef59.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -55,27 +55,27 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %F.decl: %F.type.2aef59.2 = fn_decl @F.2 [symbolic = constants.%F.bb2dd4.2] {
|
||||
// CHECK:STDOUT: %self.patt: @F.2.%pattern_type (%pattern_type.4be) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @F.2.%pattern_type (%pattern_type.4be) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.2.%pattern_type (%pattern_type.4be) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.2.%pattern_type (%pattern_type.4be) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %F.decl: %F.type.2aef59.2 = fn_decl @F.loc27 [symbolic = constants.%F.bb2dd4.2] {
|
||||
// CHECK:STDOUT: %self.patt: @F.loc27.%pattern_type (%pattern_type.4be) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @F.loc27.%pattern_type (%pattern_type.4be) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.loc27.%pattern_type (%pattern_type.4be) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.loc27.%pattern_type (%pattern_type.4be) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.loc27_6: type = bind_symbolic_name T, 0 [symbolic = @I.%T.loc15_13.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %.loc27_35.1: @F.2.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc27_35: @F.2.%I.type (%I.type.325) = name_ref Self, %.loc27_35.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc27_35.1: @F.loc27.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc27_35: @F.loc27.%I.type (%I.type.325) = name_ref Self, %.loc27_35.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc27_35: type = facet_access_type %Self.ref.loc27_35 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %.loc27_35.2: type = converted %Self.ref.loc27_35, %Self.as_type.loc27_35 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %self.param: @F.2.%Self.as_type.loc27_24.2 (%Self.as_type) = value_param call_param0
|
||||
// CHECK:STDOUT: %self.param: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc27_24.1: type = splice_block %.loc27_24.3 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)] {
|
||||
// CHECK:STDOUT: %.loc27_24.2: @F.2.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc27_24: @F.2.%I.type (%I.type.325) = name_ref Self, %.loc27_24.2 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc27_24.2: @F.loc27.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc27_24: @F.loc27.%I.type (%I.type.325) = name_ref Self, %.loc27_24.2 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc27_24.1: type = facet_access_type %Self.ref.loc27_24 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %.loc27_24.3: type = converted %Self.ref.loc27_24, %Self.as_type.loc27_24.1 [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %self: @F.2.%Self.as_type.loc27_24.2 (%Self.as_type) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.2.%Self.as_type.loc27_24.2 (%Self.as_type) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.2.%Self.as_type.loc27_24.2 (%Self.as_type) = return_slot %return.param
|
||||
// CHECK:STDOUT: %self: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -85,33 +85,33 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc15_13.2)> [symbolic = %I.type (constants.%I.type.325)]
|
||||
// CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.1, @I(%T.loc15_13.2) [symbolic = %F.type (constants.%F.type.2aef59.1)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.loc17, @I(%T.loc15_13.2) [symbolic = %F.type (constants.%F.type.2aef59.1)]
|
||||
// CHECK:STDOUT: %F: @I.%F.type (%F.type.2aef59.1) = struct_value () [symbolic = %F (constants.%F.bb2dd4.1)]
|
||||
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T.loc15_13.2) [symbolic = %I.assoc_type (constants.%I.assoc_type)]
|
||||
// CHECK:STDOUT: %assoc0.loc17_29.2: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc17_29.2 (constants.%assoc0)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.2aef59.1) = fn_decl @F.1 [symbolic = @I.%F (constants.%F.bb2dd4.1)] {
|
||||
// CHECK:STDOUT: %self.patt: @F.1.%pattern_type (%pattern_type.4be) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @F.1.%pattern_type (%pattern_type.4be) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.1.%pattern_type (%pattern_type.4be) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.1.%pattern_type (%pattern_type.4be) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.2aef59.1) = fn_decl @F.loc17 [symbolic = @I.%F (constants.%F.bb2dd4.1)] {
|
||||
// CHECK:STDOUT: %self.patt: @F.loc17.%pattern_type (%pattern_type.4be) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @F.loc17.%pattern_type (%pattern_type.4be) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.loc17.%pattern_type (%pattern_type.4be) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.loc17.%pattern_type (%pattern_type.4be) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc17_25.1: @F.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc17_25: @F.1.%I.type (%I.type.325) = name_ref Self, %.loc17_25.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc17_25.1: @F.loc17.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc17_25: @F.loc17.%I.type (%I.type.325) = name_ref Self, %.loc17_25.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc17_25: type = facet_access_type %Self.ref.loc17_25 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %.loc17_25.2: type = converted %Self.ref.loc17_25, %Self.as_type.loc17_25 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %self.param: @F.1.%Self.as_type.loc17_14.1 (%Self.as_type) = value_param call_param0
|
||||
// CHECK:STDOUT: %self.param: @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc17_14.1: type = splice_block %.loc17_14.3 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)] {
|
||||
// CHECK:STDOUT: %.loc17_14.2: @F.1.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc17_14: @F.1.%I.type (%I.type.325) = name_ref Self, %.loc17_14.2 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc17_14.2: @F.loc17.%I.type (%I.type.325) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc17_14: @F.loc17.%I.type (%I.type.325) = name_ref Self, %.loc17_14.2 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc17_14.2: type = facet_access_type %Self.ref.loc17_14 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %.loc17_14.3: type = converted %Self.ref.loc17_14, %Self.as_type.loc17_14.2 [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %self: @F.1.%Self.as_type.loc17_14.1 (%Self.as_type) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.1.%Self.as_type.loc17_14.1 (%Self.as_type) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.1.%Self.as_type.loc17_14.1 (%Self.as_type) = return_slot %return.param
|
||||
// CHECK:STDOUT: %self: @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %assoc0.loc17_29.1: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc17_29.2 (constants.%assoc0)]
|
||||
// CHECK:STDOUT:
|
||||
@@ -122,29 +122,29 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@I.%T.loc15_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) {
|
||||
// CHECK:STDOUT: generic fn @F.loc17(@I.%T.loc15_13.1: type, @I.%Self.1: @I.%I.type (%I.type.325)) {
|
||||
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.325)]
|
||||
// CHECK:STDOUT: %Self: @F.1.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self: @F.loc17.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc17_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc17_14.1 [symbolic = %pattern_type (constants.%pattern_type.4be)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%self.param: @F.1.%Self.as_type.loc17_14.1 (%Self.as_type)) -> @F.1.%Self.as_type.loc17_14.1 (%Self.as_type);
|
||||
// CHECK:STDOUT: fn(%self.param: @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type)) -> @F.loc17.%Self.as_type.loc17_14.1 (%Self.as_type);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.2(%T.loc27_6: type, @I.%Self.1: @I.%I.type (%I.type.325)) {
|
||||
// CHECK:STDOUT: generic fn @F.loc27(%T.loc27_6: type, @I.%Self.1: @I.%I.type (%I.type.325)) {
|
||||
// CHECK:STDOUT: %T.loc27_24: type = bind_symbolic_name T, 0 [symbolic = %T.loc27_24 (constants.%T)]
|
||||
// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T.loc27_24)> [symbolic = %I.type (constants.%I.type.325)]
|
||||
// CHECK:STDOUT: %Self: @F.2.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self: @F.loc27.%I.type (%I.type.325) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc27_24.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc27_24.2 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc27_24.2 [symbolic = %pattern_type (constants.%pattern_type.4be)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.loc27_24.2 [symbolic = %require_complete (constants.%require_complete)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%self.param: @F.2.%Self.as_type.loc27_24.2 (%Self.as_type)) -> @F.2.%Self.as_type.loc27_24.2 (%Self.as_type) {
|
||||
// CHECK:STDOUT: fn(%self.param: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type)) -> @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %self.ref: @F.2.%Self.as_type.loc27_24.2 (%Self.as_type) = name_ref self, %self
|
||||
// CHECK:STDOUT: %self.ref: @F.loc27.%Self.as_type.loc27_24.2 (%Self.as_type) = name_ref self, %self
|
||||
// CHECK:STDOUT: return %self.ref
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -161,7 +161,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: %assoc0.loc17_29.2 => constants.%assoc0
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: specific @F.loc17(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: %T => constants.%T
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.325
|
||||
// CHECK:STDOUT: %Self => constants.%Self
|
||||
@@ -169,7 +169,7 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4be
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: specific @F.loc27(constants.%T, constants.%Self) {
|
||||
// CHECK:STDOUT: %T.loc27_24 => constants.%T
|
||||
// CHECK:STDOUT: %I.type => constants.%I.type.325
|
||||
// CHECK:STDOUT: %Self => constants.%Self
|
||||
|
||||
+10
-10
@@ -80,7 +80,7 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %WithAssocFn.type.ce6: type = facet_type <@WithAssocFn, @WithAssocFn(%T.8b3)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.088: %WithAssocFn.type.ce6 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.019: type = pattern_type %X [concrete]
|
||||
// CHECK:STDOUT: %F.type.1af: type = fn_type @F.1, @WithAssocFn(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.1af: type = fn_type @F.loc10, @WithAssocFn(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %F.b7d: %F.type.1af = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %WithAssocFn.assoc_type.b2f: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.fc5: %WithAssocFn.assoc_type.b2f = assoc_entity element0, @WithAssocFn.%F.decl [symbolic]
|
||||
@@ -90,12 +90,12 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %Simple.impl_witness: <witness> = impl_witness @C.%Simple.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %WithAssocFn.type.683: type = facet_type <@WithAssocFn, @WithAssocFn(%C)> [concrete]
|
||||
// CHECK:STDOUT: %Self.7ae: %WithAssocFn.type.683 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.18c: type = fn_type @F.1, @WithAssocFn(%C) [concrete]
|
||||
// CHECK:STDOUT: %F.type.18c: type = fn_type @F.loc10, @WithAssocFn(%C) [concrete]
|
||||
// CHECK:STDOUT: %F.e46: %F.type.18c = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %WithAssocFn.assoc_type.9ea: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%C) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.cad: %WithAssocFn.assoc_type.9ea = assoc_entity element0, @WithAssocFn.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %WithAssocFn.impl_witness: <witness> = impl_witness @C.%WithAssocFn.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %F.type.005: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.005: type = fn_type @F.loc16 [concrete]
|
||||
// CHECK:STDOUT: %F.317: %F.type.005 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %WithAssocFn.facet: %WithAssocFn.type.683 = facet_value %C, (%WithAssocFn.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %X.val: %X = struct_value () [concrete]
|
||||
@@ -186,14 +186,14 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %WithAssocFn.type: type = facet_type <@WithAssocFn, @WithAssocFn(%T.loc8_23.2)> [symbolic = %WithAssocFn.type (constants.%WithAssocFn.type.ce6)]
|
||||
// CHECK:STDOUT: %Self.2: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.088)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.1, @WithAssocFn(%T.loc8_23.2) [symbolic = %F.type (constants.%F.type.1af)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.loc10, @WithAssocFn(%T.loc8_23.2) [symbolic = %F.type (constants.%F.type.1af)]
|
||||
// CHECK:STDOUT: %F: @WithAssocFn.%F.type (%F.type.1af) = struct_value () [symbolic = %F (constants.%F.b7d)]
|
||||
// CHECK:STDOUT: %WithAssocFn.assoc_type: type = assoc_entity_type @WithAssocFn, @WithAssocFn(%T.loc8_23.2) [symbolic = %WithAssocFn.assoc_type (constants.%WithAssocFn.assoc_type.b2f)]
|
||||
// CHECK:STDOUT: %assoc0.loc10_14.2: @WithAssocFn.%WithAssocFn.assoc_type (%WithAssocFn.assoc_type.b2f) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc10_14.2 (constants.%assoc0.fc5)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.088)]
|
||||
// CHECK:STDOUT: %F.decl: @WithAssocFn.%F.type (%F.type.1af) = fn_decl @F.1 [symbolic = @WithAssocFn.%F (constants.%F.b7d)] {
|
||||
// CHECK:STDOUT: %F.decl: @WithAssocFn.%F.type (%F.type.1af) = fn_decl @F.loc10 [symbolic = @WithAssocFn.%F (constants.%F.b7d)] {
|
||||
// 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]
|
||||
// CHECK:STDOUT: } {
|
||||
@@ -225,7 +225,7 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @WithAssocFn.impl: %Self.ref as %WithAssocFn.type {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.005 = fn_decl @F.2 [concrete = constants.%F.317] {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.005 = fn_decl @F.loc16 [concrete = constants.%F.317] {
|
||||
// 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]
|
||||
// CHECK:STDOUT: } {
|
||||
@@ -278,11 +278,11 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: .X = <poisoned>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@WithAssocFn.%T.loc8_23.1: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6)) {
|
||||
// CHECK:STDOUT: generic fn @F.loc10(@WithAssocFn.%T.loc8_23.1: type, @WithAssocFn.%Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.ce6)) {
|
||||
// CHECK:STDOUT: fn() -> %return.param: %X;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F.2() -> %return.param: %X {
|
||||
// CHECK:STDOUT: fn @F.loc16() -> %return.param: %X {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc17_15.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %.loc17_15.2: init %X = class_init (), %return [concrete = constants.%X.val]
|
||||
@@ -325,7 +325,7 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %T.loc8_23.2 => constants.%T.8b3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%T.8b3, constants.%Self.088) {}
|
||||
// CHECK:STDOUT: specific @F.loc10(constants.%T.8b3, constants.%Self.088) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Simple(constants.%C) {
|
||||
// CHECK:STDOUT: %T.loc4_18.2 => constants.%C
|
||||
@@ -347,7 +347,7 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %assoc0.loc10_14.2 => constants.%assoc0.cad
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%C, constants.%WithAssocFn.facet) {}
|
||||
// CHECK:STDOUT: specific @F.loc10(constants.%C, constants.%WithAssocFn.facet) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @WithImplicitArgs(constants.%T.8b3, constants.%N) {
|
||||
// CHECK:STDOUT: %T.loc22_28.2 => constants.%T.8b3
|
||||
|
||||
@@ -112,7 +112,7 @@ impl C as AddWith(C) {
|
||||
// CHECK:STDOUT: %AddWith.assoc_type.3f0: type = assoc_entity_type @AddWith, @AddWith(%C) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.730: %AddWith.assoc_type.3f0 = assoc_entity element0, imports.%Main.import_ref.0c5 [concrete]
|
||||
// CHECK:STDOUT: %AddWith.impl_witness: <witness> = impl_witness file.%AddWith.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %F.type.c09: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.c09: type = fn_type @F.loc8 [concrete]
|
||||
// CHECK:STDOUT: %F.e62: %F.type.c09 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %AddWith.facet: %AddWith.type.e8e = facet_value %C, (%AddWith.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -165,7 +165,7 @@ impl C as AddWith(C) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @AddWith.impl: %C.ref.loc7_6 as %AddWith.type {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.c09 = fn_decl @F.2 [concrete = constants.%F.e62] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.c09 = fn_decl @F.loc8 [concrete = constants.%F.e62] {} {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .F = %F.decl
|
||||
@@ -185,7 +185,7 @@ impl C as AddWith(C) {
|
||||
// CHECK:STDOUT: fn;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F.2() {
|
||||
// CHECK:STDOUT: fn @F.loc8() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+104
-104
@@ -97,7 +97,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %Self.as_type.81d: type = facet_access_type %Self.753 [symbolic]
|
||||
// CHECK:STDOUT: %tuple.type.bd2: type = tuple_type (%T.8b3, %Self.as_type.81d, %U.2cb) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.44c: type = pattern_type %tuple.type.bd2 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.17a: type = fn_type @F.1, @A(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.17a: type = fn_type @F.loc6, @A(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %F.0d8: %F.type.17a = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %A.assoc_type.ed3: type = assoc_entity_type @A, @A(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.fcb: %A.assoc_type.ed3 = assoc_entity element0, @A.%F.decl [symbolic]
|
||||
@@ -108,7 +108,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %Z: type = class_type @Z [concrete]
|
||||
// CHECK:STDOUT: %A.type.91f: type = facet_type <@A, @A(%X)> [concrete]
|
||||
// CHECK:STDOUT: %Self.1bb: %A.type.91f = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.13d: type = fn_type @F.1, @A(%X) [concrete]
|
||||
// CHECK:STDOUT: %F.type.13d: type = fn_type @F.loc6, @A(%X) [concrete]
|
||||
// CHECK:STDOUT: %F.d83: %F.type.13d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.assoc_type.296: type = assoc_entity_type @A, @A(%X) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.5f6: %A.assoc_type.296 = assoc_entity element0, @A.%F.decl [concrete]
|
||||
@@ -118,7 +118,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %tuple.type.ff9: type = tuple_type (type, type, type) [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.765: type = tuple_type (%X, %Y, %U.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.340: type = pattern_type %tuple.type.765 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.436: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.436: type = fn_type @F.loc16 [concrete]
|
||||
// CHECK:STDOUT: %F.ce9: %F.type.436 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.facet.552: %A.type.91f = facet_value %Y, (%A.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.a0c: type = tuple_type (type, %A.type.91f, type) [concrete]
|
||||
@@ -133,7 +133,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %pattern_type.8f9: type = pattern_type %Z [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.f6b: type = tuple_type (%X, %Y, %Z) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.ef1: type = pattern_type %tuple.type.f6b [concrete]
|
||||
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ce9, @F.2(%Z) [concrete]
|
||||
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F.ce9, @F.loc16(%Z) [concrete]
|
||||
// CHECK:STDOUT: %Z.val: %Z = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.1 [concrete]
|
||||
@@ -162,7 +162,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %impl.elem0.0e5: %.ffa = impl_witness_access %A.lookup_impl_witness, element0 [symbolic]
|
||||
// CHECK:STDOUT: %tuple.type.e28: type = tuple_type (%X, %T.as_type, %Z) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f25: type = pattern_type %tuple.type.e28 [symbolic]
|
||||
// CHECK:STDOUT: %specific_impl_fn.e7e: <specific function> = specific_impl_function %impl.elem0.0e5, @F.1(%X, %A.facet.11f, %Z) [symbolic]
|
||||
// CHECK:STDOUT: %specific_impl_fn.e7e: <specific function> = specific_impl_function %impl.elem0.0e5, @F.loc6(%X, %A.facet.11f, %Z) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.500: <witness> = require_complete_type %tuple.type.e28 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.103: type = ptr_type %tuple.type.e28 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.8d3: <witness> = require_complete_type %ptr.103 [symbolic]
|
||||
@@ -237,34 +237,34 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.2)> [symbolic = %A.type (constants.%A.type.75a)]
|
||||
// CHECK:STDOUT: %Self.2: @A.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.1, @A(%T.loc5_13.2) [symbolic = %F.type (constants.%F.type.17a)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.loc6, @A(%T.loc5_13.2) [symbolic = %F.type (constants.%F.type.17a)]
|
||||
// CHECK:STDOUT: %F: @A.%F.type (%F.type.17a) = struct_value () [symbolic = %F (constants.%F.0d8)]
|
||||
// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.2) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3)]
|
||||
// CHECK:STDOUT: %assoc0.loc6_39.2: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.fcb)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @A.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %F.decl: @A.%F.type (%F.type.17a) = fn_decl @F.1 [symbolic = @A.%F (constants.%F.0d8)] {
|
||||
// CHECK:STDOUT: %F.decl: @A.%F.type (%F.type.17a) = fn_decl @F.loc6 [symbolic = @A.%F (constants.%F.0d8)] {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.1.%pattern_type.loc6_18 (%pattern_type.20f) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.1.%pattern_type.loc6_18 (%pattern_type.20f) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.1.%pattern_type.loc6_24 (%pattern_type.44c) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.1.%pattern_type.loc6_24 (%pattern_type.44c) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.loc6.%pattern_type.loc6_18 (%pattern_type.20f) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.loc6.%pattern_type.loc6_18 (%pattern_type.20f) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.1 [symbolic = %T (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: %.loc6_31: @F.1.%A.type (%A.type.75a) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %Self.ref: @F.1.%A.type (%A.type.75a) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %.loc6_31: @F.loc6.%A.type (%A.type.75a) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %Self.ref: @F.loc6.%A.type (%A.type.75a) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %.loc6_38.1: @F.1.%tuple.type.loc6_38.1 (%tuple.type.e59) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37)
|
||||
// CHECK:STDOUT: %.loc6_38.1: @F.loc6.%tuple.type.loc6_38.1 (%tuple.type.e59) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37)
|
||||
// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)]
|
||||
// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)]
|
||||
// CHECK:STDOUT: %.loc6_38.3: type = converted %.loc6_38.1, constants.%tuple.type.bd2 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)]
|
||||
// CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %u.param: @F.1.%U.loc6_8.1 (%U.2cb) = value_param call_param0
|
||||
// CHECK:STDOUT: %u.param: @F.loc6.%U.loc6_8.1 (%U.2cb) = value_param call_param0
|
||||
// CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %u: @F.1.%U.loc6_8.1 (%U.2cb) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.1.%tuple.type.loc6_38.2 (%tuple.type.bd2) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.1.%tuple.type.loc6_38.2 (%tuple.type.bd2) = return_slot %return.param
|
||||
// CHECK:STDOUT: %u: @F.loc6.%U.loc6_8.1 (%U.2cb) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %assoc0.loc6_39.1: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.fcb)]
|
||||
// CHECK:STDOUT:
|
||||
@@ -277,12 +277,12 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @A.impl: %Y.ref as %A.type {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.436 = fn_decl @F.2 [concrete = constants.%F.ce9] {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.436 = fn_decl @F.loc16 [concrete = constants.%F.ce9] {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.2.%pattern_type.loc16_18 (%pattern_type.7dc) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.2.%pattern_type.loc16_18 (%pattern_type.7dc) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.2.%pattern_type.loc16_24 (%pattern_type.340) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.2.%pattern_type.loc16_24 (%pattern_type.340) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.loc16.%pattern_type.loc16_18 (%pattern_type.7dc) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.loc16.%pattern_type.loc16_18 (%pattern_type.7dc) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.loc16.%pattern_type.loc16_24 (%pattern_type.340) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.loc16.%pattern_type.loc16_24 (%pattern_type.340) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y]
|
||||
@@ -290,11 +290,11 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %.loc16_35.1: %tuple.type.ff9 = tuple_literal (%X.ref, %Y.ref, %U.ref.loc16_34)
|
||||
// CHECK:STDOUT: %.loc16_35.2: type = converted %.loc16_35.1, constants.%tuple.type.765 [symbolic = %tuple.type.loc16 (constants.%tuple.type.765)]
|
||||
// CHECK:STDOUT: %U.loc16_8.2: type = bind_symbolic_name U, 0 [symbolic = %U.loc16_8.1 (constants.%U.8b3)]
|
||||
// CHECK:STDOUT: %u.param: @F.2.%U.loc16_8.1 (%U.8b3) = value_param call_param0
|
||||
// CHECK:STDOUT: %u.param: @F.loc16.%U.loc16_8.1 (%U.8b3) = value_param call_param0
|
||||
// CHECK:STDOUT: %U.ref.loc16_21: type = name_ref U, %U.loc16_8.2 [symbolic = %U.loc16_8.1 (constants.%U.8b3)]
|
||||
// CHECK:STDOUT: %u: @F.2.%U.loc16_8.1 (%U.8b3) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.2.%tuple.type.loc16 (%tuple.type.765) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.2.%tuple.type.loc16 (%tuple.type.765) = return_slot %return.param
|
||||
// CHECK:STDOUT: %u: @F.loc16.%U.loc16_8.1 (%U.8b3) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.loc16.%tuple.type.loc16 (%tuple.type.765) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.loc16.%tuple.type.loc16 (%tuple.type.765) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -331,21 +331,21 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: .Self = constants.%Z
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@A.%T.loc5_13.1: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.2: type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc6(@A.%T.loc5_13.1: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.2: type) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.20f)]
|
||||
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.75a)]
|
||||
// CHECK:STDOUT: %Self: @F.1.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %Self: @F.loc6.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.e59)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)]
|
||||
// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_8.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)]
|
||||
// CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.44c)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%u.param: @F.1.%U.loc6_8.1 (%U.2cb)) -> @F.1.%tuple.type.loc6_38.2 (%tuple.type.bd2);
|
||||
// CHECK:STDOUT: fn(%u.param: @F.loc6.%U.loc6_8.1 (%U.2cb)) -> @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.2(%U.loc16_8.2: type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc16(%U.loc16_8.2: type) {
|
||||
// CHECK:STDOUT: %U.loc16_8.1: type = bind_symbolic_name U, 0 [symbolic = %U.loc16_8.1 (constants.%U.8b3)]
|
||||
// CHECK:STDOUT: %pattern_type.loc16_18: type = pattern_type %U.loc16_8.1 [symbolic = %pattern_type.loc16_18 (constants.%pattern_type.7dc)]
|
||||
// CHECK:STDOUT: %tuple.type.loc16: type = tuple_type (constants.%X, constants.%Y, %U.loc16_8.1) [symbolic = %tuple.type.loc16 (constants.%tuple.type.765)]
|
||||
@@ -356,22 +356,22 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %require_complete.loc16_19: <witness> = require_complete_type %U.loc16_8.1 [symbolic = %require_complete.loc16_19 (constants.%require_complete.4ae)]
|
||||
// CHECK:STDOUT: %tuple.type.loc17: type = tuple_type (constants.%empty_struct_type, constants.%empty_struct_type, %U.loc16_8.1) [symbolic = %tuple.type.loc17 (constants.%tuple.type.a41)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%u.param: @F.2.%U.loc16_8.1 (%U.8b3)) -> %return.param: @F.2.%tuple.type.loc16 (%tuple.type.765) {
|
||||
// CHECK:STDOUT: fn(%u.param: @F.loc16.%U.loc16_8.1 (%U.8b3)) -> %return.param: @F.loc16.%tuple.type.loc16 (%tuple.type.765) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc17_14.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %.loc17_18.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %u.ref: @F.2.%U.loc16_8.1 (%U.8b3) = name_ref u, %u
|
||||
// CHECK:STDOUT: %.loc17_22.1: @F.2.%tuple.type.loc17 (%tuple.type.a41) = tuple_literal (%.loc17_14.1, %.loc17_18.1, %u.ref)
|
||||
// CHECK:STDOUT: %u.ref: @F.loc16.%U.loc16_8.1 (%U.8b3) = name_ref u, %u
|
||||
// CHECK:STDOUT: %.loc17_22.1: @F.loc16.%tuple.type.loc17 (%tuple.type.a41) = tuple_literal (%.loc17_14.1, %.loc17_18.1, %u.ref)
|
||||
// CHECK:STDOUT: %tuple.elem0: ref %X = tuple_access %return, element0
|
||||
// CHECK:STDOUT: %.loc17_14.2: init %X = class_init (), %tuple.elem0 [concrete = constants.%X.val]
|
||||
// CHECK:STDOUT: %.loc17_22.2: init %X = converted %.loc17_14.1, %.loc17_14.2 [concrete = constants.%X.val]
|
||||
// CHECK:STDOUT: %tuple.elem1: ref %Y = tuple_access %return, element1
|
||||
// CHECK:STDOUT: %.loc17_18.2: init %Y = class_init (), %tuple.elem1 [concrete = constants.%Y.val]
|
||||
// CHECK:STDOUT: %.loc17_22.3: init %Y = converted %.loc17_18.1, %.loc17_18.2 [concrete = constants.%Y.val]
|
||||
// CHECK:STDOUT: %tuple.elem2: ref @F.2.%U.loc16_8.1 (%U.8b3) = tuple_access %return, element2
|
||||
// CHECK:STDOUT: %.loc17_22.4: init @F.2.%U.loc16_8.1 (%U.8b3) = initialize_from %u.ref to %tuple.elem2
|
||||
// CHECK:STDOUT: %.loc17_22.5: init @F.2.%tuple.type.loc16 (%tuple.type.765) = tuple_init (%.loc17_22.2, %.loc17_22.3, %.loc17_22.4) to %return
|
||||
// CHECK:STDOUT: %.loc17_23: init @F.2.%tuple.type.loc16 (%tuple.type.765) = converted %.loc17_22.1, %.loc17_22.5
|
||||
// CHECK:STDOUT: %tuple.elem2: ref @F.loc16.%U.loc16_8.1 (%U.8b3) = tuple_access %return, element2
|
||||
// CHECK:STDOUT: %.loc17_22.4: init @F.loc16.%U.loc16_8.1 (%U.8b3) = initialize_from %u.ref to %tuple.elem2
|
||||
// CHECK:STDOUT: %.loc17_22.5: init @F.loc16.%tuple.type.loc16 (%tuple.type.765) = tuple_init (%.loc17_22.2, %.loc17_22.3, %.loc17_22.4) to %return
|
||||
// CHECK:STDOUT: %.loc17_23: init @F.loc16.%tuple.type.loc16 (%tuple.type.765) = converted %.loc17_22.1, %.loc17_22.5
|
||||
// CHECK:STDOUT: return %.loc17_23 to %return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -391,7 +391,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %impl.elem0: %.a60 = impl_witness_access constants.%A.impl_witness, element0 [concrete = constants.%F.ce9]
|
||||
// CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z]
|
||||
// CHECK:STDOUT: %.loc22_21.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @F.2(constants.%Z) [concrete = constants.%F.specific_fn]
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @F.loc16(constants.%Z) [concrete = constants.%F.specific_fn]
|
||||
// CHECK:STDOUT: %.loc22_22.1: ref %tuple.type.f6b = temporary_storage
|
||||
// CHECK:STDOUT: %.loc22_21.2: ref %Z = temporary_storage
|
||||
// CHECK:STDOUT: %.loc22_21.3: init %Z = class_init (), %.loc22_21.2 [concrete = constants.%Z.val]
|
||||
@@ -422,7 +422,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %A.facet: %A.type.91f = facet_value %T.as_type.loc26_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.11f)]
|
||||
// CHECK:STDOUT: %.loc26_4.3: type = fn_type_with_self_type constants.%F.type.13d, %A.facet [symbolic = %.loc26_4.3 (constants.%.ffa)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc26_4.2: @CallGeneric.%.loc26_4.3 (%.ffa) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.0e5)]
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc26_4.2: <specific function> = specific_impl_function %impl.elem0.loc26_4.2, @F.1(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc26_4.2: <specific function> = specific_impl_function %impl.elem0.loc26_4.2, @F.loc6(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc26_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.e28)]
|
||||
// CHECK:STDOUT: %require_complete.loc26_12.1: <witness> = require_complete_type %tuple.type [symbolic = %require_complete.loc26_12.1 (constants.%require_complete.500)]
|
||||
// CHECK:STDOUT: %Destroy.lookup_impl_witness: <witness> = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)]
|
||||
@@ -443,7 +443,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %impl.elem0.loc26_4.1: @CallGeneric.%.loc26_4.3 (%.ffa) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.0e5)]
|
||||
// CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z]
|
||||
// CHECK:STDOUT: %.loc26_11.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc26_4.1: <specific function> = specific_impl_function %impl.elem0.loc26_4.1, @F.1(constants.%X, constants.%A.facet.11f, constants.%Z) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc26_4.1: <specific function> = specific_impl_function %impl.elem0.loc26_4.1, @F.loc6(constants.%X, constants.%A.facet.11f, constants.%Z) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %.loc26_12.1: ref @CallGeneric.%tuple.type (%tuple.type.e28) = temporary_storage
|
||||
// CHECK:STDOUT: %.loc26_11.2: ref %Z = temporary_storage
|
||||
// CHECK:STDOUT: %.loc26_11.3: init %Z = class_init (), %.loc26_11.2 [concrete = constants.%Z.val]
|
||||
@@ -482,7 +482,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %T.loc5_13.2 => constants.%T.8b3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%T.8b3, constants.%Self.753, constants.%U.2cb) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%T.8b3, constants.%Self.753, constants.%U.2cb) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.2cb
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.20f
|
||||
// CHECK:STDOUT: %T => constants.%T.8b3
|
||||
@@ -506,14 +506,14 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.5f6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%U.8b3) {
|
||||
// CHECK:STDOUT: specific @F.loc16(constants.%U.8b3) {
|
||||
// CHECK:STDOUT: %U.loc16_8.1 => constants.%U.8b3
|
||||
// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.7dc
|
||||
// CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.765
|
||||
// CHECK:STDOUT: %pattern_type.loc16_24 => constants.%pattern_type.340
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%X, constants.%A.facet.552, constants.%U.8b3) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.552, constants.%U.8b3) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.8b3
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.7dc
|
||||
// CHECK:STDOUT: %T => constants.%X
|
||||
@@ -525,7 +525,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.340
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%Z) {
|
||||
// CHECK:STDOUT: specific @F.loc16(constants.%Z) {
|
||||
// CHECK:STDOUT: %U.loc16_8.1 => constants.%Z
|
||||
// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.8f9
|
||||
// CHECK:STDOUT: %tuple.type.loc16 => constants.%tuple.type.f6b
|
||||
@@ -541,7 +541,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %T.loc25_16.2 => constants.%T.9c2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%X, constants.%A.facet.11f, constants.%Z) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.11f, constants.%Z) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9
|
||||
// CHECK:STDOUT: %T => constants.%X
|
||||
@@ -574,7 +574,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %require_complete.loc26_12.2 => constants.%complete_type.456
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%X, constants.%A.facet.552, constants.%Z) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.552, constants.%Z) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9
|
||||
// CHECK:STDOUT: %T => constants.%X
|
||||
@@ -602,7 +602,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %Self.as_type.81d: type = facet_access_type %Self.753 [symbolic]
|
||||
// CHECK:STDOUT: %tuple.type.bd2: type = tuple_type (%T.8b3, %Self.as_type.81d, %U.2cb) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.44c: type = pattern_type %tuple.type.bd2 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.17a: type = fn_type @F.1, @A(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.17a: type = fn_type @F.loc6, @A(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %F.0d8: %F.type.17a = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %A.assoc_type.ed3: type = assoc_entity_type @A, @A(%T.8b3) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.fcb: %A.assoc_type.ed3 = assoc_entity element0, @A.%F.decl [symbolic]
|
||||
@@ -619,7 +619,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %tuple.type.30b: type = tuple_type (%V1, %V2) [symbolic]
|
||||
// CHECK:STDOUT: %A.type.f21: type = facet_type <@A, @A(%W)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.4fe: %A.type.f21 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.904: type = fn_type @F.1, @A(%W) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.904: type = fn_type @F.loc6, @A(%W) [symbolic]
|
||||
// CHECK:STDOUT: %F.1ee: %F.type.904 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %A.assoc_type.b05: type = assoc_entity_type @A, @A(%W) [symbolic]
|
||||
// CHECK:STDOUT: %assoc0.c82: %A.assoc_type.b05 = assoc_entity element0, @A.%F.decl [symbolic]
|
||||
@@ -630,13 +630,13 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %tuple.type.11f: type = tuple_type (type, %tuple.type.24b, type) [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.8ae: type = tuple_type (%W, %tuple.type.30b, %U.753) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.d4a: type = pattern_type %tuple.type.8ae [symbolic]
|
||||
// CHECK:STDOUT: %F.type.b3e: type = fn_type @F.2, @A.impl(%V1, %V2, %W) [symbolic]
|
||||
// CHECK:STDOUT: %F.type.b3e: type = fn_type @F.loc17, @A.impl(%V1, %V2, %W) [symbolic]
|
||||
// CHECK:STDOUT: %F.d79: %F.type.b3e = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %A.facet.461: %A.type.f21 = facet_value %tuple.type.30b, (%A.impl_witness.f15) [symbolic]
|
||||
// CHECK:STDOUT: %tuple.type.136: type = tuple_type (type, %A.type.f21, type) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.d4d: <witness> = require_complete_type %tuple.type.8ae [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.ed4: <witness> = require_complete_type %U.753 [symbolic]
|
||||
// CHECK:STDOUT: %F.specific_fn.7d9: <specific function> = specific_function %F.d79, @F.2(%V1, %V2, %W, %U.753) [symbolic]
|
||||
// CHECK:STDOUT: %F.specific_fn.7d9: <specific function> = specific_function %F.d79, @F.loc17(%V1, %V2, %W, %U.753) [symbolic]
|
||||
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
|
||||
// CHECK:STDOUT: %Op.type.bae: type = fn_type @Op.1 [concrete]
|
||||
// CHECK:STDOUT: %Op.type.bc9: type = fn_type @Op.2, @Destroy.impl(%T.8b3) [symbolic]
|
||||
@@ -653,20 +653,20 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %tuple.type.a46: type = tuple_type (%Y1, %Y2) [concrete]
|
||||
// CHECK:STDOUT: %A.type.91f: type = facet_type <@A, @A(%X)> [concrete]
|
||||
// CHECK:STDOUT: %Self.1bb: %A.type.91f = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %F.type.13d: type = fn_type @F.1, @A(%X) [concrete]
|
||||
// CHECK:STDOUT: %F.type.13d: type = fn_type @F.loc6, @A(%X) [concrete]
|
||||
// CHECK:STDOUT: %F.d83: %F.type.13d = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.assoc_type.296: type = assoc_entity_type @A, @A(%X) [concrete]
|
||||
// CHECK:STDOUT: %assoc0.5f6: %A.assoc_type.296 = assoc_entity element0, @A.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %complete_type.d76: <witness> = complete_type_witness %A.type.91f [concrete]
|
||||
// CHECK:STDOUT: %A.impl_witness.8ac: <witness> = impl_witness file.%A.impl_witness_table, @A.impl(%Y1, %Y2, %X) [concrete]
|
||||
// CHECK:STDOUT: %F.type.bf7: type = fn_type @F.2, @A.impl(%Y1, %Y2, %X) [concrete]
|
||||
// CHECK:STDOUT: %F.type.bf7: type = fn_type @F.loc17, @A.impl(%Y1, %Y2, %X) [concrete]
|
||||
// CHECK:STDOUT: %F.93b: %F.type.bf7 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %A.facet.414: %A.type.91f = facet_value %tuple.type.a46, (%A.impl_witness.8ac) [concrete]
|
||||
// CHECK:STDOUT: %.406: type = fn_type_with_self_type %F.type.13d, %A.facet.414 [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.8f9: type = pattern_type %Z [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.415: type = tuple_type (%X, %tuple.type.a46, %Z) [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.0b2: type = pattern_type %tuple.type.415 [concrete]
|
||||
// CHECK:STDOUT: %F.specific_fn.79b: <specific function> = specific_function %F.93b, @F.2(%Y1, %Y2, %X, %Z) [concrete]
|
||||
// CHECK:STDOUT: %F.specific_fn.79b: <specific function> = specific_function %F.93b, @F.loc17(%Y1, %Y2, %X, %Z) [concrete]
|
||||
// CHECK:STDOUT: %Z.val: %Z = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Op.type.f73: type = fn_type @Op.2, @Destroy.impl(%Z) [concrete]
|
||||
// CHECK:STDOUT: %Op.6e3: %Op.type.f73 = struct_value () [concrete]
|
||||
@@ -692,7 +692,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %tuple.type.a0c: type = tuple_type (type, %A.type.91f, type) [concrete]
|
||||
// CHECK:STDOUT: %tuple.type.e28: type = tuple_type (%X, %T.as_type, %Z) [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.f25: type = pattern_type %tuple.type.e28 [symbolic]
|
||||
// CHECK:STDOUT: %specific_impl_fn.e7e: <specific function> = specific_impl_function %impl.elem0.0e5, @F.1(%X, %A.facet.11f, %Z) [symbolic]
|
||||
// CHECK:STDOUT: %specific_impl_fn.e7e: <specific function> = specific_impl_function %impl.elem0.0e5, @F.loc6(%X, %A.facet.11f, %Z) [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.500: <witness> = require_complete_type %tuple.type.e28 [symbolic]
|
||||
// CHECK:STDOUT: %ptr.103: type = ptr_type %tuple.type.e28 [symbolic]
|
||||
// CHECK:STDOUT: %require_complete.8d3: <witness> = require_complete_type %ptr.103 [symbolic]
|
||||
@@ -778,34 +778,34 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T.loc5_13.2)> [symbolic = %A.type (constants.%A.type.75a)]
|
||||
// CHECK:STDOUT: %Self.2: @A.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.1, @A(%T.loc5_13.2) [symbolic = %F.type (constants.%F.type.17a)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.loc6, @A(%T.loc5_13.2) [symbolic = %F.type (constants.%F.type.17a)]
|
||||
// CHECK:STDOUT: %F: @A.%F.type (%F.type.17a) = struct_value () [symbolic = %F (constants.%F.0d8)]
|
||||
// CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%T.loc5_13.2) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3)]
|
||||
// CHECK:STDOUT: %assoc0.loc6_39.2: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.fcb)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @A.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %F.decl: @A.%F.type (%F.type.17a) = fn_decl @F.1 [symbolic = @A.%F (constants.%F.0d8)] {
|
||||
// CHECK:STDOUT: %F.decl: @A.%F.type (%F.type.17a) = fn_decl @F.loc6 [symbolic = @A.%F (constants.%F.0d8)] {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.1.%pattern_type.loc6_18 (%pattern_type.20f) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.1.%pattern_type.loc6_18 (%pattern_type.20f) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.1.%pattern_type.loc6_24 (%pattern_type.44c) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.1.%pattern_type.loc6_24 (%pattern_type.44c) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.loc6.%pattern_type.loc6_18 (%pattern_type.20f) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.loc6.%pattern_type.loc6_18 (%pattern_type.20f) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.loc6.%pattern_type.loc6_24 (%pattern_type.44c) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.1 [symbolic = %T (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: %.loc6_31: @F.1.%A.type (%A.type.75a) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %Self.ref: @F.1.%A.type (%A.type.75a) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %.loc6_31: @F.loc6.%A.type (%A.type.75a) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %Self.ref: @F.loc6.%A.type (%A.type.75a) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %.loc6_38.1: @F.1.%tuple.type.loc6_38.1 (%tuple.type.e59) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37)
|
||||
// CHECK:STDOUT: %.loc6_38.1: @F.loc6.%tuple.type.loc6_38.1 (%tuple.type.e59) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37)
|
||||
// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)]
|
||||
// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)]
|
||||
// CHECK:STDOUT: %.loc6_38.3: type = converted %.loc6_38.1, constants.%tuple.type.bd2 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)]
|
||||
// CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %u.param: @F.1.%U.loc6_8.1 (%U.2cb) = value_param call_param0
|
||||
// CHECK:STDOUT: %u.param: @F.loc6.%U.loc6_8.1 (%U.2cb) = value_param call_param0
|
||||
// CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %u: @F.1.%U.loc6_8.1 (%U.2cb) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.1.%tuple.type.loc6_38.2 (%tuple.type.bd2) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.1.%tuple.type.loc6_38.2 (%tuple.type.bd2) = return_slot %return.param
|
||||
// CHECK:STDOUT: %u: @F.loc6.%U.loc6_8.1 (%U.2cb) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %assoc0.loc6_39.1: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.fcb)]
|
||||
// CHECK:STDOUT:
|
||||
@@ -827,16 +827,16 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %A.impl_witness: <witness> = impl_witness file.%A.impl_witness_table, @A.impl(%V1.loc14_14.2, %V2.loc14_25.2, %W.loc14_36.2) [symbolic = %A.impl_witness (constants.%A.impl_witness.f15)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.2, @A.impl(%V1.loc14_14.2, %V2.loc14_25.2, %W.loc14_36.2) [symbolic = %F.type (constants.%F.type.b3e)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.loc17, @A.impl(%V1.loc14_14.2, %V2.loc14_25.2, %W.loc14_36.2) [symbolic = %F.type (constants.%F.type.b3e)]
|
||||
// CHECK:STDOUT: %F: @A.impl.%F.type (%F.type.b3e) = struct_value () [symbolic = %F (constants.%F.d79)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl: %.loc14_53.2 as %A.type.loc14_61.1 {
|
||||
// CHECK:STDOUT: %F.decl: @A.impl.%F.type (%F.type.b3e) = fn_decl @F.2 [symbolic = @A.impl.%F (constants.%F.d79)] {
|
||||
// CHECK:STDOUT: %F.decl: @A.impl.%F.type (%F.type.b3e) = fn_decl @F.loc17 [symbolic = @A.impl.%F (constants.%F.d79)] {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 3 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.2.%pattern_type.loc17_18 (%pattern_type.549) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.2.%pattern_type.loc17_18 (%pattern_type.549) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.2.%pattern_type.loc17_24 (%pattern_type.d4a) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.2.%pattern_type.loc17_24 (%pattern_type.d4a) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %u.patt: @F.loc17.%pattern_type.loc17_18 (%pattern_type.549) = binding_pattern u [concrete]
|
||||
// CHECK:STDOUT: %u.param_patt: @F.loc17.%pattern_type.loc17_18 (%pattern_type.549) = value_param_pattern %u.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: @F.loc17.%pattern_type.loc17_24 (%pattern_type.d4a) = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: @F.loc17.%pattern_type.loc17_24 (%pattern_type.d4a) = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %W.ref: type = name_ref W, @A.impl.%W.loc14_36.1 [symbolic = %W (constants.%W)]
|
||||
// CHECK:STDOUT: %V1.ref: type = name_ref V1, @A.impl.%V1.loc14_14.1 [symbolic = %V1 (constants.%V1)]
|
||||
@@ -847,11 +847,11 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %.loc17_42.2: type = converted %.loc17_38, constants.%tuple.type.30b [symbolic = %tuple.type.loc17_42.1 (constants.%tuple.type.30b)]
|
||||
// CHECK:STDOUT: %.loc17_42.3: type = converted %.loc17_42.1, constants.%tuple.type.8ae [symbolic = %tuple.type.loc17_42.2 (constants.%tuple.type.8ae)]
|
||||
// CHECK:STDOUT: %U.loc17_8.2: type = bind_symbolic_name U, 3 [symbolic = %U.loc17_8.1 (constants.%U.753)]
|
||||
// CHECK:STDOUT: %u.param: @F.2.%U.loc17_8.1 (%U.753) = value_param call_param0
|
||||
// CHECK:STDOUT: %u.param: @F.loc17.%U.loc17_8.1 (%U.753) = value_param call_param0
|
||||
// CHECK:STDOUT: %U.ref.loc17_21: type = name_ref U, %U.loc17_8.2 [symbolic = %U.loc17_8.1 (constants.%U.753)]
|
||||
// CHECK:STDOUT: %u: @F.2.%U.loc17_8.1 (%U.753) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.2.%tuple.type.loc17_42.2 (%tuple.type.8ae) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.2.%tuple.type.loc17_42.2 (%tuple.type.8ae) = return_slot %return.param
|
||||
// CHECK:STDOUT: %u: @F.loc17.%U.loc17_8.1 (%U.753) = bind_name u, %u.param
|
||||
// CHECK:STDOUT: %return.param: ref @F.loc17.%tuple.type.loc17_42.2 (%tuple.type.8ae) = out_param call_param1
|
||||
// CHECK:STDOUT: %return: ref @F.loc17.%tuple.type.loc17_42.2 (%tuple.type.8ae) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -899,21 +899,21 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: .Self = constants.%Z
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@A.%T.loc5_13.1: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.2: type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc6(@A.%T.loc5_13.1: type, @A.%Self.1: @A.%A.type (%A.type.75a), %U.loc6_8.2: type) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)]
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %U.loc6_8.1 [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.20f)]
|
||||
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.8b3)]
|
||||
// CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.75a)]
|
||||
// CHECK:STDOUT: %Self: @F.1.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %Self: @F.loc6.%A.type (%A.type.75a) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.753)]
|
||||
// CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.e59)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.81d)]
|
||||
// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_8.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.bd2)]
|
||||
// CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.44c)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%u.param: @F.1.%U.loc6_8.1 (%U.2cb)) -> @F.1.%tuple.type.loc6_38.2 (%tuple.type.bd2);
|
||||
// CHECK:STDOUT: fn(%u.param: @F.loc6.%U.loc6_8.1 (%U.2cb)) -> @F.loc6.%tuple.type.loc6_38.2 (%tuple.type.bd2);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.2(@A.impl.%V1.loc14_14.1: type, @A.impl.%V2.loc14_25.1: type, @A.impl.%W.loc14_36.1: type, %U.loc17_8.2: type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc17(@A.impl.%V1.loc14_14.1: type, @A.impl.%V2.loc14_25.1: type, @A.impl.%W.loc14_36.1: type, %U.loc17_8.2: type) {
|
||||
// CHECK:STDOUT: %U.loc17_8.1: type = bind_symbolic_name U, 3 [symbolic = %U.loc17_8.1 (constants.%U.753)]
|
||||
// CHECK:STDOUT: %pattern_type.loc17_18: type = pattern_type %U.loc17_8.1 [symbolic = %pattern_type.loc17_18 (constants.%pattern_type.549)]
|
||||
// CHECK:STDOUT: %W: type = bind_symbolic_name W, 2 [symbolic = %W (constants.%W)]
|
||||
@@ -926,31 +926,31 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %require_complete.loc17_24.1: <witness> = require_complete_type %tuple.type.loc17_42.2 [symbolic = %require_complete.loc17_24.1 (constants.%require_complete.d4d)]
|
||||
// CHECK:STDOUT: %require_complete.loc17_19: <witness> = require_complete_type %U.loc17_8.1 [symbolic = %require_complete.loc17_19 (constants.%require_complete.ed4)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.2, @A.impl(%V1, %V2, %W) [symbolic = %F.type (constants.%F.type.b3e)]
|
||||
// CHECK:STDOUT: %F: @F.2.%F.type (%F.type.b3e) = struct_value () [symbolic = %F (constants.%F.d79)]
|
||||
// CHECK:STDOUT: %F.specific_fn.loc18_12.2: <specific function> = specific_function %F, @F.2(%V1, %V2, %W, %U.loc17_8.1) [symbolic = %F.specific_fn.loc18_12.2 (constants.%F.specific_fn.7d9)]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F.loc17, @A.impl(%V1, %V2, %W) [symbolic = %F.type (constants.%F.type.b3e)]
|
||||
// CHECK:STDOUT: %F: @F.loc17.%F.type (%F.type.b3e) = struct_value () [symbolic = %F (constants.%F.d79)]
|
||||
// CHECK:STDOUT: %F.specific_fn.loc18_12.2: <specific function> = specific_function %F, @F.loc17(%V1, %V2, %W, %U.loc17_8.1) [symbolic = %F.specific_fn.loc18_12.2 (constants.%F.specific_fn.7d9)]
|
||||
// CHECK:STDOUT: %Destroy.lookup_impl_witness: <witness> = lookup_impl_witness %tuple.type.loc17_42.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.0d1)]
|
||||
// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type.loc17_42.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.3f0)]
|
||||
// CHECK:STDOUT: %.loc17_24.3: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc17_24.3 (constants.%.a93)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc17_24.2: @F.2.%.loc17_24.3 (%.a93) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc17_24.2 (constants.%impl.elem0.9fc)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc17_24.2: @F.loc17.%.loc17_24.3 (%.a93) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc17_24.2 (constants.%impl.elem0.9fc)]
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc17_24.2: <specific function> = specific_impl_function %impl.elem0.loc17_24.2, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc17_24.2 (constants.%specific_impl_fn.2c6)]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %tuple.type.loc17_42.2 [symbolic = %ptr (constants.%ptr.ab5)]
|
||||
// CHECK:STDOUT: %require_complete.loc17_24.2: <witness> = require_complete_type %ptr [symbolic = %require_complete.loc17_24.2 (constants.%require_complete.293)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%u.param: @F.2.%U.loc17_8.1 (%U.753)) -> %return.param: @F.2.%tuple.type.loc17_42.2 (%tuple.type.8ae) {
|
||||
// CHECK:STDOUT: fn(%u.param: @F.loc17.%U.loc17_8.1 (%U.753)) -> %return.param: @F.loc17.%tuple.type.loc17_42.2 (%tuple.type.8ae) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc18: @F.2.%F.type (%F.type.b3e) = specific_constant @A.impl.%F.decl, @A.impl(constants.%V1, constants.%V2, constants.%W) [symbolic = %F (constants.%F.d79)]
|
||||
// CHECK:STDOUT: %F.ref: @F.2.%F.type (%F.type.b3e) = name_ref F, %.loc18 [symbolic = %F (constants.%F.d79)]
|
||||
// CHECK:STDOUT: %.loc18: @F.loc17.%F.type (%F.type.b3e) = specific_constant @A.impl.%F.decl, @A.impl(constants.%V1, constants.%V2, constants.%W) [symbolic = %F (constants.%F.d79)]
|
||||
// CHECK:STDOUT: %F.ref: @F.loc17.%F.type (%F.type.b3e) = name_ref F, %.loc18 [symbolic = %F (constants.%F.d79)]
|
||||
// CHECK:STDOUT: %U.ref.loc18: type = name_ref U, %U.loc17_8.2 [symbolic = %U.loc17_8.1 (constants.%U.753)]
|
||||
// CHECK:STDOUT: %u.ref: @F.2.%U.loc17_8.1 (%U.753) = name_ref u, %u
|
||||
// CHECK:STDOUT: %F.specific_fn.loc18_12.1: <specific function> = specific_function %F.ref, @F.2(constants.%V1, constants.%V2, constants.%W, constants.%U.753) [symbolic = %F.specific_fn.loc18_12.2 (constants.%F.specific_fn.7d9)]
|
||||
// CHECK:STDOUT: %.loc17_24.1: ref @F.2.%tuple.type.loc17_42.2 (%tuple.type.8ae) = splice_block %return {}
|
||||
// CHECK:STDOUT: %F.call: init @F.2.%tuple.type.loc17_42.2 (%tuple.type.8ae) = call %F.specific_fn.loc18_12.1(%u.ref) to %.loc17_24.1
|
||||
// CHECK:STDOUT: %impl.elem0.loc17_24.1: @F.2.%.loc17_24.3 (%.a93) = impl_witness_access constants.%Destroy.lookup_impl_witness.0d1, element0 [symbolic = %impl.elem0.loc17_24.2 (constants.%impl.elem0.9fc)]
|
||||
// CHECK:STDOUT: %u.ref: @F.loc17.%U.loc17_8.1 (%U.753) = name_ref u, %u
|
||||
// CHECK:STDOUT: %F.specific_fn.loc18_12.1: <specific function> = specific_function %F.ref, @F.loc17(constants.%V1, constants.%V2, constants.%W, constants.%U.753) [symbolic = %F.specific_fn.loc18_12.2 (constants.%F.specific_fn.7d9)]
|
||||
// CHECK:STDOUT: %.loc17_24.1: ref @F.loc17.%tuple.type.loc17_42.2 (%tuple.type.8ae) = splice_block %return {}
|
||||
// CHECK:STDOUT: %F.call: init @F.loc17.%tuple.type.loc17_42.2 (%tuple.type.8ae) = call %F.specific_fn.loc18_12.1(%u.ref) to %.loc17_24.1
|
||||
// CHECK:STDOUT: %impl.elem0.loc17_24.1: @F.loc17.%.loc17_24.3 (%.a93) = impl_witness_access constants.%Destroy.lookup_impl_witness.0d1, element0 [symbolic = %impl.elem0.loc17_24.2 (constants.%impl.elem0.9fc)]
|
||||
// CHECK:STDOUT: %bound_method.loc17_24.1: <bound method> = bound_method %.loc17_24.1, %impl.elem0.loc17_24.1
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc17_24.1: <specific function> = specific_impl_function %impl.elem0.loc17_24.1, @Op.1(constants.%Destroy.facet.3f0) [symbolic = %specific_impl_fn.loc17_24.2 (constants.%specific_impl_fn.2c6)]
|
||||
// CHECK:STDOUT: %bound_method.loc17_24.2: <bound method> = bound_method %.loc17_24.1, %specific_impl_fn.loc17_24.1
|
||||
// CHECK:STDOUT: %addr: @F.2.%ptr (%ptr.ab5) = addr_of %.loc17_24.1
|
||||
// CHECK:STDOUT: %addr: @F.loc17.%ptr (%ptr.ab5) = addr_of %.loc17_24.1
|
||||
// CHECK:STDOUT: %.loc17_24.2: init %empty_tuple.type = call %bound_method.loc17_24.2(%addr)
|
||||
// CHECK:STDOUT: return %F.call to %return
|
||||
// CHECK:STDOUT: }
|
||||
@@ -974,7 +974,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %impl.elem0: %.406 = impl_witness_access constants.%A.impl_witness.8ac, element0 [concrete = constants.%F.93b]
|
||||
// CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z]
|
||||
// CHECK:STDOUT: %.loc24_38.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @F.2(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) [concrete = constants.%F.specific_fn.79b]
|
||||
// CHECK:STDOUT: %specific_fn: <specific function> = specific_function %impl.elem0, @F.loc17(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) [concrete = constants.%F.specific_fn.79b]
|
||||
// CHECK:STDOUT: %.loc24_39.1: ref %tuple.type.415 = temporary_storage
|
||||
// CHECK:STDOUT: %.loc24_38.2: ref %Z = temporary_storage
|
||||
// CHECK:STDOUT: %.loc24_38.3: init %Z = class_init (), %.loc24_38.2 [concrete = constants.%Z.val]
|
||||
@@ -1005,7 +1005,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %A.facet: %A.type.91f = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.11f)]
|
||||
// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%F.type.13d, %A.facet [symbolic = %.loc28_4.3 (constants.%.ffa)]
|
||||
// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.ffa) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.0e5)]
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: <specific function> = specific_impl_function %impl.elem0.loc28_4.2, @F.1(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: <specific function> = specific_impl_function %impl.elem0.loc28_4.2, @F.loc6(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.e28)]
|
||||
// CHECK:STDOUT: %require_complete.loc28_12.1: <witness> = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.500)]
|
||||
// CHECK:STDOUT: %Destroy.lookup_impl_witness: <witness> = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.1a2)]
|
||||
@@ -1026,7 +1026,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.ffa) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.0e5)]
|
||||
// CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z]
|
||||
// CHECK:STDOUT: %.loc28_11.1: %empty_struct_type = struct_literal ()
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: <specific function> = specific_impl_function %impl.elem0.loc28_4.1, @F.1(constants.%X, constants.%A.facet.11f, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: <specific function> = specific_impl_function %impl.elem0.loc28_4.1, @F.loc6(constants.%X, constants.%A.facet.11f, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.e7e)]
|
||||
// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.e28) = temporary_storage
|
||||
// CHECK:STDOUT: %.loc28_11.2: ref %Z = temporary_storage
|
||||
// CHECK:STDOUT: %.loc28_11.3: init %Z = class_init (), %.loc28_11.2 [concrete = constants.%Z.val]
|
||||
@@ -1068,7 +1068,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %T.loc5_13.2 => constants.%T.8b3
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%T.8b3, constants.%Self.753, constants.%U.2cb) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%T.8b3, constants.%Self.753, constants.%U.2cb) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.2cb
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.20f
|
||||
// CHECK:STDOUT: %T => constants.%T.8b3
|
||||
@@ -1106,7 +1106,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %F => constants.%F.d79
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%V1, constants.%V2, constants.%W, constants.%U.753) {
|
||||
// CHECK:STDOUT: specific @F.loc17(constants.%V1, constants.%V2, constants.%W, constants.%U.753) {
|
||||
// CHECK:STDOUT: %U.loc17_8.1 => constants.%U.753
|
||||
// CHECK:STDOUT: %pattern_type.loc17_18 => constants.%pattern_type.549
|
||||
// CHECK:STDOUT: %W => constants.%W
|
||||
@@ -1131,7 +1131,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %require_complete.loc17_24.2 => constants.%require_complete.293
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%W, constants.%A.facet.461, constants.%U.753) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%W, constants.%A.facet.461, constants.%U.753) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%U.753
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.549
|
||||
// CHECK:STDOUT: %T => constants.%W
|
||||
@@ -1169,7 +1169,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %F => constants.%F.93b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) {
|
||||
// CHECK:STDOUT: specific @F.loc17(constants.%Y1, constants.%Y2, constants.%X, constants.%Z) {
|
||||
// CHECK:STDOUT: %U.loc17_8.1 => constants.%Z
|
||||
// CHECK:STDOUT: %pattern_type.loc17_18 => constants.%pattern_type.8f9
|
||||
// CHECK:STDOUT: %W => constants.%X
|
||||
@@ -1198,7 +1198,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %T.loc27_16.2 => constants.%T.9c2
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%X, constants.%A.facet.11f, constants.%Z) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.11f, constants.%Z) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9
|
||||
// CHECK:STDOUT: %T => constants.%X
|
||||
@@ -1231,7 +1231,7 @@ fn CallIndirect() {
|
||||
// CHECK:STDOUT: %require_complete.loc28_12.2 => constants.%complete_type.e23
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%X, constants.%A.facet.414, constants.%Z) {
|
||||
// CHECK:STDOUT: specific @F.loc6(constants.%X, constants.%A.facet.414, constants.%Z) {
|
||||
// CHECK:STDOUT: %U.loc6_8.1 => constants.%Z
|
||||
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.8f9
|
||||
// CHECK:STDOUT: %T => constants.%X
|
||||
|
||||
+24
-24
@@ -83,9 +83,9 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: %Self.43b: %NotGenericButParams.type.014 = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type type [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.cde: type = generic_interface_type @GenericAndParams.1 [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.cde: type = generic_interface_type @GenericAndParams.loc6 [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.generic.827: %GenericAndParams.type.cde = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.73e: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%T)> [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.73e: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.2f4: %GenericAndParams.type.73e = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete]
|
||||
// CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete]
|
||||
@@ -93,25 +93,25 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: %GenericNoParams.type.b79: type = facet_type <@GenericNoParams, @GenericNoParams(%T)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.0f6: %GenericNoParams.type.b79 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.597: type = generic_interface_type @GenericAndParams.2, @C(%T) [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.597: type = generic_interface_type @GenericAndParams.loc10, @C(%T) [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.generic.2ec: %GenericAndParams.type.597 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.d96: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%T, %U)> [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.d96: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.37a: %GenericAndParams.type.d96 = bind_symbolic_name Self, 2 [symbolic]
|
||||
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %X: type = class_type @X [concrete]
|
||||
// CHECK:STDOUT: %NotGenericNoParams.impl_witness: <witness> = impl_witness file.%NotGenericNoParams.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %NotGenericButParams.impl_witness: <witness> = impl_witness file.%NotGenericButParams.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.4b6: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%X)> [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.4b6: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%X)> [concrete]
|
||||
// CHECK:STDOUT: %Self.2f7: %GenericAndParams.type.4b6 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.impl_witness.c06: <witness> = impl_witness file.%GenericAndParams.impl_witness_table.loc16 [concrete]
|
||||
// CHECK:STDOUT: %C.fac: type = class_type @C, @C(%X) [concrete]
|
||||
// CHECK:STDOUT: %GenericNoParams.type.b7e: type = facet_type <@GenericNoParams, @GenericNoParams(%X)> [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.425: type = generic_interface_type @GenericAndParams.2, @C(%X) [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.425: type = generic_interface_type @GenericAndParams.loc10, @C(%X) [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.generic.b50: %GenericAndParams.type.425 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Self.108: %GenericNoParams.type.b7e = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %GenericNoParams.impl_witness: <witness> = impl_witness file.%GenericNoParams.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.79c: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%X, %X)> [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.type.79c: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%X, %X)> [concrete]
|
||||
// CHECK:STDOUT: %Self.f51: %GenericAndParams.type.79c = bind_symbolic_name Self, 2 [symbolic]
|
||||
// CHECK:STDOUT: %GenericAndParams.impl_witness.c9b: <witness> = impl_witness file.%GenericAndParams.impl_witness_table.loc18 [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -126,7 +126,7 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %NotGenericNoParams.decl: type = interface_decl @NotGenericNoParams [concrete = constants.%NotGenericNoParams.type] {} {}
|
||||
// CHECK:STDOUT: %NotGenericButParams.decl: %NotGenericButParams.type.f26 = interface_decl @NotGenericButParams [concrete = constants.%NotGenericButParams.generic] {} {}
|
||||
// CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.cde = interface_decl @GenericAndParams.1 [concrete = constants.%GenericAndParams.generic.827] {
|
||||
// CHECK:STDOUT: %GenericAndParams.decl: %GenericAndParams.type.cde = interface_decl @GenericAndParams.loc6 [concrete = constants.%GenericAndParams.generic.827] {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.loc6_28.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_28.2 (constants.%T)]
|
||||
@@ -154,7 +154,7 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: %X.ref.loc16_6: type = name_ref X, file.%X.decl [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.cde = name_ref GenericAndParams, file.%GenericAndParams.decl [concrete = constants.%GenericAndParams.generic.827]
|
||||
// CHECK:STDOUT: %X.ref.loc16_28: type = name_ref X, file.%X.decl [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(constants.%X)> [concrete = constants.%GenericAndParams.type.4b6]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(constants.%X)> [concrete = constants.%GenericAndParams.type.4b6]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %GenericAndParams.impl_witness_table.loc16 = impl_witness_table (), @GenericAndParams.impl.87f [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.impl_witness.loc16: <witness> = impl_witness %GenericAndParams.impl_witness_table.loc16 [concrete = constants.%GenericAndParams.impl_witness.c06]
|
||||
@@ -176,7 +176,7 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: %.loc18: %GenericAndParams.type.425 = specific_constant @C.%GenericAndParams.decl, @C(constants.%X) [concrete = constants.%GenericAndParams.generic.b50]
|
||||
// CHECK:STDOUT: %GenericAndParams.ref: %GenericAndParams.type.425 = name_ref GenericAndParams, %.loc18 [concrete = constants.%GenericAndParams.generic.b50]
|
||||
// CHECK:STDOUT: %X.ref.loc18_33: type = name_ref X, file.%X.decl [concrete = constants.%X]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(constants.%X, constants.%X)> [concrete = constants.%GenericAndParams.type.79c]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(constants.%X, constants.%X)> [concrete = constants.%GenericAndParams.type.79c]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %GenericAndParams.impl_witness_table.loc18 = impl_witness_table (), @GenericAndParams.impl.15f [concrete]
|
||||
// CHECK:STDOUT: %GenericAndParams.impl_witness.loc18: <witness> = impl_witness %GenericAndParams.impl_witness_table.loc18 [concrete = constants.%GenericAndParams.impl_witness.c9b]
|
||||
@@ -198,15 +198,15 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: witness = ()
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @GenericAndParams.1(%T.loc6_28.1: type) {
|
||||
// CHECK:STDOUT: generic interface @GenericAndParams.loc6(%T.loc6_28.1: type) {
|
||||
// CHECK:STDOUT: %T.loc6_28.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc6_28.2 (constants.%T)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.1, @GenericAndParams.1(%T.loc6_28.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.73e)]
|
||||
// CHECK:STDOUT: %Self.2: @GenericAndParams.1.%GenericAndParams.type (%GenericAndParams.type.73e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc6, @GenericAndParams.loc6(%T.loc6_28.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.73e)]
|
||||
// CHECK:STDOUT: %Self.2: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.73e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @GenericAndParams.1.%GenericAndParams.type (%GenericAndParams.type.73e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)]
|
||||
// CHECK:STDOUT: %Self.1: @GenericAndParams.loc6.%GenericAndParams.type (%GenericAndParams.type.73e) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -229,16 +229,16 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @GenericAndParams.2(@C.%T.loc8_9.1: type, %U.loc10_30.1: type) {
|
||||
// CHECK:STDOUT: generic interface @GenericAndParams.loc10(@C.%T.loc8_9.1: type, %U.loc10_30.1: type) {
|
||||
// CHECK:STDOUT: %U.loc10_30.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc10_30.2 (constants.%U)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.2, @GenericAndParams.2(%T, %U.loc10_30.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.d96)]
|
||||
// CHECK:STDOUT: %Self.2: @GenericAndParams.2.%GenericAndParams.type (%GenericAndParams.type.d96) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.37a)]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = facet_type <@GenericAndParams.loc10, @GenericAndParams.loc10(%T, %U.loc10_30.2)> [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.d96)]
|
||||
// CHECK:STDOUT: %Self.2: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.d96) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.37a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @GenericAndParams.2.%GenericAndParams.type (%GenericAndParams.type.d96) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.37a)]
|
||||
// CHECK:STDOUT: %Self.1: @GenericAndParams.loc10.%GenericAndParams.type (%GenericAndParams.type.d96) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self.37a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -276,12 +276,12 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %GenericNoParams.type: type = facet_type <@GenericNoParams, @GenericNoParams(%T.loc8_9.2)> [symbolic = %GenericNoParams.type (constants.%GenericNoParams.type.b79)]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.2, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.597)]
|
||||
// CHECK:STDOUT: %GenericAndParams.type: type = generic_interface_type @GenericAndParams.loc10, @C(%T.loc8_9.2) [symbolic = %GenericAndParams.type (constants.%GenericAndParams.type.597)]
|
||||
// CHECK:STDOUT: %GenericAndParams.generic: @C.%GenericAndParams.type (%GenericAndParams.type.597) = struct_value () [symbolic = %GenericAndParams.generic (constants.%GenericAndParams.generic.2ec)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class {
|
||||
// CHECK:STDOUT: %GenericNoParams.decl: type = interface_decl @GenericNoParams [symbolic = @C.%GenericNoParams.type (constants.%GenericNoParams.type.b79)] {} {}
|
||||
// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.597) = interface_decl @GenericAndParams.2 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.2ec)] {
|
||||
// CHECK:STDOUT: %GenericAndParams.decl: @C.%GenericAndParams.type (%GenericAndParams.type.597) = interface_decl @GenericAndParams.loc10 [symbolic = @C.%GenericAndParams.generic (constants.%GenericAndParams.generic.2ec)] {
|
||||
// CHECK:STDOUT: %U.patt: %pattern_type = symbolic_binding_pattern U, 1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %U.loc10_30.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc10_30.2 (constants.%U)]
|
||||
@@ -306,7 +306,7 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: .Self = constants.%X
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @GenericAndParams.1(constants.%T) {
|
||||
// CHECK:STDOUT: specific @GenericAndParams.loc6(constants.%T) {
|
||||
// CHECK:STDOUT: %T.loc6_28.2 => constants.%T
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -316,11 +316,11 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @GenericNoParams(constants.%T) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @GenericAndParams.2(constants.%T, constants.%U) {
|
||||
// CHECK:STDOUT: specific @GenericAndParams.loc10(constants.%T, constants.%U) {
|
||||
// CHECK:STDOUT: %U.loc10_30.2 => constants.%U
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @GenericAndParams.1(constants.%X) {
|
||||
// CHECK:STDOUT: specific @GenericAndParams.loc6(constants.%X) {
|
||||
// CHECK:STDOUT: %T.loc6_28.2 => constants.%X
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
@@ -344,7 +344,7 @@ interface Bar[T:! type] {}
|
||||
// CHECK:STDOUT: %Self.2 => constants.%Self.108
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @GenericAndParams.2(constants.%X, constants.%X) {
|
||||
// CHECK:STDOUT: specific @GenericAndParams.loc10(constants.%X, constants.%X) {
|
||||
// CHECK:STDOUT: %U.loc10_30.2 => constants.%X
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
|
||||
+8
-8
@@ -61,14 +61,14 @@ var f: ForwardDeclared* = &f_ref.f;
|
||||
// CHECK:STDOUT: %Self.1c7: %Basic.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Basic.assoc_type: type = assoc_entity_type @Basic [concrete]
|
||||
// CHECK:STDOUT: %assoc0.0d9: %Basic.assoc_type = assoc_entity element0, @Basic.%T [concrete]
|
||||
// CHECK:STDOUT: %F.type.320: type = fn_type @F.1 [concrete]
|
||||
// CHECK:STDOUT: %F.type.320: type = fn_type @F.loc9 [concrete]
|
||||
// CHECK:STDOUT: %F.952: %F.type.320 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %assoc1.9b4: %Basic.assoc_type = assoc_entity element1, @Basic.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %ForwardDeclared.type: type = facet_type <@ForwardDeclared> [concrete]
|
||||
// CHECK:STDOUT: %Self.efa: %ForwardDeclared.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %ForwardDeclared.assoc_type: type = assoc_entity_type @ForwardDeclared [concrete]
|
||||
// CHECK:STDOUT: %assoc0.27c: %ForwardDeclared.assoc_type = assoc_entity element0, @ForwardDeclared.%T [concrete]
|
||||
// CHECK:STDOUT: %F.type.505: type = fn_type @F.2 [concrete]
|
||||
// CHECK:STDOUT: %F.type.505: type = fn_type @F.loc17 [concrete]
|
||||
// CHECK:STDOUT: %F.eb5: %F.type.505 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %assoc1.c80: %ForwardDeclared.assoc_type = assoc_entity element1, @ForwardDeclared.%F.decl [concrete]
|
||||
// CHECK:STDOUT: %struct_type.f: type = struct_type {.f: %ForwardDeclared.type} [concrete]
|
||||
@@ -110,7 +110,7 @@ var f: ForwardDeclared* = &f_ref.f;
|
||||
// CHECK:STDOUT: %T: type = assoc_const_decl @T.loc8 [concrete] {
|
||||
// CHECK:STDOUT: %assoc0: %Basic.assoc_type = assoc_entity element0, @Basic.%T [concrete = constants.%assoc0.0d9]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %F.decl: %F.type.320 = fn_decl @F.1 [concrete = constants.%F.952] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.320 = fn_decl @F.loc9 [concrete = constants.%F.952] {} {}
|
||||
// CHECK:STDOUT: %assoc1: %Basic.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1.9b4]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -125,7 +125,7 @@ var f: ForwardDeclared* = &f_ref.f;
|
||||
// CHECK:STDOUT: %T: type = assoc_const_decl @T.loc16 [concrete] {
|
||||
// CHECK:STDOUT: %assoc0: %ForwardDeclared.assoc_type = assoc_entity element0, @ForwardDeclared.%T [concrete = constants.%assoc0.27c]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %F.decl: %F.type.505 = fn_decl @F.2 [concrete = constants.%F.eb5] {} {}
|
||||
// CHECK:STDOUT: %F.decl: %F.type.505 = fn_decl @F.loc17 [concrete = constants.%F.eb5] {} {}
|
||||
// CHECK:STDOUT: %assoc1: %ForwardDeclared.assoc_type = assoc_entity element1, %F.decl [concrete = constants.%assoc1.c80]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
@@ -143,21 +143,21 @@ var f: ForwardDeclared* = &f_ref.f;
|
||||
// CHECK:STDOUT: assoc_const T:! type;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.1(@Basic.%Self: %Basic.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc9(@Basic.%Self: %Basic.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @F.2(@ForwardDeclared.%Self: %ForwardDeclared.type) {
|
||||
// CHECK:STDOUT: generic fn @F.loc17(@ForwardDeclared.%Self: %ForwardDeclared.type) {
|
||||
// CHECK:STDOUT: fn();
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T.loc8(constants.%Self.1c7) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.1(constants.%Self.1c7) {}
|
||||
// CHECK:STDOUT: specific @F.loc9(constants.%Self.1c7) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @T.loc16(constants.%Self.efa) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @F.2(constants.%Self.efa) {}
|
||||
// CHECK:STDOUT: specific @F.loc17(constants.%Self.efa) {}
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- b.carbon
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+13
-13
@@ -32,13 +32,13 @@ fn F() {
|
||||
// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type.744: type = pattern_type %Self.as_type [symbolic]
|
||||
// CHECK:STDOUT: %G.type.bff: type = fn_type @G.1 [concrete]
|
||||
// CHECK:STDOUT: %G.type.bff: type = fn_type @G.loc17 [concrete]
|
||||
// CHECK:STDOUT: %G.f0a: %G.type.bff = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
|
||||
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%G.decl [concrete]
|
||||
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @F.%I.impl_witness_table [concrete]
|
||||
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
|
||||
// CHECK:STDOUT: %G.type.c84: type = fn_type @G.2 [concrete]
|
||||
// CHECK:STDOUT: %G.type.c84: type = fn_type @G.loc20 [concrete]
|
||||
// CHECK:STDOUT: %G.5a2: %G.type.c84 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, (%I.impl_witness) [concrete]
|
||||
// CHECK:STDOUT: %.ba5: type = fn_type_with_self_type %G.type.bff, %I.facet [concrete]
|
||||
@@ -54,17 +54,17 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @I {
|
||||
// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %G.decl: %G.type.bff = fn_decl @G.1 [concrete = constants.%G.f0a] {
|
||||
// CHECK:STDOUT: %self.patt: @G.1.%pattern_type (%pattern_type.744) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @G.1.%pattern_type (%pattern_type.744) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %G.decl: %G.type.bff = fn_decl @G.loc17 [concrete = constants.%G.f0a] {
|
||||
// CHECK:STDOUT: %self.patt: @G.loc17.%pattern_type (%pattern_type.744) = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: @G.loc17.%pattern_type (%pattern_type.744) = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %self.param: @G.1.%Self.as_type.loc17_16.1 (%Self.as_type) = value_param call_param0
|
||||
// CHECK:STDOUT: %self.param: @G.loc17.%Self.as_type.loc17_16.1 (%Self.as_type) = value_param call_param0
|
||||
// CHECK:STDOUT: %.loc17_16.1: type = splice_block %.loc17_16.2 [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] {
|
||||
// CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc17_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %.loc17_16.2: type = converted %Self.ref, %Self.as_type.loc17_16.2 [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %self: @G.1.%Self.as_type.loc17_16.1 (%Self.as_type) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %self: @G.loc17.%Self.as_type.loc17_16.1 (%Self.as_type) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %G.decl [concrete = constants.%assoc0]
|
||||
// CHECK:STDOUT:
|
||||
@@ -75,7 +75,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @I.impl: %.loc19_9.2 as %I.ref {
|
||||
// CHECK:STDOUT: %G.decl: %G.type.c84 = fn_decl @G.2 [concrete = constants.%G.5a2] {
|
||||
// CHECK:STDOUT: %G.decl: %G.type.c84 = fn_decl @G.loc20 [concrete = constants.%G.5a2] {
|
||||
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = binding_pattern self [concrete]
|
||||
// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
@@ -110,26 +110,26 @@ fn F() {
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic fn @G.1(@I.%Self: %I.type) {
|
||||
// CHECK:STDOUT: generic fn @G.loc17(@I.%Self: %I.type) {
|
||||
// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.as_type.loc17_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc17_16.1 [symbolic = %pattern_type (constants.%pattern_type.744)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%self.param: @G.1.%Self.as_type.loc17_16.1 (%Self.as_type));
|
||||
// CHECK:STDOUT: fn(%self.param: @G.loc17.%Self.as_type.loc17_16.1 (%Self.as_type));
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G.2(%self.param: %empty_tuple.type) {
|
||||
// CHECK:STDOUT: fn @G.loc20(%self.param: %empty_tuple.type) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.1(constants.%Self) {
|
||||
// CHECK:STDOUT: specific @G.loc17(constants.%Self) {
|
||||
// CHECK:STDOUT: %Self => constants.%Self
|
||||
// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%Self.as_type
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.744
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @G.1(constants.%I.facet) {
|
||||
// CHECK:STDOUT: specific @G.loc17(constants.%I.facet) {
|
||||
// CHECK:STDOUT: %Self => constants.%I.facet
|
||||
// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%empty_tuple.type
|
||||
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1
|
||||
|
||||
+84
-84
@@ -364,11 +364,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.loc6 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.loc14 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.loc14, @Foo.loc14(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -378,13 +378,13 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: .Foo = %Foo.decl.loc6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
|
||||
// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.5380b8.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc14: %Foo.type.5380b8.2 = interface_decl @Foo.loc14 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
@@ -392,21 +392,21 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.1(%a.loc6_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc6(%a.loc6_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc6_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.2(%a.loc14_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc14(%a.loc14_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc14_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc14_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc14_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc14, @Foo.loc14(%a.loc14_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.loc14.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.1: @Foo.loc14.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -423,11 +423,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.1(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc6(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc6_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.2(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc14(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc14_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -571,15 +571,15 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.loc12 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.loc12, @Foo.loc12(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.a71: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: %Bar.type.982aac.1: type = generic_interface_type @Bar.1 [concrete]
|
||||
// CHECK:STDOUT: %Bar.generic.4bda5e.1: %Bar.type.982aac.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Bar.type.982aac.2: type = generic_interface_type @Bar.2 [concrete]
|
||||
// CHECK:STDOUT: %Bar.type.982aac.2: type = generic_interface_type @Bar.loc21 [concrete]
|
||||
// CHECK:STDOUT: %Bar.generic.4bda5e.2: %Bar.type.982aac.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Bar.type.6a9: type = facet_type <@Bar.2, @Bar.2(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Bar.type.6a9: type = facet_type <@Bar.loc21, @Bar.loc21(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Self.cec: %Bar.type.6a9 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -603,13 +603,13 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %default.import.loc2_24.1 = import <none>
|
||||
// CHECK:STDOUT: %default.import.loc2_24.2 = import <none>
|
||||
// CHECK:STDOUT: %Foo.decl: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %Foo.decl: %Foo.type.5380b8.2 = interface_decl @Foo.loc12 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl: %Bar.type.982aac.2 = interface_decl @Bar.2 [concrete = constants.%Bar.generic.4bda5e.2] {
|
||||
// CHECK:STDOUT: %Bar.decl: %Bar.type.982aac.2 = interface_decl @Bar.loc21 [concrete = constants.%Bar.generic.4bda5e.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%Main.D [concrete = constants.%C]
|
||||
@@ -623,15 +623,15 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.2(%a.loc12_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc12(%a.loc12_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc12_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc12_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc12_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)]
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc12, @Foo.loc12(%a.loc12_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.loc12.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)]
|
||||
// CHECK:STDOUT: %Self.1: @Foo.loc12.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.a71)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -645,15 +645,15 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Bar.2(%a.loc21_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Bar.loc21(%a.loc21_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc21_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc21_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.2, @Bar.2(%a.loc21_15.2)> [symbolic = %Bar.type (constants.%Bar.type.6a9)]
|
||||
// CHECK:STDOUT: %Self.2: @Bar.2.%Bar.type (%Bar.type.6a9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)]
|
||||
// CHECK:STDOUT: %Bar.type: type = facet_type <@Bar.loc21, @Bar.loc21(%a.loc21_15.2)> [symbolic = %Bar.type (constants.%Bar.type.6a9)]
|
||||
// CHECK:STDOUT: %Self.2: @Bar.loc21.%Bar.type (%Bar.type.6a9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Bar.2.%Bar.type (%Bar.type.6a9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)]
|
||||
// CHECK:STDOUT: %Self.1: @Bar.loc21.%Bar.type (%Bar.type.6a9) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cec)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -672,7 +672,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.2(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc12(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc12_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -680,7 +680,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Bar.2(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Bar.loc21(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc21_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -692,12 +692,12 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.loc7 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %b: %C = bind_symbolic_name b, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.loc15 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%b)> [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.loc15, @Foo.loc15(%b)> [symbolic]
|
||||
// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -710,13 +710,13 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type = symbolic_binding_pattern b, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C]
|
||||
@@ -724,21 +724,21 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.1(%a.loc7_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc7(%a.loc7_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.2(%b.loc15_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc15(%b.loc15_15.1: %C) {
|
||||
// CHECK:STDOUT: %b.loc15_15.2: %C = bind_symbolic_name b, 0 [symbolic = %b.loc15_15.2 (constants.%b)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%b.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%b.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.1: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -755,11 +755,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.1(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc7(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc7_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.2(constants.%b) {
|
||||
// CHECK:STDOUT: specific @Foo.loc15(constants.%b) {
|
||||
// CHECK:STDOUT: %b.loc15_15.2 => constants.%b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -771,11 +771,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.loc7 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.loc15 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.loc15, @Foo.loc15(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -788,13 +788,13 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C]
|
||||
@@ -802,21 +802,21 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.1(%a.loc7_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc7(%a.loc7_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.2(%a.loc15_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc15(%a.loc15_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.1: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -833,11 +833,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.1(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc7(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc7_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.2(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc15(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc15_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -849,11 +849,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
|
||||
// CHECK:STDOUT: %a: %C = bind_symbolic_name a, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.loc7 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.loc15 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.loc15, @Foo.loc15(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -866,13 +866,13 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %D: type = bind_alias D, %C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.5380b8.1 = interface_decl @Foo.loc7 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc15: %Foo.type.5380b8.2 = interface_decl @Foo.loc15 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C]
|
||||
@@ -880,21 +880,21 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.1(%a.loc7_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc7(%a.loc7_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc7_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.2(%a.loc15_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc15(%a.loc15_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc15_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc15_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc15, @Foo.loc15(%a.loc15_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.1: @Foo.loc15.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -911,11 +911,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.1(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc7(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc7_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.2(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc15(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc15_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -974,9 +974,9 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.loc17 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.7d0: type = facet_type <@Foo.loc17, @Foo.loc17(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Self: %Foo.type.7d0 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -998,7 +998,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %default.import.loc2_30.2 = import <none>
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %D: type = bind_alias D, imports.%Main.C [concrete = constants.%C]
|
||||
// CHECK:STDOUT: %Foo.decl: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %Foo.decl: %Foo.type.5380b8.2 = interface_decl @Foo.loc17 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [concrete = constants.%C]
|
||||
@@ -1012,15 +1012,15 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.2(%a.loc17_15.1: %C) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc17(%a.loc17_15.1: %C) {
|
||||
// CHECK:STDOUT: %a.loc17_15.2: %C = bind_symbolic_name a, 0 [symbolic = %a.loc17_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc17_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc17, @Foo.loc17(%a.loc17_15.2)> [symbolic = %Foo.type (constants.%Foo.type.7d0)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.loc17.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.1: @Foo.loc17.%Foo.type (%Foo.type.7d0) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -1039,7 +1039,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.2(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc17(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc17_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1052,11 +1052,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %const: type = const_type %C [concrete]
|
||||
// CHECK:STDOUT: %a: %const = bind_symbolic_name a, 0 [symbolic]
|
||||
// CHECK:STDOUT: %pattern_type: type = pattern_type %const [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.1 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.1: type = generic_interface_type @Foo.loc6 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.1: %Foo.type.5380b8.1 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.2 [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.5380b8.2: type = generic_interface_type @Foo.loc18 [concrete]
|
||||
// CHECK:STDOUT: %Foo.generic.ec3175.2: %Foo.type.5380b8.2 = struct_value () [concrete]
|
||||
// CHECK:STDOUT: %Foo.type.924: type = facet_type <@Foo.2, @Foo.2(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Foo.type.924: type = facet_type <@Foo.loc18, @Foo.loc18(%a)> [symbolic]
|
||||
// CHECK:STDOUT: %Self: %Foo.type.924 = bind_symbolic_name Self, 1 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1066,7 +1066,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: .Foo = %Foo.decl.loc6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
|
||||
// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.5380b8.1 = interface_decl @Foo.1 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc6: %Foo.type.5380b8.1 = interface_decl @Foo.loc6 [concrete = constants.%Foo.generic.ec3175.1] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc6: type = splice_block %const [concrete = constants.%const] {
|
||||
@@ -1075,7 +1075,7 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.5380b8.2 = interface_decl @Foo.2 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %Foo.decl.loc18: %Foo.type.5380b8.2 = interface_decl @Foo.loc18 [concrete = constants.%Foo.generic.ec3175.2] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type = symbolic_binding_pattern a, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc18: type = splice_block %const.loc18_19 [concrete = constants.%const] {
|
||||
@@ -1087,21 +1087,21 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.1(%a.loc6_15.1: %const) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc6(%a.loc6_15.1: %const) {
|
||||
// CHECK:STDOUT: %a.loc6_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Foo.2(%a.loc18_15.1: %const) {
|
||||
// CHECK:STDOUT: generic interface @Foo.loc18(%a.loc18_15.1: %const) {
|
||||
// CHECK:STDOUT: %a.loc18_15.2: %const = bind_symbolic_name a, 0 [symbolic = %a.loc18_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.2, @Foo.2(%a.loc18_15.2)> [symbolic = %Foo.type (constants.%Foo.type.924)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.2.%Foo.type (%Foo.type.924) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Foo.type: type = facet_type <@Foo.loc18, @Foo.loc18(%a.loc18_15.2)> [symbolic = %Foo.type (constants.%Foo.type.924)]
|
||||
// CHECK:STDOUT: %Self.2: @Foo.loc18.%Foo.type (%Foo.type.924) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @Foo.2.%Foo.type (%Foo.type.924) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.1: @Foo.loc18.%Foo.type (%Foo.type.924) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = %Self.1
|
||||
@@ -1118,11 +1118,11 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.1(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc6(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc6_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: specific @Foo.2(constants.%a) {
|
||||
// CHECK:STDOUT: specific @Foo.loc18(constants.%a) {
|
||||
// CHECK:STDOUT: %a.loc18_15.2 => constants.%a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
Reference in New Issue
Block a user