Fix the textual IR name of WrapperBindingPattern (#7650)

`at_binding_pattern` is a relic from an earlier revision of #6930.
This commit is contained in:
Geoff Romer
2026-08-18 22:31:27 +00:00
committed by GitHub
parent 70b6abd6f1
commit d21cc3197f
333 changed files with 3806 additions and 3806 deletions
+2 -2
View File
@@ -438,7 +438,7 @@ fn CallF() {
// CHECK:STDOUT: %ImplicitAs.impl_witness: <witness> = impl_witness @empty_tuple.type.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %self.param_patt.154: %pattern_type.cb1 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.8c1: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %self.patt.462: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %return.param_patt.89a: %pattern_type.98b = out_param_pattern [concrete]
@@ -538,7 +538,7 @@ fn CallF() {
// CHECK:STDOUT: impl @empty_tuple.type.as.ImplicitAs.impl: %.loc10_7.2 as %ImplicitAs.type {
// CHECK:STDOUT: %empty_tuple.type.as.ImplicitAs.impl.Convert.decl: %empty_tuple.type.as.ImplicitAs.impl.Convert.type = fn_decl @empty_tuple.type.as.ImplicitAs.impl.Convert [concrete = constants.%empty_tuple.type.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete = constants.%self.param_patt.154]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.8c1]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.462]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
+29 -29
View File
@@ -136,7 +136,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.701: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.701 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.701 = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.701 = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic]
// CHECK:STDOUT: %return.param_patt: %pattern_type.51d = out_param_pattern [symbolic]
@@ -177,7 +177,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] {
// CHECK:STDOUT: %self.param_patt.loc4_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = value_param_pattern [symbolic = %self.param_patt.loc4_14.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = at_binding_pattern self, %self.param_patt.loc4_14.1 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = wrapper_binding_pattern self, %self.param_patt.loc4_14.1 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %return.param_patt.loc4_23.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc4_23.2 (constants.%return.param_patt)]
// CHECK:STDOUT: %return.patt.loc4_20.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_23 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc4_23.1, %Dest.ref [symbolic = %return.patt.loc4_20.2 (constants.%return.patt)]
// CHECK:STDOUT: } {
@@ -214,7 +214,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type.loc4_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_14.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_14.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.701)]
// CHECK:STDOUT: %self.param_patt.loc4_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = value_param_pattern [symbolic = %self.param_patt.loc4_14.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = at_binding_pattern self, %self.param_patt.loc4_14.2 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = wrapper_binding_pattern self, %self.param_patt.loc4_14.2 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %.loc4_23.1: Core.Form = init_form %Dest [symbolic = %.loc4_23.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc4_23: type = pattern_type %Dest [symbolic = %pattern_type.loc4_23 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc4_23.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc4_23.2 (constants.%return.param_patt)]
@@ -373,7 +373,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %NonInstance2.WithSelf.F2.539: %NonInstance2.WithSelf.F2.type.6fc = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.d5c: type = pattern_type %struct_type.b [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.d5c = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.d5c = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.d5c = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %NonInstanceCall2.type: type = fn_type @NonInstanceCall2 [concrete]
// CHECK:STDOUT: %NonInstanceCall2: %NonInstanceCall2.type = struct_value () [concrete]
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
@@ -392,7 +392,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.294 [symbolic]
// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.20e = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.20e = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.20e = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic]
// CHECK:STDOUT: %ImplicitAs.type.4d6: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance2.type)> [concrete]
// CHECK:STDOUT: %Self.2c5: %ImplicitAs.type.4d6 = symbolic_binding Self, 1 [symbolic]
@@ -436,7 +436,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %.loc9: <witness> = impl_self_witness @struct_type.b.as.NonInstance2.impl.%struct_type.b, @NonInstance2 [concrete = constants.%.f6e]
// CHECK:STDOUT: %NonInstanceCall2.decl: %NonInstanceCall2.type = fn_decl @NonInstanceCall2 [concrete = constants.%NonInstanceCall2] {
// CHECK:STDOUT: %n.param_patt: %pattern_type.d5c = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type.d5c = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type.d5c = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %n.param: %struct_type.b = value_param call_param0
// CHECK:STDOUT: %.loc13_31: type = splice_block %struct_type.b [concrete = constants.%struct_type.b] {
@@ -518,7 +518,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.20e)]
// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.1 (%pattern_type.20e) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.1 (%pattern_type.20e) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.1 (%pattern_type.20e) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %.1: Core.Form = init_form %Dest [symbolic = %.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.2 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt)]
@@ -608,7 +608,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %ptr: type = ptr_type %struct_type.c [concrete]
// CHECK:STDOUT: %pattern_type.5f5: type = pattern_type %ptr [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.5f5 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.5f5 = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.5f5 = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %NonInstanceCallIndirect.type: type = fn_type @NonInstanceCallIndirect [concrete]
// CHECK:STDOUT: %NonInstanceCallIndirect: %NonInstanceCallIndirect.type = struct_value () [concrete]
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
@@ -627,7 +627,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.294 [symbolic]
// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.20e = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.20e = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.20e = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic]
// CHECK:STDOUT: %ImplicitAs.type.04b: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance3.type)> [concrete]
// CHECK:STDOUT: %Self.522: %ImplicitAs.type.04b = symbolic_binding Self, 1 [symbolic]
@@ -671,7 +671,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %.loc9: <witness> = impl_self_witness @struct_type.c.as.NonInstance3.impl.%struct_type.c, @NonInstance3 [concrete = constants.%.52c]
// CHECK:STDOUT: %NonInstanceCallIndirect.decl: %NonInstanceCallIndirect.type = fn_decl @NonInstanceCallIndirect [concrete = constants.%NonInstanceCallIndirect] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.5f5 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.5f5 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.5f5 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %ptr = value_param call_param0
// CHECK:STDOUT: %.loc13_39: type = splice_block %ptr [concrete = constants.%ptr] {
@@ -755,7 +755,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.20e)]
// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.1 (%pattern_type.20e) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.1 (%pattern_type.20e) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.1 (%pattern_type.20e) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %.1: Core.Form = init_form %Dest [symbolic = %.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.2 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt)]
@@ -831,7 +831,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.f46: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.281: %pattern_type.f46 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.1a0: %pattern_type.f46 = at_binding_pattern self, %self.param_patt.281 [symbolic]
// CHECK:STDOUT: %self.patt.249: %pattern_type.f46 = wrapper_binding_pattern self, %self.param_patt.281 [symbolic]
// CHECK:STDOUT: %Instance1.WithSelf.G1.type.284: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Instance1.WithSelf.G1.7cb: %Instance1.WithSelf.G1.type.284 = struct_value () [symbolic]
@@ -843,21 +843,21 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Instance1.impl_witness: <witness> = impl_witness @struct_type.d.as.Instance1.impl.%Instance1.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.515: type = pattern_type %struct_type.d [concrete]
// CHECK:STDOUT: %self.param_patt.3aa: %pattern_type.515 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.bed: %pattern_type.515 = at_binding_pattern self, %self.param_patt.3aa [concrete]
// CHECK:STDOUT: %self.patt.6f9: %pattern_type.515 = wrapper_binding_pattern self, %self.param_patt.3aa [concrete]
// CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1.type: type = fn_type @struct_type.d.as.Instance1.impl.G1 [concrete]
// CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1: %struct_type.d.as.Instance1.impl.G1.type = struct_value () [concrete]
// CHECK:STDOUT: %Instance1.facet: %Instance1.type = facet_value %struct_type.d, (%Instance1.impl_witness) [concrete]
// CHECK:STDOUT: %Instance1.WithSelf.G1.type.d2c: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Instance1.facet) [concrete]
// CHECK:STDOUT: %Instance1.WithSelf.G1.5f9: %Instance1.WithSelf.G1.type.d2c = struct_value () [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.515 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.515 = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.515 = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete]
// CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete]
// CHECK:STDOUT: %.df4: type = fn_type_with_self_type %Instance1.WithSelf.G1.type.d2c, %Instance1.facet [concrete]
// CHECK:STDOUT: %ptr: type = ptr_type %struct_type.d [concrete]
// CHECK:STDOUT: %pattern_type.8d6: type = pattern_type %ptr [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.8d6 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8d6 = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8d6 = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %InstanceCallIndirect.type: type = fn_type @InstanceCallIndirect [concrete]
// CHECK:STDOUT: %InstanceCallIndirect: %InstanceCallIndirect.type = struct_value () [concrete]
// CHECK:STDOUT: %struct: %struct_type.d = struct_value (%empty_tuple) [concrete]
@@ -879,7 +879,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %.loc7: <witness> = impl_self_witness @struct_type.d.as.Instance1.impl.%struct_type.d, @Instance1 [concrete = constants.%.100]
// CHECK:STDOUT: %InstanceCall.decl: %InstanceCall.type = fn_decl @InstanceCall [concrete = constants.%InstanceCall] {
// CHECK:STDOUT: %n.param_patt: %pattern_type.515 = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type.515 = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type.515 = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %n.param: %struct_type.d = value_param call_param0
// CHECK:STDOUT: %.loc11_27: type = splice_block %struct_type.d [concrete = constants.%struct_type.d] {
@@ -891,7 +891,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InstanceCallIndirect.decl: %InstanceCallIndirect.type = fn_decl @InstanceCallIndirect [concrete = constants.%InstanceCallIndirect] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.8d6 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8d6 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8d6 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %ptr = value_param call_param0
// CHECK:STDOUT: %.loc15_36: type = splice_block %ptr [concrete = constants.%ptr] {
@@ -911,7 +911,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Instance1.WithSelf.G1.decl: @Instance1.WithSelf.%Instance1.WithSelf.G1.type (%Instance1.WithSelf.G1.type.284) = fn_decl @Instance1.WithSelf.G1 [symbolic = @Instance1.WithSelf.%Instance1.WithSelf.G1 (constants.%Instance1.WithSelf.G1.7cb)] {
// CHECK:STDOUT: %self.param_patt.loc4_9.1: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = value_param_pattern [symbolic = %self.param_patt.loc4_9.2 (constants.%self.param_patt.281)]
// CHECK:STDOUT: %self.patt.loc4_9.1: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = at_binding_pattern self, %self.param_patt.loc4_9.1 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.1a0)]
// CHECK:STDOUT: %self.patt.loc4_9.1: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = wrapper_binding_pattern self, %self.param_patt.loc4_9.1 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.249)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Instance1.WithSelf.G1.%Self.as_type.loc4_9.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc4_9.1: type = splice_block %.loc4_9.2 [symbolic = %Self.as_type.loc4_9.1 (constants.%Self.as_type)] {
@@ -934,7 +934,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: impl @struct_type.d.as.Instance1.impl: %struct_type.d as %Instance1.ref {
// CHECK:STDOUT: %struct_type.d.as.Instance1.impl.G1.decl: %struct_type.d.as.Instance1.impl.G1.type = fn_decl @struct_type.d.as.Instance1.impl.G1 [concrete = constants.%struct_type.d.as.Instance1.impl.G1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.515 = value_param_pattern [concrete = constants.%self.param_patt.3aa]
// CHECK:STDOUT: %self.patt: %pattern_type.515 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.bed]
// CHECK:STDOUT: %self.patt: %pattern_type.515 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6f9]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %struct_type.d = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @struct_type.d.as.Instance1.impl.%struct_type.d [concrete = constants.%struct_type.d]
@@ -954,7 +954,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type.loc4_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_9.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_9.1 [symbolic = %pattern_type (constants.%pattern_type.f46)]
// CHECK:STDOUT: %self.param_patt.loc4_9.2: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = value_param_pattern [symbolic = %self.param_patt.loc4_9.2 (constants.%self.param_patt.281)]
// CHECK:STDOUT: %self.patt.loc4_9.2: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = at_binding_pattern self, %self.param_patt.loc4_9.2 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.1a0)]
// CHECK:STDOUT: %self.patt.loc4_9.2: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.f46) = wrapper_binding_pattern self, %self.param_patt.loc4_9.2 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.249)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @Instance1.WithSelf.G1.%Self.as_type.loc4_9.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -1004,7 +1004,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type.loc4_9.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f46
// CHECK:STDOUT: %self.param_patt.loc4_9.2 => constants.%self.param_patt.281
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.1a0
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.249
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Instance1.WithSelf(constants.%Instance1.facet) {
@@ -1019,7 +1019,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type.loc4_9.1 => constants.%struct_type.d
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.515
// CHECK:STDOUT: %self.param_patt.loc4_9.2 => constants.%self.param_patt.3aa
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.bed
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.6f9
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- fail_instance.carbon
@@ -1030,7 +1030,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.8a4: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.fe5: %pattern_type.8a4 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.fd0: %pattern_type.8a4 = at_binding_pattern self, %self.param_patt.fe5 [symbolic]
// CHECK:STDOUT: %self.patt.dec: %pattern_type.8a4 = wrapper_binding_pattern self, %self.param_patt.fe5 [symbolic]
// CHECK:STDOUT: %Instance2.WithSelf.G2.type.512: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Instance2.WithSelf.G2.09b: %Instance2.WithSelf.G2.type.512 = struct_value () [symbolic]
@@ -1042,7 +1042,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Instance2.impl_witness: <witness> = impl_witness @struct_type.e.as.Instance2.impl.%Instance2.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %struct_type.e [concrete]
// CHECK:STDOUT: %self.param_patt.5cd: %pattern_type.efd = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.91e: %pattern_type.efd = at_binding_pattern self, %self.param_patt.5cd [concrete]
// CHECK:STDOUT: %self.patt.f18: %pattern_type.efd = wrapper_binding_pattern self, %self.param_patt.5cd [concrete]
// CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2.type: type = fn_type @struct_type.e.as.Instance2.impl.G2 [concrete]
// CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2: %struct_type.e.as.Instance2.impl.G2.type = struct_value () [concrete]
// CHECK:STDOUT: %Instance2.facet: %Instance2.type = facet_value %struct_type.e, (%Instance2.impl_witness) [concrete]
@@ -1075,7 +1075,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Instance2.WithSelf.G2.decl: @Instance2.WithSelf.%Instance2.WithSelf.G2.type (%Instance2.WithSelf.G2.type.512) = fn_decl @Instance2.WithSelf.G2 [symbolic = @Instance2.WithSelf.%Instance2.WithSelf.G2 (constants.%Instance2.WithSelf.G2.09b)] {
// CHECK:STDOUT: %self.param_patt.loc4_9.1: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = value_param_pattern [symbolic = %self.param_patt.loc4_9.2 (constants.%self.param_patt.fe5)]
// CHECK:STDOUT: %self.patt.loc4_9.1: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = at_binding_pattern self, %self.param_patt.loc4_9.1 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.fd0)]
// CHECK:STDOUT: %self.patt.loc4_9.1: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = wrapper_binding_pattern self, %self.param_patt.loc4_9.1 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.dec)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Instance2.WithSelf.G2.%Self.as_type.loc4_9.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc4_9.1: type = splice_block %.loc4_9.2 [symbolic = %Self.as_type.loc4_9.1 (constants.%Self.as_type)] {
@@ -1098,7 +1098,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: impl @struct_type.e.as.Instance2.impl: %struct_type.e as %Instance2.ref {
// CHECK:STDOUT: %struct_type.e.as.Instance2.impl.G2.decl: %struct_type.e.as.Instance2.impl.G2.type = fn_decl @struct_type.e.as.Instance2.impl.G2 [concrete = constants.%struct_type.e.as.Instance2.impl.G2] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.efd = value_param_pattern [concrete = constants.%self.param_patt.5cd]
// CHECK:STDOUT: %self.patt: %pattern_type.efd = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.91e]
// CHECK:STDOUT: %self.patt: %pattern_type.efd = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f18]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %struct_type.e = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @struct_type.e.as.Instance2.impl.%struct_type.e [concrete = constants.%struct_type.e]
@@ -1118,7 +1118,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type.loc4_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_9.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_9.1 [symbolic = %pattern_type (constants.%pattern_type.8a4)]
// CHECK:STDOUT: %self.param_patt.loc4_9.2: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = value_param_pattern [symbolic = %self.param_patt.loc4_9.2 (constants.%self.param_patt.fe5)]
// CHECK:STDOUT: %self.patt.loc4_9.2: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = at_binding_pattern self, %self.param_patt.loc4_9.2 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.fd0)]
// CHECK:STDOUT: %self.patt.loc4_9.2: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.8a4) = wrapper_binding_pattern self, %self.param_patt.loc4_9.2 [symbolic = %self.patt.loc4_9.2 (constants.%self.patt.dec)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @Instance2.WithSelf.G2.%Self.as_type.loc4_9.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -1150,7 +1150,7 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type.loc4_9.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8a4
// CHECK:STDOUT: %self.param_patt.loc4_9.2 => constants.%self.param_patt.fe5
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.fd0
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.dec
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Instance2.WithSelf(constants.%Instance2.facet) {
@@ -1165,6 +1165,6 @@ fn InstanceCallFail() {
// CHECK:STDOUT: %Self.as_type.loc4_9.1 => constants.%struct_type.e
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd
// CHECK:STDOUT: %self.param_patt.loc4_9.2 => constants.%self.param_patt.5cd
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.91e
// CHECK:STDOUT: %self.patt.loc4_9.2 => constants.%self.patt.f18
// CHECK:STDOUT: }
// CHECK:STDOUT:
+20 -20
View File
@@ -126,7 +126,7 @@ class X(U: type) {
// CHECK:STDOUT: %Param.val: %Param = struct_value (%int_2.295) [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = value_binding_pattern a [concrete]
@@ -194,7 +194,7 @@ class X(U: type) {
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref.loc20: type = name_ref C, file.%C.decl [concrete = constants.%C]
@@ -460,10 +460,10 @@ class X(U: type) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.1916c4.1 [symbolic]
// CHECK:STDOUT: %pattern_type.b82: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.ce9: %pattern_type.b82 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.ec9: %pattern_type.b82 = at_binding_pattern self, %self.param_patt.ce9 [symbolic]
// CHECK:STDOUT: %self.patt.c12: %pattern_type.b82 = wrapper_binding_pattern self, %self.param_patt.ce9 [symbolic]
// CHECK:STDOUT: %pattern_type.51d1c4.1: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %t.param_patt.5130c0.1: %pattern_type.51d1c4.1 = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt.dcb1d7.1: %pattern_type.51d1c4.1 = at_binding_pattern t, %t.param_patt.5130c0.1 [symbolic]
// CHECK:STDOUT: %t.patt.c64cea.1: %pattern_type.51d1c4.1 = wrapper_binding_pattern t, %t.param_patt.5130c0.1 [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.type.09f79b.1: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.1916c4.1) [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.5f2714.1: %I.WithSelf.F.type.09f79b.1 = struct_value () [symbolic]
// CHECK:STDOUT: %I.assoc_type.b71f2b.1: type = assoc_entity_type @I, @I(%T) [symbolic]
@@ -484,10 +484,10 @@ class X(U: type) {
// CHECK:STDOUT: %require_complete.45e: <witness> = require_complete_type %I.type.3fe556.2 [symbolic]
// CHECK:STDOUT: %pattern_type.056: type = pattern_type %X [symbolic]
// CHECK:STDOUT: %self.param_patt.f0f: %pattern_type.056 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.1a7: %pattern_type.056 = at_binding_pattern self, %self.param_patt.f0f [symbolic]
// CHECK:STDOUT: %self.patt.500: %pattern_type.056 = wrapper_binding_pattern self, %self.param_patt.f0f [symbolic]
// CHECK:STDOUT: %pattern_type.51d1c4.2: type = pattern_type %U [symbolic]
// CHECK:STDOUT: %t.param_patt.5130c0.2: %pattern_type.51d1c4.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt.dcb1d7.2: %pattern_type.51d1c4.2 = at_binding_pattern t, %t.param_patt.5130c0.2 [symbolic]
// CHECK:STDOUT: %t.patt.c64cea.2: %pattern_type.51d1c4.2 = wrapper_binding_pattern t, %t.param_patt.5130c0.2 [symbolic]
// CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F, @X.as.I.impl(%U) [symbolic]
// CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %I.facet: %I.type.3fe556.2 = facet_value %X, (%I.impl_witness) [symbolic]
@@ -548,9 +548,9 @@ class X(U: type) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.09f79b.1) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.5f2714.1)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.b82) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.ce9)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.b82) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.ec9)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.b82) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.c12)]
// CHECK:STDOUT: %t.param_patt.loc5_15.1: @I.WithSelf.F.%pattern_type.loc5_15 (%pattern_type.51d1c4.1) = value_param_pattern [symbolic = %t.param_patt.loc5_15.2 (constants.%t.param_patt.5130c0.1)]
// CHECK:STDOUT: %t.patt.loc5_15.1: @I.WithSelf.F.%pattern_type.loc5_15 (%pattern_type.51d1c4.1) = at_binding_pattern t, %t.param_patt.loc5_15.1 [symbolic = %t.patt.loc5_15.2 (constants.%t.patt.dcb1d7.1)]
// CHECK:STDOUT: %t.patt.loc5_15.1: @I.WithSelf.F.%pattern_type.loc5_15 (%pattern_type.51d1c4.1) = wrapper_binding_pattern t, %t.param_patt.loc5_15.1 [symbolic = %t.patt.loc5_15.2 (constants.%t.patt.c64cea.1)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.3 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -593,9 +593,9 @@ class X(U: type) {
// CHECK:STDOUT: impl: %Self.ref as %I.type.loc9_21.2 {
// CHECK:STDOUT: %X.as.I.impl.F.decl: @X.as.I.impl.%X.as.I.impl.F.type (%X.as.I.impl.F.type) = fn_decl @X.as.I.impl.F [symbolic = @X.as.I.impl.%X.as.I.impl.F (constants.%X.as.I.impl.F)] {
// CHECK:STDOUT: %self.param_patt.loc10_17.1: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.056) = value_param_pattern [symbolic = %self.param_patt.loc10_17.2 (constants.%self.param_patt.f0f)]
// CHECK:STDOUT: %self.patt.loc10_17.1: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.056) = at_binding_pattern self, %self.param_patt.loc10_17.1 [symbolic = %self.patt.loc10_17.2 (constants.%self.patt.1a7)]
// CHECK:STDOUT: %self.patt.loc10_17.1: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.056) = wrapper_binding_pattern self, %self.param_patt.loc10_17.1 [symbolic = %self.patt.loc10_17.2 (constants.%self.patt.500)]
// CHECK:STDOUT: %t.param_patt.loc10_31.1: @X.as.I.impl.F.%pattern_type.loc10_31 (%pattern_type.51d1c4.2) = value_param_pattern [symbolic = %t.param_patt.loc10_31.2 (constants.%t.param_patt.5130c0.2)]
// CHECK:STDOUT: %t.patt.loc10_31.1: @X.as.I.impl.F.%pattern_type.loc10_31 (%pattern_type.51d1c4.2) = at_binding_pattern t, %t.param_patt.loc10_31.1 [symbolic = %t.patt.loc10_31.2 (constants.%t.patt.dcb1d7.2)]
// CHECK:STDOUT: %t.patt.loc10_31.1: @X.as.I.impl.F.%pattern_type.loc10_31 (%pattern_type.51d1c4.2) = wrapper_binding_pattern t, %t.param_patt.loc10_31.1 [symbolic = %t.patt.loc10_31.2 (constants.%t.patt.c64cea.2)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @X.as.I.impl.F.%X (%X) = value_param call_param0
// CHECK:STDOUT: %.loc10_17.1: type = splice_block %Self.ref [symbolic = %X (constants.%X)] {
@@ -653,10 +653,10 @@ class X(U: type) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.b82)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.b82) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.ce9)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.b82) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.ec9)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @I.WithSelf.F.%pattern_type.loc5_8 (%pattern_type.b82) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.c12)]
// CHECK:STDOUT: %pattern_type.loc5_15: type = pattern_type %T [symbolic = %pattern_type.loc5_15 (constants.%pattern_type.51d1c4.1)]
// CHECK:STDOUT: %t.param_patt.loc5_15.2: @I.WithSelf.F.%pattern_type.loc5_15 (%pattern_type.51d1c4.1) = value_param_pattern [symbolic = %t.param_patt.loc5_15.2 (constants.%t.param_patt.5130c0.1)]
// CHECK:STDOUT: %t.patt.loc5_15.2: @I.WithSelf.F.%pattern_type.loc5_15 (%pattern_type.51d1c4.1) = at_binding_pattern t, %t.param_patt.loc5_15.2 [symbolic = %t.patt.loc5_15.2 (constants.%t.patt.dcb1d7.1)]
// CHECK:STDOUT: %t.patt.loc5_15.2: @I.WithSelf.F.%pattern_type.loc5_15 (%pattern_type.51d1c4.1) = wrapper_binding_pattern t, %t.param_patt.loc5_15.2 [symbolic = %t.patt.loc5_15.2 (constants.%t.patt.c64cea.1)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type), %t.param: @I.WithSelf.F.%T (%T));
// CHECK:STDOUT: }
@@ -666,10 +666,10 @@ class X(U: type) {
// CHECK:STDOUT: %X: type = class_type @X, @X(%U) [symbolic = %X (constants.%X)]
// CHECK:STDOUT: %pattern_type.loc10_17: type = pattern_type %X [symbolic = %pattern_type.loc10_17 (constants.%pattern_type.056)]
// CHECK:STDOUT: %self.param_patt.loc10_17.2: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.056) = value_param_pattern [symbolic = %self.param_patt.loc10_17.2 (constants.%self.param_patt.f0f)]
// CHECK:STDOUT: %self.patt.loc10_17.2: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.056) = at_binding_pattern self, %self.param_patt.loc10_17.2 [symbolic = %self.patt.loc10_17.2 (constants.%self.patt.1a7)]
// CHECK:STDOUT: %self.patt.loc10_17.2: @X.as.I.impl.F.%pattern_type.loc10_17 (%pattern_type.056) = wrapper_binding_pattern self, %self.param_patt.loc10_17.2 [symbolic = %self.patt.loc10_17.2 (constants.%self.patt.500)]
// CHECK:STDOUT: %pattern_type.loc10_31: type = pattern_type %U [symbolic = %pattern_type.loc10_31 (constants.%pattern_type.51d1c4.2)]
// CHECK:STDOUT: %t.param_patt.loc10_31.2: @X.as.I.impl.F.%pattern_type.loc10_31 (%pattern_type.51d1c4.2) = value_param_pattern [symbolic = %t.param_patt.loc10_31.2 (constants.%t.param_patt.5130c0.2)]
// CHECK:STDOUT: %t.patt.loc10_31.2: @X.as.I.impl.F.%pattern_type.loc10_31 (%pattern_type.51d1c4.2) = at_binding_pattern t, %t.param_patt.loc10_31.2 [symbolic = %t.patt.loc10_31.2 (constants.%t.patt.dcb1d7.2)]
// CHECK:STDOUT: %t.patt.loc10_31.2: @X.as.I.impl.F.%pattern_type.loc10_31 (%pattern_type.51d1c4.2) = wrapper_binding_pattern t, %t.param_patt.loc10_31.2 [symbolic = %t.patt.loc10_31.2 (constants.%t.patt.c64cea.2)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc10_17: <witness> = require_complete_type %X [symbolic = %require_complete.loc10_17 (constants.%require_complete.ec9)]
@@ -695,10 +695,10 @@ class X(U: type) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.b82
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.ce9
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.ec9
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.c12
// CHECK:STDOUT: %pattern_type.loc5_15 => constants.%pattern_type.51d1c4.1
// CHECK:STDOUT: %t.param_patt.loc5_15.2 => constants.%t.param_patt.5130c0.1
// CHECK:STDOUT: %t.patt.loc5_15.2 => constants.%t.patt.dcb1d7.1
// CHECK:STDOUT: %t.patt.loc5_15.2 => constants.%t.patt.c64cea.1
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @X(constants.%U) {
@@ -748,10 +748,10 @@ class X(U: type) {
// CHECK:STDOUT: %X => constants.%X
// CHECK:STDOUT: %pattern_type.loc10_17 => constants.%pattern_type.056
// CHECK:STDOUT: %self.param_patt.loc10_17.2 => constants.%self.param_patt.f0f
// CHECK:STDOUT: %self.patt.loc10_17.2 => constants.%self.patt.1a7
// CHECK:STDOUT: %self.patt.loc10_17.2 => constants.%self.patt.500
// CHECK:STDOUT: %pattern_type.loc10_31 => constants.%pattern_type.51d1c4.2
// CHECK:STDOUT: %t.param_patt.loc10_31.2 => constants.%t.param_patt.5130c0.2
// CHECK:STDOUT: %t.patt.loc10_31.2 => constants.%t.patt.dcb1d7.2
// CHECK:STDOUT: %t.patt.loc10_31.2 => constants.%t.patt.c64cea.2
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%U, constants.%I.facet) {
@@ -772,9 +772,9 @@ class X(U: type) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%X
// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.056
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.f0f
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.1a7
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.500
// CHECK:STDOUT: %pattern_type.loc5_15 => constants.%pattern_type.51d1c4.2
// CHECK:STDOUT: %t.param_patt.loc5_15.2 => constants.%t.param_patt.5130c0.2
// CHECK:STDOUT: %t.patt.loc5_15.2 => constants.%t.patt.dcb1d7.2
// CHECK:STDOUT: %t.patt.loc5_15.2 => constants.%t.patt.c64cea.2
// CHECK:STDOUT: }
// CHECK:STDOUT:
+10 -10
View File
@@ -37,7 +37,7 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.c62: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.b93: %pattern_type.c62 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.b30: %pattern_type.c62 = at_binding_pattern self, %self.param_patt.b93 [symbolic]
// CHECK:STDOUT: %self.patt.25d: %pattern_type.c62 = wrapper_binding_pattern self, %self.param_patt.b93 [symbolic]
// CHECK:STDOUT: %Simple.WithSelf.G.type.682: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Simple.WithSelf.G.d0a: %Simple.WithSelf.G.type.682 = struct_value () [symbolic]
@@ -56,11 +56,11 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: %Simple.WithSelf.G.551: %Simple.WithSelf.G.type.b93 = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %self.param_patt.049: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f6c: %pattern_type.6b6 = at_binding_pattern self, %self.param_patt.049 [concrete]
// CHECK:STDOUT: %self.patt.aab: %pattern_type.6b6 = wrapper_binding_pattern self, %self.param_patt.049 [concrete]
// CHECK:STDOUT: %i32.as.Simple.impl.G.type.321a2c.2: type = fn_type @i32.as.Simple.impl.G.loc24_25.2 [concrete]
// CHECK:STDOUT: %i32.as.Simple.impl.G.d407b2.2: %i32.as.Simple.impl.G.type.321a2c.2 = struct_value () [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete]
// CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete]
// CHECK:STDOUT: %.029: type = fn_type_with_self_type %Simple.WithSelf.G.type.b93, %Simple.facet [concrete]
@@ -91,7 +91,7 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: %.loc19: <witness> = impl_self_witness @i32.as.Simple.impl.%i32, @Simple [concrete = constants.%.e1f]
// CHECK:STDOUT: %InstanceCall.decl: %InstanceCall.type = fn_decl @InstanceCall [concrete = constants.%InstanceCall] {
// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %n.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -106,7 +106,7 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Simple.WithSelf.G.decl: @Simple.WithSelf.%Simple.WithSelf.G.type (%Simple.WithSelf.G.type.682) = fn_decl @Simple.WithSelf.G [symbolic = @Simple.WithSelf.%Simple.WithSelf.G (constants.%Simple.WithSelf.G.d0a)] {
// CHECK:STDOUT: %self.param_patt.loc16_8.1: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = value_param_pattern [symbolic = %self.param_patt.loc16_8.2 (constants.%self.param_patt.b93)]
// CHECK:STDOUT: %self.patt.loc16_8.1: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = at_binding_pattern self, %self.param_patt.loc16_8.1 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.b30)]
// CHECK:STDOUT: %self.patt.loc16_8.1: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = wrapper_binding_pattern self, %self.param_patt.loc16_8.1 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.25d)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Simple.WithSelf.G.%Self.as_type.loc16_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc16_8.1: type = splice_block %.loc16_8.2 [symbolic = %Self.as_type.loc16_8.1 (constants.%Self.as_type)] {
@@ -130,7 +130,7 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: impl @i32.as.Simple.impl: %i32 as %Simple.ref {
// CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_25.1: %i32.as.Simple.impl.G.type.321a2c.1 = fn_decl @i32.as.Simple.impl.G.loc24_25.1 [concrete = constants.%i32.as.Simple.impl.G.d407b2.1] {
// CHECK:STDOUT: %self.param_patt: <error> = value_param_pattern [concrete = <error>]
// CHECK:STDOUT: %self.patt: <error> = at_binding_pattern self, %self.param_patt [concrete = <error>]
// CHECK:STDOUT: %self.patt: <error> = wrapper_binding_pattern self, %self.param_patt [concrete = <error>]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: <error> = value_param call_param0
// CHECK:STDOUT: %Undeclared.ref: <error> = name_ref Undeclared, <error> [concrete = <error>]
@@ -138,7 +138,7 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %i32.as.Simple.impl.G.decl.loc24_25.2: %i32.as.Simple.impl.G.type.321a2c.2 = fn_decl @i32.as.Simple.impl.G.loc24_25.2 [concrete = constants.%i32.as.Simple.impl.G.d407b2.2] {
// CHECK:STDOUT: %.1: %pattern_type.6b6 = specific_constant constants.%self.param_patt.049, @Simple.WithSelf.G(constants.%Simple.facet) [concrete = constants.%self.param_patt.049]
// CHECK:STDOUT: %self.patt: %pattern_type.6b6 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f6c]
// CHECK:STDOUT: %self.patt: %pattern_type.6b6 = wrapper_binding_pattern self, %.1 [concrete = constants.%self.patt.aab]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %i32 = value_param call_param0
// CHECK:STDOUT: %self: %i32 = wrapper_binding self, %self.param
@@ -158,7 +158,7 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: %Self.as_type.loc16_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_8.1 [symbolic = %pattern_type (constants.%pattern_type.c62)]
// CHECK:STDOUT: %self.param_patt.loc16_8.2: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = value_param_pattern [symbolic = %self.param_patt.loc16_8.2 (constants.%self.param_patt.b93)]
// CHECK:STDOUT: %self.patt.loc16_8.2: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = at_binding_pattern self, %self.param_patt.loc16_8.2 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.b30)]
// CHECK:STDOUT: %self.patt.loc16_8.2: @Simple.WithSelf.G.%pattern_type (%pattern_type.c62) = wrapper_binding_pattern self, %self.param_patt.loc16_8.2 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.25d)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @Simple.WithSelf.G.%Self.as_type.loc16_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -198,7 +198,7 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c62
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.b93
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.b30
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.25d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) {
@@ -213,6 +213,6 @@ fn InstanceCall(n: i32) {
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%i32
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.049
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.f6c
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.aab
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -40,7 +40,7 @@ class C {
// CHECK:STDOUT: %Self: %GenericInterface.type.4e1 = symbolic_binding Self, 1 [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %x.param_patt: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.51d = at_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.51d = wrapper_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %GenericInterface.WithSelf.F.type: type = fn_type @GenericInterface.WithSelf.F, @GenericInterface.WithSelf(%T, %Self) [symbolic]
// CHECK:STDOUT: %GenericInterface.WithSelf.F: %GenericInterface.WithSelf.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %GenericInterface.assoc_type: type = assoc_entity_type @GenericInterface, @GenericInterface(%T) [symbolic]
@@ -87,7 +87,7 @@ class C {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %GenericInterface.WithSelf.F.decl: @GenericInterface.WithSelf.%GenericInterface.WithSelf.F.type (%GenericInterface.WithSelf.F.type) = fn_decl @GenericInterface.WithSelf.F [symbolic = @GenericInterface.WithSelf.%GenericInterface.WithSelf.F (constants.%GenericInterface.WithSelf.F)] {
// CHECK:STDOUT: %x.param_patt.loc16_9.1: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc16_9.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc16_9.1: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc16_9.1 [symbolic = %x.patt.loc16_9.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc16_9.1: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc16_9.1 [symbolic = %x.patt.loc16_9.2 (constants.%x.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: @GenericInterface.WithSelf.F.%T (%T) = value_param call_param0
// CHECK:STDOUT: %T.ref: type = name_ref T, @GenericInterface.%T.loc15_29.2 [symbolic = %T (constants.%T)]
@@ -120,7 +120,7 @@ class C {
// CHECK:STDOUT: impl: %Self.ref as %GenericInterface.type.loc24_53.2 {
// CHECK:STDOUT: %C.as.GenericInterface.impl.F.decl: @C.as.GenericInterface.impl.%C.as.GenericInterface.impl.F.type (%C.as.GenericInterface.impl.F.type) = fn_decl @C.as.GenericInterface.impl.F [symbolic = @C.as.GenericInterface.impl.%C.as.GenericInterface.impl.F (constants.%C.as.GenericInterface.impl.F)] {
// CHECK:STDOUT: %x.param_patt.loc25_18.1: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc25_18.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc25_18.1: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc25_18.1 [symbolic = %x.patt.loc25_18.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc25_18.1: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc25_18.1 [symbolic = %x.patt.loc25_18.2 (constants.%x.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: @C.as.GenericInterface.impl.F.%T (%T) = value_param call_param0
// CHECK:STDOUT: %T.ref: type = name_ref T, @C.as.GenericInterface.impl.%T.loc24_24.2 [symbolic = %T (constants.%T)]
@@ -165,7 +165,7 @@ class C {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)]
// CHECK:STDOUT: %x.param_patt.loc16_9.2: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc16_9.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc16_9.2: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc16_9.2 [symbolic = %x.patt.loc16_9.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc16_9.2: @GenericInterface.WithSelf.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc16_9.2 [symbolic = %x.patt.loc16_9.2 (constants.%x.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%x.param: @GenericInterface.WithSelf.F.%T (%T));
// CHECK:STDOUT: }
@@ -174,7 +174,7 @@ class C {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)]
// CHECK:STDOUT: %x.param_patt.loc25_18.2: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc25_18.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc25_18.2: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc25_18.2 [symbolic = %x.patt.loc25_18.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc25_18.2: @C.as.GenericInterface.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc25_18.2 [symbolic = %x.patt.loc25_18.2 (constants.%x.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic = %require_complete (constants.%require_complete)]
@@ -40,7 +40,7 @@ fn F(c: C) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -55,7 +55,7 @@ fn F(c: C) {
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref.loc28: type = name_ref C, file.%C.decl [concrete = constants.%C]
+10 -10
View File
@@ -247,7 +247,7 @@ class X {
// CHECK:STDOUT: %Self.as_type.0cf: type = facet_access_type %Self.cb6 [symbolic]
// CHECK:STDOUT: %pattern_type.52a: type = pattern_type %Self.as_type.0cf [symbolic]
// CHECK:STDOUT: %self.param_patt.241: %pattern_type.52a = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.104: %pattern_type.52a = at_binding_pattern self, %self.param_patt.241 [symbolic]
// CHECK:STDOUT: %self.patt.b15: %pattern_type.52a = wrapper_binding_pattern self, %self.param_patt.241 [symbolic]
// CHECK:STDOUT: %Z.WithSelf.Method.type.d41: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Self.cb6) [symbolic]
// CHECK:STDOUT: %Z.WithSelf.Method.ead: %Z.WithSelf.Method.type.d41 = struct_value () [symbolic]
// CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, @Z.WithSelf.%Z.WithSelf.Method.decl [concrete]
@@ -263,7 +263,7 @@ class X {
// CHECK:STDOUT: %Point.as.Z.impl.Zero: %Point.as.Z.impl.Zero.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.9d8: type = pattern_type %Point [concrete]
// CHECK:STDOUT: %self.param_patt.b38: %pattern_type.9d8 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.60a: %pattern_type.9d8 = at_binding_pattern self, %self.param_patt.b38 [concrete]
// CHECK:STDOUT: %self.patt.5e8: %pattern_type.9d8 = wrapper_binding_pattern self, %self.param_patt.b38 [concrete]
// CHECK:STDOUT: %Point.as.Z.impl.Method.type: type = fn_type @Point.as.Z.impl.Method [concrete]
// CHECK:STDOUT: %Point.as.Z.impl.Method: %Point.as.Z.impl.Method.type = struct_value () [concrete]
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, (%Z.impl_witness) [concrete]
@@ -318,7 +318,7 @@ class X {
// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.Zero.decl [concrete = constants.%assoc0.627]
// CHECK:STDOUT: %Z.WithSelf.Method.decl: @Z.WithSelf.%Z.WithSelf.Method.type (%Z.WithSelf.Method.type.d41) = fn_decl @Z.WithSelf.Method [symbolic = @Z.WithSelf.%Z.WithSelf.Method (constants.%Z.WithSelf.Method.ead)] {
// CHECK:STDOUT: %self.param_patt.loc5_13.1: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = value_param_pattern [symbolic = %self.param_patt.loc5_13.2 (constants.%self.param_patt.241)]
// CHECK:STDOUT: %self.patt.loc5_13.1: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = at_binding_pattern self, %self.param_patt.loc5_13.1 [symbolic = %self.patt.loc5_13.2 (constants.%self.patt.104)]
// CHECK:STDOUT: %self.patt.loc5_13.1: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = wrapper_binding_pattern self, %self.param_patt.loc5_13.1 [symbolic = %self.patt.loc5_13.2 (constants.%self.patt.b15)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Z.WithSelf.Method.%Self.as_type.loc5_13.1 (%Self.as_type.0cf) = value_param call_param0
// CHECK:STDOUT: %.loc5_13.1: type = splice_block %.loc5_13.2 [symbolic = %Self.as_type.loc5_13.1 (constants.%Self.as_type.0cf)] {
@@ -357,7 +357,7 @@ class X {
// CHECK:STDOUT: %<error>.as.Z.impl.Zero.decl: @<error>.as.Z.impl.%<error>.as.Z.impl.Zero.type (%<error>.as.Z.impl.Zero.type) = fn_decl @<error>.as.Z.impl.Zero [symbolic = @<error>.as.Z.impl.%<error>.as.Z.impl.Zero (constants.%<error>.as.Z.impl.Zero)] {} {}
// CHECK:STDOUT: %<error>.as.Z.impl.Method.decl: @<error>.as.Z.impl.%<error>.as.Z.impl.Method.type (%<error>.as.Z.impl.Method.type) = fn_decl @<error>.as.Z.impl.Method [symbolic = @<error>.as.Z.impl.%<error>.as.Z.impl.Method (constants.%<error>.as.Z.impl.Method)] {
// CHECK:STDOUT: %self.param_patt.loc13_22.1: @<error>.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = value_param_pattern [symbolic = %self.param_patt.loc13_22.2 (constants.%self.param_patt.241)]
// CHECK:STDOUT: %self.patt.loc13_22.1: @<error>.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = at_binding_pattern self, %self.param_patt.loc13_22.1 [symbolic = %self.patt.loc13_22.2 (constants.%self.patt.104)]
// CHECK:STDOUT: %self.patt.loc13_22.1: @<error>.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = wrapper_binding_pattern self, %self.param_patt.loc13_22.1 [symbolic = %self.patt.loc13_22.2 (constants.%self.patt.b15)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @<error>.as.Z.impl.Method.%Self.as_type.loc13_22.1 (%Self.as_type.0cf) = value_param call_param0
// CHECK:STDOUT: %.loc13_22.1: type = splice_block %.loc13_22.2 [symbolic = %Self.as_type.loc13_22.1 (constants.%Self.as_type.0cf)] {
@@ -380,7 +380,7 @@ class X {
// CHECK:STDOUT: %Point.as.Z.impl.Zero.decl: %Point.as.Z.impl.Zero.type = fn_decl @Point.as.Z.impl.Zero [concrete = constants.%Point.as.Z.impl.Zero] {} {}
// CHECK:STDOUT: %Point.as.Z.impl.Method.decl: %Point.as.Z.impl.Method.type = fn_decl @Point.as.Z.impl.Method [concrete = constants.%Point.as.Z.impl.Method] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9d8 = value_param_pattern [concrete = constants.%self.param_patt.b38]
// CHECK:STDOUT: %self.patt: %pattern_type.9d8 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.60a]
// CHECK:STDOUT: %self.patt: %pattern_type.9d8 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.5e8]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Point = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Point [concrete = constants.%Point]
@@ -419,7 +419,7 @@ class X {
// CHECK:STDOUT: %Self.as_type.loc5_13.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_13.1 (constants.%Self.as_type.0cf)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_13.1 [symbolic = %pattern_type (constants.%pattern_type.52a)]
// CHECK:STDOUT: %self.param_patt.loc5_13.2: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = value_param_pattern [symbolic = %self.param_patt.loc5_13.2 (constants.%self.param_patt.241)]
// CHECK:STDOUT: %self.patt.loc5_13.2: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = at_binding_pattern self, %self.param_patt.loc5_13.2 [symbolic = %self.patt.loc5_13.2 (constants.%self.patt.104)]
// CHECK:STDOUT: %self.patt.loc5_13.2: @Z.WithSelf.Method.%pattern_type (%pattern_type.52a) = wrapper_binding_pattern self, %self.param_patt.loc5_13.2 [symbolic = %self.patt.loc5_13.2 (constants.%self.patt.b15)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.Method.%Self.as_type.loc5_13.1 (%Self.as_type.0cf));
// CHECK:STDOUT: }
@@ -438,7 +438,7 @@ class X {
// CHECK:STDOUT: %Self.as_type.loc13_22.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_22.1 (constants.%Self.as_type.0cf)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc13_22.1 [symbolic = %pattern_type (constants.%pattern_type.52a)]
// CHECK:STDOUT: %self.param_patt.loc13_22.2: @<error>.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = value_param_pattern [symbolic = %self.param_patt.loc13_22.2 (constants.%self.param_patt.241)]
// CHECK:STDOUT: %self.patt.loc13_22.2: @<error>.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = at_binding_pattern self, %self.param_patt.loc13_22.2 [symbolic = %self.patt.loc13_22.2 (constants.%self.patt.104)]
// CHECK:STDOUT: %self.patt.loc13_22.2: @<error>.as.Z.impl.Method.%pattern_type (%pattern_type.52a) = wrapper_binding_pattern self, %self.param_patt.loc13_22.2 [symbolic = %self.patt.loc13_22.2 (constants.%self.patt.b15)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.loc13_22.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -507,7 +507,7 @@ class X {
// CHECK:STDOUT: %Self.as_type.loc5_13.1 => constants.%Self.as_type.0cf
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52a
// CHECK:STDOUT: %self.param_patt.loc5_13.2 => constants.%self.param_patt.241
// CHECK:STDOUT: %self.patt.loc5_13.2 => constants.%self.patt.104
// CHECK:STDOUT: %self.patt.loc5_13.2 => constants.%self.patt.b15
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @<error>.as.Z.impl(constants.%Self.cb6) {
@@ -526,7 +526,7 @@ class X {
// CHECK:STDOUT: %Self.as_type.loc13_22.1 => constants.%Self.as_type.0cf
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52a
// CHECK:STDOUT: %self.param_patt.loc13_22.2 => constants.%self.param_patt.241
// CHECK:STDOUT: %self.patt.loc13_22.2 => constants.%self.patt.104
// CHECK:STDOUT: %self.patt.loc13_22.2 => constants.%self.patt.b15
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) {
@@ -545,7 +545,7 @@ class X {
// CHECK:STDOUT: %Self.as_type.loc5_13.1 => constants.%Point
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9d8
// CHECK:STDOUT: %self.param_patt.loc5_13.2 => constants.%self.param_patt.b38
// CHECK:STDOUT: %self.patt.loc5_13.2 => constants.%self.patt.60a
// CHECK:STDOUT: %self.patt.loc5_13.2 => constants.%self.patt.5e8
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- fail_impl_as_other_interface.carbon
+44 -44
View File
@@ -267,7 +267,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %I.impl_witness.0d1: <witness> = impl_witness @FExtraParam.as.I.impl.%I.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete]
// CHECK:STDOUT: %b.param_patt.792: %pattern_type.831 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt.4e2: %pattern_type.831 = at_binding_pattern b, %b.param_patt.792 [concrete]
// CHECK:STDOUT: %b.patt.d80: %pattern_type.831 = wrapper_binding_pattern b, %b.param_patt.792 [concrete]
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.type.ec7b0b.1: type = fn_type @FExtraParam.as.I.impl.F.loc69_18.1 [concrete]
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.ef9801.1: %FExtraParam.as.I.impl.F.type.ec7b0b.1 = struct_value () [concrete]
// CHECK:STDOUT: %I.facet.476: %I.type = facet_value %FExtraParam, (%I.impl_witness.0d1) [concrete]
@@ -280,7 +280,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %I.impl_witness.989: <witness> = impl_witness @FExtraImplicitParam.as.I.impl.%I.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.54d: type = pattern_type %FExtraImplicitParam [concrete]
// CHECK:STDOUT: %self.param_patt.f41: %pattern_type.54d = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.3d5: %pattern_type.54d = at_binding_pattern self, %self.param_patt.f41 [concrete]
// CHECK:STDOUT: %self.patt.cca: %pattern_type.54d = wrapper_binding_pattern self, %self.param_patt.f41 [concrete]
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1: type = fn_type @FExtraImplicitParam.as.I.impl.F.loc85_15.1 [concrete]
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.a42f35.1: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1 = struct_value () [concrete]
// CHECK:STDOUT: %I.facet.7ed: %I.type = facet_value %FExtraImplicitParam, (%I.impl_witness.989) [concrete]
@@ -302,7 +302,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete]
// CHECK:STDOUT: %Self.653: %J.type = symbolic_binding Self, 0 [symbolic]
// CHECK:STDOUT: %self.param_patt.210: %pattern_type.831 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f7d: %pattern_type.831 = at_binding_pattern self, %self.param_patt.210 [concrete]
// CHECK:STDOUT: %self.patt.3a9: %pattern_type.831 = wrapper_binding_pattern self, %self.param_patt.210 [concrete]
// CHECK:STDOUT: %J.WithSelf.F.type.a0a: type = fn_type @J.WithSelf.F, @J.WithSelf(%Self.653) [symbolic]
// CHECK:STDOUT: %J.WithSelf.F.f69: %J.WithSelf.F.type.a0a = struct_value () [symbolic]
// CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete]
@@ -351,7 +351,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %J.impl_witness.9e2: <witness> = impl_witness @FDifferentParamType.as.J.impl.%J.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.5d3: type = pattern_type %FDifferentParamType [concrete]
// CHECK:STDOUT: %b.param_patt.0a8: %pattern_type.5d3 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt.05d: %pattern_type.5d3 = at_binding_pattern b, %b.param_patt.0a8 [concrete]
// CHECK:STDOUT: %b.patt.f7e: %pattern_type.5d3 = wrapper_binding_pattern b, %b.param_patt.0a8 [concrete]
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1: type = fn_type @FDifferentParamType.as.J.impl.F.loc163_38.1 [concrete]
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.28602a.1: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1 = struct_value () [concrete]
// CHECK:STDOUT: %J.facet.73e: %J.type = facet_value %FDifferentParamType, (%J.impl_witness.9e2) [concrete]
@@ -367,7 +367,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %J.impl_witness.d1a: <witness> = impl_witness @FDifferentImplicitParamType.as.J.impl.%J.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.1bc: type = pattern_type %FDifferentImplicitParamType [concrete]
// CHECK:STDOUT: %self.param_patt.ea6: %pattern_type.1bc = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.a07: %pattern_type.1bc = at_binding_pattern self, %self.param_patt.ea6 [concrete]
// CHECK:STDOUT: %self.patt.85b: %pattern_type.1bc = wrapper_binding_pattern self, %self.param_patt.ea6 [concrete]
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1: type = fn_type @FDifferentImplicitParamType.as.J.impl.F.loc176_32.1 [concrete]
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.792c78.1: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1 = struct_value () [concrete]
// CHECK:STDOUT: %J.facet.00a: %J.type = facet_value %FDifferentImplicitParamType, (%J.impl_witness.d1a) [concrete]
@@ -406,7 +406,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type.c49: type = tuple_type (%ptr.a16, %struct_type.x.y.4c5) [symbolic]
// CHECK:STDOUT: %pattern_type.60a: type = pattern_type %tuple.type.c49 [symbolic]
// CHECK:STDOUT: %x.param_patt.e85: %pattern_type.60a = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.ad4: %pattern_type.60a = at_binding_pattern x, %x.param_patt.e85 [symbolic]
// CHECK:STDOUT: %x.patt.6af: %pattern_type.60a = wrapper_binding_pattern x, %x.param_patt.e85 [symbolic]
// CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete]
// CHECK:STDOUT: %array_type.4e4: type = array_type %int_4, %Self.as_type.8ab [symbolic]
// CHECK:STDOUT: %.f45: Core.Form = init_form %array_type.4e4 [symbolic]
@@ -426,7 +426,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type.e57: type = tuple_type (%ptr.52e, %struct_type.x.y.fb8) [concrete]
// CHECK:STDOUT: %pattern_type.a68: type = pattern_type %tuple.type.e57 [concrete]
// CHECK:STDOUT: %x.param_patt.140: %pattern_type.a68 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.19e: %pattern_type.a68 = at_binding_pattern x, %x.param_patt.140 [concrete]
// CHECK:STDOUT: %x.patt.870: %pattern_type.a68 = wrapper_binding_pattern x, %x.param_patt.140 [concrete]
// CHECK:STDOUT: %array_type.291: type = array_type %int_4, %SelfNestedBadParam [concrete]
// CHECK:STDOUT: %.cc2: Core.Form = init_form %array_type.291 [concrete]
// CHECK:STDOUT: %pattern_type.3a0: type = pattern_type %array_type.291 [concrete]
@@ -442,7 +442,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type.9ab: type = tuple_type (%ptr.52e, %struct_type.x.y.da2) [concrete]
// CHECK:STDOUT: %pattern_type.94f: type = pattern_type %tuple.type.9ab [concrete]
// CHECK:STDOUT: %x.param_patt.7b9: %pattern_type.94f = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.4b4: %pattern_type.94f = at_binding_pattern x, %x.param_patt.7b9 [concrete]
// CHECK:STDOUT: %x.patt.961: %pattern_type.94f = wrapper_binding_pattern x, %x.param_patt.7b9 [concrete]
// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.2: type = fn_type @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.2 [concrete]
// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.5fd896.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.2 = struct_value () [concrete]
// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete]
@@ -457,7 +457,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type.829: type = tuple_type (%ptr.f55, %struct_type.x.y.f6a) [concrete]
// CHECK:STDOUT: %pattern_type.5c2: type = pattern_type %tuple.type.829 [concrete]
// CHECK:STDOUT: %x.param_patt.7be: %pattern_type.5c2 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.ef5: %pattern_type.5c2 = at_binding_pattern x, %x.param_patt.7be [concrete]
// CHECK:STDOUT: %x.patt.608: %pattern_type.5c2 = wrapper_binding_pattern x, %x.param_patt.7be [concrete]
// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1: type = fn_type @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.1 [concrete]
// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1 = struct_value () [concrete]
// CHECK:STDOUT: %SelfNested.facet.e71: %SelfNested.type = facet_value %SelfNestedBadReturnType, (%SelfNested.impl_witness.849) [concrete]
@@ -555,9 +555,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.a0a) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.f69)] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete = constants.%return.param_patt.5a1]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc103_44.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -589,7 +589,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.702) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.eec)] {
// CHECK:STDOUT: %x.param_patt.loc199_9.1: @SelfNested.WithSelf.F.%pattern_type.loc199_9 (%pattern_type.60a) = value_param_pattern [symbolic = %x.param_patt.loc199_9.2 (constants.%x.param_patt.e85)]
// CHECK:STDOUT: %x.patt.loc199_9.1: @SelfNested.WithSelf.F.%pattern_type.loc199_9 (%pattern_type.60a) = at_binding_pattern x, %x.param_patt.loc199_9.1 [symbolic = %x.patt.loc199_9.2 (constants.%x.patt.ad4)]
// CHECK:STDOUT: %x.patt.loc199_9.1: @SelfNested.WithSelf.F.%pattern_type.loc199_9 (%pattern_type.60a) = wrapper_binding_pattern x, %x.param_patt.loc199_9.1 [symbolic = %x.patt.loc199_9.2 (constants.%x.patt.6af)]
// CHECK:STDOUT: %return.param_patt.loc199_57.1: @SelfNested.WithSelf.F.%pattern_type.loc199_57 (%pattern_type.2ab) = out_param_pattern [symbolic = %return.param_patt.loc199_57.2 (constants.%return.param_patt.439)]
// CHECK:STDOUT: %return.patt.loc199_41.1: @SelfNested.WithSelf.F.%pattern_type.loc199_57 (%pattern_type.2ab) = return_slot_pattern %return.param_patt.loc199_57.1, %array_type.loc199_57.2 [symbolic = %return.patt.loc199_41.2 (constants.%return.patt.869)]
// CHECK:STDOUT: } {
@@ -666,7 +666,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FExtraParam.as.I.impl: %Self.ref as %I.ref {
// CHECK:STDOUT: %FExtraParam.as.I.impl.F.decl.loc69_18.1: %FExtraParam.as.I.impl.F.type.ec7b0b.1 = fn_decl @FExtraParam.as.I.impl.F.loc69_18.1 [concrete = constants.%FExtraParam.as.I.impl.F.ef9801.1] {
// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %b.param: bool = value_param call_param0
// CHECK:STDOUT: %.loc69: type = type_literal bool [concrete = bool]
@@ -685,7 +685,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FExtraImplicitParam.as.I.impl: %Self.ref as %I.ref {
// CHECK:STDOUT: %FExtraImplicitParam.as.I.impl.F.decl.loc85_15.1: %FExtraImplicitParam.as.I.impl.F.type.54cac2.1 = fn_decl @FExtraImplicitParam.as.I.impl.F.loc85_15.1 [concrete = constants.%FExtraImplicitParam.as.I.impl.F.a42f35.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.54d = value_param_pattern [concrete = constants.%self.param_patt.f41]
// CHECK:STDOUT: %self.patt: %pattern_type.54d = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.3d5]
// CHECK:STDOUT: %self.patt: %pattern_type.54d = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cca]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %FExtraImplicitParam = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%FExtraImplicitParam [concrete = constants.%FExtraImplicitParam]
@@ -723,7 +723,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FMissingParam.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_29.1: %FMissingParam.as.J.impl.F.type.aad6ec.1 = fn_decl @FMissingParam.as.J.impl.F.loc117_29.1 [concrete = constants.%FMissingParam.as.J.impl.F.dd09dc.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete = constants.%return.param_patt.5a1]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc117_25.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -739,9 +739,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%.f34]
// CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_29.2: %FMissingParam.as.J.impl.F.type.aad6ec.2 = fn_decl @FMissingParam.as.J.impl.F.loc117_29.2 [concrete = constants.%FMissingParam.as.J.impl.F.dd09dc.2] {
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %.1 [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %.2 [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.2a3) [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: bool = value_param call_param0
@@ -763,7 +763,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FMissingImplicitParam.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.1: %FMissingImplicitParam.as.J.impl.F.type.f666a8.1 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.1 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.620ed1.1] {
// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete = constants.%return.param_patt.5a1]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc130_22.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -779,9 +779,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%.f34]
// CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2: %FMissingImplicitParam.as.J.impl.F.type.f666a8.2 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.620ed1.2] {
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %.1 [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %.2 [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.ba1) [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: bool = value_param call_param0
@@ -803,9 +803,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FMissingReturnType.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc148_30.1: %FMissingReturnType.as.J.impl.F.type.9cd56a.1 = fn_decl @FMissingReturnType.as.J.impl.F.loc148_30.1 [concrete = constants.%FMissingReturnType.as.J.impl.F.6975be.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: bool = value_param call_param0
// CHECK:STDOUT: %.loc148_16: type = type_literal bool [concrete = bool]
@@ -818,9 +818,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%.f34]
// CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc148_30.2: %FMissingReturnType.as.J.impl.F.type.9cd56a.2 = fn_decl @FMissingReturnType.as.J.impl.F.loc148_30.2 [concrete = constants.%FMissingReturnType.as.J.impl.F.6975be.2] {
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %.1 [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %.2 [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.b68) [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: bool = value_param call_param0
@@ -842,9 +842,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FDifferentParamType.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc163_38.1: %FDifferentParamType.as.J.impl.F.type.4a2e9b.1 = fn_decl @FDifferentParamType.as.J.impl.F.loc163_38.1 [concrete = constants.%FDifferentParamType.as.J.impl.F.28602a.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %b.param_patt: %pattern_type.5d3 = value_param_pattern [concrete = constants.%b.param_patt.0a8]
// CHECK:STDOUT: %b.patt: %pattern_type.5d3 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.05d]
// CHECK:STDOUT: %b.patt: %pattern_type.5d3 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.f7e]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete = constants.%return.param_patt.5a1]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc163_34.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -863,9 +863,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%.f34]
// CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc163_38.2: %FDifferentParamType.as.J.impl.F.type.4a2e9b.2 = fn_decl @FDifferentParamType.as.J.impl.F.loc163_38.2 [concrete = constants.%FDifferentParamType.as.J.impl.F.28602a.2] {
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %.1 [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %.2 [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.73e) [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: bool = value_param call_param0
@@ -887,9 +887,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FDifferentImplicitParamType.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.1: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.1 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc176_32.1 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.792c78.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.1bc = value_param_pattern [concrete = constants.%self.param_patt.ea6]
// CHECK:STDOUT: %self.patt: %pattern_type.1bc = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.a07]
// CHECK:STDOUT: %self.patt: %pattern_type.1bc = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.85b]
// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete = constants.%return.param_patt.5a1]
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc176_28.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -908,9 +908,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%.f34]
// CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc176_32.2: %FDifferentImplicitParamType.as.J.impl.F.type.6ef8a6.2 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc176_32.2 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.792c78.2] {
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %.1 [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %.2 [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.00a) [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: bool = value_param call_param0
@@ -932,9 +932,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @FDifferentReturnType.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc194_38.1: %FDifferentReturnType.as.J.impl.F.type.ff55f4.1 = fn_decl @FDifferentReturnType.as.J.impl.F.loc194_38.1 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9725a5.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %b.param_patt: %pattern_type.831 = value_param_pattern [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %return.param_patt: %pattern_type.b9f = out_param_pattern [concrete = constants.%return.param_patt.f37]
// CHECK:STDOUT: %return.patt: %pattern_type.b9f = return_slot_pattern %return.param_patt, %Self.ref [concrete = constants.%return.patt.e4f]
// CHECK:STDOUT: } {
@@ -953,9 +953,9 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc103_44.2: Core.Form = specific_constant @J.WithSelf.F.%.loc103_44.2, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%.f34]
// CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc194_38.2: %FDifferentReturnType.as.J.impl.F.type.ff55f4.2 = fn_decl @FDifferentReturnType.as.J.impl.F.loc194_38.2 [concrete = constants.%FDifferentReturnType.as.J.impl.F.9725a5.2] {
// CHECK:STDOUT: %.1: %pattern_type.831 = specific_constant constants.%self.param_patt.210, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%self.param_patt.210]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = at_binding_pattern self, %.1 [concrete = constants.%self.patt.f7d]
// CHECK:STDOUT: %self.patt: %pattern_type.831 = wrapper_binding_pattern self, %.1 [concrete = constants.%self.patt.3a9]
// CHECK:STDOUT: %.2: %pattern_type.831 = specific_constant constants.%b.param_patt.792, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%b.param_patt.792]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = at_binding_pattern b, %.2 [concrete = constants.%b.patt.4e2]
// CHECK:STDOUT: %b.patt: %pattern_type.831 = wrapper_binding_pattern b, %.2 [concrete = constants.%b.patt.d80]
// CHECK:STDOUT: %.3: %pattern_type.831 = specific_constant constants.%return.patt.c0c, @J.WithSelf.F(constants.%J.facet.6a7) [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: bool = value_param call_param0
@@ -977,7 +977,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @SelfNestedBadParam.as.SelfNested.impl: %Self.ref as %SelfNested.ref {
// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc211_87.1: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.1 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.1 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.5fd896.1] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.a68 = value_param_pattern [concrete = constants.%x.param_patt.140]
// CHECK:STDOUT: %x.patt: %pattern_type.a68 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.19e]
// CHECK:STDOUT: %x.patt: %pattern_type.a68 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.870]
// CHECK:STDOUT: %return.param_patt: %pattern_type.3a0 = out_param_pattern [concrete = constants.%return.param_patt.489]
// CHECK:STDOUT: %return.patt: %pattern_type.3a0 = return_slot_pattern %return.param_patt, %array_type [concrete = constants.%return.patt.98a]
// CHECK:STDOUT: } {
@@ -1003,7 +1003,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc199_57.2: Core.Form = specific_constant @SelfNested.WithSelf.F.%.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) [concrete = constants.%.cc2]
// CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc211_87.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.4325e7.2 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc211_87.2 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.5fd896.2] {
// CHECK:STDOUT: %.1: %pattern_type.94f = specific_constant constants.%x.param_patt.7b9, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) [concrete = constants.%x.param_patt.7b9]
// CHECK:STDOUT: %x.patt: %pattern_type.94f = at_binding_pattern x, %.1 [concrete = constants.%x.patt.4b4]
// CHECK:STDOUT: %x.patt: %pattern_type.94f = wrapper_binding_pattern x, %.1 [concrete = constants.%x.patt.961]
// CHECK:STDOUT: %.2: %pattern_type.3a0 = specific_constant constants.%return.patt.98a, @SelfNested.WithSelf.F(constants.%SelfNested.facet.d0d) [concrete = constants.%return.patt.98a]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %tuple.type.9ab = value_param call_param0
@@ -1024,7 +1024,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: impl @SelfNestedBadReturnType.as.SelfNested.impl: %Self.ref as %SelfNested.ref {
// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc227_112.1: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.1 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.1 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.1] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.5c2 = value_param_pattern [concrete = constants.%x.param_patt.7be]
// CHECK:STDOUT: %x.patt: %pattern_type.5c2 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.ef5]
// CHECK:STDOUT: %x.patt: %pattern_type.5c2 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.608]
// CHECK:STDOUT: %return.param_patt: %pattern_type.3a0 = out_param_pattern [concrete = constants.%return.param_patt.489]
// CHECK:STDOUT: %return.patt: %pattern_type.3a0 = return_slot_pattern %return.param_patt, %array_type [concrete = constants.%return.patt.98a]
// CHECK:STDOUT: } {
@@ -1050,7 +1050,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %.loc199_57.2: Core.Form = specific_constant @SelfNested.WithSelf.F.%.loc199_57.2, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) [concrete = constants.%.442]
// CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc227_112.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.1cbabe.2 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc227_112.2 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.5a7d54.2] {
// CHECK:STDOUT: %.1: %pattern_type.5c2 = specific_constant constants.%x.param_patt.7be, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) [concrete = constants.%x.param_patt.7be]
// CHECK:STDOUT: %x.patt: %pattern_type.5c2 = at_binding_pattern x, %.1 [concrete = constants.%x.patt.ef5]
// CHECK:STDOUT: %x.patt: %pattern_type.5c2 = wrapper_binding_pattern x, %.1 [concrete = constants.%x.patt.608]
// CHECK:STDOUT: %.2: %pattern_type.f0d = specific_constant constants.%return.patt.3c4, @SelfNested.WithSelf.F(constants.%SelfNested.facet.e71) [concrete = constants.%return.patt.3c4]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %tuple.type.829 = value_param call_param0
@@ -1377,7 +1377,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc199_16.1, %struct_type.x.y.loc199_37.1) [symbolic = %tuple.type (constants.%tuple.type.c49)]
// CHECK:STDOUT: %pattern_type.loc199_9: type = pattern_type %tuple.type [symbolic = %pattern_type.loc199_9 (constants.%pattern_type.60a)]
// CHECK:STDOUT: %x.param_patt.loc199_9.2: @SelfNested.WithSelf.F.%pattern_type.loc199_9 (%pattern_type.60a) = value_param_pattern [symbolic = %x.param_patt.loc199_9.2 (constants.%x.param_patt.e85)]
// CHECK:STDOUT: %x.patt.loc199_9.2: @SelfNested.WithSelf.F.%pattern_type.loc199_9 (%pattern_type.60a) = at_binding_pattern x, %x.param_patt.loc199_9.2 [symbolic = %x.patt.loc199_9.2 (constants.%x.patt.ad4)]
// CHECK:STDOUT: %x.patt.loc199_9.2: @SelfNested.WithSelf.F.%pattern_type.loc199_9 (%pattern_type.60a) = wrapper_binding_pattern x, %x.param_patt.loc199_9.2 [symbolic = %x.patt.loc199_9.2 (constants.%x.patt.6af)]
// CHECK:STDOUT: %array_type.loc199_57.1: type = array_type constants.%int_4, %Self.as_type.loc199_16.1 [symbolic = %array_type.loc199_57.1 (constants.%array_type.4e4)]
// CHECK:STDOUT: %.loc199_57.1: Core.Form = init_form %array_type.loc199_57.1 [symbolic = %.loc199_57.1 (constants.%.f45)]
// CHECK:STDOUT: %pattern_type.loc199_57: type = pattern_type %array_type.loc199_57.1 [symbolic = %pattern_type.loc199_57 (constants.%pattern_type.2ab)]
@@ -1551,7 +1551,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.c49
// CHECK:STDOUT: %pattern_type.loc199_9 => constants.%pattern_type.60a
// CHECK:STDOUT: %x.param_patt.loc199_9.2 => constants.%x.param_patt.e85
// CHECK:STDOUT: %x.patt.loc199_9.2 => constants.%x.patt.ad4
// CHECK:STDOUT: %x.patt.loc199_9.2 => constants.%x.patt.6af
// CHECK:STDOUT: %array_type.loc199_57.1 => constants.%array_type.4e4
// CHECK:STDOUT: %.loc199_57.1 => constants.%.f45
// CHECK:STDOUT: %pattern_type.loc199_57 => constants.%pattern_type.2ab
@@ -1575,7 +1575,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.9ab
// CHECK:STDOUT: %pattern_type.loc199_9 => constants.%pattern_type.94f
// CHECK:STDOUT: %x.param_patt.loc199_9.2 => constants.%x.param_patt.7b9
// CHECK:STDOUT: %x.patt.loc199_9.2 => constants.%x.patt.4b4
// CHECK:STDOUT: %x.patt.loc199_9.2 => constants.%x.patt.961
// CHECK:STDOUT: %array_type.loc199_57.1 => constants.%array_type.291
// CHECK:STDOUT: %.loc199_57.1 => constants.%.cc2
// CHECK:STDOUT: %pattern_type.loc199_57 => constants.%pattern_type.3a0
@@ -1599,7 +1599,7 @@ class SelfNestedBadReturnType {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.829
// CHECK:STDOUT: %pattern_type.loc199_9 => constants.%pattern_type.5c2
// CHECK:STDOUT: %x.param_patt.loc199_9.2 => constants.%x.param_patt.7be
// CHECK:STDOUT: %x.patt.loc199_9.2 => constants.%x.patt.ef5
// CHECK:STDOUT: %x.patt.loc199_9.2 => constants.%x.patt.608
// CHECK:STDOUT: %array_type.loc199_57.1 => constants.%array_type.a08
// CHECK:STDOUT: %.loc199_57.1 => constants.%.442
// CHECK:STDOUT: %pattern_type.loc199_57 => constants.%pattern_type.f0d
+12 -12
View File
@@ -63,7 +63,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.a21: type = class_type @C, @C(%I.type, %Self.37e) [symbolic]
// CHECK:STDOUT: %pattern_type.59c: type = pattern_type %C.a21 [symbolic]
// CHECK:STDOUT: %c.param_patt.397: %pattern_type.59c = value_param_pattern [symbolic]
// CHECK:STDOUT: %c.patt.dac: %pattern_type.59c = at_binding_pattern c, %c.param_patt.397 [symbolic]
// CHECK:STDOUT: %c.patt.d27: %pattern_type.59c = wrapper_binding_pattern c, %c.param_patt.397 [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.type.dcc: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.ec6: %I.WithSelf.F.type.dcc = struct_value () [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
@@ -74,7 +74,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.a2c: type = class_type @C, @C(%I.type, %I.facet.31d) [concrete]
// CHECK:STDOUT: %pattern_type.221: type = pattern_type %C.a2c [concrete]
// CHECK:STDOUT: %c.param_patt.eba: %pattern_type.221 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.ebd: %pattern_type.221 = at_binding_pattern c, %c.param_patt.eba [concrete]
// CHECK:STDOUT: %c.patt.1ff: %pattern_type.221 = wrapper_binding_pattern c, %c.param_patt.eba [concrete]
// CHECK:STDOUT: %bool.as.I.impl.F.type: type = fn_type @bool.as.I.impl.F [concrete]
// CHECK:STDOUT: %bool.as.I.impl.F: %bool.as.I.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %I.WithSelf.F.type.158: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.31d) [concrete]
@@ -89,7 +89,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.8dc: type = class_type @C, @C(type, %i32) [concrete]
// CHECK:STDOUT: %pattern_type.900: type = pattern_type %C.8dc [concrete]
// CHECK:STDOUT: %c.param_patt.e0e: %pattern_type.900 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.c85: %pattern_type.900 = at_binding_pattern c, %c.param_patt.e0e [concrete]
// CHECK:STDOUT: %c.patt.831: %pattern_type.900 = wrapper_binding_pattern c, %c.param_patt.e0e [concrete]
// CHECK:STDOUT: %i32.as.I.impl.F.type.48cdab.1: type = fn_type @i32.as.I.impl.F.loc39_18.1 [concrete]
// CHECK:STDOUT: %i32.as.I.impl.F.bd5be1.1: %i32.as.I.impl.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %I.facet.190: %I.type = facet_value %i32, (%I.impl_witness.8f5) [concrete]
@@ -98,7 +98,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.1e0: type = class_type @C, @C(%I.type, %I.facet.190) [concrete]
// CHECK:STDOUT: %pattern_type.03a: type = pattern_type %C.1e0 [concrete]
// CHECK:STDOUT: %c.param_patt.322: %pattern_type.03a = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.994: %pattern_type.03a = at_binding_pattern c, %c.param_patt.322 [concrete]
// CHECK:STDOUT: %c.patt.360: %pattern_type.03a = wrapper_binding_pattern c, %c.param_patt.322 [concrete]
// CHECK:STDOUT: %i32.as.I.impl.F.type.48cdab.2: type = fn_type @i32.as.I.impl.F.loc39_18.2 [concrete]
// CHECK:STDOUT: %i32.as.I.impl.F.bd5be1.2: %i32.as.I.impl.F.type.48cdab.2 = struct_value () [concrete]
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
@@ -173,7 +173,7 @@ impl i32 as I {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] {
// CHECK:STDOUT: %c.param_patt.loc21_9.1: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = value_param_pattern [symbolic = %c.param_patt.loc21_9.2 (constants.%c.param_patt.397)]
// CHECK:STDOUT: %c.patt.loc21_9.1: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = at_binding_pattern c, %c.param_patt.loc21_9.1 [symbolic = %c.patt.loc21_9.2 (constants.%c.patt.dac)]
// CHECK:STDOUT: %c.patt.loc21_9.1: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = wrapper_binding_pattern c, %c.param_patt.loc21_9.1 [symbolic = %c.patt.loc21_9.2 (constants.%c.patt.d27)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc21_17.1 (%C.a21) = value_param call_param0
// CHECK:STDOUT: %.loc21: type = splice_block %C.loc21_17.2 [symbolic = %C.loc21_17.1 (constants.%C.a21)] {
@@ -199,7 +199,7 @@ impl i32 as I {
// CHECK:STDOUT: impl @bool.as.I.impl: %.loc24 as %I.ref {
// CHECK:STDOUT: %bool.as.I.impl.F.decl: %bool.as.I.impl.F.type = fn_decl @bool.as.I.impl.F [concrete = constants.%bool.as.I.impl.F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.221 = value_param_pattern [concrete = constants.%c.param_patt.eba]
// CHECK:STDOUT: %c.patt: %pattern_type.221 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.ebd]
// CHECK:STDOUT: %c.patt: %pattern_type.221 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.1ff]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C.a2c = value_param call_param0
// CHECK:STDOUT: %.loc28_22: type = splice_block %C [concrete = constants.%C.a2c] {
@@ -226,7 +226,7 @@ impl i32 as I {
// CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %I.ref {
// CHECK:STDOUT: %i32.as.I.impl.F.decl.loc39_18.1: %i32.as.I.impl.F.type.48cdab.1 = fn_decl @i32.as.I.impl.F.loc39_18.1 [concrete = constants.%i32.as.I.impl.F.bd5be1.1] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.900 = value_param_pattern [concrete = constants.%c.param_patt.e0e]
// CHECK:STDOUT: %c.patt: %pattern_type.900 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.c85]
// CHECK:STDOUT: %c.patt: %pattern_type.900 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.831]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C.8dc = value_param call_param0
// CHECK:STDOUT: %.loc39: type = splice_block %C [concrete = constants.%C.8dc] {
@@ -238,7 +238,7 @@ impl i32 as I {
// CHECK:STDOUT: }
// CHECK:STDOUT: %i32.as.I.impl.F.decl.loc39_18.2: %i32.as.I.impl.F.type.48cdab.2 = fn_decl @i32.as.I.impl.F.loc39_18.2 [concrete = constants.%i32.as.I.impl.F.bd5be1.2] {
// CHECK:STDOUT: %.1: %pattern_type.03a = specific_constant constants.%c.param_patt.322, @I.WithSelf.F(constants.%I.facet.190) [concrete = constants.%c.param_patt.322]
// CHECK:STDOUT: %c.patt: %pattern_type.03a = at_binding_pattern c, %.1 [concrete = constants.%c.patt.994]
// CHECK:STDOUT: %c.patt: %pattern_type.03a = wrapper_binding_pattern c, %.1 [concrete = constants.%c.patt.360]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C.1e0 = value_param call_param0
// CHECK:STDOUT: %c: %C.1e0 = wrapper_binding c, %c.param
@@ -276,7 +276,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.loc21_17.1: type = class_type @C, @C(constants.%I.type, %Self) [symbolic = %C.loc21_17.1 (constants.%C.a21)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc21_17.1 [symbolic = %pattern_type (constants.%pattern_type.59c)]
// CHECK:STDOUT: %c.param_patt.loc21_9.2: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = value_param_pattern [symbolic = %c.param_patt.loc21_9.2 (constants.%c.param_patt.397)]
// CHECK:STDOUT: %c.patt.loc21_9.2: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = at_binding_pattern c, %c.param_patt.loc21_9.2 [symbolic = %c.patt.loc21_9.2 (constants.%c.patt.dac)]
// CHECK:STDOUT: %c.patt.loc21_9.2: @I.WithSelf.F.%pattern_type (%pattern_type.59c) = wrapper_binding_pattern c, %c.param_patt.loc21_9.2 [symbolic = %c.patt.loc21_9.2 (constants.%c.patt.d27)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%c.param: @I.WithSelf.F.%C.loc21_17.1 (%C.a21));
// CHECK:STDOUT: }
@@ -324,7 +324,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.loc21_17.1 => constants.%C.a21
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.59c
// CHECK:STDOUT: %c.param_patt.loc21_9.2 => constants.%c.param_patt.397
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.dac
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.d27
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.31d) {
@@ -347,7 +347,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.loc21_17.1 => constants.%C.a2c
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.221
// CHECK:STDOUT: %c.param_patt.loc21_9.2 => constants.%c.param_patt.eba
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.ebd
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.1ff
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C(type, constants.%i32) {
@@ -372,7 +372,7 @@ impl i32 as I {
// CHECK:STDOUT: %C.loc21_17.1 => constants.%C.1e0
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.03a
// CHECK:STDOUT: %c.param_patt.loc21_9.2 => constants.%c.param_patt.322
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.994
// CHECK:STDOUT: %c.patt.loc21_9.2 => constants.%c.patt.360
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C(constants.%I.type, constants.%I.facet.190) {
+12 -12
View File
@@ -1369,7 +1369,7 @@ impl C as Y {}
// CHECK:STDOUT: %C.c62: type = class_type @C, @C(%I.facet) [concrete]
// CHECK:STDOUT: %pattern_type.91a: type = pattern_type %C.c62 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.91a = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.91a = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.91a = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic]
@@ -1409,7 +1409,7 @@ impl C as Y {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl.loc8: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.91a = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.91a = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.91a = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param.loc8: %C.c62 = value_param call_param0
// CHECK:STDOUT: %.loc8_12.1: type = splice_block %C.loc8 [concrete = constants.%C.c62] {
@@ -1438,7 +1438,7 @@ impl C as Y {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl.loc14: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.91a = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.91a = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.91a = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param.loc14: %C.c62 = value_param call_param0
// CHECK:STDOUT: %.loc14_19.1: type = splice_block %C.loc14 [concrete = constants.%C.c62] {
@@ -1759,7 +1759,7 @@ impl C as Y {}
// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic]
// CHECK:STDOUT: %pattern_type.fa2: type = pattern_type %U.as_type [symbolic]
// CHECK:STDOUT: %u.param_patt.796: %pattern_type.fa2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %u.patt.dae: %pattern_type.fa2 = at_binding_pattern u, %u.param_patt.796 [symbolic]
// CHECK:STDOUT: %u.patt.41e: %pattern_type.fa2 = wrapper_binding_pattern u, %u.param_patt.796 [symbolic]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %C: type = class_type @C [concrete]
@@ -1771,13 +1771,13 @@ impl C as Y {}
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %H.type: type = fn_type @H [concrete]
// CHECK:STDOUT: %H: %H.type = struct_value () [concrete]
// CHECK:STDOUT: %X.facet: %X.type = facet_value %C, (%X.impl_witness) [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%X.facet) [concrete]
// CHECK:STDOUT: %u.param_patt.162: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %u.patt.0e4: %pattern_type.98b = at_binding_pattern u, %u.param_patt.162 [concrete]
// CHECK:STDOUT: %u.patt.05f: %pattern_type.98b = wrapper_binding_pattern u, %u.param_patt.162 [concrete]
// CHECK:STDOUT: %G.specific_fn: <specific function> = specific_function %G, @G(%X.facet) [concrete]
// CHECK:STDOUT: %Self.765: %Y.type = symbolic_binding Self, 0 [symbolic]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %U.as_type [symbolic]
@@ -1817,7 +1817,7 @@ impl C as Y {}
// CHECK:STDOUT: %G.decl.loc7: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %U.patt.loc35: %pattern_type.ffc = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc7 (constants.%U.patt)]
// CHECK:STDOUT: %u.param_patt.loc35: @G.%pattern_type (%pattern_type.fa2) = value_param_pattern [symbolic = %u.param_patt.loc7 (constants.%u.param_patt.796)]
// CHECK:STDOUT: %u.patt.loc35: @G.%pattern_type (%pattern_type.fa2) = at_binding_pattern u, %u.param_patt.loc35 [symbolic = %u.patt.loc7 (constants.%u.patt.dae)]
// CHECK:STDOUT: %u.patt.loc35: @G.%pattern_type (%pattern_type.fa2) = wrapper_binding_pattern u, %u.param_patt.loc35 [symbolic = %u.patt.loc7 (constants.%u.patt.41e)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc7_9: type = splice_block %X.ref.loc7 [concrete = constants.%X.type] {
// CHECK:STDOUT: %.Self.frozen.loc7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1843,7 +1843,7 @@ impl C as Y {}
// CHECK:STDOUT: %C.decl.loc23: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref.loc25: type = name_ref C, file.%C.decl.loc9 [concrete = constants.%C]
@@ -1862,7 +1862,7 @@ impl C as Y {}
// CHECK:STDOUT: %G.decl.loc35: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %U.patt.loc35: %pattern_type.ffc = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc7 (constants.%U.patt)]
// CHECK:STDOUT: %u.param_patt.loc35: @G.%pattern_type (%pattern_type.fa2) = value_param_pattern [symbolic = %u.param_patt.loc7 (constants.%u.param_patt.796)]
// CHECK:STDOUT: %u.patt.loc35: @G.%pattern_type (%pattern_type.fa2) = at_binding_pattern u, %u.param_patt.loc35 [symbolic = %u.patt.loc7 (constants.%u.patt.dae)]
// CHECK:STDOUT: %u.patt.loc35: @G.%pattern_type (%pattern_type.fa2) = wrapper_binding_pattern u, %u.param_patt.loc35 [symbolic = %u.patt.loc7 (constants.%u.patt.41e)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc35_9: type = splice_block %X.ref.loc35 [concrete = constants.%X.type] {
// CHECK:STDOUT: %.Self.frozen.loc35: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1960,7 +1960,7 @@ impl C as Y {}
// CHECK:STDOUT: %U.as_type.loc7_15.1: type = facet_access_type %U.loc7_7.1 [symbolic = %U.as_type.loc7_15.1 (constants.%U.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc7_15.1 [symbolic = %pattern_type (constants.%pattern_type.fa2)]
// CHECK:STDOUT: %u.param_patt.loc7: @G.%pattern_type (%pattern_type.fa2) = value_param_pattern [symbolic = %u.param_patt.loc7 (constants.%u.param_patt.796)]
// CHECK:STDOUT: %u.patt.loc7: @G.%pattern_type (%pattern_type.fa2) = at_binding_pattern u, %u.param_patt.loc7 [symbolic = %u.patt.loc7 (constants.%u.patt.dae)]
// CHECK:STDOUT: %u.patt.loc7: @G.%pattern_type (%pattern_type.fa2) = wrapper_binding_pattern u, %u.param_patt.loc7 [symbolic = %u.patt.loc7 (constants.%u.patt.41e)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %U.as_type.loc7_15.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -2001,7 +2001,7 @@ impl C as Y {}
// CHECK:STDOUT: %U.as_type.loc7_15.1 => constants.%U.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa2
// CHECK:STDOUT: %u.param_patt.loc7 => constants.%u.param_patt.796
// CHECK:STDOUT: %u.patt.loc7 => constants.%u.patt.dae
// CHECK:STDOUT: %u.patt.loc7 => constants.%u.patt.41e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @X.WithSelf(constants.%Self.b43) {
@@ -2021,7 +2021,7 @@ impl C as Y {}
// CHECK:STDOUT: %U.as_type.loc7_15.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %u.param_patt.loc7 => constants.%u.param_patt.162
// CHECK:STDOUT: %u.patt.loc7 => constants.%u.patt.0e4
// CHECK:STDOUT: %u.patt.loc7 => constants.%u.patt.05f
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
+42 -42
View File
@@ -360,7 +360,7 @@ impl () as I({}) {
// CHECK:STDOUT: %struct_type.b.a.40c: type = struct_type {.b: %empty_struct_type, .a: %empty_tuple.type} [concrete]
// CHECK:STDOUT: %pattern_type.231: type = pattern_type %struct_type.b.a.40c [concrete]
// CHECK:STDOUT: %y.param_patt: %pattern_type.231 = value_param_pattern [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.231 = at_binding_pattern y, %y.param_patt [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.231 = wrapper_binding_pattern y, %y.param_patt [concrete]
// CHECK:STDOUT: %struct_type.d.c.b36: type = struct_type {.d: %empty_struct_type, .c: %empty_tuple.type} [concrete]
// CHECK:STDOUT: %.4b1: Core.Form = init_form %struct_type.d.c.b36 [concrete]
// CHECK:STDOUT: %pattern_type.844: type = pattern_type %struct_type.d.c.b36 [concrete]
@@ -379,7 +379,7 @@ impl () as I({}) {
// CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref {
// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_48.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_48.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] {
// CHECK:STDOUT: %y.param_patt: %pattern_type.231 = value_param_pattern [concrete = constants.%y.param_patt]
// CHECK:STDOUT: %y.patt: %pattern_type.231 = at_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: %y.patt: %pattern_type.231 = wrapper_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.844 = out_param_pattern [concrete = constants.%return.param_patt.4a9]
// CHECK:STDOUT: %return.patt: %pattern_type.844 = return_slot_pattern %return.param_patt, %struct_type.d.c [concrete = constants.%return.patt.706]
// CHECK:STDOUT: } {
@@ -460,11 +460,11 @@ impl () as I({}) {
// CHECK:STDOUT: %X.impl_witness: <witness> = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %self.param_patt.8fb: %pattern_type.9ef = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.680: %pattern_type.9ef = at_binding_pattern self, %self.param_patt.8fb [concrete]
// CHECK:STDOUT: %self.patt.e64: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt.8fb [concrete]
// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete]
// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete]
// CHECK:STDOUT: %other.param_patt.7dd: %pattern_type.8a5 = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.95f: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt.7dd [concrete]
// CHECK:STDOUT: %other.patt.125: %pattern_type.8a5 = wrapper_binding_pattern other, %other.param_patt.7dd [concrete]
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete]
// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete]
@@ -497,9 +497,9 @@ impl () as I({}) {
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = ref_param_pattern [concrete = constants.%self.param_patt.8fb]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.680]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.e64]
// CHECK:STDOUT: %other.param_patt: %pattern_type.8a5 = value_param_pattern [concrete = constants.%other.param_patt.7dd]
// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.95f]
// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.125]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern [concrete = constants.%return.param_patt.ada]
// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete = constants.%return.patt.783]
// CHECK:STDOUT: } {
@@ -566,9 +566,9 @@ impl () as I({}) {
// CHECK:STDOUT: %X.impl_witness: <witness> = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %self.param_patt.04e: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.312: %pattern_type.9ef = at_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %self.patt.7cd: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %other.param_patt.484: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.9f6: %pattern_type.9ef = at_binding_pattern other, %other.param_patt.484 [concrete]
// CHECK:STDOUT: %other.patt.daf: %pattern_type.9ef = wrapper_binding_pattern other, %other.param_patt.484 [concrete]
// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.1: type = fn_type @B.as.X.impl.F.loc13_26.1 [concrete]
// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.1: %B.as.X.impl.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %X.facet: %X.type = facet_value %B, (%X.impl_witness) [concrete]
@@ -579,9 +579,9 @@ impl () as I({}) {
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_26.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc13_26.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%self.param_patt.04e]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.312]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.7cd]
// CHECK:STDOUT: %other.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%other.param_patt.484]
// CHECK:STDOUT: %other.patt: %pattern_type.9ef = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.9f6]
// CHECK:STDOUT: %other.patt: %pattern_type.9ef = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.daf]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %A = value_param call_param0
// CHECK:STDOUT: %A.ref.loc13_14: type = name_ref A, file.%A.decl [concrete = constants.%A]
@@ -625,11 +625,11 @@ impl () as I({}) {
// CHECK:STDOUT: %X.impl_witness: <witness> = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %self.param_patt.8fb: %pattern_type.9ef = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.680: %pattern_type.9ef = at_binding_pattern self, %self.param_patt.8fb [concrete]
// CHECK:STDOUT: %self.patt.e64: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt.8fb [concrete]
// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete]
// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete]
// CHECK:STDOUT: %other.param_patt.7dd: %pattern_type.8a5 = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.95f: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt.7dd [concrete]
// CHECK:STDOUT: %other.patt.125: %pattern_type.8a5 = wrapper_binding_pattern other, %other.param_patt.7dd [concrete]
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete]
// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete]
@@ -662,9 +662,9 @@ impl () as I({}) {
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = ref_param_pattern [concrete = constants.%self.param_patt.8fb]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.680]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.e64]
// CHECK:STDOUT: %other.param_patt: %pattern_type.8a5 = value_param_pattern [concrete = constants.%other.param_patt.7dd]
// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.95f]
// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.125]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern [concrete = constants.%return.param_patt.ada]
// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete = constants.%return.patt.783]
// CHECK:STDOUT: } {
@@ -731,11 +731,11 @@ impl () as I({}) {
// CHECK:STDOUT: %X.impl_witness: <witness> = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %self.param_patt.8fb: %pattern_type.9ef = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.680: %pattern_type.9ef = at_binding_pattern self, %self.param_patt.8fb [concrete]
// CHECK:STDOUT: %self.patt.e64: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt.8fb [concrete]
// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete]
// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete]
// CHECK:STDOUT: %other.param_patt.7dd: %pattern_type.8a5 = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.95f: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt.7dd [concrete]
// CHECK:STDOUT: %other.patt.125: %pattern_type.8a5 = wrapper_binding_pattern other, %other.param_patt.7dd [concrete]
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
// CHECK:STDOUT: %.8fa: Core.Form = init_form %ptr.6b6 [concrete]
// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete]
@@ -768,9 +768,9 @@ impl () as I({}) {
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
// CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc14_37.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = ref_param_pattern [concrete = constants.%self.param_patt.8fb]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.680]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.e64]
// CHECK:STDOUT: %other.param_patt: %pattern_type.8a5 = value_param_pattern [concrete = constants.%other.param_patt.7dd]
// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.95f]
// CHECK:STDOUT: %other.patt: %pattern_type.8a5 = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.125]
// CHECK:STDOUT: %return.param_patt: %pattern_type.fcb = out_param_pattern [concrete = constants.%return.param_patt.ada]
// CHECK:STDOUT: %return.patt: %pattern_type.fcb = return_slot_pattern %return.param_patt, %ptr.loc14_36 [concrete = constants.%return.patt.783]
// CHECK:STDOUT: } {
@@ -837,9 +837,9 @@ impl () as I({}) {
// CHECK:STDOUT: %X.impl_witness: <witness> = impl_witness @B.as.X.impl.%X.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %self.param_patt.04e: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.312: %pattern_type.9ef = at_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %self.patt.7cd: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %other.param_patt.c59: %pattern_type.9ef = ref_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.c26: %pattern_type.9ef = at_binding_pattern other, %other.param_patt.c59 [concrete]
// CHECK:STDOUT: %other.patt.9a7: %pattern_type.9ef = wrapper_binding_pattern other, %other.param_patt.c59 [concrete]
// CHECK:STDOUT: %B.as.X.impl.F.type.48cdab.1: type = fn_type @B.as.X.impl.F.loc13_30.1 [concrete]
// CHECK:STDOUT: %B.as.X.impl.F.bd5be1.1: %B.as.X.impl.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %X.facet: %X.type = facet_value %B, (%X.impl_witness) [concrete]
@@ -850,9 +850,9 @@ impl () as I({}) {
// CHECK:STDOUT: impl @B.as.X.impl: %B.ref as %X.ref {
// CHECK:STDOUT: %B.as.X.impl.F.decl.loc13_30.1: %B.as.X.impl.F.type.48cdab.1 = fn_decl @B.as.X.impl.F.loc13_30.1 [concrete = constants.%B.as.X.impl.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%self.param_patt.04e]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.312]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.7cd]
// CHECK:STDOUT: %other.param_patt: %pattern_type.9ef = ref_param_pattern [concrete = constants.%other.param_patt.c59]
// CHECK:STDOUT: %other.patt: %pattern_type.9ef = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.c26]
// CHECK:STDOUT: %other.patt: %pattern_type.9ef = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.9a7]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %A = value_param call_param0
// CHECK:STDOUT: %A.ref.loc13_14: type = name_ref A, file.%A.decl [concrete = constants.%A]
@@ -898,11 +898,11 @@ impl () as I({}) {
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %x.param_patt.363cc0.1: %pattern_type.cb1 = ref_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.b18d0b.1: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt.363cc0.1 [concrete]
// CHECK:STDOUT: %x.patt.666361.1: %pattern_type.cb1 = wrapper_binding_pattern x, %x.param_patt.363cc0.1 [concrete]
// CHECK:STDOUT: %struct_type.b.a: type = struct_type {.b: %empty_tuple.type, .a: %empty_tuple.type} [concrete]
// CHECK:STDOUT: %pattern_type.120: type = pattern_type %struct_type.b.a [concrete]
// CHECK:STDOUT: %y.param_patt.618: %pattern_type.120 = value_param_pattern [concrete]
// CHECK:STDOUT: %y.patt.b7b: %pattern_type.120 = at_binding_pattern y, %y.param_patt.618 [concrete]
// CHECK:STDOUT: %y.patt.47a: %pattern_type.120 = wrapper_binding_pattern y, %y.param_patt.618 [concrete]
// CHECK:STDOUT: %C.as.I.impl.F.type.a24f58.1: type = fn_type @C.as.I.impl.F.loc11_48.1 [concrete]
// CHECK:STDOUT: %C.as.I.impl.F.4c1488.1: %C.as.I.impl.F.type.a24f58.1 = struct_value () [concrete]
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
@@ -913,9 +913,9 @@ impl () as I({}) {
// CHECK:STDOUT: impl @C.as.I.impl: %Self.ref as %I.ref {
// CHECK:STDOUT: %C.as.I.impl.F.decl.loc11_48.1: %C.as.I.impl.F.type.a24f58.1 = fn_decl @C.as.I.impl.F.loc11_48.1 [concrete = constants.%C.as.I.impl.F.4c1488.1] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.cb1 = ref_param_pattern [concrete = constants.%x.param_patt.363cc0.1]
// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.b18d0b.1]
// CHECK:STDOUT: %x.patt: %pattern_type.cb1 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.666361.1]
// CHECK:STDOUT: %y.param_patt: %pattern_type.120 = value_param_pattern [concrete = constants.%y.param_patt.618]
// CHECK:STDOUT: %y.patt: %pattern_type.120 = at_binding_pattern y, %y.param_patt [concrete = constants.%y.patt.b7b]
// CHECK:STDOUT: %y.patt: %pattern_type.120 = wrapper_binding_pattern y, %y.param_patt [concrete = constants.%y.patt.47a]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: ref %empty_tuple.type = ref_param call_param0
// CHECK:STDOUT: %.loc11_19.1: Core.Form = splice_block %.loc11_19.2 [concrete = constants.%.9f9] {
@@ -1054,7 +1054,7 @@ impl () as I({}) {
// CHECK:STDOUT: %U.as_type.c1c: type = facet_access_type %U.f84 [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %U.as_type.c1c [symbolic]
// CHECK:STDOUT: %x.param_patt.1f4: %pattern_type.2c66b4.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.f93: %pattern_type.2c66b4.2 = at_binding_pattern x, %x.param_patt.1f4 [symbolic]
// CHECK:STDOUT: %x.patt.cec: %pattern_type.2c66b4.2 = wrapper_binding_pattern x, %x.param_patt.1f4 [symbolic]
// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %U.as_type.c1c [symbolic]
// CHECK:STDOUT: %return.param_patt.bf4475.2: %pattern_type.2c66b4.2 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.f44: %pattern_type.2c66b4.2 = return_slot_pattern %return.param_patt.bf4475.2, %U.as_type.c1c [symbolic]
@@ -1065,7 +1065,7 @@ impl () as I({}) {
// CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic]
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic]
// CHECK:STDOUT: %x.param_patt.b5c: %pattern_type.4f4 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.b28: %pattern_type.4f4 = at_binding_pattern x, %x.param_patt.b5c [symbolic]
// CHECK:STDOUT: %x.patt.c0c: %pattern_type.4f4 = wrapper_binding_pattern x, %x.param_patt.b5c [symbolic]
// CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic]
// CHECK:STDOUT: %return.param_patt.27f: %pattern_type.4f4 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.d67: %pattern_type.4f4 = return_slot_pattern %return.param_patt.27f, %ptr.e8f [symbolic]
@@ -1102,7 +1102,7 @@ impl () as I({}) {
// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_33.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_33.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] {
// CHECK:STDOUT: %U.patt.loc10_9.1: %pattern_type.e81 = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc10_9.2 (constants.%U.patt.fe6)]
// CHECK:STDOUT: %x.param_patt.loc10_23.1: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %x.param_patt.loc10_23.2 (constants.%x.param_patt.1f4)]
// CHECK:STDOUT: %x.patt.loc10_23.1: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt.loc10_23.1 [symbolic = %x.patt.loc10_23.2 (constants.%x.patt.f93)]
// CHECK:STDOUT: %x.patt.loc10_23.1: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern x, %x.param_patt.loc10_23.1 [symbolic = %x.patt.loc10_23.2 (constants.%x.patt.cec)]
// CHECK:STDOUT: %return.param_patt.loc10_31.1: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc10_31.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc10_28.1: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc10_31.1, %.loc10_31.3 [symbolic = %return.patt.loc10_28.2 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -1146,7 +1146,7 @@ impl () as I({}) {
// CHECK:STDOUT: %U.as_type.loc10_25.1: type = facet_access_type %U.loc10_9.1 [symbolic = %U.as_type.loc10_25.1 (constants.%U.as_type.c1c)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_25.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)]
// CHECK:STDOUT: %x.param_patt.loc10_23.2: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %x.param_patt.loc10_23.2 (constants.%x.param_patt.1f4)]
// CHECK:STDOUT: %x.patt.loc10_23.2: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt.loc10_23.2 [symbolic = %x.patt.loc10_23.2 (constants.%x.patt.f93)]
// CHECK:STDOUT: %x.patt.loc10_23.2: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern x, %x.param_patt.loc10_23.2 [symbolic = %x.patt.loc10_23.2 (constants.%x.patt.cec)]
// CHECK:STDOUT: %.loc10_31.2: Core.Form = init_form %U.as_type.loc10_25.1 [symbolic = %.loc10_31.2 (constants.%.1ce700.2)]
// CHECK:STDOUT: %return.param_patt.loc10_31.2: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc10_31.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc10_28.2: @empty_tuple.type.as.I.impl.F.loc10_33.1.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc10_31.2, %U.as_type.loc10_25.1 [symbolic = %return.patt.loc10_28.2 (constants.%return.patt.f44)]
@@ -1203,7 +1203,7 @@ impl () as I({}) {
// CHECK:STDOUT: %U.as_type.loc10_25.1 => constants.%U.as_type.c1c
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %x.param_patt.loc10_23.2 => constants.%x.param_patt.1f4
// CHECK:STDOUT: %x.patt.loc10_23.2 => constants.%x.patt.f93
// CHECK:STDOUT: %x.patt.loc10_23.2 => constants.%x.patt.cec
// CHECK:STDOUT: %.loc10_31.2 => constants.%.1ce700.2
// CHECK:STDOUT: %return.param_patt.loc10_31.2 => constants.%return.param_patt.bf4475.2
// CHECK:STDOUT: %return.patt.loc10_28.2 => constants.%return.patt.f44
@@ -1215,7 +1215,7 @@ impl () as I({}) {
// CHECK:STDOUT: %ptr => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4
// CHECK:STDOUT: %x.param_patt => constants.%x.param_patt.b5c
// CHECK:STDOUT: %x.patt.2 => constants.%x.patt.b28
// CHECK:STDOUT: %x.patt.2 => constants.%x.patt.c0c
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.27f
// CHECK:STDOUT: %return.patt => constants.%return.patt.d67
// CHECK:STDOUT: %.loc5 => constants.%.cb6
@@ -1227,7 +1227,7 @@ impl () as I({}) {
// CHECK:STDOUT: %U.as_type.loc10_25.1 => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4
// CHECK:STDOUT: %x.param_patt.loc10_23.2 => constants.%x.param_patt.b5c
// CHECK:STDOUT: %x.patt.loc10_23.2 => constants.%x.patt.b28
// CHECK:STDOUT: %x.patt.loc10_23.2 => constants.%x.patt.c0c
// CHECK:STDOUT: %.loc10_31.2 => constants.%.cb6
// CHECK:STDOUT: %return.param_patt.loc10_31.2 => constants.%return.param_patt.27f
// CHECK:STDOUT: %return.patt.loc10_28.2 => constants.%return.patt.d67
@@ -1257,11 +1257,11 @@ impl () as I({}) {
// CHECK:STDOUT: %U.f84: %Copy.type = symbolic_binding U, 0 [symbolic]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %self.param_patt.154: %pattern_type.cb1 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.8c1: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %self.patt.462: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %U.as_type.c1c: type = facet_access_type %U.f84 [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %U.as_type.c1c [symbolic]
// CHECK:STDOUT: %x.param_patt.1f4: %pattern_type.2c66b4.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.f93: %pattern_type.2c66b4.2 = at_binding_pattern x, %x.param_patt.1f4 [symbolic]
// CHECK:STDOUT: %x.patt.cec: %pattern_type.2c66b4.2 = wrapper_binding_pattern x, %x.param_patt.1f4 [symbolic]
// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %U.as_type.c1c [symbolic]
// CHECK:STDOUT: %return.param_patt.bf4475.2: %pattern_type.2c66b4.2 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.f44: %pattern_type.2c66b4.2 = return_slot_pattern %return.param_patt.bf4475.2, %U.as_type.c1c [symbolic]
@@ -1272,7 +1272,7 @@ impl () as I({}) {
// CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic]
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic]
// CHECK:STDOUT: %x.param_patt.b5c: %pattern_type.4f4 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.b28: %pattern_type.4f4 = at_binding_pattern x, %x.param_patt.b5c [symbolic]
// CHECK:STDOUT: %x.patt.c0c: %pattern_type.4f4 = wrapper_binding_pattern x, %x.param_patt.b5c [symbolic]
// CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic]
// CHECK:STDOUT: %return.param_patt.27f: %pattern_type.4f4 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.d67: %pattern_type.4f4 = return_slot_pattern %return.param_patt.27f, %ptr.e8f [symbolic]
@@ -1309,9 +1309,9 @@ impl () as I({}) {
// CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_50.1: %empty_tuple.type.as.I.impl.F.type.48cdab.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_50.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.bd5be1.1] {
// CHECK:STDOUT: %U.patt.loc10_9.1: %pattern_type.e81 = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc10_9.2 (constants.%U.patt.fe6)]
// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete = constants.%self.param_patt.154]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.8c1]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.462]
// CHECK:STDOUT: %x.param_patt.loc10_40.1: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %x.param_patt.loc10_40.2 (constants.%x.param_patt.1f4)]
// CHECK:STDOUT: %x.patt.loc10_40.1: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt.loc10_40.1 [symbolic = %x.patt.loc10_40.2 (constants.%x.patt.f93)]
// CHECK:STDOUT: %x.patt.loc10_40.1: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern x, %x.param_patt.loc10_40.1 [symbolic = %x.patt.loc10_40.2 (constants.%x.patt.cec)]
// CHECK:STDOUT: %return.param_patt.loc10_48.1: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc10_48.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc10_45.1: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc10_48.1, %.loc10_48.3 [symbolic = %return.patt.loc10_45.2 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -1361,7 +1361,7 @@ impl () as I({}) {
// CHECK:STDOUT: %U.as_type.loc10_42.1: type = facet_access_type %U.loc10_9.1 [symbolic = %U.as_type.loc10_42.1 (constants.%U.as_type.c1c)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_42.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)]
// CHECK:STDOUT: %x.param_patt.loc10_40.2: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %x.param_patt.loc10_40.2 (constants.%x.param_patt.1f4)]
// CHECK:STDOUT: %x.patt.loc10_40.2: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt.loc10_40.2 [symbolic = %x.patt.loc10_40.2 (constants.%x.patt.f93)]
// CHECK:STDOUT: %x.patt.loc10_40.2: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern x, %x.param_patt.loc10_40.2 [symbolic = %x.patt.loc10_40.2 (constants.%x.patt.cec)]
// CHECK:STDOUT: %.loc10_48.2: Core.Form = init_form %U.as_type.loc10_42.1 [symbolic = %.loc10_48.2 (constants.%.1ce700.2)]
// CHECK:STDOUT: %return.param_patt.loc10_48.2: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc10_48.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc10_45.2: @empty_tuple.type.as.I.impl.F.loc10_50.1.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc10_48.2, %U.as_type.loc10_42.1 [symbolic = %return.patt.loc10_45.2 (constants.%return.patt.f44)]
@@ -1420,7 +1420,7 @@ impl () as I({}) {
// CHECK:STDOUT: %U.as_type.loc10_42.1 => constants.%U.as_type.c1c
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %x.param_patt.loc10_40.2 => constants.%x.param_patt.1f4
// CHECK:STDOUT: %x.patt.loc10_40.2 => constants.%x.patt.f93
// CHECK:STDOUT: %x.patt.loc10_40.2 => constants.%x.patt.cec
// CHECK:STDOUT: %.loc10_48.2 => constants.%.1ce700.2
// CHECK:STDOUT: %return.param_patt.loc10_48.2 => constants.%return.param_patt.bf4475.2
// CHECK:STDOUT: %return.patt.loc10_45.2 => constants.%return.patt.f44
@@ -1432,7 +1432,7 @@ impl () as I({}) {
// CHECK:STDOUT: %ptr => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4
// CHECK:STDOUT: %x.param_patt => constants.%x.param_patt.b5c
// CHECK:STDOUT: %x.patt.2 => constants.%x.patt.b28
// CHECK:STDOUT: %x.patt.2 => constants.%x.patt.c0c
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.27f
// CHECK:STDOUT: %return.patt => constants.%return.patt.d67
// CHECK:STDOUT: %.loc5 => constants.%.cb6
@@ -1444,7 +1444,7 @@ impl () as I({}) {
// CHECK:STDOUT: %U.as_type.loc10_42.1 => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4
// CHECK:STDOUT: %x.param_patt.loc10_40.2 => constants.%x.param_patt.b5c
// CHECK:STDOUT: %x.patt.loc10_40.2 => constants.%x.patt.b28
// CHECK:STDOUT: %x.patt.loc10_40.2 => constants.%x.patt.c0c
// CHECK:STDOUT: %.loc10_48.2 => constants.%.cb6
// CHECK:STDOUT: %return.param_patt.loc10_48.2 => constants.%return.param_patt.27f
// CHECK:STDOUT: %return.patt.loc10_45.2 => constants.%return.patt.d67
+20 -20
View File
@@ -123,7 +123,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.bb5 [symbolic]
// CHECK:STDOUT: %pattern_type.362: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.1c8: %pattern_type.362 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.34c: %pattern_type.362 = at_binding_pattern self, %self.param_patt.1c8 [symbolic]
// CHECK:STDOUT: %self.patt.cb6: %pattern_type.362 = wrapper_binding_pattern self, %self.param_patt.1c8 [symbolic]
// CHECK:STDOUT: %Instance.WithSelf.G.type.f64: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self.bb5) [symbolic]
// CHECK:STDOUT: %Instance.WithSelf.G.395: %Instance.WithSelf.G.type.f64 = struct_value () [symbolic]
// CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete]
@@ -132,7 +132,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Instance.impl_witness: <witness> = impl_witness @struct_type.i.as.Instance.impl.%Instance.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.9b2: type = pattern_type %struct_type.i [concrete]
// CHECK:STDOUT: %self.param_patt.862: %pattern_type.9b2 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.ebb: %pattern_type.9b2 = at_binding_pattern self, %self.param_patt.862 [concrete]
// CHECK:STDOUT: %self.patt.713: %pattern_type.9b2 = wrapper_binding_pattern self, %self.param_patt.862 [concrete]
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.type: type = fn_type @struct_type.i.as.Instance.impl.G [concrete]
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G: %struct_type.i.as.Instance.impl.G.type = struct_value () [concrete]
// CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%Instance.impl_witness) [concrete]
@@ -195,7 +195,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Instance.WithSelf.G.decl: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.f64) = fn_decl @Instance.WithSelf.G [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.395)] {
// CHECK:STDOUT: %self.param_patt.loc12_8.1: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = value_param_pattern [symbolic = %self.param_patt.loc12_8.2 (constants.%self.param_patt.1c8)]
// CHECK:STDOUT: %self.patt.loc12_8.1: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = at_binding_pattern self, %self.param_patt.loc12_8.1 [symbolic = %self.patt.loc12_8.2 (constants.%self.patt.34c)]
// CHECK:STDOUT: %self.patt.loc12_8.1: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = wrapper_binding_pattern self, %self.param_patt.loc12_8.1 [symbolic = %self.patt.loc12_8.2 (constants.%self.patt.cb6)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Instance.WithSelf.G.%Self.as_type.loc12_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc12_8.1: type = splice_block %.loc12_8.2 [symbolic = %Self.as_type.loc12_8.1 (constants.%Self.as_type)] {
@@ -229,7 +229,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: impl @struct_type.i.as.Instance.impl: %struct_type.i as %Instance.ref {
// CHECK:STDOUT: %struct_type.i.as.Instance.impl.G.decl: %struct_type.i.as.Instance.impl.G.type = fn_decl @struct_type.i.as.Instance.impl.G [concrete = constants.%struct_type.i.as.Instance.impl.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9b2 = value_param_pattern [concrete = constants.%self.param_patt.862]
// CHECK:STDOUT: %self.patt: %pattern_type.9b2 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ebb]
// CHECK:STDOUT: %self.patt: %pattern_type.9b2 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.713]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %struct_type.i = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @struct_type.i.as.Instance.impl.%struct_type.i [concrete = constants.%struct_type.i]
@@ -258,7 +258,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type.loc12_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc12_8.1 [symbolic = %pattern_type (constants.%pattern_type.362)]
// CHECK:STDOUT: %self.param_patt.loc12_8.2: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = value_param_pattern [symbolic = %self.param_patt.loc12_8.2 (constants.%self.param_patt.1c8)]
// CHECK:STDOUT: %self.patt.loc12_8.2: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = at_binding_pattern self, %self.param_patt.loc12_8.2 [symbolic = %self.patt.loc12_8.2 (constants.%self.patt.34c)]
// CHECK:STDOUT: %self.patt.loc12_8.2: @Instance.WithSelf.G.%pattern_type (%pattern_type.362) = wrapper_binding_pattern self, %self.param_patt.loc12_8.2 [symbolic = %self.patt.loc12_8.2 (constants.%self.patt.cb6)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @Instance.WithSelf.G.%Self.as_type.loc12_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -298,7 +298,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type.loc12_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.362
// CHECK:STDOUT: %self.param_patt.loc12_8.2 => constants.%self.param_patt.1c8
// CHECK:STDOUT: %self.patt.loc12_8.2 => constants.%self.patt.34c
// CHECK:STDOUT: %self.patt.loc12_8.2 => constants.%self.patt.cb6
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) {
@@ -313,7 +313,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type.loc12_8.1 => constants.%struct_type.i
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b2
// CHECK:STDOUT: %self.param_patt.loc12_8.2 => constants.%self.param_patt.862
// CHECK:STDOUT: %self.patt.loc12_8.2 => constants.%self.patt.ebb
// CHECK:STDOUT: %self.patt.loc12_8.2 => constants.%self.patt.713
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- import_non-instance_success.carbon
@@ -428,7 +428,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %struct_type.i: type = struct_type {.i: %empty_tuple.type} [concrete]
// CHECK:STDOUT: %pattern_type.9b2: type = pattern_type %struct_type.i [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %NonInstanceCallImportFail.type: type = fn_type @NonInstanceCallImportFail [concrete]
// CHECK:STDOUT: %NonInstanceCallImportFail: %NonInstanceCallImportFail.type = struct_value () [concrete]
// CHECK:STDOUT: %NonInstance.type: type = facet_type <@NonInstance> [concrete]
@@ -468,7 +468,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %NonInstanceCallImportFail.decl: %NonInstanceCallImportFail.type = fn_decl @NonInstanceCallImportFail [concrete = constants.%NonInstanceCallImportFail] {
// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %n.param: %struct_type.i = value_param call_param0
// CHECK:STDOUT: %.loc5_40: type = splice_block %struct_type.i [concrete = constants.%struct_type.i] {
@@ -520,7 +520,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %ptr: type = ptr_type %struct_type.i [concrete]
// CHECK:STDOUT: %pattern_type.72c: type = pattern_type %ptr [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %NonInstanceCallIndirectImport.type: type = fn_type @NonInstanceCallIndirectImport [concrete]
// CHECK:STDOUT: %NonInstanceCallIndirectImport: %NonInstanceCallIndirectImport.type = struct_value () [concrete]
// CHECK:STDOUT: %NonInstance.type: type = facet_type <@NonInstance> [concrete]
@@ -560,7 +560,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %NonInstanceCallIndirectImport.decl: %NonInstanceCallIndirectImport.type = fn_decl @NonInstanceCallIndirectImport [concrete = constants.%NonInstanceCallIndirectImport] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %ptr = value_param call_param0
// CHECK:STDOUT: %.loc5_45: type = splice_block %ptr [concrete = constants.%ptr] {
@@ -613,7 +613,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %struct_type.i: type = struct_type {.i: %empty_tuple.type} [concrete]
// CHECK:STDOUT: %pattern_type.9b2: type = pattern_type %struct_type.i [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %InstanceCallImport.type: type = fn_type @InstanceCallImport [concrete]
// CHECK:STDOUT: %InstanceCallImport: %InstanceCallImport.type = struct_value () [concrete]
// CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete]
@@ -623,7 +623,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.77c: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.1d5: %pattern_type.77c = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.849: %pattern_type.77c = at_binding_pattern self, %self.param_patt.1d5 [symbolic]
// CHECK:STDOUT: %self.patt.11a: %pattern_type.77c = wrapper_binding_pattern self, %self.param_patt.1d5 [symbolic]
// CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete]
// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b3c [concrete]
// CHECK:STDOUT: %Instance.impl_witness: <witness> = impl_witness imports.%Instance.impl_witness_table [concrete]
@@ -636,7 +636,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %ptr: type = ptr_type %struct_type.i [concrete]
// CHECK:STDOUT: %pattern_type.72c: type = pattern_type %ptr [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %InstanceCallIndirectImport.type: type = fn_type @InstanceCallIndirectImport [concrete]
// CHECK:STDOUT: %InstanceCallIndirectImport: %InstanceCallIndirectImport.type = struct_value () [concrete]
// CHECK:STDOUT: %struct: %struct_type.i = struct_value (%empty_tuple) [concrete]
@@ -673,7 +673,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %InstanceCallImport.decl: %InstanceCallImport.type = fn_decl @InstanceCallImport [concrete = constants.%InstanceCallImport] {
// CHECK:STDOUT: %n.param_patt: %pattern_type.9b2 = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type.9b2 = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %n.param: %struct_type.i = value_param call_param0
// CHECK:STDOUT: %.loc5_33: type = splice_block %struct_type.i [concrete = constants.%struct_type.i] {
@@ -685,7 +685,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InstanceCallIndirectImport.decl: %InstanceCallIndirectImport.type = fn_decl @InstanceCallIndirectImport [concrete = constants.%InstanceCallIndirectImport] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.72c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.72c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %ptr = value_param call_param0
// CHECK:STDOUT: %.loc9_42: type = splice_block %ptr [concrete = constants.%ptr] {
@@ -728,7 +728,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.77c)]
// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.77c) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.1d5)]
// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.77c) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.849)]
// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.77c) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.11a)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -764,7 +764,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.77c
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.1d5
// CHECK:STDOUT: %self.patt => constants.%self.patt.849
// CHECK:STDOUT: %self.patt => constants.%self.patt.11a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) {
@@ -789,7 +789,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete]
// CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b3c [concrete]
// CHECK:STDOUT: }
@@ -852,7 +852,7 @@ fn InstanceCallImportFail() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type)]
// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
+2 -2
View File
@@ -144,7 +144,7 @@ fn G(c: C) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
@@ -194,7 +194,7 @@ fn G(c: C) {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, imports.%Main.C [concrete = constants.%C]
+22 -22
View File
@@ -45,9 +45,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %other.param_patt: %pattern_type = value_param_pattern [symbolic]
// CHECK:STDOUT: %other.patt: %pattern_type = at_binding_pattern other, %other.param_patt [symbolic]
// CHECK:STDOUT: %other.patt: %pattern_type = wrapper_binding_pattern other, %other.param_patt [symbolic]
// CHECK:STDOUT: %.3bf: Core.Form = init_form %Self.as_type [symbolic]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %Self.as_type [symbolic]
@@ -80,9 +80,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Add.WithSelf.Op.decl: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type) = fn_decl @Add.WithSelf.Op [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op)] {
// CHECK:STDOUT: %self.param_patt.loc5_9.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern [symbolic = %self.param_patt.loc5_9.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc5_9.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt.loc5_9.1 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc5_9.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = wrapper_binding_pattern self, %self.param_patt.loc5_9.1 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt)]
// CHECK:STDOUT: %other.param_patt.loc5_20.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern [symbolic = %other.param_patt.loc5_20.2 (constants.%other.param_patt)]
// CHECK:STDOUT: %other.patt.loc5_20.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = at_binding_pattern other, %other.param_patt.loc5_20.1 [symbolic = %other.patt.loc5_20.2 (constants.%other.patt)]
// CHECK:STDOUT: %other.patt.loc5_20.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = wrapper_binding_pattern other, %other.param_patt.loc5_20.1 [symbolic = %other.patt.loc5_20.2 (constants.%other.patt)]
// CHECK:STDOUT: %return.param_patt.loc5_31.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = out_param_pattern [symbolic = %return.param_patt.loc5_31.2 (constants.%return.param_patt)]
// CHECK:STDOUT: %return.patt.loc5_28.1: @Add.WithSelf.Op.%pattern_type (%pattern_type) = return_slot_pattern %return.param_patt.loc5_31.1, %.loc5_31.2 [symbolic = %return.patt.loc5_28.2 (constants.%return.patt)]
// CHECK:STDOUT: } {
@@ -122,9 +122,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %Self.as_type.loc5_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_9.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_9.1 [symbolic = %pattern_type (constants.%pattern_type)]
// CHECK:STDOUT: %self.param_patt.loc5_9.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern [symbolic = %self.param_patt.loc5_9.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc5_9.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt.loc5_9.2 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc5_9.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = wrapper_binding_pattern self, %self.param_patt.loc5_9.2 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt)]
// CHECK:STDOUT: %other.param_patt.loc5_20.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = value_param_pattern [symbolic = %other.param_patt.loc5_20.2 (constants.%other.param_patt)]
// CHECK:STDOUT: %other.patt.loc5_20.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = at_binding_pattern other, %other.param_patt.loc5_20.2 [symbolic = %other.patt.loc5_20.2 (constants.%other.patt)]
// CHECK:STDOUT: %other.patt.loc5_20.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = wrapper_binding_pattern other, %other.param_patt.loc5_20.2 [symbolic = %other.patt.loc5_20.2 (constants.%other.patt)]
// CHECK:STDOUT: %.loc5_31.1: Core.Form = init_form %Self.as_type.loc5_9.1 [symbolic = %.loc5_31.1 (constants.%.3bf)]
// CHECK:STDOUT: %return.param_patt.loc5_31.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = out_param_pattern [symbolic = %return.param_patt.loc5_31.2 (constants.%return.param_patt)]
// CHECK:STDOUT: %return.patt.loc5_28.2: @Add.WithSelf.Op.%pattern_type (%pattern_type) = return_slot_pattern %return.param_patt.loc5_31.2, %Self.as_type.loc5_9.1 [symbolic = %return.patt.loc5_28.2 (constants.%return.patt)]
@@ -163,17 +163,17 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %return.param_patt.c69: %pattern_type.78d = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.279: %pattern_type.78d = return_slot_pattern %return.param_patt.c69, invalid [symbolic]
// CHECK:STDOUT: %self.param_patt.d5a: %pattern_type.78d = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.26c: %pattern_type.78d = at_binding_pattern self, %self.param_patt.d5a [symbolic]
// CHECK:STDOUT: %self.patt.960: %pattern_type.78d = wrapper_binding_pattern self, %self.param_patt.d5a [symbolic]
// CHECK:STDOUT: %.719: Core.Form = init_form %Self.as_type [symbolic]
// CHECK:STDOUT: %other.param_patt.03b: %pattern_type.78d = value_param_pattern [symbolic]
// CHECK:STDOUT: %other.patt.bca: %pattern_type.78d = at_binding_pattern other, %other.param_patt.03b [symbolic]
// CHECK:STDOUT: %other.patt.bc5: %pattern_type.78d = wrapper_binding_pattern other, %other.param_patt.03b [symbolic]
// CHECK:STDOUT: %.63f: <witness> = impl_self_witness %C, @Add [concrete]
// CHECK:STDOUT: %Add.impl_witness: <witness> = impl_witness @C.as.Add.impl.%Add.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.303: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.49a: %pattern_type.98b = at_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %self.patt.36a: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %other.param_patt.d59: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.38f: %pattern_type.98b = at_binding_pattern other, %other.param_patt.d59 [concrete]
// CHECK:STDOUT: %other.patt.725: %pattern_type.98b = wrapper_binding_pattern other, %other.param_patt.d59 [concrete]
// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete]
// CHECK:STDOUT: %return.param_patt.89a: %pattern_type.98b = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.e4a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, %C [concrete]
@@ -185,9 +185,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %return.patt.18a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, invalid [concrete]
// CHECK:STDOUT: %empty_tuple.4db: %C = tuple_value () [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.98b = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.98b = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %y.param_patt: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.98b = at_binding_pattern y, %y.param_patt [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.98b = wrapper_binding_pattern y, %y.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete]
@@ -225,9 +225,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %.loc8: <witness> = impl_self_witness @C.as.Add.impl.%C.ref, @Add [concrete = constants.%.63f]
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.98b = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.98b = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %y.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%y.param_patt]
// CHECK:STDOUT: %y.patt: %pattern_type.98b = at_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: %y.patt: %pattern_type.98b = wrapper_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc12_21 [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
@@ -257,9 +257,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: impl @C.as.Add.impl: %C.ref as %Add.ref {
// CHECK:STDOUT: %C.as.Add.impl.Op.decl: %C.as.Add.impl.Op.type = fn_decl @C.as.Add.impl.Op [concrete = constants.%C.as.Add.impl.Op] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%self.param_patt.303]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.49a]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.36a]
// CHECK:STDOUT: %other.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%other.param_patt.d59]
// CHECK:STDOUT: %other.patt: %pattern_type.98b = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.38f]
// CHECK:STDOUT: %other.patt: %pattern_type.98b = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.725]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %Self.ref.loc9_45 [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
@@ -300,9 +300,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.78d)]
// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.d5a)]
// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.26c)]
// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.960)]
// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = value_param_pattern [symbolic = %other.param_patt (constants.%other.param_patt.03b)]
// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = at_binding_pattern other, %other.param_patt [symbolic = %other.patt (constants.%other.patt.bca)]
// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = wrapper_binding_pattern other, %other.param_patt [symbolic = %other.patt (constants.%other.patt.bc5)]
// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.719)]
// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt.c69)]
// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.78d) = return_slot_pattern %return.param_patt, invalid [symbolic = %return.patt (constants.%return.patt.279)]
@@ -348,9 +348,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.78d
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.d5a
// CHECK:STDOUT: %self.patt => constants.%self.patt.26c
// CHECK:STDOUT: %self.patt => constants.%self.patt.960
// CHECK:STDOUT: %other.param_patt => constants.%other.param_patt.03b
// CHECK:STDOUT: %other.patt => constants.%other.patt.bca
// CHECK:STDOUT: %other.patt => constants.%other.patt.bc5
// CHECK:STDOUT: %.1 => constants.%.719
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.c69
// CHECK:STDOUT: %return.patt => constants.%return.patt.279
@@ -368,9 +368,9 @@ fn F(x: C, y: C) -> C {
// CHECK:STDOUT: %Self.as_type => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.303
// CHECK:STDOUT: %self.patt => constants.%self.patt.49a
// CHECK:STDOUT: %self.patt => constants.%self.patt.36a
// CHECK:STDOUT: %other.param_patt => constants.%other.param_patt.d59
// CHECK:STDOUT: %other.patt => constants.%other.patt.38f
// CHECK:STDOUT: %other.patt => constants.%other.patt.725
// CHECK:STDOUT: %.1 => constants.%.a44
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.89a
// CHECK:STDOUT: %return.patt => constants.%return.patt.18a
+9 -9
View File
@@ -106,7 +106,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: %C.e8d: type = class_type @C, @C(%Z.facet.4d3) [symbolic]
// CHECK:STDOUT: %pattern_type.ddf: type = pattern_type %C.e8d [symbolic]
// CHECK:STDOUT: %c.param_patt: %pattern_type.ddf = value_param_pattern [symbolic]
// CHECK:STDOUT: %c.patt: %pattern_type.ddf = at_binding_pattern c, %c.param_patt [symbolic]
// CHECK:STDOUT: %c.patt: %pattern_type.ddf = wrapper_binding_pattern c, %c.param_patt [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.37e) [symbolic]
// CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.WithSelf.%I.WithSelf.F.decl [concrete]
@@ -189,7 +189,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: }
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] {
// CHECK:STDOUT: %c.param_patt.loc24_9.1: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = value_param_pattern [symbolic = %c.param_patt.loc24_9.2 (constants.%c.param_patt)]
// CHECK:STDOUT: %c.patt.loc24_9.1: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = at_binding_pattern c, %c.param_patt.loc24_9.1 [symbolic = %c.patt.loc24_9.2 (constants.%c.patt)]
// CHECK:STDOUT: %c.patt.loc24_9.1: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = wrapper_binding_pattern c, %c.param_patt.loc24_9.1 [symbolic = %c.patt.loc24_9.2 (constants.%c.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: @I.WithSelf.F.%C.loc24_18.1 (%C.e8d) = value_param call_param0
// CHECK:STDOUT: %.loc24_18.2: type = splice_block %C.loc24_18.2 [symbolic = %C.loc24_18.1 (constants.%C.e8d)] {
@@ -283,7 +283,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: %C.loc24_18.1: type = class_type @C, @C(%Z.facet.loc24_18.1) [symbolic = %C.loc24_18.1 (constants.%C.e8d)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc24_18.1 [symbolic = %pattern_type (constants.%pattern_type.ddf)]
// CHECK:STDOUT: %c.param_patt.loc24_9.2: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = value_param_pattern [symbolic = %c.param_patt.loc24_9.2 (constants.%c.param_patt)]
// CHECK:STDOUT: %c.patt.loc24_9.2: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = at_binding_pattern c, %c.param_patt.loc24_9.2 [symbolic = %c.patt.loc24_9.2 (constants.%c.patt)]
// CHECK:STDOUT: %c.patt.loc24_9.2: @I.WithSelf.F.%pattern_type (%pattern_type.ddf) = wrapper_binding_pattern c, %c.param_patt.loc24_9.2 [symbolic = %c.patt.loc24_9.2 (constants.%c.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%c.param: @I.WithSelf.F.%C.loc24_18.1 (%C.e8d));
// CHECK:STDOUT: }
@@ -390,7 +390,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: %C.526: type = class_type @C, @C(%Z.facet.416) [symbolic]
// CHECK:STDOUT: %pattern_type.d24: type = pattern_type %C.526 [symbolic]
// CHECK:STDOUT: %c.param_patt.6ae: %pattern_type.d24 = value_param_pattern [symbolic]
// CHECK:STDOUT: %c.patt.2df: %pattern_type.d24 = at_binding_pattern c, %c.param_patt.6ae [symbolic]
// CHECK:STDOUT: %c.patt.93c: %pattern_type.d24 = wrapper_binding_pattern c, %c.param_patt.6ae [symbolic]
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
// CHECK:STDOUT: %.0ce: <witness> = impl_self_witness %U, @Z [symbolic]
// CHECK:STDOUT: %Z.impl_witness.d6c: <witness> = impl_witness imports.%Z.impl_witness_table, @U.as.Z.impl(%U) [symbolic]
@@ -428,7 +428,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: %C.82a: type = class_type @C, @C(%Z.facet.c6a) [concrete]
// CHECK:STDOUT: %pattern_type.3b9: type = pattern_type %C.82a [concrete]
// CHECK:STDOUT: %c.param_patt.6af: %pattern_type.3b9 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.dab: %pattern_type.3b9 = at_binding_pattern c, %c.param_patt.6af [concrete]
// CHECK:STDOUT: %c.patt.816: %pattern_type.3b9 = wrapper_binding_pattern c, %c.param_patt.6af [concrete]
// CHECK:STDOUT: %D.as.I.impl.F.type: type = fn_type @D.as.I.impl.F, @D.as.I.impl(%N) [symbolic]
// CHECK:STDOUT: %D.as.I.impl.F: %D.as.I.impl.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %I.facet: %I.type = facet_value %D, (%I.impl_witness) [symbolic]
@@ -588,7 +588,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: impl: %D.loc20_23.2 as %I.ref {
// CHECK:STDOUT: %D.as.I.impl.F.decl: @D.as.I.impl.%D.as.I.impl.F.type (%D.as.I.impl.F.type) = fn_decl @D.as.I.impl.F [symbolic = @D.as.I.impl.%D.as.I.impl.F (constants.%D.as.I.impl.F)] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.3b9 = value_param_pattern [concrete = constants.%c.param_patt.6af]
// CHECK:STDOUT: %c.patt: %pattern_type.3b9 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.dab]
// CHECK:STDOUT: %c.patt: %pattern_type.3b9 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.816]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C.82a = value_param call_param0
// CHECK:STDOUT: %.loc21_22.1: type = splice_block %C [concrete = constants.%C.82a] {
@@ -660,7 +660,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: %C: type = class_type @C, @C(%Z.facet) [symbolic = %C (constants.%C.526)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.d24)]
// CHECK:STDOUT: %c.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.d24) = value_param_pattern [symbolic = %c.param_patt (constants.%c.param_patt.6ae)]
// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.d24) = at_binding_pattern c, %c.param_patt [symbolic = %c.patt (constants.%c.patt.2df)]
// CHECK:STDOUT: %c.patt: @I.WithSelf.F.%pattern_type (%pattern_type.d24) = wrapper_binding_pattern c, %c.param_patt [symbolic = %c.patt (constants.%c.patt.93c)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -731,7 +731,7 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: %C => constants.%C.526
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d24
// CHECK:STDOUT: %c.param_patt => constants.%c.param_patt.6ae
// CHECK:STDOUT: %c.patt => constants.%c.patt.2df
// CHECK:STDOUT: %c.patt => constants.%c.patt.93c
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.frozen.3a0) {
@@ -805,6 +805,6 @@ impl forall [N: E] D(N) as I where .Assoc = () {
// CHECK:STDOUT: %C => constants.%C.82a
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9
// CHECK:STDOUT: %c.param_patt => constants.%c.param_patt.6af
// CHECK:STDOUT: %c.patt => constants.%c.patt.dab
// CHECK:STDOUT: %c.patt => constants.%c.patt.816
// CHECK:STDOUT: }
// CHECK:STDOUT:
+13 -13
View File
@@ -51,7 +51,7 @@ fn G() {
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %empty_struct_type [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
@@ -81,7 +81,7 @@ fn G() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] {
// CHECK:STDOUT: %x.param_patt: %pattern_type = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0
// CHECK:STDOUT: %.loc5_12.1: type = splice_block %.loc5_12.3 [concrete = constants.%empty_struct_type] {
@@ -132,12 +132,12 @@ fn G() {
// CHECK:STDOUT: %I.WithSelf.F.ca5: %I.WithSelf.F.type.418 = struct_value () [symbolic]
// CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete]
// CHECK:STDOUT: %x.param_patt.c77: %pattern_type.a96 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.05f: %pattern_type.a96 = at_binding_pattern x, %x.param_patt.c77 [concrete]
// CHECK:STDOUT: %x.patt.36b: %pattern_type.a96 = wrapper_binding_pattern x, %x.param_patt.c77 [concrete]
// CHECK:STDOUT: %.4ce: <witness> = impl_self_witness %C.6b1ed7.2, @I [symbolic]
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.as.I.impl.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic]
// CHECK:STDOUT: %pattern_type.d0f: type = pattern_type %C.6b1ed7.2 [symbolic]
// CHECK:STDOUT: %x.param_patt.bc9: %pattern_type.d0f = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.cc8: %pattern_type.d0f = at_binding_pattern x, %x.param_patt.bc9 [symbolic]
// CHECK:STDOUT: %x.patt.bce: %pattern_type.d0f = wrapper_binding_pattern x, %x.param_patt.bc9 [symbolic]
// CHECK:STDOUT: %C.as.I.impl.F.type.9a27ec.1: type = fn_type @C.as.I.impl.F.loc8_24.1, @C.as.I.impl(%Y) [symbolic]
// CHECK:STDOUT: %C.as.I.impl.F.84dd70.1: %C.as.I.impl.F.type.9a27ec.1 = struct_value () [symbolic]
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.6b1ed7.2, (%I.impl_witness) [symbolic]
@@ -244,7 +244,7 @@ fn G() {
// CHECK:STDOUT: impl: %C.loc7_24.2 as %I.ref {
// CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.1: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.1 (%C.as.I.impl.F.type.9a27ec.1) = fn_decl @C.as.I.impl.F.loc8_24.1 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.1 (constants.%C.as.I.impl.F.84dd70.1)] {
// CHECK:STDOUT: %x.param_patt.loc8_16.1: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = value_param_pattern [symbolic = %x.param_patt.loc8_16.2 (constants.%x.param_patt.bc9)]
// CHECK:STDOUT: %x.patt.loc8_16.1: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = at_binding_pattern x, %x.param_patt.loc8_16.1 [symbolic = %x.patt.loc8_16.2 (constants.%x.patt.cc8)]
// CHECK:STDOUT: %x.patt.loc8_16.1: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = wrapper_binding_pattern x, %x.param_patt.loc8_16.1 [symbolic = %x.patt.loc8_16.2 (constants.%x.patt.bce)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: @C.as.I.impl.F.loc8_24.1.%C.loc8_21.1 (%C.6b1ed7.2) = value_param call_param0
// CHECK:STDOUT: %.loc8: type = splice_block %C.loc8_21.2 [symbolic = %C.loc8_21.1 (constants.%C.6b1ed7.2)] {
@@ -256,7 +256,7 @@ fn G() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.as.I.impl.F.decl.loc8_24.2: @C.as.I.impl.%C.as.I.impl.F.type.loc8_24.2 (%C.as.I.impl.F.type.9a27ec.2) = fn_decl @C.as.I.impl.F.loc8_24.2 [symbolic = @C.as.I.impl.%C.as.I.impl.F.loc8_24.2 (constants.%C.as.I.impl.F.84dd70.2)] {
// CHECK:STDOUT: %.1: %pattern_type.a96 = specific_constant constants.%x.param_patt.c77, @I.WithSelf.F(constants.%I.facet) [concrete = constants.%x.param_patt.c77]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %.1 [concrete = constants.%x.patt.05f]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = wrapper_binding_pattern x, %.1 [concrete = constants.%x.patt.36b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0
// CHECK:STDOUT: %x: %empty_struct_type = wrapper_binding x, %x.param
@@ -297,7 +297,7 @@ fn G() {
// CHECK:STDOUT: %C.loc8_21.1: type = class_type @C, @C(%Y) [symbolic = %C.loc8_21.1 (constants.%C.6b1ed7.2)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc8_21.1 [symbolic = %pattern_type (constants.%pattern_type.d0f)]
// CHECK:STDOUT: %x.param_patt.loc8_16.2: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = value_param_pattern [symbolic = %x.param_patt.loc8_16.2 (constants.%x.param_patt.bc9)]
// CHECK:STDOUT: %x.patt.loc8_16.2: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = at_binding_pattern x, %x.param_patt.loc8_16.2 [symbolic = %x.patt.loc8_16.2 (constants.%x.patt.cc8)]
// CHECK:STDOUT: %x.patt.loc8_16.2: @C.as.I.impl.F.loc8_24.1.%pattern_type (%pattern_type.d0f) = wrapper_binding_pattern x, %x.param_patt.loc8_16.2 [symbolic = %x.patt.loc8_16.2 (constants.%x.patt.bce)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %C.loc8_21.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -394,7 +394,7 @@ fn G() {
// CHECK:STDOUT: %C.loc8_21.1 => constants.%C.6b1ed7.2
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0f
// CHECK:STDOUT: %x.param_patt.loc8_16.2 => constants.%x.param_patt.bc9
// CHECK:STDOUT: %x.patt.loc8_16.2 => constants.%x.patt.cc8
// CHECK:STDOUT: %x.patt.loc8_16.2 => constants.%x.patt.bce
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete
@@ -443,7 +443,7 @@ fn G() {
// CHECK:STDOUT: %pattern_type.d0f: type = pattern_type %C.6b1ed7.2 [symbolic]
// CHECK:STDOUT: %x.param_patt.bc9: %pattern_type.d0f = value_param_pattern [symbolic]
// CHECK:STDOUT: %Y.patt: %pattern_type.cb1 = symbolic_binding_pattern Y, 0 [symbolic]
// CHECK:STDOUT: %x.patt.cc8: %pattern_type.d0f = at_binding_pattern x, %x.param_patt.bc9 [symbolic]
// CHECK:STDOUT: %x.patt.bce: %pattern_type.d0f = wrapper_binding_pattern x, %x.param_patt.bc9 [symbolic]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %C.6b1ed7.2 [symbolic]
// CHECK:STDOUT: %I.facet.38e: %I.type = facet_value %C.6b1ed7.2, (%I.impl_witness.079) [symbolic]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
@@ -472,7 +472,7 @@ fn G() {
// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.e3e0cd.1: <specific function> = specific_function %C.as.I.impl.F.4ca3bc.2, @C.as.I.impl.F.1(%empty_tuple) [concrete]
// CHECK:STDOUT: %pattern_type.7b9: type = pattern_type %C.2c9 [concrete]
// CHECK:STDOUT: %x.param_patt.221: %pattern_type.7b9 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.565: %pattern_type.7b9 = at_binding_pattern x, %x.param_patt.221 [concrete]
// CHECK:STDOUT: %x.patt.528: %pattern_type.7b9 = wrapper_binding_pattern x, %x.param_patt.221 [concrete]
// CHECK:STDOUT: %C.as.I.impl.F.specific_fn.e3e0cd.2: <specific function> = specific_function %C.as.I.impl.F.4ca3bc.1, @C.as.I.impl.F.2(%empty_tuple) [concrete]
// CHECK:STDOUT: %C.val.168: %C.2c9 = struct_value () [concrete]
// CHECK:STDOUT: %.790: ref %C.2c9 = temporary invalid, %C.val.168 [concrete]
@@ -628,7 +628,7 @@ fn G() {
// CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.6b1ed7.2)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.d0f)]
// CHECK:STDOUT: %x.param_patt: @C.as.I.impl.F.2.%pattern_type (%pattern_type.d0f) = value_param_pattern [symbolic = %x.param_patt (constants.%x.param_patt.bc9)]
// CHECK:STDOUT: %x.patt: @C.as.I.impl.F.2.%pattern_type (%pattern_type.d0f) = at_binding_pattern x, %x.param_patt [symbolic = %x.patt (constants.%x.patt.cc8)]
// CHECK:STDOUT: %x.patt: @C.as.I.impl.F.2.%pattern_type (%pattern_type.d0f) = wrapper_binding_pattern x, %x.param_patt [symbolic = %x.patt (constants.%x.patt.bce)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %C [symbolic = %require_complete (constants.%require_complete)]
@@ -690,7 +690,7 @@ fn G() {
// CHECK:STDOUT: %C => constants.%C.6b1ed7.2
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0f
// CHECK:STDOUT: %x.param_patt => constants.%x.param_patt.bc9
// CHECK:STDOUT: %x.patt => constants.%x.patt.cc8
// CHECK:STDOUT: %x.patt => constants.%x.patt.bce
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete
@@ -746,7 +746,7 @@ fn G() {
// CHECK:STDOUT: %C => constants.%C.2c9
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b9
// CHECK:STDOUT: %x.param_patt => constants.%x.param_patt.221
// CHECK:STDOUT: %x.patt => constants.%x.patt.565
// CHECK:STDOUT: %x.patt => constants.%x.patt.528
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
+37 -37
View File
@@ -123,7 +123,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.701: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.701 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.701 = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.701 = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic]
// CHECK:STDOUT: %return.param_patt: %pattern_type.51d = out_param_pattern [symbolic]
@@ -170,7 +170,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] {
// CHECK:STDOUT: %self.param_patt.loc4_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = value_param_pattern [symbolic = %self.param_patt.loc4_14.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = at_binding_pattern self, %self.param_patt.loc4_14.1 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = wrapper_binding_pattern self, %self.param_patt.loc4_14.1 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %return.param_patt.loc4_23.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc4_23.2 (constants.%return.param_patt)]
// CHECK:STDOUT: %return.patt.loc4_20.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_23 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc4_23.1, %Dest.ref [symbolic = %return.patt.loc4_20.2 (constants.%return.patt)]
// CHECK:STDOUT: } {
@@ -207,7 +207,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type.loc4_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_14.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.loc4_14: type = pattern_type %Self.as_type.loc4_14.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.701)]
// CHECK:STDOUT: %self.param_patt.loc4_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = value_param_pattern [symbolic = %self.param_patt.loc4_14.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = at_binding_pattern self, %self.param_patt.loc4_14.2 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_14 (%pattern_type.701) = wrapper_binding_pattern self, %self.param_patt.loc4_14.2 [symbolic = %self.patt.loc4_14.2 (constants.%self.patt)]
// CHECK:STDOUT: %.loc4_23.1: Core.Form = init_form %Dest [symbolic = %.loc4_23.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc4_23: type = pattern_type %Dest [symbolic = %pattern_type.loc4_23 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc4_23.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc4_23.2 (constants.%return.param_patt)]
@@ -253,7 +253,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.67c [symbolic]
// CHECK:STDOUT: %pattern_type.085: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.256: %pattern_type.085 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.8a1: %pattern_type.085 = at_binding_pattern self, %self.param_patt.256 [symbolic]
// CHECK:STDOUT: %self.patt.b63: %pattern_type.085 = wrapper_binding_pattern self, %self.param_patt.256 [symbolic]
// CHECK:STDOUT: %Action.WithSelf.Op.type.667: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.67c) [symbolic]
// CHECK:STDOUT: %Action.WithSelf.Op.217: %Action.WithSelf.Op.type.667 = struct_value () [symbolic]
// CHECK:STDOUT: %Action.assoc_type.1c3: type = assoc_entity_type @Action, @Action(%T) [symbolic]
@@ -273,14 +273,14 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %assoc0.005: %Action.assoc_type.4ce = assoc_entity element0, @Action.WithSelf.%Action.WithSelf.Op.decl [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %self.param_patt.04e: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.312: %pattern_type.9ef = at_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %self.patt.7cd: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %A.as.Action.impl.Op.type: type = fn_type @A.as.Action.impl.Op [concrete]
// CHECK:STDOUT: %A.as.Action.impl.Op: %A.as.Action.impl.Op.type = struct_value () [concrete]
// CHECK:STDOUT: %Action.facet: %Action.type.5d2 = facet_value %A, (%Action.impl_witness) [concrete]
// CHECK:STDOUT: %Action.WithSelf.Op.type.606: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Action.facet) [concrete]
// CHECK:STDOUT: %Action.WithSelf.Op.e27: %Action.WithSelf.Op.type.606 = struct_value () [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %.a0a: type = fn_type_with_self_type %Action.WithSelf.Op.type.606, %Action.facet [concrete]
@@ -324,7 +324,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %.loc12: <witness> = impl_self_witness @A.as.Action.impl.%A.ref, @Action, @Action(constants.%B) [concrete = constants.%.c1e]
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %A = value_param call_param0
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
@@ -347,7 +347,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Action.WithSelf.Op.decl: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.667) = fn_decl @Action.WithSelf.Op [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.217)] {
// CHECK:STDOUT: %self.param_patt.loc5_9.1: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = value_param_pattern [symbolic = %self.param_patt.loc5_9.2 (constants.%self.param_patt.256)]
// CHECK:STDOUT: %self.patt.loc5_9.1: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = at_binding_pattern self, %self.param_patt.loc5_9.1 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt.8a1)]
// CHECK:STDOUT: %self.patt.loc5_9.1: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = wrapper_binding_pattern self, %self.param_patt.loc5_9.1 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt.b63)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Action.WithSelf.Op.%Self.as_type.loc5_9.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_9.1: type = splice_block %.loc5_9.3 [symbolic = %Self.as_type.loc5_9.1 (constants.%Self.as_type)] {
@@ -372,7 +372,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: impl @A.as.Action.impl: %A.ref as %Action.type {
// CHECK:STDOUT: %A.as.Action.impl.Op.decl: %A.as.Action.impl.Op.type = fn_decl @A.as.Action.impl.Op [concrete = constants.%A.as.Action.impl.Op] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%self.param_patt.04e]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.312]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.7cd]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %A = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @A.as.Action.impl.%A.ref [concrete = constants.%A]
@@ -418,7 +418,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type.loc5_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_9.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_9.1 [symbolic = %pattern_type (constants.%pattern_type.085)]
// CHECK:STDOUT: %self.param_patt.loc5_9.2: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = value_param_pattern [symbolic = %self.param_patt.loc5_9.2 (constants.%self.param_patt.256)]
// CHECK:STDOUT: %self.patt.loc5_9.2: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = at_binding_pattern self, %self.param_patt.loc5_9.2 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt.8a1)]
// CHECK:STDOUT: %self.patt.loc5_9.2: @Action.WithSelf.Op.%pattern_type (%pattern_type.085) = wrapper_binding_pattern self, %self.param_patt.loc5_9.2 [symbolic = %self.patt.loc5_9.2 (constants.%self.patt.b63)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @Action.WithSelf.Op.%Self.as_type.loc5_9.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -456,7 +456,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type.loc5_9.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.085
// CHECK:STDOUT: %self.param_patt.loc5_9.2 => constants.%self.param_patt.256
// CHECK:STDOUT: %self.patt.loc5_9.2 => constants.%self.patt.8a1
// CHECK:STDOUT: %self.patt.loc5_9.2 => constants.%self.patt.b63
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Action(constants.%B) {
@@ -497,7 +497,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type.loc5_9.1 => constants.%A
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9ef
// CHECK:STDOUT: %self.param_patt.loc5_9.2 => constants.%self.param_patt.04e
// CHECK:STDOUT: %self.patt.loc5_9.2 => constants.%self.patt.312
// CHECK:STDOUT: %self.patt.loc5_9.2 => constants.%self.patt.7cd
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- action.impl.carbon
@@ -520,13 +520,13 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ea2 [symbolic]
// CHECK:STDOUT: %pattern_type.1f8: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.e11: %pattern_type.1f8 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.f9b: %pattern_type.1f8 = at_binding_pattern self, %self.param_patt.e11 [symbolic]
// CHECK:STDOUT: %self.patt.c3e: %pattern_type.1f8 = wrapper_binding_pattern self, %self.param_patt.e11 [symbolic]
// CHECK:STDOUT: %A: type = class_type @A [concrete]
// CHECK:STDOUT: %Action.type.5d2: type = facet_type <@Action, @Action(%B)> [concrete]
// CHECK:STDOUT: %Self.581: %Action.type.5d2 = symbolic_binding Self, 1 [symbolic]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %Action.WithSelf.Op.type.070: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%B, %Self.ea2) [symbolic]
@@ -589,7 +589,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %A = value_param call_param0
// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A]
@@ -643,7 +643,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1f8)]
// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.1f8) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.e11)]
// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.1f8) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.f9b)]
// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.1f8) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.c3e)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -678,7 +678,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1f8
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.e11
// CHECK:STDOUT: %self.patt => constants.%self.patt.f9b
// CHECK:STDOUT: %self.patt => constants.%self.patt.c3e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Action(constants.%B) {
@@ -731,13 +731,13 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ea2 [symbolic]
// CHECK:STDOUT: %pattern_type.1f8: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f8 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.1f8 = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.1f8 = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %A: type = class_type @A [concrete]
// CHECK:STDOUT: %Action.type.5d2: type = facet_type <@Action, @Action(%B)> [concrete]
// CHECK:STDOUT: %Self.581: %Action.type.5d2 = symbolic_binding Self, 1 [symbolic]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %C: type = class_type @C [concrete]
@@ -796,7 +796,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %A = value_param call_param0
// CHECK:STDOUT: %A.ref: type = name_ref A, imports.%Main.A [concrete = constants.%A]
@@ -857,7 +857,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1f8)]
// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.1f8) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.1f8) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.1f8) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -942,7 +942,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.9c2 [symbolic]
// CHECK:STDOUT: %pattern_type.5ba: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.d68: %pattern_type.5ba = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.79a: %pattern_type.5ba = at_binding_pattern self, %self.param_patt.d68 [symbolic]
// CHECK:STDOUT: %self.patt.b19: %pattern_type.5ba = wrapper_binding_pattern self, %self.param_patt.d68 [symbolic]
// CHECK:STDOUT: %Factory.WithSelf.Method.type.63a: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.9c2) [symbolic]
// CHECK:STDOUT: %Factory.WithSelf.Method.097: %Factory.WithSelf.Method.type.63a = struct_value () [symbolic]
// CHECK:STDOUT: %assoc1.b7b: %Factory.assoc_type.0ed = assoc_entity element1, @Factory.WithSelf.%Factory.WithSelf.Method.decl [symbolic]
@@ -969,7 +969,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %A.as.Factory.impl.Make: %A.as.Factory.impl.Make.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %self.param_patt.04e: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.312: %pattern_type.9ef = at_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %self.patt.7cd: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt.04e [concrete]
// CHECK:STDOUT: %A.as.Factory.impl.Method.type: type = fn_type @A.as.Factory.impl.Method [concrete]
// CHECK:STDOUT: %A.as.Factory.impl.Method: %A.as.Factory.impl.Method.type = struct_value () [concrete]
// CHECK:STDOUT: %Factory.facet: %Factory.type.5e3 = facet_value %A, (%Factory.impl_witness) [concrete]
@@ -1039,7 +1039,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %assoc0.loc6_17.1: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.0ed) = assoc_entity element0, %Factory.WithSelf.Make.decl [symbolic = %assoc0.loc6_17.2 (constants.%assoc0.6f5)]
// CHECK:STDOUT: %Factory.WithSelf.Method.decl: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.63a) = fn_decl @Factory.WithSelf.Method [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.097)] {
// CHECK:STDOUT: %self.param_patt.loc8_13.1: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.5ba) = value_param_pattern [symbolic = %self.param_patt.loc8_13.2 (constants.%self.param_patt.d68)]
// CHECK:STDOUT: %self.patt.loc8_13.1: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.5ba) = at_binding_pattern self, %self.param_patt.loc8_13.1 [symbolic = %self.patt.loc8_13.2 (constants.%self.patt.79a)]
// CHECK:STDOUT: %self.patt.loc8_13.1: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.5ba) = wrapper_binding_pattern self, %self.param_patt.loc8_13.1 [symbolic = %self.patt.loc8_13.2 (constants.%self.patt.b19)]
// CHECK:STDOUT: %return.param_patt.loc8_22.1: @Factory.WithSelf.Method.%pattern_type.loc8_22 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc8_22.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc8_19.1: @Factory.WithSelf.Method.%pattern_type.loc8_22 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc8_22.1, %T.ref [symbolic = %return.patt.loc8_19.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -1083,7 +1083,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.as.Factory.impl.Method.decl: %A.as.Factory.impl.Method.type = fn_decl @A.as.Factory.impl.Method [concrete = constants.%A.as.Factory.impl.Method] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%self.param_patt.04e]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.312]
// CHECK:STDOUT: %self.patt: %pattern_type.9ef = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.7cd]
// CHECK:STDOUT: %return.param_patt: %pattern_type.e39 = out_param_pattern [concrete = constants.%return.param_patt.934]
// CHECK:STDOUT: %return.patt: %pattern_type.e39 = return_slot_pattern %return.param_patt, %B.ref [concrete = constants.%return.patt.911]
// CHECK:STDOUT: } {
@@ -1139,7 +1139,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type.loc8_13.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_13.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.loc8_13: type = pattern_type %Self.as_type.loc8_13.1 [symbolic = %pattern_type.loc8_13 (constants.%pattern_type.5ba)]
// CHECK:STDOUT: %self.param_patt.loc8_13.2: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.5ba) = value_param_pattern [symbolic = %self.param_patt.loc8_13.2 (constants.%self.param_patt.d68)]
// CHECK:STDOUT: %self.patt.loc8_13.2: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.5ba) = at_binding_pattern self, %self.param_patt.loc8_13.2 [symbolic = %self.patt.loc8_13.2 (constants.%self.patt.79a)]
// CHECK:STDOUT: %self.patt.loc8_13.2: @Factory.WithSelf.Method.%pattern_type.loc8_13 (%pattern_type.5ba) = wrapper_binding_pattern self, %self.param_patt.loc8_13.2 [symbolic = %self.patt.loc8_13.2 (constants.%self.patt.b19)]
// CHECK:STDOUT: %.loc8_22.1: Core.Form = init_form %T [symbolic = %.loc8_22.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc8_22: type = pattern_type %T [symbolic = %pattern_type.loc8_22 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc8_22.2: @Factory.WithSelf.Method.%pattern_type.loc8_22 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc8_22.2 (constants.%return.param_patt.41d)]
@@ -1174,7 +1174,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type.loc8_13.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.5ba
// CHECK:STDOUT: %self.param_patt.loc8_13.2 => constants.%self.param_patt.d68
// CHECK:STDOUT: %self.patt.loc8_13.2 => constants.%self.patt.79a
// CHECK:STDOUT: %self.patt.loc8_13.2 => constants.%self.patt.b19
// CHECK:STDOUT: %.loc8_22.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc8_22 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc8_22.2 => constants.%return.param_patt.41d
@@ -1233,7 +1233,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type.loc8_13.1 => constants.%A
// CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.9ef
// CHECK:STDOUT: %self.param_patt.loc8_13.2 => constants.%self.param_patt.04e
// CHECK:STDOUT: %self.patt.loc8_13.2 => constants.%self.patt.312
// CHECK:STDOUT: %self.patt.loc8_13.2 => constants.%self.patt.7cd
// CHECK:STDOUT: %.loc8_22.1 => constants.%.d83
// CHECK:STDOUT: %pattern_type.loc8_22 => constants.%pattern_type.e39
// CHECK:STDOUT: %return.param_patt.loc8_22.2 => constants.%return.param_patt.934
@@ -1262,7 +1262,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.3e3 [symbolic]
// CHECK:STDOUT: %pattern_type.b1a: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.f89: %pattern_type.b1a = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.5e0: %pattern_type.b1a = at_binding_pattern self, %self.param_patt.f89 [symbolic]
// CHECK:STDOUT: %self.patt.8bf: %pattern_type.b1a = wrapper_binding_pattern self, %self.param_patt.f89 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %Factory.WithSelf.Make.type.cf7: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.3e3) [symbolic]
// CHECK:STDOUT: %Factory.WithSelf.Make.86c: %Factory.WithSelf.Make.type.cf7 = struct_value () [symbolic]
@@ -1294,7 +1294,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %A.as.Factory.impl.Make: %A.as.Factory.impl.Make.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %InstanceB.type: type = fn_type @InstanceB [concrete]
// CHECK:STDOUT: %InstanceB: %InstanceB.type = struct_value () [concrete]
// CHECK:STDOUT: %assoc1.c00: %Factory.assoc_type.0ed = assoc_entity element1, imports.%Main.import_ref.82f [symbolic]
@@ -1363,7 +1363,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InstanceB.decl: %InstanceB.type = fn_decl @InstanceB [concrete = constants.%InstanceB] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.e39 = out_param_pattern [concrete = constants.%return.param_patt.934]
// CHECK:STDOUT: %return.patt: %pattern_type.e39 = return_slot_pattern %return.param_patt, %B.ref.loc7 [concrete = constants.%return.patt.911]
// CHECK:STDOUT: } {
@@ -1425,7 +1425,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.b1a)]
// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.1 (%pattern_type.b1a) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.f89)]
// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.1 (%pattern_type.b1a) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.5e0)]
// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.1 (%pattern_type.b1a) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.8bf)]
// CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Method.%pattern_type.2 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt.41d)]
@@ -1493,7 +1493,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.b1a
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.f89
// CHECK:STDOUT: %self.patt => constants.%self.patt.5e0
// CHECK:STDOUT: %self.patt => constants.%self.patt.8bf
// CHECK:STDOUT: %.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.41d
@@ -1567,7 +1567,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.3e3 [symbolic]
// CHECK:STDOUT: %pattern_type.b1a: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.b1a = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.b1a = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.b1a = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %Factory.WithSelf.Make.type.cf7: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.3e3) [symbolic]
// CHECK:STDOUT: %Factory.WithSelf.Make.86c: %Factory.WithSelf.Make.type.cf7 = struct_value () [symbolic]
@@ -1593,7 +1593,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %assoc0.c0a: %Factory.assoc_type.0ed = assoc_entity element0, imports.%Main.import_ref.587 [symbolic]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %InstanceC.type: type = fn_type @InstanceC [concrete]
// CHECK:STDOUT: %InstanceC: %InstanceC.type = struct_value () [concrete]
// CHECK:STDOUT: %assoc1.c00: %Factory.assoc_type.0ed = assoc_entity element1, imports.%Main.import_ref.82f [symbolic]
@@ -1659,7 +1659,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InstanceC.decl: %InstanceC.type = fn_decl @InstanceC [concrete = constants.%InstanceC] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9ef = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc16 [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
@@ -1729,7 +1729,7 @@ fn InstanceC(a: A) -> C {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.b1a)]
// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.1 (%pattern_type.b1a) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.1 (%pattern_type.b1a) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.1 (%pattern_type.b1a) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Method.%pattern_type.2 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt.41d)]
+2 -2
View File
@@ -51,7 +51,7 @@ fn G(c: C) {
// CHECK:STDOUT: %HasF.WithSelf.F.689: %HasF.WithSelf.F.type.722 = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %.697: type = fn_type_with_self_type %HasF.WithSelf.F.type.722, %HasF.facet [concrete]
@@ -72,7 +72,7 @@ fn G(c: C) {
// CHECK:STDOUT: %.loc23: <witness> = impl_self_witness @C.as.HasF.impl.%C.ref, @HasF [concrete = constants.%.ba1]
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref.loc27: type = name_ref C, file.%C.decl [concrete = constants.%C]
@@ -55,7 +55,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.c84: type = facet_access_type %Self.37e [symbolic]
// CHECK:STDOUT: %pattern_type.c60: type = pattern_type %Self.as_type.c84 [symbolic]
// CHECK:STDOUT: %self.param_patt.a33: %pattern_type.c60 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.696: %pattern_type.c60 = at_binding_pattern self, %self.param_patt.a33 [symbolic]
// CHECK:STDOUT: %self.patt.85e: %pattern_type.c60 = wrapper_binding_pattern self, %self.param_patt.a33 [symbolic]
// CHECK:STDOUT: %I.WithSelf.II.type.8a2: type = fn_type @I.WithSelf.II, @I.WithSelf(%Self.37e) [symbolic]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %I.WithSelf.II.09c: %I.WithSelf.II.type.8a2 = struct_value () [symbolic]
@@ -66,7 +66,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.976: type = facet_access_type %Self.653 [symbolic]
// CHECK:STDOUT: %pattern_type.506: type = pattern_type %Self.as_type.976 [symbolic]
// CHECK:STDOUT: %self.param_patt.091: %pattern_type.506 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.bfd: %pattern_type.506 = at_binding_pattern self, %self.param_patt.091 [symbolic]
// CHECK:STDOUT: %self.patt.f35: %pattern_type.506 = wrapper_binding_pattern self, %self.param_patt.091 [symbolic]
// CHECK:STDOUT: %J.WithSelf.JJ.type.e02: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%Self.653) [symbolic]
// CHECK:STDOUT: %J.WithSelf.JJ.1d0: %J.WithSelf.JJ.type.e02 = struct_value () [symbolic]
// CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete]
@@ -90,7 +90,7 @@ fn G() {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.936: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %t.param_patt.ed4: %pattern_type.936 = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt.088: %pattern_type.936 = at_binding_pattern t, %t.param_patt.ed4 [symbolic]
// CHECK:STDOUT: %t.patt.4c5: %pattern_type.936 = wrapper_binding_pattern t, %t.param_patt.ed4 [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type [symbolic]
@@ -107,7 +107,7 @@ fn G() {
// CHECK:STDOUT: %.443: type = fn_type_with_self_type %J.WithSelf.JJ.type.2d7, %J.facet.cbc [symbolic]
// CHECK:STDOUT: %impl.elem0: %.443 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic]
// CHECK:STDOUT: %self.param_patt.ad3: %pattern_type.936 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.1c9: %pattern_type.936 = at_binding_pattern self, %self.param_patt.ad3 [symbolic]
// CHECK:STDOUT: %self.patt.527: %pattern_type.936 = wrapper_binding_pattern self, %self.param_patt.ad3 [symbolic]
// CHECK:STDOUT: %specific_impl_fn: <specific function> = specific_impl_function %impl.elem0, @J.WithSelf.JJ(%J.facet.cbc) [symbolic]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
@@ -116,7 +116,7 @@ fn G() {
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.f79: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.dfa: %pattern_type.f79 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.947: %pattern_type.f79 = at_binding_pattern self, %self.param_patt.dfa [concrete]
// CHECK:STDOUT: %self.patt.6f7: %pattern_type.f79 = wrapper_binding_pattern self, %self.param_patt.dfa [concrete]
// CHECK:STDOUT: %C.as.I.impl.II.type: type = fn_type @C.as.I.impl.II [concrete]
// CHECK:STDOUT: %C.as.I.impl.II: %C.as.I.impl.II.type = struct_value () [concrete]
// CHECK:STDOUT: %I.facet.bae: %I.type = facet_value %C, (%I.impl_witness) [concrete]
@@ -147,7 +147,7 @@ fn G() {
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %.5d3, %Destroy.Op.1a2547.2 [concrete]
// CHECK:STDOUT: %facet_value: %facet_type = facet_value %C, (%I.impl_witness, %J.impl_witness) [concrete]
// CHECK:STDOUT: %t.param_patt.5f8: %pattern_type.f79 = value_param_pattern [concrete]
// CHECK:STDOUT: %t.patt.b06: %pattern_type.f79 = at_binding_pattern t, %t.param_patt.5f8 [concrete]
// CHECK:STDOUT: %t.patt.094: %pattern_type.f79 = wrapper_binding_pattern t, %t.param_patt.5f8 [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%facet_value) [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -178,7 +178,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc22_15.1: %pattern_type.fb7 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc22_15.2 (constants.%T.patt)]
// CHECK:STDOUT: %t.param_patt.loc22_25.1: @F.%pattern_type (%pattern_type.936) = value_param_pattern [symbolic = %t.param_patt.loc22_25.2 (constants.%t.param_patt.ed4)]
// CHECK:STDOUT: %t.patt.loc22_25.1: @F.%pattern_type (%pattern_type.936) = at_binding_pattern t, %t.param_patt.loc22_25.1 [symbolic = %t.patt.loc22_25.2 (constants.%t.patt.088)]
// CHECK:STDOUT: %t.patt.loc22_25.1: @F.%pattern_type (%pattern_type.936) = wrapper_binding_pattern t, %t.param_patt.loc22_25.1 [symbolic = %t.patt.loc22_25.2 (constants.%t.patt.4c5)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc22_19.1: type = splice_block %.loc22_19.3 [concrete = constants.%facet_type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -209,7 +209,7 @@ fn G() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.II.decl: @I.WithSelf.%I.WithSelf.II.type (%I.WithSelf.II.type.8a2) = fn_decl @I.WithSelf.II [symbolic = @I.WithSelf.%I.WithSelf.II (constants.%I.WithSelf.II.09c)] {
// CHECK:STDOUT: %self.param_patt.loc16_9.1: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc16_9.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc16_9.1: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc16_9.1 [symbolic = %self.patt.loc16_9.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc16_9.1: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc16_9.1 [symbolic = %self.patt.loc16_9.2 (constants.%self.patt.85e)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @I.WithSelf.II.%Self.as_type.loc16_9.1 (%Self.as_type.c84) = value_param call_param0
// CHECK:STDOUT: %.loc16_9.1: type = splice_block %.loc16_9.2 [symbolic = %Self.as_type.loc16_9.1 (constants.%Self.as_type.c84)] {
@@ -238,7 +238,7 @@ fn G() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %J.WithSelf.JJ.decl: @J.WithSelf.%J.WithSelf.JJ.type (%J.WithSelf.JJ.type.e02) = fn_decl @J.WithSelf.JJ [symbolic = @J.WithSelf.%J.WithSelf.JJ (constants.%J.WithSelf.JJ.1d0)] {
// CHECK:STDOUT: %self.param_patt.loc19_9.1: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = value_param_pattern [symbolic = %self.param_patt.loc19_9.2 (constants.%self.param_patt.091)]
// CHECK:STDOUT: %self.patt.loc19_9.1: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = at_binding_pattern self, %self.param_patt.loc19_9.1 [symbolic = %self.patt.loc19_9.2 (constants.%self.patt.bfd)]
// CHECK:STDOUT: %self.patt.loc19_9.1: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = wrapper_binding_pattern self, %self.param_patt.loc19_9.1 [symbolic = %self.patt.loc19_9.2 (constants.%self.patt.f35)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @J.WithSelf.JJ.%Self.as_type.loc19_9.1 (%Self.as_type.976) = value_param call_param0
// CHECK:STDOUT: %.loc19_9.1: type = splice_block %.loc19_9.2 [symbolic = %Self.as_type.loc19_9.1 (constants.%Self.as_type.976)] {
@@ -261,7 +261,7 @@ fn G() {
// CHECK:STDOUT: impl @C.as.I.impl: %Self.ref as %I.ref {
// CHECK:STDOUT: %C.as.I.impl.II.decl: %C.as.I.impl.II.type = fn_decl @C.as.I.impl.II [concrete = constants.%C.as.I.impl.II] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f79 = value_param_pattern [concrete = constants.%self.param_patt.dfa]
// CHECK:STDOUT: %self.patt: %pattern_type.f79 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.947]
// CHECK:STDOUT: %self.patt: %pattern_type.f79 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6f7]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -279,7 +279,7 @@ fn G() {
// CHECK:STDOUT: impl @C.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %C.as.J.impl.JJ.decl: %C.as.J.impl.JJ.type = fn_decl @C.as.J.impl.JJ [concrete = constants.%C.as.J.impl.JJ] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f79 = value_param_pattern [concrete = constants.%self.param_patt.dfa]
// CHECK:STDOUT: %self.patt: %pattern_type.f79 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.947]
// CHECK:STDOUT: %self.patt: %pattern_type.f79 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6f7]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -322,7 +322,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.loc16_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_9.1 (constants.%Self.as_type.c84)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_9.1 [symbolic = %pattern_type (constants.%pattern_type.c60)]
// CHECK:STDOUT: %self.param_patt.loc16_9.2: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc16_9.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc16_9.2: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc16_9.2 [symbolic = %self.patt.loc16_9.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc16_9.2: @I.WithSelf.II.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc16_9.2 [symbolic = %self.patt.loc16_9.2 (constants.%self.patt.85e)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @I.WithSelf.II.%Self.as_type.loc16_9.1 (%Self.as_type.c84));
// CHECK:STDOUT: }
@@ -332,7 +332,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.loc19_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_9.1 (constants.%Self.as_type.976)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_9.1 [symbolic = %pattern_type (constants.%pattern_type.506)]
// CHECK:STDOUT: %self.param_patt.loc19_9.2: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = value_param_pattern [symbolic = %self.param_patt.loc19_9.2 (constants.%self.param_patt.091)]
// CHECK:STDOUT: %self.patt.loc19_9.2: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = at_binding_pattern self, %self.param_patt.loc19_9.2 [symbolic = %self.patt.loc19_9.2 (constants.%self.patt.bfd)]
// CHECK:STDOUT: %self.patt.loc19_9.2: @J.WithSelf.JJ.%pattern_type (%pattern_type.506) = wrapper_binding_pattern self, %self.param_patt.loc19_9.2 [symbolic = %self.patt.loc19_9.2 (constants.%self.patt.f35)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @J.WithSelf.JJ.%Self.as_type.loc19_9.1 (%Self.as_type.976));
// CHECK:STDOUT: }
@@ -343,7 +343,7 @@ fn G() {
// CHECK:STDOUT: %T.as_type.loc22_27.1: type = facet_access_type %T.loc22_15.1 [symbolic = %T.as_type.loc22_27.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_27.1 [symbolic = %pattern_type (constants.%pattern_type.936)]
// CHECK:STDOUT: %t.param_patt.loc22_25.2: @F.%pattern_type (%pattern_type.936) = value_param_pattern [symbolic = %t.param_patt.loc22_25.2 (constants.%t.param_patt.ed4)]
// CHECK:STDOUT: %t.patt.loc22_25.2: @F.%pattern_type (%pattern_type.936) = at_binding_pattern t, %t.param_patt.loc22_25.2 [symbolic = %t.patt.loc22_25.2 (constants.%t.patt.088)]
// CHECK:STDOUT: %t.patt.loc22_25.2: @F.%pattern_type (%pattern_type.936) = wrapper_binding_pattern t, %t.param_patt.loc22_25.2 [symbolic = %t.patt.loc22_25.2 (constants.%t.patt.4c5)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc22_27.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -487,7 +487,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.loc16_9.1 => constants.%Self.as_type.c84
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60
// CHECK:STDOUT: %self.param_patt.loc16_9.2 => constants.%self.param_patt.a33
// CHECK:STDOUT: %self.patt.loc16_9.2 => constants.%self.patt.696
// CHECK:STDOUT: %self.patt.loc16_9.2 => constants.%self.patt.85e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @J.WithSelf(constants.%Self.653) {
@@ -502,7 +502,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.loc19_9.1 => constants.%Self.as_type.976
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.506
// CHECK:STDOUT: %self.param_patt.loc19_9.2 => constants.%self.param_patt.091
// CHECK:STDOUT: %self.patt.loc19_9.2 => constants.%self.patt.bfd
// CHECK:STDOUT: %self.patt.loc19_9.2 => constants.%self.patt.f35
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @F(constants.%T) {
@@ -511,7 +511,7 @@ fn G() {
// CHECK:STDOUT: %T.as_type.loc22_27.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.936
// CHECK:STDOUT: %t.param_patt.loc22_25.2 => constants.%t.param_patt.ed4
// CHECK:STDOUT: %t.patt.loc22_25.2 => constants.%t.patt.088
// CHECK:STDOUT: %t.patt.loc22_25.2 => constants.%t.patt.4c5
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%T) {
@@ -540,7 +540,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.loc19_9.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.936
// CHECK:STDOUT: %self.param_patt.loc19_9.2 => constants.%self.param_patt.ad3
// CHECK:STDOUT: %self.patt.loc19_9.2 => constants.%self.patt.1c9
// CHECK:STDOUT: %self.patt.loc19_9.2 => constants.%self.patt.527
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.bae) {
@@ -555,7 +555,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.loc16_9.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f79
// CHECK:STDOUT: %self.param_patt.loc16_9.2 => constants.%self.param_patt.dfa
// CHECK:STDOUT: %self.patt.loc16_9.2 => constants.%self.patt.947
// CHECK:STDOUT: %self.patt.loc16_9.2 => constants.%self.patt.6f7
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.85d) {
@@ -570,7 +570,7 @@ fn G() {
// CHECK:STDOUT: %Self.as_type.loc19_9.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f79
// CHECK:STDOUT: %self.param_patt.loc19_9.2 => constants.%self.param_patt.dfa
// CHECK:STDOUT: %self.patt.loc19_9.2 => constants.%self.patt.947
// CHECK:STDOUT: %self.patt.loc19_9.2 => constants.%self.patt.6f7
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @J.WithSelf(constants.%C.type.facet) {
@@ -593,7 +593,7 @@ fn G() {
// CHECK:STDOUT: %T.as_type.loc22_27.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f79
// CHECK:STDOUT: %t.param_patt.loc22_25.2 => constants.%t.param_patt.5f8
// CHECK:STDOUT: %t.patt.loc22_25.2 => constants.%t.patt.b06
// CHECK:STDOUT: %t.patt.loc22_25.2 => constants.%t.patt.094
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -47,7 +47,7 @@ fn F(c: C) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -62,7 +62,7 @@ fn F(c: C) {
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref.loc23: type = name_ref C, file.%C.decl [concrete = constants.%C]
+69 -69
View File
@@ -136,7 +136,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.74d: %pattern_type.c9f = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.b33: %pattern_type.c9f = at_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %self.patt.975: %pattern_type.c9f = wrapper_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.type.a73: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %HasF.WithSelf.F.851: %HasF.WithSelf.F.type.a73 = struct_value () [symbolic]
@@ -151,7 +151,7 @@ fn G(x: A) {
// CHECK:STDOUT: %HasF.impl_witness.c4c: <witness> = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%T) [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %self.param_patt.b7c: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.7e4: %pattern_type.51d = at_binding_pattern self, %self.param_patt.b7c [symbolic]
// CHECK:STDOUT: %self.patt.4d9: %pattern_type.51d = wrapper_binding_pattern self, %self.param_patt.b7c [symbolic]
// CHECK:STDOUT: %T.as.HasF.impl.F.type.195: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T) [symbolic]
// CHECK:STDOUT: %T.as.HasF.impl.F.863: %T.as.HasF.impl.F.type.195 = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.facet.d3e: %HasF.type = facet_value %T, (%HasF.impl_witness.c4c) [symbolic]
@@ -162,7 +162,7 @@ fn G(x: A) {
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %.94a: <witness> = impl_self_witness %empty_struct_type, @HasF [concrete]
@@ -174,7 +174,7 @@ fn G(x: A) {
// CHECK:STDOUT: %HasF.WithSelf.F.e57: %HasF.WithSelf.F.type.c41 = struct_value () [concrete]
// CHECK:STDOUT: %.376: type = fn_type_with_self_type %HasF.WithSelf.F.type.c41, %HasF.facet.db1 [concrete]
// CHECK:STDOUT: %self.param_patt.482: %pattern_type.a96 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.b63: %pattern_type.a96 = at_binding_pattern self, %self.param_patt.482 [concrete]
// CHECK:STDOUT: %self.patt.602: %pattern_type.a96 = wrapper_binding_pattern self, %self.param_patt.482 [concrete]
// CHECK:STDOUT: %T.as.HasF.impl.F.specific_fn: <specific function> = specific_function %T.as.HasF.impl.F.e31, @T.as.HasF.impl.F(%empty_struct_type) [concrete]
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: }
@@ -208,7 +208,7 @@ fn G(x: A) {
// CHECK:STDOUT: %.loc8: <witness> = impl_self_witness @T.as.HasF.impl.%T.ref, @HasF [symbolic = @T.as.HasF.impl.%.loc8_33 (constants.%.989)]
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0
// CHECK:STDOUT: %.loc12_10.1: type = splice_block %.loc12_10.3 [concrete = constants.%empty_struct_type] {
@@ -226,7 +226,7 @@ fn G(x: A) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.2 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -259,7 +259,7 @@ fn G(x: A) {
// CHECK:STDOUT: impl: %T.ref as %HasF.ref {
// CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type.195) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F.863)] {
// CHECK:STDOUT: %self.param_patt.loc9_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %self.param_patt.loc9_15.2 (constants.%self.param_patt.b7c)]
// CHECK:STDOUT: %self.patt.loc9_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt.loc9_15.1 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %self.patt.loc9_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern self, %self.param_patt.loc9_15.1 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.4d9)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T.as.HasF.impl.F.%T (%T) = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @T.as.HasF.impl.%T.ref [symbolic = %T (constants.%T)]
@@ -280,7 +280,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -289,7 +289,7 @@ fn G(x: A) {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)]
// CHECK:STDOUT: %self.param_patt.loc9_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %self.param_patt.loc9_15.2 (constants.%self.param_patt.b7c)]
// CHECK:STDOUT: %self.patt.loc9_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt.loc9_15.2 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %self.patt.loc9_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern self, %self.param_patt.loc9_15.2 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.4d9)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic = %require_complete (constants.%require_complete)]
@@ -325,7 +325,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.74d
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.b33
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.975
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) {
@@ -343,7 +343,7 @@ fn G(x: A) {
// CHECK:STDOUT: %T => constants.%T
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
// CHECK:STDOUT: %self.param_patt.loc9_15.2 => constants.%self.param_patt.b7c
// CHECK:STDOUT: %self.patt.loc9_15.2 => constants.%self.patt.7e4
// CHECK:STDOUT: %self.patt.loc9_15.2 => constants.%self.patt.4d9
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.d3e) {
@@ -358,7 +358,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%T
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.b7c
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.7e4
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.4d9
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @T.as.HasF.impl(constants.%empty_struct_type) {
@@ -383,7 +383,7 @@ fn G(x: A) {
// CHECK:STDOUT: %T => constants.%empty_struct_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a96
// CHECK:STDOUT: %self.param_patt.loc9_15.2 => constants.%self.param_patt.482
// CHECK:STDOUT: %self.patt.loc9_15.2 => constants.%self.patt.b63
// CHECK:STDOUT: %self.patt.loc9_15.2 => constants.%self.patt.602
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -397,7 +397,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.5c2: type = facet_access_type %Self.c62 [symbolic]
// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type.5c2 [symbolic]
// CHECK:STDOUT: %self.param_patt.74d: %pattern_type.c9f = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.b33: %pattern_type.c9f = at_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %self.patt.975: %pattern_type.c9f = wrapper_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %.376: Core.Form = init_form %Self.as_type.5c2 [symbolic]
// CHECK:STDOUT: %return.param_patt.78b: %pattern_type.c9f = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.c00: %pattern_type.c9f = return_slot_pattern %return.param_patt.78b, %Self.as_type.5c2 [symbolic]
@@ -415,7 +415,7 @@ fn G(x: A) {
// CHECK:STDOUT: %HasF.impl_witness.bd4: <witness> = impl_witness @ptr.as.HasF.impl.%HasF.impl_witness_table, @ptr.as.HasF.impl(%T.67d) [symbolic]
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic]
// CHECK:STDOUT: %self.param_patt.921: %pattern_type.4f4 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.99b: %pattern_type.4f4 = at_binding_pattern self, %self.param_patt.921 [symbolic]
// CHECK:STDOUT: %self.patt.b8b: %pattern_type.4f4 = wrapper_binding_pattern self, %self.param_patt.921 [symbolic]
// CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic]
// CHECK:STDOUT: %return.param_patt.27f: %pattern_type.4f4 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.d67: %pattern_type.4f4 = return_slot_pattern %return.param_patt.27f, %ptr.e8f [symbolic]
@@ -440,7 +440,7 @@ fn G(x: A) {
// CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.1cc: type = pattern_type %ptr.c28 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.1cc = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.1cc = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.1cc = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %.9ba: Core.Form = init_form %ptr.c28 [concrete]
// CHECK:STDOUT: %return.param_patt.07a: %pattern_type.1cc = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.da5: %pattern_type.1cc = return_slot_pattern %return.param_patt.07a, %ptr.c28 [concrete]
@@ -455,7 +455,7 @@ fn G(x: A) {
// CHECK:STDOUT: %HasF.WithSelf.F.8ab: %HasF.WithSelf.F.type.470 = struct_value () [concrete]
// CHECK:STDOUT: %.41a: type = fn_type_with_self_type %HasF.WithSelf.F.type.470, %HasF.facet.84d [concrete]
// CHECK:STDOUT: %self.param_patt.4b0: %pattern_type.1cc = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.254: %pattern_type.1cc = at_binding_pattern self, %self.param_patt.4b0 [concrete]
// CHECK:STDOUT: %self.patt.2ab: %pattern_type.1cc = wrapper_binding_pattern self, %self.param_patt.4b0 [concrete]
// CHECK:STDOUT: %ptr.as.HasF.impl.F.specific_fn: <specific function> = specific_function %ptr.as.HasF.impl.F.156, @ptr.as.HasF.impl.F(%empty_struct_type) [concrete]
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %ptr.c28 [concrete]
// CHECK:STDOUT: %Copy.impl_witness.e8f: <witness> = impl_witness imports.%Copy.impl_witness_table.fb0, @ptr.as.Copy.impl(%empty_struct_type) [concrete]
@@ -502,7 +502,7 @@ fn G(x: A) {
// CHECK:STDOUT: %.loc8: <witness> = impl_self_witness @ptr.as.HasF.impl.%ptr.loc8_24.2, @HasF [symbolic = @ptr.as.HasF.impl.%.loc8_34 (constants.%.1c9)]
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.1cc = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.1cc = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.1cc = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.1cc = out_param_pattern [concrete = constants.%return.param_patt.07a]
// CHECK:STDOUT: %return.patt: %pattern_type.1cc = return_slot_pattern %return.param_patt, %ptr.loc12_19 [concrete = constants.%return.patt.da5]
// CHECK:STDOUT: } {
@@ -529,7 +529,7 @@ fn G(x: A) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT: %return.param_patt.loc5_17.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = out_param_pattern [symbolic = %return.param_patt.loc5_17.2 (constants.%return.param_patt.78b)]
// CHECK:STDOUT: %return.patt.loc5_14.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = return_slot_pattern %return.param_patt.loc5_17.1, %.loc5_17.2 [symbolic = %return.patt.loc5_14.2 (constants.%return.patt.c00)]
// CHECK:STDOUT: } {
@@ -572,7 +572,7 @@ fn G(x: A) {
// CHECK:STDOUT: impl: %ptr.loc8_24.2 as %HasF.ref {
// CHECK:STDOUT: %ptr.as.HasF.impl.F.decl: @ptr.as.HasF.impl.%ptr.as.HasF.impl.F.type (%ptr.as.HasF.impl.F.type.d5f) = fn_decl @ptr.as.HasF.impl.F [symbolic = @ptr.as.HasF.impl.%ptr.as.HasF.impl.F (constants.%ptr.as.HasF.impl.F.be3)] {
// CHECK:STDOUT: %self.param_patt.loc9_8.1: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = value_param_pattern [symbolic = %self.param_patt.loc9_8.2 (constants.%self.param_patt.921)]
// CHECK:STDOUT: %self.patt.loc9_8.1: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = at_binding_pattern self, %self.param_patt.loc9_8.1 [symbolic = %self.patt.loc9_8.2 (constants.%self.patt.99b)]
// CHECK:STDOUT: %self.patt.loc9_8.1: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = wrapper_binding_pattern self, %self.param_patt.loc9_8.1 [symbolic = %self.patt.loc9_8.2 (constants.%self.patt.b8b)]
// CHECK:STDOUT: %return.param_patt.loc9_18.1: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = out_param_pattern [symbolic = %return.param_patt.loc9_18.2 (constants.%return.param_patt.27f)]
// CHECK:STDOUT: %return.patt.loc9_14.1: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt.loc9_18.1, %ptr.loc9_18 [symbolic = %return.patt.loc9_14.2 (constants.%return.patt.d67)]
// CHECK:STDOUT: } {
@@ -601,7 +601,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type.5c2)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT: %.loc5_17.1: Core.Form = init_form %Self.as_type.loc5_8.1 [symbolic = %.loc5_17.1 (constants.%.376)]
// CHECK:STDOUT: %return.param_patt.loc5_17.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = out_param_pattern [symbolic = %return.param_patt.loc5_17.2 (constants.%return.param_patt.78b)]
// CHECK:STDOUT: %return.patt.loc5_14.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = return_slot_pattern %return.param_patt.loc5_17.2, %Self.as_type.loc5_8.1 [symbolic = %return.patt.loc5_14.2 (constants.%return.patt.c00)]
@@ -614,7 +614,7 @@ fn G(x: A) {
// CHECK:STDOUT: %ptr.loc9_8: type = ptr_type %T [symbolic = %ptr.loc9_8 (constants.%ptr.e8f)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc9_8 [symbolic = %pattern_type (constants.%pattern_type.4f4)]
// CHECK:STDOUT: %self.param_patt.loc9_8.2: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = value_param_pattern [symbolic = %self.param_patt.loc9_8.2 (constants.%self.param_patt.921)]
// CHECK:STDOUT: %self.patt.loc9_8.2: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = at_binding_pattern self, %self.param_patt.loc9_8.2 [symbolic = %self.patt.loc9_8.2 (constants.%self.patt.99b)]
// CHECK:STDOUT: %self.patt.loc9_8.2: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = wrapper_binding_pattern self, %self.param_patt.loc9_8.2 [symbolic = %self.patt.loc9_8.2 (constants.%self.patt.b8b)]
// CHECK:STDOUT: %.loc9_18.1: Core.Form = init_form %ptr.loc9_8 [symbolic = %.loc9_18.1 (constants.%.cb6)]
// CHECK:STDOUT: %return.param_patt.loc9_18.2: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = out_param_pattern [symbolic = %return.param_patt.loc9_18.2 (constants.%return.param_patt.27f)]
// CHECK:STDOUT: %return.patt.loc9_14.2: @ptr.as.HasF.impl.F.%pattern_type (%pattern_type.4f4) = return_slot_pattern %return.param_patt.loc9_18.2, %ptr.loc9_8 [symbolic = %return.patt.loc9_14.2 (constants.%return.patt.d67)]
@@ -670,7 +670,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type.5c2
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.74d
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.b33
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.975
// CHECK:STDOUT: %.loc5_17.1 => constants.%.376
// CHECK:STDOUT: %return.param_patt.loc5_17.2 => constants.%return.param_patt.78b
// CHECK:STDOUT: %return.patt.loc5_14.2 => constants.%return.patt.c00
@@ -693,7 +693,7 @@ fn G(x: A) {
// CHECK:STDOUT: %ptr.loc9_8 => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4
// CHECK:STDOUT: %self.param_patt.loc9_8.2 => constants.%self.param_patt.921
// CHECK:STDOUT: %self.patt.loc9_8.2 => constants.%self.patt.99b
// CHECK:STDOUT: %self.patt.loc9_8.2 => constants.%self.patt.b8b
// CHECK:STDOUT: %.loc9_18.1 => constants.%.cb6
// CHECK:STDOUT: %return.param_patt.loc9_18.2 => constants.%return.param_patt.27f
// CHECK:STDOUT: %return.patt.loc9_14.2 => constants.%return.patt.d67
@@ -711,7 +711,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.921
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.99b
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.b8b
// CHECK:STDOUT: %.loc5_17.1 => constants.%.cb6
// CHECK:STDOUT: %return.param_patt.loc5_17.2 => constants.%return.param_patt.27f
// CHECK:STDOUT: %return.patt.loc5_14.2 => constants.%return.patt.d67
@@ -741,7 +741,7 @@ fn G(x: A) {
// CHECK:STDOUT: %ptr.loc9_8 => constants.%ptr.c28
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1cc
// CHECK:STDOUT: %self.param_patt.loc9_8.2 => constants.%self.param_patt.4b0
// CHECK:STDOUT: %self.patt.loc9_8.2 => constants.%self.patt.254
// CHECK:STDOUT: %self.patt.loc9_8.2 => constants.%self.patt.2ab
// CHECK:STDOUT: %.loc9_18.1 => constants.%.9ba
// CHECK:STDOUT: %return.param_patt.loc9_18.2 => constants.%return.param_patt.07a
// CHECK:STDOUT: %return.patt.loc9_14.2 => constants.%return.patt.da5
@@ -765,7 +765,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.74d: %pattern_type.c9f = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.b33: %pattern_type.c9f = at_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %self.patt.975: %pattern_type.c9f = wrapper_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.type.a73: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %HasF.WithSelf.F.851: %HasF.WithSelf.F.type.a73 = struct_value () [symbolic]
@@ -785,7 +785,7 @@ fn G(x: A) {
// CHECK:STDOUT: %HasF.impl_witness.cc9: <witness> = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table, @C.as.HasF.impl(%T) [symbolic]
// CHECK:STDOUT: %pattern_type.ebe: type = pattern_type %C.1d0 [symbolic]
// CHECK:STDOUT: %self.param_patt.5bc: %pattern_type.ebe = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.6f1: %pattern_type.ebe = at_binding_pattern self, %self.param_patt.5bc [symbolic]
// CHECK:STDOUT: %self.patt.f56: %pattern_type.ebe = wrapper_binding_pattern self, %self.param_patt.5bc [symbolic]
// CHECK:STDOUT: %C.as.HasF.impl.F.type.67f: type = fn_type @C.as.HasF.impl.F, @C.as.HasF.impl(%T) [symbolic]
// CHECK:STDOUT: %C.as.HasF.impl.F.7ba: %C.as.HasF.impl.F.type.67f = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.facet.831: %HasF.type = facet_value %C.1d0, (%HasF.impl_witness.cc9) [symbolic]
@@ -796,7 +796,7 @@ fn G(x: A) {
// CHECK:STDOUT: %C.d8e: type = class_type @C, @C(%empty_struct_type) [concrete]
// CHECK:STDOUT: %pattern_type.2fd: type = pattern_type %C.d8e [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.2fd = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.2fd = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.2fd = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %.014: <witness> = impl_self_witness %C.d8e, @HasF [concrete]
@@ -808,7 +808,7 @@ fn G(x: A) {
// CHECK:STDOUT: %HasF.WithSelf.F.f56: %HasF.WithSelf.F.type.abd = struct_value () [concrete]
// CHECK:STDOUT: %.286: type = fn_type_with_self_type %HasF.WithSelf.F.type.abd, %HasF.facet.cc9 [concrete]
// CHECK:STDOUT: %self.param_patt.12a: %pattern_type.2fd = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.ac5: %pattern_type.2fd = at_binding_pattern self, %self.param_patt.12a [concrete]
// CHECK:STDOUT: %self.patt.f34: %pattern_type.2fd = wrapper_binding_pattern self, %self.param_patt.12a [concrete]
// CHECK:STDOUT: %C.as.HasF.impl.F.specific_fn: <specific function> = specific_function %C.as.HasF.impl.F.612, @C.as.HasF.impl.F(%empty_struct_type) [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -853,7 +853,7 @@ fn G(x: A) {
// CHECK:STDOUT: %.loc10: <witness> = impl_self_witness @C.as.HasF.impl.%C.loc10_26.2, @HasF [symbolic = @C.as.HasF.impl.%.loc10_36 (constants.%.9f4)]
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.2fd = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.2fd = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.2fd = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %C.d8e = value_param call_param0
// CHECK:STDOUT: %.loc14_13.1: type = splice_block %C [concrete = constants.%C.d8e] {
@@ -873,7 +873,7 @@ fn G(x: A) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.a73) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.851)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.2 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -907,7 +907,7 @@ fn G(x: A) {
// CHECK:STDOUT: impl: %C.loc10_26.2 as %HasF.ref {
// CHECK:STDOUT: %C.as.HasF.impl.F.decl: @C.as.HasF.impl.%C.as.HasF.impl.F.type (%C.as.HasF.impl.F.type.67f) = fn_decl @C.as.HasF.impl.F [symbolic = @C.as.HasF.impl.%C.as.HasF.impl.F (constants.%C.as.HasF.impl.F.7ba)] {
// CHECK:STDOUT: %self.param_patt.loc11_15.1: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = value_param_pattern [symbolic = %self.param_patt.loc11_15.2 (constants.%self.param_patt.5bc)]
// CHECK:STDOUT: %self.patt.loc11_15.1: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = at_binding_pattern self, %self.param_patt.loc11_15.1 [symbolic = %self.patt.loc11_15.2 (constants.%self.patt.6f1)]
// CHECK:STDOUT: %self.patt.loc11_15.1: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = wrapper_binding_pattern self, %self.param_patt.loc11_15.1 [symbolic = %self.patt.loc11_15.2 (constants.%self.patt.f56)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @C.as.HasF.impl.F.%C (%C.1d0) = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasF.impl.%C.loc10_26.2 [symbolic = %C (constants.%C.1d0)]
@@ -943,7 +943,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -953,7 +953,7 @@ fn G(x: A) {
// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.1d0)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.ebe)]
// CHECK:STDOUT: %self.param_patt.loc11_15.2: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = value_param_pattern [symbolic = %self.param_patt.loc11_15.2 (constants.%self.param_patt.5bc)]
// CHECK:STDOUT: %self.patt.loc11_15.2: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = at_binding_pattern self, %self.param_patt.loc11_15.2 [symbolic = %self.patt.loc11_15.2 (constants.%self.patt.6f1)]
// CHECK:STDOUT: %self.patt.loc11_15.2: @C.as.HasF.impl.F.%pattern_type (%pattern_type.ebe) = wrapper_binding_pattern self, %self.param_patt.loc11_15.2 [symbolic = %self.patt.loc11_15.2 (constants.%self.patt.f56)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %C [symbolic = %require_complete (constants.%require_complete)]
@@ -989,7 +989,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.74d
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.b33
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.975
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C(constants.%T) {
@@ -1016,7 +1016,7 @@ fn G(x: A) {
// CHECK:STDOUT: %C => constants.%C.1d0
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ebe
// CHECK:STDOUT: %self.param_patt.loc11_15.2 => constants.%self.param_patt.5bc
// CHECK:STDOUT: %self.patt.loc11_15.2 => constants.%self.patt.6f1
// CHECK:STDOUT: %self.patt.loc11_15.2 => constants.%self.patt.f56
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet.831) {
@@ -1031,7 +1031,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%C.1d0
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ebe
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.5bc
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.6f1
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.f56
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C(constants.%empty_struct_type) {
@@ -1065,7 +1065,7 @@ fn G(x: A) {
// CHECK:STDOUT: %C => constants.%C.d8e
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fd
// CHECK:STDOUT: %self.param_patt.loc11_15.2 => constants.%self.param_patt.12a
// CHECK:STDOUT: %self.patt.loc11_15.2 => constants.%self.patt.ac5
// CHECK:STDOUT: %self.patt.loc11_15.2 => constants.%self.patt.f34
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -1087,7 +1087,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.822 [symbolic]
// CHECK:STDOUT: %pattern_type.a2b: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.d2c: %pattern_type.a2b = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.763: %pattern_type.a2b = at_binding_pattern self, %self.param_patt.d2c [symbolic]
// CHECK:STDOUT: %self.patt.8ab: %pattern_type.a2b = wrapper_binding_pattern self, %self.param_patt.d2c [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.type.41d: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.822) [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.ff7: %HasF.WithSelf.F.type.41d = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.assoc_type.ddf: type = assoc_entity_type @HasF, @HasF(%T) [symbolic]
@@ -1099,14 +1099,14 @@ fn G(x: A) {
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %HasF.type.daf [symbolic]
// CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete]
// CHECK:STDOUT: %self.param_patt.482: %pattern_type.a96 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.b63: %pattern_type.a96 = at_binding_pattern self, %self.param_patt.482 [concrete]
// CHECK:STDOUT: %self.patt.602: %pattern_type.a96 = wrapper_binding_pattern self, %self.param_patt.482 [concrete]
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.type.5ee: type = fn_type @empty_struct_type.as.HasF.impl.F, @empty_struct_type.as.HasF.impl(%T) [symbolic]
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.b79: %empty_struct_type.as.HasF.impl.F.type.5ee = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.facet.5dc: %HasF.type.daf = facet_value %empty_struct_type, (%HasF.impl_witness.5f9) [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.type.c8f: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %HasF.facet.5dc) [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.c26: %HasF.WithSelf.F.type.c8f = struct_value () [symbolic]
// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %HasF.type.b91: type = facet_type <@HasF, @HasF(%empty_struct_type)> [concrete]
@@ -1167,7 +1167,7 @@ fn G(x: A) {
// CHECK:STDOUT: %.loc8: <witness> = impl_self_witness @empty_struct_type.as.HasF.impl.%.loc8_24.2, @HasF, @HasF(constants.%T) [symbolic = @empty_struct_type.as.HasF.impl.%.loc8_37 (constants.%.500)]
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0
// CHECK:STDOUT: %.loc12_10.1: type = splice_block %.loc12_10.3 [concrete = constants.%empty_struct_type] {
@@ -1193,7 +1193,7 @@ fn G(x: A) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.41d) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.ff7)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.d2c)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.763)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.8ab)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.3 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -1230,7 +1230,7 @@ fn G(x: A) {
// CHECK:STDOUT: impl: %.loc8_24.2 as %HasF.type.loc8_35.2 {
// CHECK:STDOUT: %empty_struct_type.as.HasF.impl.F.decl: @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F.type (%empty_struct_type.as.HasF.impl.F.type.5ee) = fn_decl @empty_struct_type.as.HasF.impl.F [symbolic = @empty_struct_type.as.HasF.impl.%empty_struct_type.as.HasF.impl.F (constants.%empty_struct_type.as.HasF.impl.F.b79)] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.a96 = value_param_pattern [concrete = constants.%self.param_patt.482]
// CHECK:STDOUT: %self.patt: %pattern_type.a96 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.b63]
// CHECK:STDOUT: %self.patt: %pattern_type.a96 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.602]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %empty_struct_type = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @empty_struct_type.as.HasF.impl.%.loc8_24.2 [concrete = constants.%empty_struct_type]
@@ -1253,7 +1253,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.a2b)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.d2c)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.763)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.8ab)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -1311,7 +1311,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a2b
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.d2c
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.763
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.8ab
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl(constants.%T) {
@@ -1347,7 +1347,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%empty_struct_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a96
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.482
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.b63
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.602
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF(constants.%empty_struct_type) {
@@ -1406,7 +1406,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.c9f: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.74d: %pattern_type.c9f = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.b33: %pattern_type.c9f = at_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %self.patt.975: %pattern_type.c9f = wrapper_binding_pattern self, %self.param_patt.74d [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.type: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F: %HasF.WithSelf.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete]
@@ -1422,7 +1422,7 @@ fn G(x: A) {
// CHECK:STDOUT: %HasF.impl_witness: <witness> = impl_witness @T.as.HasF.impl.%HasF.impl_witness_table, @T.as.HasF.impl(%T, %U) [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %self.param_patt.b7c: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.7e4: %pattern_type.51d = at_binding_pattern self, %self.param_patt.b7c [symbolic]
// CHECK:STDOUT: %self.patt.4d9: %pattern_type.51d = wrapper_binding_pattern self, %self.param_patt.b7c [symbolic]
// CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T, %U) [symbolic]
// CHECK:STDOUT: %T.as.HasF.impl.F: %T.as.HasF.impl.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic]
@@ -1430,7 +1430,7 @@ fn G(x: A) {
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -1470,7 +1470,7 @@ fn G(x: A) {
// CHECK:STDOUT: %.loc12: <witness> = impl_self_witness @T.as.HasF.impl.%T.ref, @HasF [symbolic = @T.as.HasF.impl.%.loc12_42 (constants.%.989)]
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.a96 = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.a96 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %empty_struct_type = value_param call_param0
// CHECK:STDOUT: %.loc16_10.1: type = splice_block %.loc16_10.3 [concrete = constants.%empty_struct_type] {
@@ -1488,7 +1488,7 @@ fn G(x: A) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.2 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -1523,7 +1523,7 @@ fn G(x: A) {
// CHECK:STDOUT: impl: %T.ref as %HasF.ref {
// CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F)] {
// CHECK:STDOUT: %self.param_patt.loc13_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %self.param_patt.loc13_15.2 (constants.%self.param_patt.b7c)]
// CHECK:STDOUT: %self.patt.loc13_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt.loc13_15.1 [symbolic = %self.patt.loc13_15.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %self.patt.loc13_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern self, %self.param_patt.loc13_15.1 [symbolic = %self.patt.loc13_15.2 (constants.%self.patt.4d9)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T.as.HasF.impl.F.%T (%T) = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @T.as.HasF.impl.%T.ref [symbolic = %T (constants.%T)]
@@ -1544,7 +1544,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.c9f)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.74d)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.b33)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.c9f) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.975)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -1553,7 +1553,7 @@ fn G(x: A) {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)]
// CHECK:STDOUT: %self.param_patt.loc13_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %self.param_patt.loc13_15.2 (constants.%self.param_patt.b7c)]
// CHECK:STDOUT: %self.patt.loc13_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt.loc13_15.2 [symbolic = %self.patt.loc13_15.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %self.patt.loc13_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern self, %self.param_patt.loc13_15.2 [symbolic = %self.patt.loc13_15.2 (constants.%self.patt.4d9)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic = %require_complete (constants.%require_complete)]
@@ -1584,7 +1584,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c9f
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.74d
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.b33
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.975
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T, constants.%U) {
@@ -1604,7 +1604,7 @@ fn G(x: A) {
// CHECK:STDOUT: %T => constants.%T
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
// CHECK:STDOUT: %self.param_patt.loc13_15.2 => constants.%self.param_patt.b7c
// CHECK:STDOUT: %self.patt.loc13_15.2 => constants.%self.patt.7e4
// CHECK:STDOUT: %self.patt.loc13_15.2 => constants.%self.patt.4d9
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- fail_inconsistent_deduction.carbon
@@ -1622,7 +1622,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.822 [symbolic]
// CHECK:STDOUT: %pattern_type.a2b: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.d2c: %pattern_type.a2b = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.763: %pattern_type.a2b = at_binding_pattern self, %self.param_patt.d2c [symbolic]
// CHECK:STDOUT: %self.patt.8ab: %pattern_type.a2b = wrapper_binding_pattern self, %self.param_patt.d2c [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.type.41d: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.822) [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.ff7: %HasF.WithSelf.F.type.41d = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.assoc_type.ddf: type = assoc_entity_type @HasF, @HasF(%T) [symbolic]
@@ -1632,7 +1632,7 @@ fn G(x: A) {
// CHECK:STDOUT: %require_complete.513: <witness> = require_complete_type %HasF.type.daf [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %self.param_patt.b7c: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.7e4: %pattern_type.51d = at_binding_pattern self, %self.param_patt.b7c [symbolic]
// CHECK:STDOUT: %self.patt.4d9: %pattern_type.51d = wrapper_binding_pattern self, %self.param_patt.b7c [symbolic]
// CHECK:STDOUT: %T.as.HasF.impl.F.type: type = fn_type @T.as.HasF.impl.F, @T.as.HasF.impl(%T) [symbolic]
// CHECK:STDOUT: %T.as.HasF.impl.F: %T.as.HasF.impl.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.facet: %HasF.type.daf = facet_value %T, (%HasF.impl_witness) [symbolic]
@@ -1645,7 +1645,7 @@ fn G(x: A) {
// CHECK:STDOUT: %B: type = class_type @B [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.9ef = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.9ef = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %HasF.type.5a7: type = facet_type <@HasF, @HasF(%B)> [concrete]
@@ -1699,7 +1699,7 @@ fn G(x: A) {
// CHECK:STDOUT: %B.decl: type = class_decl @B [concrete = constants.%B] {} {}
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.9ef = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.9ef = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.9ef = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %A = value_param call_param0
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
@@ -1722,7 +1722,7 @@ fn G(x: A) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.41d) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.ff7)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.d2c)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.763)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.8ab)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.3 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -1759,7 +1759,7 @@ fn G(x: A) {
// CHECK:STDOUT: impl: %T.ref.loc8_23 as %HasF.type.loc8_34.2 {
// CHECK:STDOUT: %T.as.HasF.impl.F.decl: @T.as.HasF.impl.%T.as.HasF.impl.F.type (%T.as.HasF.impl.F.type) = fn_decl @T.as.HasF.impl.F [symbolic = @T.as.HasF.impl.%T.as.HasF.impl.F (constants.%T.as.HasF.impl.F)] {
// CHECK:STDOUT: %self.param_patt.loc9_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %self.param_patt.loc9_15.2 (constants.%self.param_patt.b7c)]
// CHECK:STDOUT: %self.patt.loc9_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt.loc9_15.1 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %self.patt.loc9_15.1: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern self, %self.param_patt.loc9_15.1 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.4d9)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T.as.HasF.impl.F.%T (%T) = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @T.as.HasF.impl.%T.ref.loc8_23 [symbolic = %T (constants.%T)]
@@ -1798,7 +1798,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.a2b)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.d2c)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.763)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.a2b) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.8ab)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -1807,7 +1807,7 @@ fn G(x: A) {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T [symbolic = %pattern_type (constants.%pattern_type.51d)]
// CHECK:STDOUT: %self.param_patt.loc9_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %self.param_patt.loc9_15.2 (constants.%self.param_patt.b7c)]
// CHECK:STDOUT: %self.patt.loc9_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = at_binding_pattern self, %self.param_patt.loc9_15.2 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %self.patt.loc9_15.2: @T.as.HasF.impl.F.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern self, %self.param_patt.loc9_15.2 [symbolic = %self.patt.loc9_15.2 (constants.%self.patt.4d9)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic = %require_complete (constants.%require_complete.944)]
@@ -1856,7 +1856,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a2b
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.d2c
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.763
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.8ab
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) {
@@ -1876,7 +1876,7 @@ fn G(x: A) {
// CHECK:STDOUT: %T => constants.%T
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
// CHECK:STDOUT: %self.param_patt.loc9_15.2 => constants.%self.param_patt.b7c
// CHECK:STDOUT: %self.patt.loc9_15.2 => constants.%self.patt.7e4
// CHECK:STDOUT: %self.patt.loc9_15.2 => constants.%self.patt.4d9
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%T, constants.%HasF.facet) {
@@ -1897,7 +1897,7 @@ fn G(x: A) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%T
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.b7c
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.7e4
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.4d9
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF(constants.%B) {
+8 -8
View File
@@ -65,7 +65,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: %require_complete.45eab2.1: <witness> = require_complete_type %I.type.3fe556.2 [symbolic]
// CHECK:STDOUT: %pattern_type.44a178.1: type = pattern_type %A.47a1de.2 [symbolic]
// CHECK:STDOUT: %self.param_patt.a903c4.1: %pattern_type.44a178.1 = ref_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.4f0789.1: %pattern_type.44a178.1 = at_binding_pattern self, %self.param_patt.a903c4.1 [symbolic]
// CHECK:STDOUT: %self.patt.3da0cc.1: %pattern_type.44a178.1 = wrapper_binding_pattern self, %self.param_patt.a903c4.1 [symbolic]
// CHECK:STDOUT: %ptr.e8f8f9.2: type = ptr_type %V.67d [symbolic]
// CHECK:STDOUT: %.cb6cb9.2: Core.Form = init_form %ptr.e8f8f9.2 [symbolic]
// CHECK:STDOUT: %pattern_type.4f4b84.2: type = pattern_type %ptr.e8f8f9.2 [symbolic]
@@ -92,7 +92,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: %ptr.5ab: type = ptr_type %A.47a1de.3 [symbolic]
// CHECK:STDOUT: %pattern_type.c61: type = pattern_type %ptr.5ab [symbolic]
// CHECK:STDOUT: %a.param_patt.537: %pattern_type.c61 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.60b: %pattern_type.c61 = at_binding_pattern a, %a.param_patt.537 [symbolic]
// CHECK:STDOUT: %a.patt.16d: %pattern_type.c61 = wrapper_binding_pattern a, %a.param_patt.537 [symbolic]
// CHECK:STDOUT: %ptr.e8f8f9.4: type = ptr_type %W [symbolic]
// CHECK:STDOUT: %.cb6cb9.4: Core.Form = init_form %ptr.e8f8f9.4 [symbolic]
// CHECK:STDOUT: %pattern_type.4f4b84.4: type = pattern_type %ptr.e8f8f9.4 [symbolic]
@@ -135,7 +135,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: %.f98: type = fn_type_with_self_type %I.WithSelf.F.type.2da, %I.facet.cc9 [concrete]
// CHECK:STDOUT: %pattern_type.1ff: type = pattern_type %A.940 [concrete]
// CHECK:STDOUT: %self.param_patt.0f0: %pattern_type.1ff = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.975: %pattern_type.1ff = at_binding_pattern self, %self.param_patt.0f0 [concrete]
// CHECK:STDOUT: %self.patt.990: %pattern_type.1ff = wrapper_binding_pattern self, %self.param_patt.0f0 [concrete]
// CHECK:STDOUT: %A.as.I.impl.F.specific_fn: <specific function> = specific_function %A.as.I.impl.F.837, @A.as.I.impl.F(%empty_struct_type) [concrete]
// CHECK:STDOUT: %A.elem.339: type = unbound_element_type %A.940, %empty_struct_type [concrete]
// CHECK:STDOUT: %struct_type.n.91c: type = struct_type {.n: %empty_struct_type} [concrete]
@@ -191,7 +191,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: impl: %A.loc12_26.2 as %I.type.loc12_34.2 {
// CHECK:STDOUT: %A.as.I.impl.F.decl: @A.as.I.impl.%A.as.I.impl.F.type (%A.as.I.impl.F.type.d1ec9e.1) = fn_decl @A.as.I.impl.F [symbolic = @A.as.I.impl.%A.as.I.impl.F (constants.%A.as.I.impl.F.d83bf5.1)] {
// CHECK:STDOUT: %self.param_patt.loc13_12.1: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.44a178.1) = ref_param_pattern [symbolic = %self.param_patt.loc13_12.2 (constants.%self.param_patt.a903c4.1)]
// CHECK:STDOUT: %self.patt.loc13_12.1: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.44a178.1) = at_binding_pattern self, %self.param_patt.loc13_12.1 [symbolic = %self.patt.loc13_12.2 (constants.%self.patt.4f0789.1)]
// CHECK:STDOUT: %self.patt.loc13_12.1: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.44a178.1) = wrapper_binding_pattern self, %self.param_patt.loc13_12.1 [symbolic = %self.patt.loc13_12.2 (constants.%self.patt.3da0cc.1)]
// CHECK:STDOUT: %return.param_patt.loc13_22.1: @A.as.I.impl.F.%pattern_type.loc13_22 (%pattern_type.4f4b84.2) = out_param_pattern [symbolic = %return.param_patt.loc13_22.2 (constants.%return.param_patt.27f587.2)]
// CHECK:STDOUT: %return.patt.loc13_18.1: @A.as.I.impl.F.%pattern_type.loc13_22 (%pattern_type.4f4b84.2) = return_slot_pattern %return.param_patt.loc13_22.1, %ptr.loc13_22.2 [symbolic = %return.patt.loc13_18.2 (constants.%return.patt.d67681.2)]
// CHECK:STDOUT: } {
@@ -220,7 +220,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: %A: type = class_type @A, @A(%V) [symbolic = %A (constants.%A.47a1de.2)]
// CHECK:STDOUT: %pattern_type.loc13_12: type = pattern_type %A [symbolic = %pattern_type.loc13_12 (constants.%pattern_type.44a178.1)]
// CHECK:STDOUT: %self.param_patt.loc13_12.2: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.44a178.1) = ref_param_pattern [symbolic = %self.param_patt.loc13_12.2 (constants.%self.param_patt.a903c4.1)]
// CHECK:STDOUT: %self.patt.loc13_12.2: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.44a178.1) = at_binding_pattern self, %self.param_patt.loc13_12.2 [symbolic = %self.patt.loc13_12.2 (constants.%self.patt.4f0789.1)]
// CHECK:STDOUT: %self.patt.loc13_12.2: @A.as.I.impl.F.%pattern_type.loc13_12 (%pattern_type.44a178.1) = wrapper_binding_pattern self, %self.param_patt.loc13_12.2 [symbolic = %self.patt.loc13_12.2 (constants.%self.patt.3da0cc.1)]
// CHECK:STDOUT: %ptr.loc13_22.1: type = ptr_type %V [symbolic = %ptr.loc13_22.1 (constants.%ptr.e8f8f9.2)]
// CHECK:STDOUT: %.loc13_22.1: Core.Form = init_form %ptr.loc13_22.1 [symbolic = %.loc13_22.1 (constants.%.cb6cb9.2)]
// CHECK:STDOUT: %pattern_type.loc13_22: type = pattern_type %ptr.loc13_22.1 [symbolic = %pattern_type.loc13_22 (constants.%pattern_type.4f4b84.2)]
@@ -330,7 +330,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: %A => constants.%A.47a1de.2
// CHECK:STDOUT: %pattern_type.loc13_12 => constants.%pattern_type.44a178.1
// CHECK:STDOUT: %self.param_patt.loc13_12.2 => constants.%self.param_patt.a903c4.1
// CHECK:STDOUT: %self.patt.loc13_12.2 => constants.%self.patt.4f0789.1
// CHECK:STDOUT: %self.patt.loc13_12.2 => constants.%self.patt.3da0cc.1
// CHECK:STDOUT: %ptr.loc13_22.1 => constants.%ptr.e8f8f9.2
// CHECK:STDOUT: %.loc13_22.1 => constants.%.cb6cb9.2
// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.4f4b84.2
@@ -345,7 +345,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: %ptr.loc19_32.1 => constants.%ptr.5ab
// CHECK:STDOUT: %pattern_type.loc19_26 => constants.%pattern_type.c61
// CHECK:STDOUT: %a.param_patt.loc19_26.2 => constants.%a.param_patt.537
// CHECK:STDOUT: %a.patt.loc19_26.2 => constants.%a.patt.60b
// CHECK:STDOUT: %a.patt.loc19_26.2 => constants.%a.patt.16d
// CHECK:STDOUT: %ptr.loc19_39.1 => constants.%ptr.e8f8f9.4
// CHECK:STDOUT: %.loc19_39.1 => constants.%.cb6cb9.4
// CHECK:STDOUT: %pattern_type.loc19_39 => constants.%pattern_type.4f4b84.4
@@ -386,7 +386,7 @@ fn TestSpecific(a: A({})*) -> {}* {
// CHECK:STDOUT: %A => constants.%A.940
// CHECK:STDOUT: %pattern_type.loc13_12 => constants.%pattern_type.1ff
// CHECK:STDOUT: %self.param_patt.loc13_12.2 => constants.%self.param_patt.0f0
// CHECK:STDOUT: %self.patt.loc13_12.2 => constants.%self.patt.975
// CHECK:STDOUT: %self.patt.loc13_12.2 => constants.%self.patt.990
// CHECK:STDOUT: %ptr.loc13_22.1 => constants.%ptr.c28
// CHECK:STDOUT: %.loc13_22.1 => constants.%.9ba
// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.1cc
+84 -84
View File
@@ -232,7 +232,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.f71: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.18e: %pattern_type.f71 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.5a5: %pattern_type.f71 = at_binding_pattern self, %self.param_patt.18e [symbolic]
// CHECK:STDOUT: %self.patt.ce3: %pattern_type.f71 = wrapper_binding_pattern self, %self.param_patt.18e [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.type.dce: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %HasF.WithSelf.F.faf: %HasF.WithSelf.F.type.dce = struct_value () [symbolic]
// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete]
@@ -244,7 +244,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %HasF.impl_witness: <witness> = impl_witness @C.as.HasF.impl.%HasF.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.f0b: %pattern_type.866 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.c87: %pattern_type.866 = at_binding_pattern self, %self.param_patt.f0b [concrete]
// CHECK:STDOUT: %self.patt.610: %pattern_type.866 = wrapper_binding_pattern self, %self.param_patt.f0b [concrete]
// CHECK:STDOUT: %C.as.HasF.impl.F.type: type = fn_type @C.as.HasF.impl.F [concrete]
// CHECK:STDOUT: %C.as.HasF.impl.F: %C.as.HasF.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete]
@@ -282,7 +282,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.dce) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faf)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.18e)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.5a5)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.ce3)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.2 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -305,7 +305,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @C.as.HasF.impl: %C.ref as %HasF.ref {
// CHECK:STDOUT: %C.as.HasF.impl.F.decl: %C.as.HasF.impl.F.type = fn_decl @C.as.HasF.impl.F [concrete = constants.%C.as.HasF.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.866 = value_param_pattern [concrete = constants.%self.param_patt.f0b]
// CHECK:STDOUT: %self.patt: %pattern_type.866 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.c87]
// CHECK:STDOUT: %self.patt: %pattern_type.866 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.610]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasF.impl.%C.ref [concrete = constants.%C]
@@ -333,7 +333,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.f71)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.18e)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.5a5)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @HasF.WithSelf.F.%pattern_type (%pattern_type.f71) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.ce3)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -355,7 +355,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f71
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.18e
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.5a5
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.ce3
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
@@ -370,7 +370,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.866
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.f0b
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.c87
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.610
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- package_b.carbon
@@ -381,7 +381,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.dd3: type = facet_access_type %Self.150 [symbolic]
// CHECK:STDOUT: %pattern_type.bfc: type = pattern_type %Self.as_type.dd3 [symbolic]
// CHECK:STDOUT: %self.param_patt.e6a: %pattern_type.bfc = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.054: %pattern_type.bfc = at_binding_pattern self, %self.param_patt.e6a [symbolic]
// CHECK:STDOUT: %self.patt.cbc: %pattern_type.bfc = wrapper_binding_pattern self, %self.param_patt.e6a [symbolic]
// CHECK:STDOUT: %HasG.WithSelf.G.type.34a: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self.150) [symbolic]
// CHECK:STDOUT: %HasG.WithSelf.G.6a9: %HasG.WithSelf.G.type.34a = struct_value () [symbolic]
// CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete]
@@ -394,7 +394,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %HasG.impl_witness.c19: <witness> = impl_witness @C.as.HasG.impl.%HasG.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.f0b: %pattern_type.866 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.c87: %pattern_type.866 = at_binding_pattern self, %self.param_patt.f0b [concrete]
// CHECK:STDOUT: %self.patt.610: %pattern_type.866 = wrapper_binding_pattern self, %self.param_patt.f0b [concrete]
// CHECK:STDOUT: %C.as.HasG.impl.G.type: type = fn_type @C.as.HasG.impl.G [concrete]
// CHECK:STDOUT: %C.as.HasG.impl.G: %C.as.HasG.impl.G.type = struct_value () [concrete]
// CHECK:STDOUT: %HasG.facet.d2f: %HasG.type = facet_value %C, (%HasG.impl_witness.c19) [concrete]
@@ -407,12 +407,12 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.7bb: type = facet_access_type %Self.4dc [symbolic]
// CHECK:STDOUT: %pattern_type.6cd: type = pattern_type %Self.as_type.7bb [symbolic]
// CHECK:STDOUT: %self.param_patt.43c: %pattern_type.6cd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.072: %pattern_type.6cd = at_binding_pattern self, %self.param_patt.43c [symbolic]
// CHECK:STDOUT: %self.patt.c90: %pattern_type.6cd = wrapper_binding_pattern self, %self.param_patt.43c [symbolic]
// CHECK:STDOUT: %.db9: <witness> = impl_self_witness %D, @HasF [concrete]
// CHECK:STDOUT: %HasF.impl_witness: <witness> = impl_witness @D.as.HasF.impl.%HasF.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.709: type = pattern_type %D [concrete]
// CHECK:STDOUT: %self.param_patt.68d: %pattern_type.709 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.6ac: %pattern_type.709 = at_binding_pattern self, %self.param_patt.68d [concrete]
// CHECK:STDOUT: %self.patt.2d6: %pattern_type.709 = wrapper_binding_pattern self, %self.param_patt.68d [concrete]
// CHECK:STDOUT: %D.as.HasF.impl.F.type: type = fn_type @D.as.HasF.impl.F [concrete]
// CHECK:STDOUT: %D.as.HasF.impl.F: %D.as.HasF.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%HasF.impl_witness) [concrete]
@@ -484,7 +484,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %HasG.WithSelf.G.decl: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.34a) = fn_decl @HasG.WithSelf.G [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.6a9)] {
// CHECK:STDOUT: %self.param_patt.loc7_8.1: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = value_param_pattern [symbolic = %self.param_patt.loc7_8.2 (constants.%self.param_patt.e6a)]
// CHECK:STDOUT: %self.patt.loc7_8.1: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = at_binding_pattern self, %self.param_patt.loc7_8.1 [symbolic = %self.patt.loc7_8.2 (constants.%self.patt.054)]
// CHECK:STDOUT: %self.patt.loc7_8.1: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = wrapper_binding_pattern self, %self.param_patt.loc7_8.1 [symbolic = %self.patt.loc7_8.2 (constants.%self.patt.cbc)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @HasG.WithSelf.G.%Self.as_type.loc7_8.1 (%Self.as_type.dd3) = value_param call_param0
// CHECK:STDOUT: %.loc7_8.1: type = splice_block %.loc7_8.2 [symbolic = %Self.as_type.loc7_8.1 (constants.%Self.as_type.dd3)] {
@@ -516,7 +516,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @C.as.HasG.impl: %C.ref as %HasG.ref {
// CHECK:STDOUT: %C.as.HasG.impl.G.decl: %C.as.HasG.impl.G.type = fn_decl @C.as.HasG.impl.G [concrete = constants.%C.as.HasG.impl.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.866 = value_param_pattern [concrete = constants.%self.param_patt.f0b]
// CHECK:STDOUT: %self.patt: %pattern_type.866 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.c87]
// CHECK:STDOUT: %self.patt: %pattern_type.866 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.610]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.HasG.impl.%C.ref [concrete = constants.%C]
@@ -534,7 +534,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @D.as.HasF.impl: %D.ref as %HasF.ref {
// CHECK:STDOUT: %D.as.HasF.impl.F.decl: %D.as.HasF.impl.F.type = fn_decl @D.as.HasF.impl.F [concrete = constants.%D.as.HasF.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.709 = value_param_pattern [concrete = constants.%self.param_patt.68d]
// CHECK:STDOUT: %self.patt: %pattern_type.709 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6ac]
// CHECK:STDOUT: %self.patt: %pattern_type.709 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.2d6]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %D = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @D.as.HasF.impl.%D.ref [concrete = constants.%D]
@@ -552,7 +552,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @D.as.HasG.impl: %D.ref as %HasG.ref {
// CHECK:STDOUT: %D.as.HasG.impl.G.decl: %D.as.HasG.impl.G.type = fn_decl @D.as.HasG.impl.G [concrete = constants.%D.as.HasG.impl.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.709 = value_param_pattern [concrete = constants.%self.param_patt.68d]
// CHECK:STDOUT: %self.patt: %pattern_type.709 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6ac]
// CHECK:STDOUT: %self.patt: %pattern_type.709 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.2d6]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %D = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @D.as.HasG.impl.%D.ref [concrete = constants.%D]
@@ -587,7 +587,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc7_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_8.1 (constants.%Self.as_type.dd3)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_8.1 [symbolic = %pattern_type (constants.%pattern_type.bfc)]
// CHECK:STDOUT: %self.param_patt.loc7_8.2: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = value_param_pattern [symbolic = %self.param_patt.loc7_8.2 (constants.%self.param_patt.e6a)]
// CHECK:STDOUT: %self.patt.loc7_8.2: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = at_binding_pattern self, %self.param_patt.loc7_8.2 [symbolic = %self.patt.loc7_8.2 (constants.%self.patt.054)]
// CHECK:STDOUT: %self.patt.loc7_8.2: @HasG.WithSelf.G.%pattern_type (%pattern_type.bfc) = wrapper_binding_pattern self, %self.param_patt.loc7_8.2 [symbolic = %self.patt.loc7_8.2 (constants.%self.patt.cbc)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @HasG.WithSelf.G.%Self.as_type.loc7_8.1 (%Self.as_type.dd3));
// CHECK:STDOUT: }
@@ -602,7 +602,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.7bb)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.6cd)]
// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.43c)]
// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.072)]
// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.c90)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -629,7 +629,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc7_8.1 => constants.%Self.as_type.dd3
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bfc
// CHECK:STDOUT: %self.param_patt.loc7_8.2 => constants.%self.param_patt.e6a
// CHECK:STDOUT: %self.patt.loc7_8.2 => constants.%self.patt.054
// CHECK:STDOUT: %self.patt.loc7_8.2 => constants.%self.patt.cbc
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.d2f) {
@@ -644,7 +644,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc7_8.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.866
// CHECK:STDOUT: %self.param_patt.loc7_8.2 => constants.%self.param_patt.f0b
// CHECK:STDOUT: %self.patt.loc7_8.2 => constants.%self.patt.c87
// CHECK:STDOUT: %self.patt.loc7_8.2 => constants.%self.patt.610
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%Self.4dc) {
@@ -659,7 +659,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.7bb
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cd
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.43c
// CHECK:STDOUT: %self.patt => constants.%self.patt.072
// CHECK:STDOUT: %self.patt => constants.%self.patt.c90
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
@@ -674,7 +674,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%D
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.709
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.68d
// CHECK:STDOUT: %self.patt => constants.%self.patt.6ac
// CHECK:STDOUT: %self.patt => constants.%self.patt.2d6
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.114) {
@@ -689,7 +689,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc7_8.1 => constants.%D
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.709
// CHECK:STDOUT: %self.param_patt.loc7_8.2 => constants.%self.param_patt.68d
// CHECK:STDOUT: %self.patt.loc7_8.2 => constants.%self.patt.6ac
// CHECK:STDOUT: %self.patt.loc7_8.2 => constants.%self.patt.2d6
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- use_cf.carbon
@@ -700,7 +700,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.866 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %TestCF.type: type = fn_type @TestCF [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %TestCF: %TestCF.type = struct_value () [concrete]
@@ -711,7 +711,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.6cd: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.43c: %pattern_type.6cd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.072: %pattern_type.6cd = at_binding_pattern self, %self.param_patt.43c [symbolic]
// CHECK:STDOUT: %self.patt.c90: %pattern_type.6cd = wrapper_binding_pattern self, %self.param_patt.43c [symbolic]
// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete]
// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.91e [concrete]
// CHECK:STDOUT: %HasF.impl_witness: <witness> = impl_witness imports.%HasF.impl_witness_table [concrete]
@@ -759,7 +759,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %PackageA.import = import PackageA
// CHECK:STDOUT: %TestCF.decl: %TestCF.type = fn_decl @TestCF [concrete = constants.%TestCF] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.866 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %.loc6: type = splice_block %C.ref [concrete = constants.%C] {
@@ -808,7 +808,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.6cd)]
// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.43c)]
// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.072)]
// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.c90)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -827,7 +827,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cd
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.43c
// CHECK:STDOUT: %self.patt => constants.%self.patt.072
// CHECK:STDOUT: %self.patt => constants.%self.patt.c90
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
@@ -845,7 +845,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.709: type = pattern_type %D [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.709 = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = wrapper_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %TestDF.type: type = fn_type @TestDF [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %TestDF: %TestDF.type = struct_value () [concrete]
@@ -856,7 +856,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.6cd: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.43c: %pattern_type.6cd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.072: %pattern_type.6cd = at_binding_pattern self, %self.param_patt.43c [symbolic]
// CHECK:STDOUT: %self.patt.c90: %pattern_type.6cd = wrapper_binding_pattern self, %self.param_patt.43c [symbolic]
// CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete]
// CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.91e [concrete]
// CHECK:STDOUT: %C: type = class_type @C [concrete]
@@ -915,7 +915,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %PackageB.import = import PackageB
// CHECK:STDOUT: %TestDF.decl: %TestDF.type = fn_decl @TestDF [concrete = constants.%TestDF] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.709 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %d.param: %D = value_param call_param0
// CHECK:STDOUT: %.loc7: type = splice_block %D.ref [concrete = constants.%D] {
@@ -976,7 +976,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.6cd)]
// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.43c)]
// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.072)]
// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.6cd) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.c90)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -995,7 +995,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cd
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.43c
// CHECK:STDOUT: %self.patt => constants.%self.patt.072
// CHECK:STDOUT: %self.patt => constants.%self.patt.c90
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) {
@@ -1013,7 +1013,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.866: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.866 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %TestCG.type: type = fn_type @TestCG [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %TestCG: %TestCG.type = struct_value () [concrete]
@@ -1024,7 +1024,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.2fa: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.f6e: %pattern_type.2fa = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.5c8: %pattern_type.2fa = at_binding_pattern self, %self.param_patt.f6e [symbolic]
// CHECK:STDOUT: %self.patt.bfb: %pattern_type.2fa = wrapper_binding_pattern self, %self.param_patt.f6e [symbolic]
// CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete]
// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.89b [concrete]
// CHECK:STDOUT: %D: type = class_type @D [concrete]
@@ -1083,7 +1083,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %PackageB.import = import PackageB
// CHECK:STDOUT: %TestCG.decl: %TestCG.type = fn_decl @TestCG [concrete = constants.%TestCG] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.866 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.866 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %.loc7: type = splice_block %C.ref [concrete = constants.%C] {
@@ -1144,7 +1144,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.2fa)]
// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.2fa) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.f6e)]
// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.2fa) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.5c8)]
// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.2fa) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.bfb)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -1163,7 +1163,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fa
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.f6e
// CHECK:STDOUT: %self.patt => constants.%self.patt.5c8
// CHECK:STDOUT: %self.patt => constants.%self.patt.bfb
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) {
@@ -1181,7 +1181,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.709: type = pattern_type %D [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.709 = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = wrapper_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %TestDG.type: type = fn_type @TestDG [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %TestDG: %TestDG.type = struct_value () [concrete]
@@ -1192,7 +1192,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.2fa: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.f6e: %pattern_type.2fa = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.5c8: %pattern_type.2fa = at_binding_pattern self, %self.param_patt.f6e [symbolic]
// CHECK:STDOUT: %self.patt.bfb: %pattern_type.2fa = wrapper_binding_pattern self, %self.param_patt.f6e [symbolic]
// CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete]
// CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.89b [concrete]
// CHECK:STDOUT: %C: type = class_type @C [concrete]
@@ -1246,7 +1246,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %PackageB.import = import PackageB
// CHECK:STDOUT: %TestDG.decl: %TestDG.type = fn_decl @TestDG [concrete = constants.%TestDG] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.709 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.patt: %pattern_type.709 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %d.param: %D = value_param call_param0
// CHECK:STDOUT: %.loc6: type = splice_block %D.ref [concrete = constants.%D] {
@@ -1307,7 +1307,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.2fa)]
// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.2fa) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.f6e)]
// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.2fa) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.5c8)]
// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.2fa) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.bfb)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -1326,7 +1326,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fa
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.f6e
// CHECK:STDOUT: %self.patt => constants.%self.patt.5c8
// CHECK:STDOUT: %self.patt => constants.%self.patt.bfb
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) {
@@ -1344,7 +1344,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.a8e: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.507: %pattern_type.a8e = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.1bb: %pattern_type.a8e = at_binding_pattern self, %self.param_patt.507 [symbolic]
// CHECK:STDOUT: %self.patt.00f: %pattern_type.a8e = wrapper_binding_pattern self, %self.param_patt.507 [symbolic]
// CHECK:STDOUT: %Z.WithSelf.H.type.9ae: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Z.WithSelf.H.051: %Z.WithSelf.H.type.9ae = struct_value () [symbolic]
@@ -1355,7 +1355,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Z.impl_witness: <witness> = impl_witness @empty_tuple.type.as.Z.impl.%Z.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %self.param_patt.154: %pattern_type.cb1 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.8c1: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %self.patt.462: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.type: type = fn_type @empty_tuple.type.as.Z.impl.H [concrete]
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H: %empty_tuple.type.as.Z.impl.H.type = struct_value () [concrete]
// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness) [concrete]
@@ -1392,7 +1392,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Z.WithSelf.H.decl: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.9ae) = fn_decl @Z.WithSelf.H [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.051)] {
// CHECK:STDOUT: %self.param_patt.loc5_8.1: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.507)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = at_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.1bb)]
// CHECK:STDOUT: %self.patt.loc5_8.1: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = wrapper_binding_pattern self, %self.param_patt.loc5_8.1 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.00f)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Z.WithSelf.H.%Self.as_type.loc5_8.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc5_8.1: type = splice_block %.loc5_8.2 [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)] {
@@ -1415,7 +1415,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @empty_tuple.type.as.Z.impl: %.loc8_7.2 as %Z.ref {
// CHECK:STDOUT: %empty_tuple.type.as.Z.impl.H.decl: %empty_tuple.type.as.Z.impl.H.type = fn_decl @empty_tuple.type.as.Z.impl.H [concrete = constants.%empty_tuple.type.as.Z.impl.H] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete = constants.%self.param_patt.154]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.8c1]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.462]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @empty_tuple.type.as.Z.impl.%.loc8_7.2 [concrete = constants.%empty_tuple.type]
@@ -1435,7 +1435,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_8.1 [symbolic = %pattern_type (constants.%pattern_type.a8e)]
// CHECK:STDOUT: %self.param_patt.loc5_8.2: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = value_param_pattern [symbolic = %self.param_patt.loc5_8.2 (constants.%self.param_patt.507)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = at_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.1bb)]
// CHECK:STDOUT: %self.patt.loc5_8.2: @Z.WithSelf.H.%pattern_type (%pattern_type.a8e) = wrapper_binding_pattern self, %self.param_patt.loc5_8.2 [symbolic = %self.patt.loc5_8.2 (constants.%self.patt.00f)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.H.%Self.as_type.loc5_8.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -1457,7 +1457,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a8e
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.507
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.1bb
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.00f
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) {
@@ -1472,7 +1472,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc5_8.1 => constants.%empty_tuple.type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1
// CHECK:STDOUT: %self.param_patt.loc5_8.2 => constants.%self.param_patt.154
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.8c1
// CHECK:STDOUT: %self.patt.loc5_8.2 => constants.%self.patt.462
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- import_associated_interface.carbon
@@ -1489,7 +1489,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.a99: %pattern_type.f00 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.ca0: %pattern_type.f00 = at_binding_pattern self, %self.param_patt.a99 [symbolic]
// CHECK:STDOUT: %self.patt.67c: %pattern_type.f00 = wrapper_binding_pattern self, %self.param_patt.a99 [symbolic]
// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete]
// CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, imports.%PackageAssociatedInterface.import_ref.635 [concrete]
// CHECK:STDOUT: %Z.impl_witness: <witness> = impl_witness imports.%Z.impl_witness_table [concrete]
@@ -1568,7 +1568,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.f00)]
// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.H.%pattern_type (%pattern_type.f00) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.a99)]
// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.f00) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.ca0)]
// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.f00) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.67c)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -1587,7 +1587,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f00
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.a99
// CHECK:STDOUT: %self.patt => constants.%self.patt.ca0
// CHECK:STDOUT: %self.patt => constants.%self.patt.67c
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) {
@@ -1618,7 +1618,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.28b: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.28b = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.28b = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.28b = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %Y.WithSelf.K.type: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %Y.WithSelf.K: %Y.WithSelf.K.type = struct_value () [symbolic]
// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete]
@@ -1665,7 +1665,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Y.WithSelf.K.decl: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type) = fn_decl @Y.WithSelf.K [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K)] {
// CHECK:STDOUT: %self.param_patt.loc7_15.1: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = value_param_pattern [symbolic = %self.param_patt.loc7_15.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc7_15.1: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = at_binding_pattern self, %self.param_patt.loc7_15.1 [symbolic = %self.patt.loc7_15.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc7_15.1: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = wrapper_binding_pattern self, %self.param_patt.loc7_15.1 [symbolic = %self.patt.loc7_15.2 (constants.%self.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Y.WithSelf.K.%Self.as_type.loc7_15.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc7_15.1: type = splice_block %.loc7_15.2 [symbolic = %Self.as_type.loc7_15.1 (constants.%Self.as_type)] {
@@ -1708,7 +1708,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc7_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_15.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_15.1 [symbolic = %pattern_type (constants.%pattern_type.28b)]
// CHECK:STDOUT: %self.param_patt.loc7_15.2: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = value_param_pattern [symbolic = %self.param_patt.loc7_15.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc7_15.2: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = at_binding_pattern self, %self.param_patt.loc7_15.2 [symbolic = %self.patt.loc7_15.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc7_15.2: @Y.WithSelf.K.%pattern_type (%pattern_type.28b) = wrapper_binding_pattern self, %self.param_patt.loc7_15.2 [symbolic = %self.patt.loc7_15.2 (constants.%self.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.loc7_15.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -1774,13 +1774,13 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic]
// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %self.param_patt.f96: %pattern_type.615 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.871: %pattern_type.615 = at_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %self.patt.94a: %pattern_type.615 = wrapper_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %.9fa: <witness> = impl_self_witness %AnyParam.591, @Y [concrete]
// CHECK:STDOUT: %Y.impl_witness: <witness> = impl_witness @AnyParam.as.Y.impl.%Y.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.f0f: type = pattern_type %AnyParam.591 [concrete]
// CHECK:STDOUT: %self.param_patt.93d: %pattern_type.f0f = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.cdd: %pattern_type.f0f = at_binding_pattern self, %self.param_patt.93d [concrete]
// CHECK:STDOUT: %self.patt.614: %pattern_type.f0f = wrapper_binding_pattern self, %self.param_patt.93d [concrete]
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete]
// CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete]
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.591, (%Y.impl_witness) [concrete]
@@ -1887,7 +1887,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @AnyParam.as.Y.impl: %AnyParam as %Y.ref {
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.decl: %AnyParam.as.Y.impl.K.type = fn_decl @AnyParam.as.Y.impl.K [concrete = constants.%AnyParam.as.Y.impl.K] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f0f = value_param_pattern [concrete = constants.%self.param_patt.93d]
// CHECK:STDOUT: %self.patt: %pattern_type.f0f = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cdd]
// CHECK:STDOUT: %self.patt: %pattern_type.f0f = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.614]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %AnyParam.591 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.591]
@@ -1924,7 +1924,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)]
// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.f96)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.871)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.94a)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)]
@@ -2012,7 +2012,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.f96
// CHECK:STDOUT: %self.patt => constants.%self.patt.871
// CHECK:STDOUT: %self.patt => constants.%self.patt.94a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
@@ -2027,7 +2027,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.591
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0f
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.93d
// CHECK:STDOUT: %self.patt => constants.%self.patt.cdd
// CHECK:STDOUT: %self.patt => constants.%self.patt.614
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- use_generic_interface_as_param.carbon
@@ -2067,7 +2067,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic]
// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %self.param_patt.f96: %pattern_type.615 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.871: %pattern_type.615 = at_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %self.patt.94a: %pattern_type.615 = wrapper_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete]
// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete]
@@ -2218,7 +2218,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)]
// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.f96)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.871)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.94a)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)]
@@ -2272,7 +2272,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.f96
// CHECK:STDOUT: %self.patt => constants.%self.patt.871
// CHECK:STDOUT: %self.patt => constants.%self.patt.94a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
@@ -2313,13 +2313,13 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic]
// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %self.param_patt.f96: %pattern_type.615 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.871: %pattern_type.615 = at_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %self.patt.94a: %pattern_type.615 = wrapper_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %.cce: <witness> = impl_self_witness %AnyParam.21c, @Y [concrete]
// CHECK:STDOUT: %Y.impl_witness: <witness> = impl_witness @AnyParam.as.Y.impl.%Y.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.005: type = pattern_type %AnyParam.21c [concrete]
// CHECK:STDOUT: %self.param_patt.e35: %pattern_type.005 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f3a: %pattern_type.005 = at_binding_pattern self, %self.param_patt.e35 [concrete]
// CHECK:STDOUT: %self.patt.dad: %pattern_type.005 = wrapper_binding_pattern self, %self.param_patt.e35 [concrete]
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete]
// CHECK:STDOUT: %AnyParam.as.Y.impl.K: %AnyParam.as.Y.impl.K.type = struct_value () [concrete]
// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.21c, (%Y.impl_witness) [concrete]
@@ -2406,7 +2406,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @AnyParam.as.Y.impl: %AnyParam as %Y.ref {
// CHECK:STDOUT: %AnyParam.as.Y.impl.K.decl: %AnyParam.as.Y.impl.K.type = fn_decl @AnyParam.as.Y.impl.K [concrete = constants.%AnyParam.as.Y.impl.K] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.005 = value_param_pattern [concrete = constants.%self.param_patt.e35]
// CHECK:STDOUT: %self.patt: %pattern_type.005 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f3a]
// CHECK:STDOUT: %self.patt: %pattern_type.005 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.dad]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %AnyParam.21c = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @AnyParam.as.Y.impl.%AnyParam [concrete = constants.%AnyParam.21c]
@@ -2458,7 +2458,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)]
// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.f96)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.871)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.94a)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)]
@@ -2544,7 +2544,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.f96
// CHECK:STDOUT: %self.patt => constants.%self.patt.871
// CHECK:STDOUT: %self.patt => constants.%self.patt.94a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
@@ -2559,7 +2559,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.21c
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.005
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.e35
// CHECK:STDOUT: %self.patt => constants.%self.patt.f3a
// CHECK:STDOUT: %self.patt => constants.%self.patt.dad
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- use_generic_class_as_param.carbon
@@ -2597,7 +2597,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.59a: type = facet_access_type %Self.aff [symbolic]
// CHECK:STDOUT: %pattern_type.615: type = pattern_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %self.param_patt.f96: %pattern_type.615 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.871: %pattern_type.615 = at_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %self.patt.94a: %pattern_type.615 = wrapper_binding_pattern self, %self.param_patt.f96 [symbolic]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type.59a [symbolic]
// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete]
// CHECK:STDOUT: %assoc0.970: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ee7 [concrete]
@@ -2746,7 +2746,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.59a)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.615)]
// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.f96)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.871)]
// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.615) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.94a)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)]
@@ -2798,7 +2798,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.59a
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.615
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.f96
// CHECK:STDOUT: %self.patt => constants.%self.patt.871
// CHECK:STDOUT: %self.patt => constants.%self.patt.94a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) {
@@ -2842,7 +2842,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.155 [symbolic]
// CHECK:STDOUT: %pattern_type.919: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.620: %pattern_type.919 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.a65: %pattern_type.919 = at_binding_pattern self, %self.param_patt.620 [symbolic]
// CHECK:STDOUT: %self.patt.51f: %pattern_type.919 = wrapper_binding_pattern self, %self.param_patt.620 [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.type.e1c: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.155) [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.1a7: %I.WithSelf.F.type.e1c = struct_value () [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
@@ -2855,7 +2855,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.881: type = pattern_type %C.279 [concrete]
// CHECK:STDOUT: %self.param_patt.76e: %pattern_type.881 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.a54: %pattern_type.881 = at_binding_pattern self, %self.param_patt.76e [concrete]
// CHECK:STDOUT: %self.patt.556: %pattern_type.881 = wrapper_binding_pattern self, %self.param_patt.76e [concrete]
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.279, (%I.impl_witness) [concrete]
@@ -3016,7 +3016,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.e1c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.1a7)] {
// CHECK:STDOUT: %self.param_patt.loc14_20.1: @I.WithSelf.F.%pattern_type (%pattern_type.919) = value_param_pattern [symbolic = %self.param_patt.loc14_20.2 (constants.%self.param_patt.620)]
// CHECK:STDOUT: %self.patt.loc14_20.1: @I.WithSelf.F.%pattern_type (%pattern_type.919) = at_binding_pattern self, %self.param_patt.loc14_20.1 [symbolic = %self.patt.loc14_20.2 (constants.%self.patt.a65)]
// CHECK:STDOUT: %self.patt.loc14_20.1: @I.WithSelf.F.%pattern_type (%pattern_type.919) = wrapper_binding_pattern self, %self.param_patt.loc14_20.1 [symbolic = %self.patt.loc14_20.2 (constants.%self.patt.51f)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc14_20.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc14_20.1: type = splice_block %.loc14_20.2 [symbolic = %Self.as_type.loc14_20.1 (constants.%Self.as_type)] {
@@ -3039,7 +3039,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: impl @C.as.I.impl: %C as %I.ref {
// CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.881 = value_param_pattern [concrete = constants.%self.param_patt.76e]
// CHECK:STDOUT: %self.patt: %pattern_type.881 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.a54]
// CHECK:STDOUT: %self.patt: %pattern_type.881 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.556]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C.279 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.279]
@@ -3074,7 +3074,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc14_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_20.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_20.1 [symbolic = %pattern_type (constants.%pattern_type.919)]
// CHECK:STDOUT: %self.param_patt.loc14_20.2: @I.WithSelf.F.%pattern_type (%pattern_type.919) = value_param_pattern [symbolic = %self.param_patt.loc14_20.2 (constants.%self.param_patt.620)]
// CHECK:STDOUT: %self.patt.loc14_20.2: @I.WithSelf.F.%pattern_type (%pattern_type.919) = at_binding_pattern self, %self.param_patt.loc14_20.2 [symbolic = %self.patt.loc14_20.2 (constants.%self.patt.a65)]
// CHECK:STDOUT: %self.patt.loc14_20.2: @I.WithSelf.F.%pattern_type (%pattern_type.919) = wrapper_binding_pattern self, %self.param_patt.loc14_20.2 [symbolic = %self.patt.loc14_20.2 (constants.%self.patt.51f)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc14_20.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -3117,7 +3117,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc14_20.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.919
// CHECK:STDOUT: %self.param_patt.loc14_20.2 => constants.%self.param_patt.620
// CHECK:STDOUT: %self.patt.loc14_20.2 => constants.%self.patt.a65
// CHECK:STDOUT: %self.patt.loc14_20.2 => constants.%self.patt.51f
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C(constants.%tuple.type.d47) {
@@ -3139,7 +3139,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type.loc14_20.1 => constants.%C.279
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.881
// CHECK:STDOUT: %self.param_patt.loc14_20.2 => constants.%self.param_patt.76e
// CHECK:STDOUT: %self.patt.loc14_20.2 => constants.%self.patt.a54
// CHECK:STDOUT: %self.patt.loc14_20.2 => constants.%self.patt.556
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- fail_use_has_extra_interfaces.carbon
@@ -3155,7 +3155,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %C.62c: type = class_type @C, @C(type) [concrete]
// CHECK:STDOUT: %pattern_type.1fc: type = pattern_type %C.62c [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.1fc = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.1fc = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.1fc = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete]
// CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete]
// CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete]
@@ -3165,7 +3165,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.b29 [symbolic]
// CHECK:STDOUT: %pattern_type.43d: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.43d = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.43d = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.43d = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%HasExtraInterfaces.import_ref.f85 [concrete]
// CHECK:STDOUT: %Extra8.type: type = facet_type <@Extra8> [concrete]
@@ -3231,7 +3231,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %HasExtraInterfaces.import = import HasExtraInterfaces
// CHECK:STDOUT: %Test.decl: %Test.type = fn_decl @Test [concrete = constants.%Test] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.1fc = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.1fc = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.1fc = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C.62c = value_param call_param0
// CHECK:STDOUT: %.loc5_37: type = splice_block %C [concrete = constants.%C.62c] {
@@ -3350,7 +3350,7 @@ fn Test(c: HasExtraInterfaces.C(type)) {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.43d)]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.43d) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.43d) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.43d) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -38,7 +38,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.c60: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.a33: %pattern_type.c60 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.696: %pattern_type.c60 = at_binding_pattern self, %self.param_patt.a33 [symbolic]
// CHECK:STDOUT: %self.patt.85e: %pattern_type.c60 = wrapper_binding_pattern self, %self.param_patt.a33 [symbolic]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
@@ -55,7 +55,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.303: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.49a: %pattern_type.98b = at_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %self.patt.36a: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
@@ -64,7 +64,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
@@ -96,7 +96,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: %C.decl.loc21: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -117,7 +117,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.dcc) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.ec6)] {
// CHECK:STDOUT: %self.param_patt.loc18_8.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc18_8.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc18_8.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc18_8.1 [symbolic = %self.patt.loc18_8.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc18_8.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc18_8.1 [symbolic = %self.patt.loc18_8.2 (constants.%self.patt.85e)]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -146,7 +146,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: impl @C.as.I.impl: %Self.ref as %I.ref {
// CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%self.param_patt.303]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.49a]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.36a]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -188,7 +188,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: %Self.as_type.loc18_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_8.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_8.1 [symbolic = %pattern_type (constants.%pattern_type.c60)]
// CHECK:STDOUT: %self.param_patt.loc18_8.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc18_8.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc18_8.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc18_8.2 [symbolic = %self.patt.loc18_8.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc18_8.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc18_8.2 [symbolic = %self.patt.loc18_8.2 (constants.%self.patt.85e)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc18_8.1 (%Self.as_type)) -> out %return.param: %i32;
// CHECK:STDOUT: }
@@ -217,7 +217,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: %Self.as_type.loc18_8.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60
// CHECK:STDOUT: %self.param_patt.loc18_8.2 => constants.%self.param_patt.a33
// CHECK:STDOUT: %self.patt.loc18_8.2 => constants.%self.patt.696
// CHECK:STDOUT: %self.patt.loc18_8.2 => constants.%self.patt.85e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
@@ -232,7 +232,7 @@ fn F(c: C) -> i32 {
// CHECK:STDOUT: %Self.as_type.loc18_8.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %self.param_patt.loc18_8.2 => constants.%self.param_patt.303
// CHECK:STDOUT: %self.patt.loc18_8.2 => constants.%self.patt.49a
// CHECK:STDOUT: %self.patt.loc18_8.2 => constants.%self.patt.36a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%C.type.facet) {
@@ -153,7 +153,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.4b3 [symbolic]
// CHECK:STDOUT: %pattern_type.d37: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %t.param_patt: %pattern_type.d37 = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.d37 = at_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.d37 = wrapper_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.df7: <witness> = require_complete_type %T.as_type [symbolic]
@@ -259,7 +259,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc13_15.1: %pattern_type.d7e = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_15.2 (constants.%T.patt.4cc)]
// CHECK:STDOUT: %t.param_patt.loc13_24.1: @F.%pattern_type (%pattern_type.d37) = value_param_pattern [symbolic = %t.param_patt.loc13_24.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc13_24.1: @F.%pattern_type (%pattern_type.d37) = at_binding_pattern t, %t.param_patt.loc13_24.1 [symbolic = %t.patt.loc13_24.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc13_24.1: @F.%pattern_type (%pattern_type.d37) = wrapper_binding_pattern t, %t.param_patt.loc13_24.1 [symbolic = %t.patt.loc13_24.2 (constants.%t.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc13_20: type = splice_block %Z.type [concrete = constants.%Z.type.963] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen.197]
@@ -371,7 +371,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
// CHECK:STDOUT: %T.as_type.loc13_26.1: type = facet_access_type %T.loc13_15.1 [symbolic = %T.as_type.loc13_26.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc13_26.1 [symbolic = %pattern_type (constants.%pattern_type.d37)]
// CHECK:STDOUT: %t.param_patt.loc13_24.2: @F.%pattern_type (%pattern_type.d37) = value_param_pattern [symbolic = %t.param_patt.loc13_24.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc13_24.2: @F.%pattern_type (%pattern_type.d37) = at_binding_pattern t, %t.param_patt.loc13_24.2 [symbolic = %t.patt.loc13_24.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc13_24.2: @F.%pattern_type (%pattern_type.d37) = wrapper_binding_pattern t, %t.param_patt.loc13_24.2 [symbolic = %t.patt.loc13_24.2 (constants.%t.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc13_26.1 [symbolic = %require_complete (constants.%require_complete.df7)]
@@ -579,7 +579,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.4b3 [symbolic]
// CHECK:STDOUT: %pattern_type.d37: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %t.param_patt: %pattern_type.d37 = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.d37 = at_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.d37 = wrapper_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.df7: <witness> = require_complete_type %T.as_type [symbolic]
@@ -705,7 +705,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc14_15.1: %pattern_type.d7e = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc14_15.2 (constants.%T.patt.4cc)]
// CHECK:STDOUT: %t.param_patt.loc14_24.1: @F.%pattern_type.loc14 (%pattern_type.d37) = value_param_pattern [symbolic = %t.param_patt.loc14_24.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc14_24.1: @F.%pattern_type.loc14 (%pattern_type.d37) = at_binding_pattern t, %t.param_patt.loc14_24.1 [symbolic = %t.patt.loc14_24.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc14_24.1: @F.%pattern_type.loc14 (%pattern_type.d37) = wrapper_binding_pattern t, %t.param_patt.loc14_24.1 [symbolic = %t.patt.loc14_24.2 (constants.%t.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc14_20: type = splice_block %Z.type [concrete = constants.%Z.type.963] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen.197]
@@ -828,7 +828,7 @@ fn F[T: Ptr](var t: T) -> T.(Ptr.Type) {
// CHECK:STDOUT: %T.as_type.loc14_26.1: type = facet_access_type %T.loc14_15.1 [symbolic = %T.as_type.loc14_26.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type.loc14: type = pattern_type %T.as_type.loc14_26.1 [symbolic = %pattern_type.loc14 (constants.%pattern_type.d37)]
// CHECK:STDOUT: %t.param_patt.loc14_24.2: @F.%pattern_type.loc14 (%pattern_type.d37) = value_param_pattern [symbolic = %t.param_patt.loc14_24.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc14_24.2: @F.%pattern_type.loc14 (%pattern_type.d37) = at_binding_pattern t, %t.param_patt.loc14_24.2 [symbolic = %t.patt.loc14_24.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc14_24.2: @F.%pattern_type.loc14 (%pattern_type.d37) = wrapper_binding_pattern t, %t.param_patt.loc14_24.2 [symbolic = %t.patt.loc14_24.2 (constants.%t.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc14: <witness> = require_complete_type %T.as_type.loc14_26.1 [symbolic = %require_complete.loc14 (constants.%require_complete.df7)]
+25 -25
View File
@@ -71,7 +71,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.b82: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.b82 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.b82 = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.b82 = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self) [symbolic]
// CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T) [symbolic]
@@ -126,7 +126,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] {
// CHECK:STDOUT: %self.param_patt.loc4_29.1: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = value_param_pattern [symbolic = %self.param_patt.loc4_29.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_29.1: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = at_binding_pattern self, %self.param_patt.loc4_29.1 [symbolic = %self.patt.loc4_29.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_29.1: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = wrapper_binding_pattern self, %self.param_patt.loc4_29.1 [symbolic = %self.patt.loc4_29.2 (constants.%self.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc4_29.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc4_29.1: type = splice_block %.loc4_29.3 [symbolic = %Self.as_type.loc4_29.1 (constants.%Self.as_type)] {
@@ -178,7 +178,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type.loc4_29.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_29.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_29.1 [symbolic = %pattern_type (constants.%pattern_type.b82)]
// CHECK:STDOUT: %self.param_patt.loc4_29.2: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = value_param_pattern [symbolic = %self.param_patt.loc4_29.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_29.2: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = at_binding_pattern self, %self.param_patt.loc4_29.2 [symbolic = %self.patt.loc4_29.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_29.2: @I.WithSelf.F.%pattern_type (%pattern_type.b82) = wrapper_binding_pattern self, %self.param_patt.loc4_29.2 [symbolic = %self.patt.loc4_29.2 (constants.%self.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc4_29.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -224,7 +224,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic]
// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.e56: %pattern_type.efd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.99d: %pattern_type.efd = at_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %self.patt.42d: %pattern_type.efd = wrapper_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %I.type.ec4: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete]
// CHECK:STDOUT: %.84a: <witness> = impl_self_witness %X, @I, @I(%InInterfaceArgs) [concrete]
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @X.as.I.impl.%I.impl_witness_table [concrete]
@@ -235,7 +235,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %assoc0.d86: %I.assoc_type.f32 = assoc_entity element0, imports.%Main.import_ref.35c [concrete]
// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete]
// CHECK:STDOUT: %self.param_patt.172: %pattern_type.6cb = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.7ac: %pattern_type.6cb = at_binding_pattern self, %self.param_patt.172 [concrete]
// CHECK:STDOUT: %self.patt.af8: %pattern_type.6cb = wrapper_binding_pattern self, %self.param_patt.172 [concrete]
// CHECK:STDOUT: %X.as.I.impl.F.type: type = fn_type @X.as.I.impl.F [concrete]
// CHECK:STDOUT: %X.as.I.impl.F: %X.as.I.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %I.facet: %I.type.ec4 = facet_value %X, (%I.impl_witness) [concrete]
@@ -297,7 +297,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: impl @X.as.I.impl: %X.ref as %I.type {
// CHECK:STDOUT: %X.as.I.impl.F.decl: %X.as.I.impl.F.type = fn_decl @X.as.I.impl.F [concrete = constants.%X.as.I.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.6cb = value_param_pattern [concrete = constants.%self.param_patt.172]
// CHECK:STDOUT: %self.patt: %pattern_type.6cb = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.7ac]
// CHECK:STDOUT: %self.patt: %pattern_type.6cb = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.af8]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %X = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @X.as.I.impl.%X.ref [concrete = constants.%X]
@@ -334,7 +334,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.e56)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.99d)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.42d)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -358,7 +358,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.e56
// CHECK:STDOUT: %self.patt => constants.%self.patt.99d
// CHECK:STDOUT: %self.patt => constants.%self.patt.42d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) {
@@ -399,7 +399,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type => constants.%X
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6cb
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.172
// CHECK:STDOUT: %self.patt => constants.%self.patt.7ac
// CHECK:STDOUT: %self.patt => constants.%self.patt.af8
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- use_impl_in_interface_args.carbon
@@ -410,7 +410,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.6cb: type = pattern_type %X [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.6cb = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
@@ -427,7 +427,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic]
// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.e56: %pattern_type.efd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.99d: %pattern_type.efd = at_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %self.patt.42d: %pattern_type.efd = wrapper_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %InInterfaceArgs: type = class_type @InInterfaceArgs [concrete]
// CHECK:STDOUT: %I.type.ec4: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete]
// CHECK:STDOUT: %Self.8d9: %I.type.ec4 = symbolic_binding Self, 1 [symbolic]
@@ -480,7 +480,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.6cb = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6cb = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %X = value_param call_param0
// CHECK:STDOUT: %X.ref: type = name_ref X, imports.%Main.X [concrete = constants.%X]
@@ -546,7 +546,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.e56)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.99d)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.42d)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -567,7 +567,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.e56
// CHECK:STDOUT: %self.patt => constants.%self.patt.99d
// CHECK:STDOUT: %self.patt => constants.%self.patt.42d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) {
@@ -622,7 +622,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic]
// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.e56: %pattern_type.efd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.99d: %pattern_type.efd = at_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %self.patt.42d: %pattern_type.efd = wrapper_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %X: type = class_type @X [concrete]
// CHECK:STDOUT: %I.type.d91: type = facet_type <@I, @I(%X)> [concrete]
// CHECK:STDOUT: %.823: <witness> = impl_self_witness %C.165, @I, @I(%X) [concrete]
@@ -634,7 +634,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %assoc0.a42: %I.assoc_type.696 = assoc_entity element0, imports.%Main.import_ref.35c [concrete]
// CHECK:STDOUT: %pattern_type.90a: type = pattern_type %C.165 [concrete]
// CHECK:STDOUT: %self.param_patt.b6d: %pattern_type.90a = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.8f9: %pattern_type.90a = at_binding_pattern self, %self.param_patt.b6d [concrete]
// CHECK:STDOUT: %self.patt.2dc: %pattern_type.90a = wrapper_binding_pattern self, %self.param_patt.b6d [concrete]
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %I.facet: %I.type.d91 = facet_value %C.165, (%I.impl_witness) [concrete]
@@ -701,7 +701,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: impl @C.as.I.impl: %C as %I.type {
// CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.90a = value_param_pattern [concrete = constants.%self.param_patt.b6d]
// CHECK:STDOUT: %self.patt: %pattern_type.90a = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.8f9]
// CHECK:STDOUT: %self.patt: %pattern_type.90a = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.2dc]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C.165 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C [concrete = constants.%C.165]
@@ -752,7 +752,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.e56)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.99d)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.42d)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -788,7 +788,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.e56
// CHECK:STDOUT: %self.patt => constants.%self.patt.99d
// CHECK:STDOUT: %self.patt => constants.%self.patt.42d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I(constants.%X) {
@@ -829,7 +829,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type => constants.%C.165
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.90a
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.b6d
// CHECK:STDOUT: %self.patt => constants.%self.patt.8f9
// CHECK:STDOUT: %self.patt => constants.%self.patt.2dc
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- use_impl_in_class_args.carbon
@@ -847,7 +847,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %C.165: type = class_type @C, @C(%InClassArgs) [concrete]
// CHECK:STDOUT: %pattern_type.90a: type = pattern_type %C.165 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.90a = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.90a = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.90a = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %H.type: type = fn_type @H [concrete]
// CHECK:STDOUT: %H: %H.type = struct_value () [concrete]
// CHECK:STDOUT: %I.type.335: type = generic_interface_type @I [concrete]
@@ -860,7 +860,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a67 [symbolic]
// CHECK:STDOUT: %pattern_type.efd: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.e56: %pattern_type.efd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.99d: %pattern_type.efd = at_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %self.patt.42d: %pattern_type.efd = wrapper_binding_pattern self, %self.param_patt.e56 [symbolic]
// CHECK:STDOUT: %X: type = class_type @X [concrete]
// CHECK:STDOUT: %I.type.d91: type = facet_type <@I, @I(%X)> [concrete]
// CHECK:STDOUT: %Self.c9d: %I.type.d91 = symbolic_binding Self, 1 [symbolic]
@@ -916,7 +916,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.90a = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.90a = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.90a = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C.165 = value_param call_param0
// CHECK:STDOUT: %.loc6_22: type = splice_block %C [concrete = constants.%C.165] {
@@ -1000,7 +1000,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.efd)]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.e56)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.99d)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.efd) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.42d)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -1033,7 +1033,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); }
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.e56
// CHECK:STDOUT: %self.patt => constants.%self.patt.99d
// CHECK:STDOUT: %self.patt => constants.%self.patt.42d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I(constants.%X) {
+12 -12
View File
@@ -56,7 +56,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
@@ -86,7 +86,7 @@ fn Call() {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] {
// CHECK:STDOUT: %self.param_patt.loc4_20.1: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [symbolic = %self.param_patt.loc4_20.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_20.1: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt.loc4_20.1 [symbolic = %self.patt.loc4_20.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_20.1: @I.WithSelf.F.%pattern_type (%pattern_type) = wrapper_binding_pattern self, %self.param_patt.loc4_20.1 [symbolic = %self.patt.loc4_20.2 (constants.%self.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] {
@@ -111,7 +111,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type (constants.%pattern_type)]
// CHECK:STDOUT: %self.param_patt.loc4_20.2: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [symbolic = %self.param_patt.loc4_20.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc4_20.2: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt.loc4_20.2 [symbolic = %self.patt.loc4_20.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc4_20.2: @I.WithSelf.F.%pattern_type (%pattern_type) = wrapper_binding_pattern self, %self.param_patt.loc4_20.2 [symbolic = %self.patt.loc4_20.2 (constants.%self.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc4_20.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -139,12 +139,12 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic]
// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %Self.as_type [symbolic]
// CHECK:STDOUT: %self.param_patt.58e: %pattern_type.b3a = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.300: %pattern_type.b3a = at_binding_pattern self, %self.param_patt.58e [symbolic]
// CHECK:STDOUT: %self.patt.b4c: %pattern_type.b3a = wrapper_binding_pattern self, %self.param_patt.58e [symbolic]
// CHECK:STDOUT: %.b7f: <witness> = impl_self_witness %C, @I [concrete]
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.303: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.49a: %pattern_type.98b = at_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %self.patt.36a: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete]
// CHECK:STDOUT: %C.as.I.impl.F: %C.as.I.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
@@ -192,7 +192,7 @@ fn Call() {
// CHECK:STDOUT: impl @C.as.I.impl: %C.ref as %I.ref {
// CHECK:STDOUT: %C.as.I.impl.F.decl: %C.as.I.impl.F.type = fn_decl @C.as.I.impl.F [concrete = constants.%C.as.I.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%self.param_patt.303]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.49a]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.36a]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, @C.as.I.impl.%C.ref [concrete = constants.%C]
@@ -220,7 +220,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.b3a)]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.b3a) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.58e)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b3a) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.300)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b3a) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.b4c)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -242,7 +242,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.58e
// CHECK:STDOUT: %self.patt => constants.%self.patt.300
// CHECK:STDOUT: %self.patt => constants.%self.patt.b4c
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
@@ -257,7 +257,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.303
// CHECK:STDOUT: %self.patt => constants.%self.patt.49a
// CHECK:STDOUT: %self.patt => constants.%self.patt.36a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- get.carbon
@@ -330,7 +330,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type.b38: type = facet_access_type %Self.dda [symbolic]
// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %Self.as_type.b38 [symbolic]
// CHECK:STDOUT: %self.param_patt.58e: %pattern_type.b3a = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.300: %pattern_type.b3a = at_binding_pattern self, %self.param_patt.58e [symbolic]
// CHECK:STDOUT: %self.patt.b4c: %pattern_type.b3a = wrapper_binding_pattern self, %self.param_patt.58e [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
// CHECK:STDOUT: %assoc0.232: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9f7 [concrete]
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table [concrete]
@@ -425,7 +425,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.b38)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.b3a)]
// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.b3a) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.58e)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b3a) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.300)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b3a) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.b4c)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn;
// CHECK:STDOUT: }
@@ -451,7 +451,7 @@ fn Call() {
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.b38
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b3a
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.58e
// CHECK:STDOUT: %self.patt => constants.%self.patt.300
// CHECK:STDOUT: %self.patt => constants.%self.patt.b4c
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
+10 -10
View File
@@ -199,7 +199,7 @@ fn P(o: O) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %H.type: type = fn_type @H [concrete]
// CHECK:STDOUT: %H: %H.type = struct_value () [concrete]
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
@@ -224,7 +224,7 @@ fn P(o: O) {
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %c.param_patt: %pattern_type = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl [concrete = constants.%C]
@@ -436,7 +436,7 @@ fn P(o: O) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %D [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type = wrapper_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %B.type: type = fn_type @B [concrete]
// CHECK:STDOUT: %B: %B.type = struct_value () [concrete]
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
@@ -459,7 +459,7 @@ fn P(o: O) {
// CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {}
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {
// CHECK:STDOUT: %d.param_patt: %pattern_type = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.patt: %pattern_type = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %d.param: %D = value_param call_param0
// CHECK:STDOUT: %D.ref.loc21: type = name_ref D, file.%D.decl [concrete = constants.%D]
@@ -650,7 +650,7 @@ fn P(o: O) {
// CHECK:STDOUT: %complete_type.c77: <witness> = complete_type_witness %struct_type.base.e05 [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %E [concrete]
// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %e.patt: %pattern_type = at_binding_pattern e, %e.param_patt [concrete]
// CHECK:STDOUT: %e.patt: %pattern_type = wrapper_binding_pattern e, %e.param_patt [concrete]
// CHECK:STDOUT: %H.type: type = fn_type @H [concrete]
// CHECK:STDOUT: %H: %H.type = struct_value () [concrete]
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
@@ -672,7 +672,7 @@ fn P(o: O) {
// CHECK:STDOUT: %E.decl: type = class_decl @E [concrete = constants.%E] {} {}
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %e.param_patt: %pattern_type = value_param_pattern [concrete = constants.%e.param_patt]
// CHECK:STDOUT: %e.patt: %pattern_type = at_binding_pattern e, %e.param_patt [concrete = constants.%e.patt]
// CHECK:STDOUT: %e.patt: %pattern_type = wrapper_binding_pattern e, %e.param_patt [concrete = constants.%e.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %e.param: %E = value_param call_param0
// CHECK:STDOUT: %E.ref.loc19: type = name_ref E, file.%E.decl [concrete = constants.%E]
@@ -827,7 +827,7 @@ fn P(o: O) {
// CHECK:STDOUT: %complete_type.c02: <witness> = complete_type_witness %struct_type.base.cae [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %L [concrete]
// CHECK:STDOUT: %l.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %l.patt: %pattern_type = at_binding_pattern l, %l.param_patt [concrete]
// CHECK:STDOUT: %l.patt: %pattern_type = wrapper_binding_pattern l, %l.param_patt [concrete]
// CHECK:STDOUT: %M.type: type = fn_type @M [concrete]
// CHECK:STDOUT: %M: %M.type = struct_value () [concrete]
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
@@ -848,7 +848,7 @@ fn P(o: O) {
// CHECK:STDOUT: %L.decl: type = class_decl @L [concrete = constants.%L] {} {}
// CHECK:STDOUT: %M.decl: %M.type = fn_decl @M [concrete = constants.%M] {
// CHECK:STDOUT: %l.param_patt: %pattern_type = value_param_pattern [concrete = constants.%l.param_patt]
// CHECK:STDOUT: %l.patt: %pattern_type = at_binding_pattern l, %l.param_patt [concrete = constants.%l.patt]
// CHECK:STDOUT: %l.patt: %pattern_type = wrapper_binding_pattern l, %l.param_patt [concrete = constants.%l.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %l.param: %L = value_param call_param0
// CHECK:STDOUT: %L.ref.loc19: type = name_ref L, file.%L.decl [concrete = constants.%L]
@@ -1006,7 +1006,7 @@ fn P(o: O) {
// CHECK:STDOUT: %complete_type.3b3: <witness> = complete_type_witness %struct_type.base.40f [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %O [concrete]
// CHECK:STDOUT: %o.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %o.patt: %pattern_type = at_binding_pattern o, %o.param_patt [concrete]
// CHECK:STDOUT: %o.patt: %pattern_type = wrapper_binding_pattern o, %o.param_patt [concrete]
// CHECK:STDOUT: %P.type: type = fn_type @P [concrete]
// CHECK:STDOUT: %P: %P.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -1025,7 +1025,7 @@ fn P(o: O) {
// CHECK:STDOUT: %O.decl: type = class_decl @O [concrete = constants.%O] {} {}
// CHECK:STDOUT: %P.decl: %P.type = fn_decl @P [concrete = constants.%P] {
// CHECK:STDOUT: %o.param_patt: %pattern_type = value_param_pattern [concrete = constants.%o.param_patt]
// CHECK:STDOUT: %o.patt: %pattern_type = at_binding_pattern o, %o.param_patt [concrete = constants.%o.patt]
// CHECK:STDOUT: %o.patt: %pattern_type = wrapper_binding_pattern o, %o.param_patt [concrete = constants.%o.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %o.param: %O = value_param call_param0
// CHECK:STDOUT: %O.ref.loc27: type = name_ref O, file.%O.decl [concrete = constants.%O]
+30 -30
View File
@@ -49,9 +49,9 @@ impl D as SelfNested {
// CHECK:STDOUT: %Self.as_type.968: type = facet_access_type %Self.bde [symbolic]
// CHECK:STDOUT: %pattern_type.04e: type = pattern_type %Self.as_type.968 [symbolic]
// CHECK:STDOUT: %self.param_patt.1da: %pattern_type.04e = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.36a: %pattern_type.04e = at_binding_pattern self, %self.param_patt.1da [symbolic]
// CHECK:STDOUT: %self.patt.0a0: %pattern_type.04e = wrapper_binding_pattern self, %self.param_patt.1da [symbolic]
// CHECK:STDOUT: %x.param_patt.14a: %pattern_type.04e = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.6f8: %pattern_type.04e = at_binding_pattern x, %x.param_patt.14a [symbolic]
// CHECK:STDOUT: %x.patt.120: %pattern_type.04e = wrapper_binding_pattern x, %x.param_patt.14a [symbolic]
// CHECK:STDOUT: %.326: Core.Form = init_form %Self.as_type.968 [symbolic]
// CHECK:STDOUT: %return.param_patt.ff3: %pattern_type.04e = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.8f7: %pattern_type.04e = return_slot_pattern %return.param_patt.ff3, %Self.as_type.968 [symbolic]
@@ -68,9 +68,9 @@ impl D as SelfNested {
// CHECK:STDOUT: %UseSelf.impl_witness.fc2: <witness> = impl_witness @C.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.303: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.49a: %pattern_type.98b = at_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %self.patt.36a: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %x.param_patt.0f9: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.2cc: %pattern_type.98b = at_binding_pattern x, %x.param_patt.0f9 [concrete]
// CHECK:STDOUT: %x.patt.953: %pattern_type.98b = wrapper_binding_pattern x, %x.param_patt.0f9 [concrete]
// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete]
// CHECK:STDOUT: %return.param_patt.89a: %pattern_type.98b = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.e4a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, %C [concrete]
@@ -85,9 +85,9 @@ impl D as SelfNested {
// CHECK:STDOUT: %UseSelf.impl_witness.27c: <witness> = impl_witness @D.as.UseSelf.impl.%UseSelf.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete]
// CHECK:STDOUT: %self.param_patt.f16: %pattern_type.d8d = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.6c0: %pattern_type.d8d = at_binding_pattern self, %self.param_patt.f16 [concrete]
// CHECK:STDOUT: %self.patt.752: %pattern_type.d8d = wrapper_binding_pattern self, %self.param_patt.f16 [concrete]
// CHECK:STDOUT: %x.param_patt.23b: %pattern_type.d8d = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.75f: %pattern_type.d8d = at_binding_pattern x, %x.param_patt.23b [concrete]
// CHECK:STDOUT: %x.patt.c51: %pattern_type.d8d = wrapper_binding_pattern x, %x.param_patt.23b [concrete]
// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete]
// CHECK:STDOUT: %return.param_patt.eae: %pattern_type.d8d = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.e38: %pattern_type.d8d = return_slot_pattern %return.param_patt.eae, %D [concrete]
@@ -108,7 +108,7 @@ impl D as SelfNested {
// CHECK:STDOUT: %tuple.type.d83: type = tuple_type (%ptr.a16, %struct_type.x.y.749) [symbolic]
// CHECK:STDOUT: %pattern_type.6eb: type = pattern_type %tuple.type.d83 [symbolic]
// CHECK:STDOUT: %x.param_patt.a6c: %pattern_type.6eb = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.792: %pattern_type.6eb = at_binding_pattern x, %x.param_patt.a6c [symbolic]
// CHECK:STDOUT: %x.patt.693: %pattern_type.6eb = wrapper_binding_pattern x, %x.param_patt.a6c [symbolic]
// CHECK:STDOUT: %SelfNested.WithSelf.F.type.702: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%Self.e81) [symbolic]
// CHECK:STDOUT: %SelfNested.WithSelf.F.eec: %SelfNested.WithSelf.F.type.702 = struct_value () [symbolic]
// CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete]
@@ -121,7 +121,7 @@ impl D as SelfNested {
// CHECK:STDOUT: %tuple.type.746: type = tuple_type (%ptr.6b6, %struct_type.x.y.ee7) [concrete]
// CHECK:STDOUT: %pattern_type.79c: type = pattern_type %tuple.type.746 [concrete]
// CHECK:STDOUT: %x.param_patt.110: %pattern_type.79c = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.99f: %pattern_type.79c = at_binding_pattern x, %x.param_patt.110 [concrete]
// CHECK:STDOUT: %x.patt.701: %pattern_type.79c = wrapper_binding_pattern x, %x.param_patt.110 [concrete]
// CHECK:STDOUT: %C.as.SelfNested.impl.F.type: type = fn_type @C.as.SelfNested.impl.F [concrete]
// CHECK:STDOUT: %C.as.SelfNested.impl.F: %C.as.SelfNested.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %SelfNested.facet.ec7: %SelfNested.type = facet_value %C, (%SelfNested.impl_witness.a49) [concrete]
@@ -135,7 +135,7 @@ impl D as SelfNested {
// CHECK:STDOUT: %tuple.type.aaa: type = tuple_type (%ptr.d57, %struct_type.x.y.e52) [concrete]
// CHECK:STDOUT: %pattern_type.338: type = pattern_type %tuple.type.aaa [concrete]
// CHECK:STDOUT: %x.param_patt.a5b: %pattern_type.338 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.766: %pattern_type.338 = at_binding_pattern x, %x.param_patt.a5b [concrete]
// CHECK:STDOUT: %x.patt.f7b: %pattern_type.338 = wrapper_binding_pattern x, %x.param_patt.a5b [concrete]
// CHECK:STDOUT: %D.as.SelfNested.impl.F.type: type = fn_type @D.as.SelfNested.impl.F [concrete]
// CHECK:STDOUT: %D.as.SelfNested.impl.F: %D.as.SelfNested.impl.F.type = struct_value () [concrete]
// CHECK:STDOUT: %SelfNested.facet.064: %SelfNested.type = facet_value %D, (%SelfNested.impl_witness.ff1) [concrete]
@@ -183,9 +183,9 @@ impl D as SelfNested {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %UseSelf.WithSelf.F.decl: @UseSelf.WithSelf.%UseSelf.WithSelf.F.type (%UseSelf.WithSelf.F.type.74d) = fn_decl @UseSelf.WithSelf.F [symbolic = @UseSelf.WithSelf.%UseSelf.WithSelf.F (constants.%UseSelf.WithSelf.F.8c4)] {
// CHECK:STDOUT: %self.param_patt.loc16_8.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = value_param_pattern [symbolic = %self.param_patt.loc16_8.2 (constants.%self.param_patt.1da)]
// CHECK:STDOUT: %self.patt.loc16_8.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = at_binding_pattern self, %self.param_patt.loc16_8.1 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.36a)]
// CHECK:STDOUT: %self.patt.loc16_8.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = wrapper_binding_pattern self, %self.param_patt.loc16_8.1 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.0a0)]
// CHECK:STDOUT: %x.param_patt.loc16_15.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = value_param_pattern [symbolic = %x.param_patt.loc16_15.2 (constants.%x.param_patt.14a)]
// CHECK:STDOUT: %x.patt.loc16_15.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = at_binding_pattern x, %x.param_patt.loc16_15.1 [symbolic = %x.patt.loc16_15.2 (constants.%x.patt.6f8)]
// CHECK:STDOUT: %x.patt.loc16_15.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = wrapper_binding_pattern x, %x.param_patt.loc16_15.1 [symbolic = %x.patt.loc16_15.2 (constants.%x.patt.120)]
// CHECK:STDOUT: %return.param_patt.loc16_26.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = out_param_pattern [symbolic = %return.param_patt.loc16_26.2 (constants.%return.param_patt.ff3)]
// CHECK:STDOUT: %return.patt.loc16_23.1: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = return_slot_pattern %return.param_patt.loc16_26.1, %.loc16_26.2 [symbolic = %return.patt.loc16_23.2 (constants.%return.patt.8f7)]
// CHECK:STDOUT: } {
@@ -228,7 +228,7 @@ impl D as SelfNested {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.702) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.eec)] {
// CHECK:STDOUT: %x.param_patt.loc32_9.1: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = value_param_pattern [symbolic = %x.param_patt.loc32_9.2 (constants.%x.param_patt.a6c)]
// CHECK:STDOUT: %x.patt.loc32_9.1: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = at_binding_pattern x, %x.param_patt.loc32_9.1 [symbolic = %x.patt.loc32_9.2 (constants.%x.patt.792)]
// CHECK:STDOUT: %x.patt.loc32_9.1: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = wrapper_binding_pattern x, %x.param_patt.loc32_9.1 [symbolic = %x.patt.loc32_9.2 (constants.%x.patt.693)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.d83) = value_param call_param0
// CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.d83)] {
@@ -261,9 +261,9 @@ impl D as SelfNested {
// CHECK:STDOUT: impl @C.as.UseSelf.impl: %C.ref as %UseSelf.ref {
// CHECK:STDOUT: %C.as.UseSelf.impl.F.decl: %C.as.UseSelf.impl.F.type = fn_decl @C.as.UseSelf.impl.F [concrete = constants.%C.as.UseSelf.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%self.param_patt.303]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.49a]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.36a]
// CHECK:STDOUT: %x.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%x.param_patt.0f9]
// CHECK:STDOUT: %x.patt: %pattern_type.98b = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.2cc]
// CHECK:STDOUT: %x.patt: %pattern_type.98b = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.953]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc24_40 [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
@@ -291,9 +291,9 @@ impl D as SelfNested {
// CHECK:STDOUT: impl @D.as.UseSelf.impl: %D.ref as %UseSelf.ref {
// CHECK:STDOUT: %D.as.UseSelf.impl.F.decl: %D.as.UseSelf.impl.F.type = fn_decl @D.as.UseSelf.impl.F [concrete = constants.%D.as.UseSelf.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.d8d = value_param_pattern [concrete = constants.%self.param_patt.f16]
// CHECK:STDOUT: %self.patt: %pattern_type.d8d = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6c0]
// CHECK:STDOUT: %self.patt: %pattern_type.d8d = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.752]
// CHECK:STDOUT: %x.param_patt: %pattern_type.d8d = value_param_pattern [concrete = constants.%x.param_patt.23b]
// CHECK:STDOUT: %x.patt: %pattern_type.d8d = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.75f]
// CHECK:STDOUT: %x.patt: %pattern_type.d8d = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.c51]
// CHECK:STDOUT: %return.param_patt: %pattern_type.d8d = out_param_pattern [concrete = constants.%return.param_patt.eae]
// CHECK:STDOUT: %return.patt: %pattern_type.d8d = return_slot_pattern %return.param_patt, %Self.ref.loc28_40 [concrete = constants.%return.patt.e38]
// CHECK:STDOUT: } {
@@ -320,7 +320,7 @@ impl D as SelfNested {
// CHECK:STDOUT: impl @C.as.SelfNested.impl: %C.ref as %SelfNested.ref {
// CHECK:STDOUT: %C.as.SelfNested.impl.F.decl: %C.as.SelfNested.impl.F.type = fn_decl @C.as.SelfNested.impl.F [concrete = constants.%C.as.SelfNested.impl.F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.79c = value_param_pattern [concrete = constants.%x.param_patt.110]
// CHECK:STDOUT: %x.patt: %pattern_type.79c = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.99f]
// CHECK:STDOUT: %x.patt: %pattern_type.79c = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.701]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %tuple.type.746 = value_param call_param0
// CHECK:STDOUT: %.loc36_31.1: type = splice_block %.loc36_31.3 [concrete = constants.%tuple.type.746] {
@@ -348,7 +348,7 @@ impl D as SelfNested {
// CHECK:STDOUT: impl @D.as.SelfNested.impl: %D.ref as %SelfNested.ref {
// CHECK:STDOUT: %D.as.SelfNested.impl.F.decl: %D.as.SelfNested.impl.F.type = fn_decl @D.as.SelfNested.impl.F [concrete = constants.%D.as.SelfNested.impl.F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.338 = value_param_pattern [concrete = constants.%x.param_patt.a5b]
// CHECK:STDOUT: %x.patt: %pattern_type.338 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.766]
// CHECK:STDOUT: %x.patt: %pattern_type.338 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.f7b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %tuple.type.aaa = value_param call_param0
// CHECK:STDOUT: %.loc40_37.1: type = splice_block %.loc40_37.3 [concrete = constants.%tuple.type.aaa] {
@@ -393,9 +393,9 @@ impl D as SelfNested {
// CHECK:STDOUT: %Self.as_type.loc16_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_8.1 (constants.%Self.as_type.968)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_8.1 [symbolic = %pattern_type (constants.%pattern_type.04e)]
// CHECK:STDOUT: %self.param_patt.loc16_8.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = value_param_pattern [symbolic = %self.param_patt.loc16_8.2 (constants.%self.param_patt.1da)]
// CHECK:STDOUT: %self.patt.loc16_8.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = at_binding_pattern self, %self.param_patt.loc16_8.2 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.36a)]
// CHECK:STDOUT: %self.patt.loc16_8.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = wrapper_binding_pattern self, %self.param_patt.loc16_8.2 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.0a0)]
// CHECK:STDOUT: %x.param_patt.loc16_15.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = value_param_pattern [symbolic = %x.param_patt.loc16_15.2 (constants.%x.param_patt.14a)]
// CHECK:STDOUT: %x.patt.loc16_15.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = at_binding_pattern x, %x.param_patt.loc16_15.2 [symbolic = %x.patt.loc16_15.2 (constants.%x.patt.6f8)]
// CHECK:STDOUT: %x.patt.loc16_15.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = wrapper_binding_pattern x, %x.param_patt.loc16_15.2 [symbolic = %x.patt.loc16_15.2 (constants.%x.patt.120)]
// CHECK:STDOUT: %.loc16_26.1: Core.Form = init_form %Self.as_type.loc16_8.1 [symbolic = %.loc16_26.1 (constants.%.326)]
// CHECK:STDOUT: %return.param_patt.loc16_26.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = out_param_pattern [symbolic = %return.param_patt.loc16_26.2 (constants.%return.param_patt.ff3)]
// CHECK:STDOUT: %return.patt.loc16_23.2: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.04e) = return_slot_pattern %return.param_patt.loc16_26.2, %Self.as_type.loc16_8.1 [symbolic = %return.patt.loc16_23.2 (constants.%return.patt.8f7)]
@@ -428,7 +428,7 @@ impl D as SelfNested {
// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.d83)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.6eb)]
// CHECK:STDOUT: %x.param_patt.loc32_9.2: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = value_param_pattern [symbolic = %x.param_patt.loc32_9.2 (constants.%x.param_patt.a6c)]
// CHECK:STDOUT: %x.patt.loc32_9.2: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = at_binding_pattern x, %x.param_patt.loc32_9.2 [symbolic = %x.patt.loc32_9.2 (constants.%x.patt.792)]
// CHECK:STDOUT: %x.patt.loc32_9.2: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.6eb) = wrapper_binding_pattern x, %x.param_patt.loc32_9.2 [symbolic = %x.patt.loc32_9.2 (constants.%x.patt.693)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.d83));
// CHECK:STDOUT: }
@@ -449,9 +449,9 @@ impl D as SelfNested {
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%Self.as_type.968
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.04e
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.1da
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.36a
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.0a0
// CHECK:STDOUT: %x.param_patt.loc16_15.2 => constants.%x.param_patt.14a
// CHECK:STDOUT: %x.patt.loc16_15.2 => constants.%x.patt.6f8
// CHECK:STDOUT: %x.patt.loc16_15.2 => constants.%x.patt.120
// CHECK:STDOUT: %.loc16_26.1 => constants.%.326
// CHECK:STDOUT: %return.param_patt.loc16_26.2 => constants.%return.param_patt.ff3
// CHECK:STDOUT: %return.patt.loc16_23.2 => constants.%return.patt.8f7
@@ -469,9 +469,9 @@ impl D as SelfNested {
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.303
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.49a
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.36a
// CHECK:STDOUT: %x.param_patt.loc16_15.2 => constants.%x.param_patt.0f9
// CHECK:STDOUT: %x.patt.loc16_15.2 => constants.%x.patt.2cc
// CHECK:STDOUT: %x.patt.loc16_15.2 => constants.%x.patt.953
// CHECK:STDOUT: %.loc16_26.1 => constants.%.a44
// CHECK:STDOUT: %return.param_patt.loc16_26.2 => constants.%return.param_patt.89a
// CHECK:STDOUT: %return.patt.loc16_23.2 => constants.%return.patt.e4a
@@ -489,9 +489,9 @@ impl D as SelfNested {
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%D
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d8d
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.f16
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.6c0
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.752
// CHECK:STDOUT: %x.param_patt.loc16_15.2 => constants.%x.param_patt.23b
// CHECK:STDOUT: %x.patt.loc16_15.2 => constants.%x.patt.75f
// CHECK:STDOUT: %x.patt.loc16_15.2 => constants.%x.patt.c51
// CHECK:STDOUT: %.loc16_26.1 => constants.%.592
// CHECK:STDOUT: %return.param_patt.loc16_26.2 => constants.%return.param_patt.eae
// CHECK:STDOUT: %return.patt.loc16_23.2 => constants.%return.patt.e38
@@ -513,7 +513,7 @@ impl D as SelfNested {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.d83
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6eb
// CHECK:STDOUT: %x.param_patt.loc32_9.2 => constants.%x.param_patt.a6c
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.792
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.693
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.ec7) {
@@ -532,7 +532,7 @@ impl D as SelfNested {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.746
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.79c
// CHECK:STDOUT: %x.param_patt.loc32_9.2 => constants.%x.param_patt.110
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.99f
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.701
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.064) {
@@ -551,6 +551,6 @@ impl D as SelfNested {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.aaa
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.338
// CHECK:STDOUT: %x.param_patt.loc32_9.2 => constants.%x.param_patt.a5b
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.766
// CHECK:STDOUT: %x.patt.loc32_9.2 => constants.%x.patt.f7b
// CHECK:STDOUT: }
// CHECK:STDOUT:
+22 -22
View File
@@ -496,12 +496,12 @@ fn F() {
// CHECK:STDOUT: %Self.as_type.976: type = facet_access_type %Self.653 [symbolic]
// CHECK:STDOUT: %pattern_type.506: type = pattern_type %Self.as_type.976 [symbolic]
// CHECK:STDOUT: %self.param_patt.091: %pattern_type.506 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.bfd: %pattern_type.506 = at_binding_pattern self, %self.param_patt.091 [symbolic]
// CHECK:STDOUT: %self.patt.f35: %pattern_type.506 = wrapper_binding_pattern self, %self.param_patt.091 [symbolic]
// CHECK:STDOUT: %J.lookup_impl_witness: <witness> = lookup_impl_witness %Self.653, @J [symbolic]
// CHECK:STDOUT: %impl.elem0.c15: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic]
// CHECK:STDOUT: %pattern_type.a39: type = pattern_type %impl.elem0.c15 [symbolic]
// CHECK:STDOUT: %u.param_patt.81e: %pattern_type.a39 = value_param_pattern [symbolic]
// CHECK:STDOUT: %u.patt.1b4: %pattern_type.a39 = at_binding_pattern u, %u.param_patt.81e [symbolic]
// CHECK:STDOUT: %u.patt.54e: %pattern_type.a39 = wrapper_binding_pattern u, %u.param_patt.81e [symbolic]
// CHECK:STDOUT: %.eb9: Core.Form = init_form %impl.elem0.c15 [symbolic]
// CHECK:STDOUT: %return.param_patt.740: %pattern_type.a39 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.cdd: %pattern_type.a39 = return_slot_pattern %return.param_patt.740, %impl.elem0.c15 [symbolic]
@@ -518,10 +518,10 @@ fn F() {
// CHECK:STDOUT: %J.impl_witness.a51: <witness> = impl_witness @empty_tuple.type.as.J.impl.%J.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %self.param_patt.154: %pattern_type.cb1 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.8c1: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %self.patt.462: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt.154 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %u.param_patt.151: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %u.patt.49f: %pattern_type.6b6 = at_binding_pattern u, %u.param_patt.151 [concrete]
// CHECK:STDOUT: %u.patt.e4f: %pattern_type.6b6 = wrapper_binding_pattern u, %u.param_patt.151 [concrete]
// CHECK:STDOUT: %.795f: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %return.param_patt.a9a: %pattern_type.6b6 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.e1b: %pattern_type.6b6 = return_slot_pattern %return.param_patt.a9a, %i32 [concrete]
@@ -562,9 +562,9 @@ fn F() {
// CHECK:STDOUT: %J.impl_witness.90c: <witness> = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.303: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.49a: %pattern_type.98b = at_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %self.patt.36a: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt.303 [concrete]
// CHECK:STDOUT: %u.param_patt.162: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %u.patt.0e4: %pattern_type.98b = at_binding_pattern u, %u.param_patt.162 [concrete]
// CHECK:STDOUT: %u.patt.05f: %pattern_type.98b = wrapper_binding_pattern u, %u.param_patt.162 [concrete]
// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete]
// CHECK:STDOUT: %return.param_patt.89a: %pattern_type.98b = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.e4a: %pattern_type.98b = return_slot_pattern %return.param_patt.89a, %C [concrete]
@@ -591,9 +591,9 @@ fn F() {
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.a0a) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.f69)] {
// CHECK:STDOUT: %self.param_patt.loc6_8.1: @J.WithSelf.F.%pattern_type.loc6_8 (%pattern_type.506) = value_param_pattern [symbolic = %self.param_patt.loc6_8.2 (constants.%self.param_patt.091)]
// CHECK:STDOUT: %self.patt.loc6_8.1: @J.WithSelf.F.%pattern_type.loc6_8 (%pattern_type.506) = at_binding_pattern self, %self.param_patt.loc6_8.1 [symbolic = %self.patt.loc6_8.2 (constants.%self.patt.bfd)]
// CHECK:STDOUT: %self.patt.loc6_8.1: @J.WithSelf.F.%pattern_type.loc6_8 (%pattern_type.506) = wrapper_binding_pattern self, %self.param_patt.loc6_8.1 [symbolic = %self.patt.loc6_8.2 (constants.%self.patt.f35)]
// CHECK:STDOUT: %u.param_patt.loc6_15.1: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = value_param_pattern [symbolic = %u.param_patt.loc6_15.2 (constants.%u.param_patt.81e)]
// CHECK:STDOUT: %u.patt.loc6_15.1: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = at_binding_pattern u, %u.param_patt.loc6_15.1 [symbolic = %u.patt.loc6_15.2 (constants.%u.patt.1b4)]
// CHECK:STDOUT: %u.patt.loc6_15.1: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = wrapper_binding_pattern u, %u.param_patt.loc6_15.1 [symbolic = %u.patt.loc6_15.2 (constants.%u.patt.54e)]
// CHECK:STDOUT: %return.param_patt.loc6_23.1: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = out_param_pattern [symbolic = %return.param_patt.loc6_23.2 (constants.%return.param_patt.740)]
// CHECK:STDOUT: %return.patt.loc6_20.1: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = return_slot_pattern %return.param_patt.loc6_23.1, %U.ref.loc6_23 [symbolic = %return.patt.loc6_20.2 (constants.%return.patt.cdd)]
// CHECK:STDOUT: } {
@@ -631,9 +631,9 @@ fn F() {
// CHECK:STDOUT: impl @empty_tuple.type.as.J.impl: %.loc10_7.2 as %J.ref {
// CHECK:STDOUT: %empty_tuple.type.as.J.impl.F.decl: %empty_tuple.type.as.J.impl.F.type = fn_decl @empty_tuple.type.as.J.impl.F [concrete = constants.%empty_tuple.type.as.J.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete = constants.%self.param_patt.154]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.8c1]
// CHECK:STDOUT: %self.patt: %pattern_type.cb1 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.462]
// CHECK:STDOUT: %u.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%u.param_patt.151]
// CHECK:STDOUT: %u.patt: %pattern_type.6b6 = at_binding_pattern u, %u.param_patt [concrete = constants.%u.patt.49f]
// CHECK:STDOUT: %u.patt: %pattern_type.6b6 = wrapper_binding_pattern u, %u.param_patt [concrete = constants.%u.patt.e4f]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete = constants.%return.param_patt.a9a]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32.loc12_32 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -659,9 +659,9 @@ fn F() {
// CHECK:STDOUT: impl @C.as.J.impl: %C.ref.loc27_6 as %J.ref {
// CHECK:STDOUT: %C.as.J.impl.F.decl: %C.as.J.impl.F.type = fn_decl @C.as.J.impl.F [concrete = constants.%C.as.J.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%self.param_patt.303]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.49a]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.36a]
// CHECK:STDOUT: %u.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%u.param_patt.162]
// CHECK:STDOUT: %u.patt: %pattern_type.98b = at_binding_pattern u, %u.param_patt [concrete = constants.%u.patt.0e4]
// CHECK:STDOUT: %u.patt: %pattern_type.98b = wrapper_binding_pattern u, %u.param_patt [concrete = constants.%u.patt.05f]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt.89a]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc29_30 [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
@@ -690,12 +690,12 @@ fn F() {
// CHECK:STDOUT: %Self.as_type.loc6_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_8.1 (constants.%Self.as_type.976)]
// CHECK:STDOUT: %pattern_type.loc6_8: type = pattern_type %Self.as_type.loc6_8.1 [symbolic = %pattern_type.loc6_8 (constants.%pattern_type.506)]
// CHECK:STDOUT: %self.param_patt.loc6_8.2: @J.WithSelf.F.%pattern_type.loc6_8 (%pattern_type.506) = value_param_pattern [symbolic = %self.param_patt.loc6_8.2 (constants.%self.param_patt.091)]
// CHECK:STDOUT: %self.patt.loc6_8.2: @J.WithSelf.F.%pattern_type.loc6_8 (%pattern_type.506) = at_binding_pattern self, %self.param_patt.loc6_8.2 [symbolic = %self.patt.loc6_8.2 (constants.%self.patt.bfd)]
// CHECK:STDOUT: %self.patt.loc6_8.2: @J.WithSelf.F.%pattern_type.loc6_8 (%pattern_type.506) = wrapper_binding_pattern self, %self.param_patt.loc6_8.2 [symbolic = %self.patt.loc6_8.2 (constants.%self.patt.f35)]
// CHECK:STDOUT: %J.lookup_impl_witness: <witness> = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness)]
// CHECK:STDOUT: %impl.elem0.loc6_17.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_17.1 (constants.%impl.elem0.c15)]
// CHECK:STDOUT: %pattern_type.loc6_15: type = pattern_type %impl.elem0.loc6_17.1 [symbolic = %pattern_type.loc6_15 (constants.%pattern_type.a39)]
// CHECK:STDOUT: %u.param_patt.loc6_15.2: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = value_param_pattern [symbolic = %u.param_patt.loc6_15.2 (constants.%u.param_patt.81e)]
// CHECK:STDOUT: %u.patt.loc6_15.2: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = at_binding_pattern u, %u.param_patt.loc6_15.2 [symbolic = %u.patt.loc6_15.2 (constants.%u.patt.1b4)]
// CHECK:STDOUT: %u.patt.loc6_15.2: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = wrapper_binding_pattern u, %u.param_patt.loc6_15.2 [symbolic = %u.patt.loc6_15.2 (constants.%u.patt.54e)]
// CHECK:STDOUT: %.loc6_23.1: Core.Form = init_form %impl.elem0.loc6_17.1 [symbolic = %.loc6_23.1 (constants.%.eb9)]
// CHECK:STDOUT: %return.param_patt.loc6_23.2: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = out_param_pattern [symbolic = %return.param_patt.loc6_23.2 (constants.%return.param_patt.740)]
// CHECK:STDOUT: %return.patt.loc6_20.2: @J.WithSelf.F.%pattern_type.loc6_15 (%pattern_type.a39) = return_slot_pattern %return.param_patt.loc6_23.2, %impl.elem0.loc6_17.1 [symbolic = %return.patt.loc6_20.2 (constants.%return.patt.cdd)]
@@ -755,12 +755,12 @@ fn F() {
// CHECK:STDOUT: %Self.as_type.loc6_8.1 => constants.%Self.as_type.976
// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.506
// CHECK:STDOUT: %self.param_patt.loc6_8.2 => constants.%self.param_patt.091
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.bfd
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.f35
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness
// CHECK:STDOUT: %impl.elem0.loc6_17.1 => constants.%impl.elem0.c15
// CHECK:STDOUT: %pattern_type.loc6_15 => constants.%pattern_type.a39
// CHECK:STDOUT: %u.param_patt.loc6_15.2 => constants.%u.param_patt.81e
// CHECK:STDOUT: %u.patt.loc6_15.2 => constants.%u.patt.1b4
// CHECK:STDOUT: %u.patt.loc6_15.2 => constants.%u.patt.54e
// CHECK:STDOUT: %.loc6_23.1 => constants.%.eb9
// CHECK:STDOUT: %return.param_patt.loc6_23.2 => constants.%return.param_patt.740
// CHECK:STDOUT: %return.patt.loc6_20.2 => constants.%return.patt.cdd
@@ -785,12 +785,12 @@ fn F() {
// CHECK:STDOUT: %Self.as_type.loc6_8.1 => constants.%empty_tuple.type
// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.cb1
// CHECK:STDOUT: %self.param_patt.loc6_8.2 => constants.%self.param_patt.154
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.8c1
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.462
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.a51
// CHECK:STDOUT: %impl.elem0.loc6_17.1 => constants.%i32
// CHECK:STDOUT: %pattern_type.loc6_15 => constants.%pattern_type.6b6
// CHECK:STDOUT: %u.param_patt.loc6_15.2 => constants.%u.param_patt.151
// CHECK:STDOUT: %u.patt.loc6_15.2 => constants.%u.patt.49f
// CHECK:STDOUT: %u.patt.loc6_15.2 => constants.%u.patt.e4f
// CHECK:STDOUT: %.loc6_23.1 => constants.%.795f
// CHECK:STDOUT: %return.param_patt.loc6_23.2 => constants.%return.param_patt.a9a
// CHECK:STDOUT: %return.patt.loc6_20.2 => constants.%return.patt.e1b
@@ -808,12 +808,12 @@ fn F() {
// CHECK:STDOUT: %Self.as_type.loc6_8.1 => constants.%C
// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.98b
// CHECK:STDOUT: %self.param_patt.loc6_8.2 => constants.%self.param_patt.303
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.49a
// CHECK:STDOUT: %self.patt.loc6_8.2 => constants.%self.patt.36a
// CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.90c
// CHECK:STDOUT: %impl.elem0.loc6_17.1 => constants.%C
// CHECK:STDOUT: %pattern_type.loc6_15 => constants.%pattern_type.98b
// CHECK:STDOUT: %u.param_patt.loc6_15.2 => constants.%u.param_patt.162
// CHECK:STDOUT: %u.patt.loc6_15.2 => constants.%u.patt.0e4
// CHECK:STDOUT: %u.patt.loc6_15.2 => constants.%u.patt.05f
// CHECK:STDOUT: %.loc6_23.1 => constants.%.a44
// CHECK:STDOUT: %return.param_patt.loc6_23.2 => constants.%return.param_patt.89a
// CHECK:STDOUT: %return.patt.loc6_20.2 => constants.%return.patt.e4a
@@ -1029,7 +1029,7 @@ fn F() {
// CHECK:STDOUT: %J.facet: %J.type = facet_value %E, (%J.impl_witness) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %u.param_patt.151: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %u.patt.49f: %pattern_type.6b6 = at_binding_pattern u, %u.param_patt.151 [concrete]
// CHECK:STDOUT: %u.patt.e4f: %pattern_type.6b6 = wrapper_binding_pattern u, %u.param_patt.151 [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %return.param_patt.a9a: %pattern_type.6b6 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.e1b: %pattern_type.6b6 = return_slot_pattern %return.param_patt.a9a, %i32 [concrete]
@@ -1055,7 +1055,7 @@ fn F() {
// CHECK:STDOUT: impl @E.as.J.impl: %Self.ref as %J.ref {
// CHECK:STDOUT: %E.as.J.impl.F.decl: %E.as.J.impl.F.type = fn_decl @E.as.J.impl.F [concrete = constants.%E.as.J.impl.F] {
// CHECK:STDOUT: %u.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%u.param_patt.151]
// CHECK:STDOUT: %u.patt: %pattern_type.6b6 = at_binding_pattern u, %u.param_patt [concrete = constants.%u.patt.49f]
// CHECK:STDOUT: %u.patt: %pattern_type.6b6 = wrapper_binding_pattern u, %u.param_patt [concrete = constants.%u.patt.e4f]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete = constants.%return.param_patt.a9a]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %U.ref.loc11_19 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {