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
+13 -13
View File
@@ -124,7 +124,7 @@ fn F(c: C) { c.(I.Op)(); }
// 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: %I.WithSelf.Op.type.dce: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic]
// CHECK:STDOUT: %I.WithSelf.Op.c70: %I.WithSelf.Op.type.dce = struct_value () [symbolic]
// CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete]
@@ -133,7 +133,7 @@ fn F(c: C) { c.(I.Op)(); }
// 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: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete]
// CHECK:STDOUT: %I.WithSelf.Op.type.28d: type = fn_type @I.WithSelf.Op, @I.WithSelf(%I.facet) [concrete]
// CHECK:STDOUT: %I.WithSelf.Op.204: %I.WithSelf.Op.type.28d = struct_value () [concrete]
@@ -150,7 +150,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.dce) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.c70)] {
// CHECK:STDOUT: %self.param_patt.loc8_9.1: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc8_9.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc8_9.1: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc8_9.1 [symbolic = %self.patt.loc8_9.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc8_9.1: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc8_9.1 [symbolic = %self.patt.loc8_9.2 (constants.%self.patt.85e)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.as_type.loc8_9.1 (%Self.as_type) = value_param call_param0
// CHECK:STDOUT: %.loc8_9.1: type = splice_block %.loc8_9.2 [symbolic = %Self.as_type.loc8_9.1 (constants.%Self.as_type)] {
@@ -175,7 +175,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %Self.as_type.loc8_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_9.1 (constants.%Self.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_9.1 [symbolic = %pattern_type (constants.%pattern_type.c60)]
// CHECK:STDOUT: %self.param_patt.loc8_9.2: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc8_9.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc8_9.2: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc8_9.2 [symbolic = %self.patt.loc8_9.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc8_9.2: @I.WithSelf.Op.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc8_9.2 [symbolic = %self.patt.loc8_9.2 (constants.%self.patt.85e)]
// CHECK:STDOUT:
// CHECK:STDOUT: fn(%self.param: @I.WithSelf.Op.%Self.as_type.loc8_9.1 (%Self.as_type));
// CHECK:STDOUT: }
@@ -192,7 +192,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %Self.as_type.loc8_9.1 => constants.%Self.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60
// CHECK:STDOUT: %self.param_patt.loc8_9.2 => constants.%self.param_patt.a33
// CHECK:STDOUT: %self.patt.loc8_9.2 => constants.%self.patt.696
// CHECK:STDOUT: %self.patt.loc8_9.2 => constants.%self.patt.85e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) {
@@ -207,7 +207,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %Self.as_type.loc8_9.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %self.param_patt.loc8_9.2 => constants.%self.param_patt.303
// CHECK:STDOUT: %self.patt.loc8_9.2 => constants.%self.patt.49a
// CHECK:STDOUT: %self.patt.loc8_9.2 => constants.%self.patt.36a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- import_included.carbon
@@ -218,7 +218,7 @@ fn F(c: C) { c.(I.Op)(); }
// 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: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
@@ -229,7 +229,7 @@ fn F(c: C) { c.(I.Op)(); }
// 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: %I.assoc_type: type = assoc_entity_type @I [concrete]
// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.421 [concrete]
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness imports.%I.impl_witness_table [concrete]
@@ -273,7 +273,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %default.import = import <none>
// 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: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
@@ -318,7 +318,7 @@ fn F(c: C) { c.(I.Op)(); }
// 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.Op.%pattern_type (%pattern_type.b3a) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.58e)]
// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%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.Op.%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: }
@@ -337,7 +337,7 @@ fn F(c: C) { c.(I.Op)(); }
// 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) {
@@ -353,7 +353,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %C: type = class_type @C [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: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
@@ -395,7 +395,7 @@ fn F(c: C) { c.(I.Op)(); }
// CHECK:STDOUT: %default.import = import <none>
// 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: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
+5 -5
View File
@@ -30,7 +30,7 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %empty_tuple.type [concrete]
@@ -39,7 +39,7 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: %B.type: type = fn_type @B [concrete]
// CHECK:STDOUT: %B: %B.type = struct_value () [concrete]
// CHECK:STDOUT: %if.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %if.patt: %pattern_type = at_binding_pattern r#if, %if.param_patt [concrete]
// CHECK:STDOUT: %if.patt: %pattern_type = wrapper_binding_pattern r#if, %if.param_patt [concrete]
// CHECK:STDOUT: %C.type: type = fn_type @C [concrete]
// CHECK:STDOUT: %C: %C.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -52,7 +52,7 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc14_17.2 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -70,7 +70,7 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {
// CHECK:STDOUT: %n.param_patt: %pattern_type = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc18_19.2 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -88,7 +88,7 @@ fn C(r#if: ()) -> () {
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {
// CHECK:STDOUT: %if.param_patt: %pattern_type = value_param_pattern [concrete = constants.%if.param_patt]
// CHECK:STDOUT: %if.patt: %pattern_type = at_binding_pattern r#if, %if.param_patt [concrete = constants.%if.patt]
// CHECK:STDOUT: %if.patt: %pattern_type = wrapper_binding_pattern r#if, %if.param_patt [concrete = constants.%if.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc22_20.2 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -273,7 +273,7 @@ fn Foo(n: ()) -> ((), ()) {
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.cb1 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.cb1 = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt: %pattern_type.cb1 = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %tuple.type: type = tuple_type (%empty_tuple.type, %empty_tuple.type) [concrete]
// CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%empty_tuple, %empty_tuple) [concrete]
// CHECK:STDOUT: %.e3a: Core.Form = init_form %tuple.type [concrete]
@@ -290,7 +290,7 @@ fn Foo(n: ()) -> ((), ()) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {
// CHECK:STDOUT: %n.param_patt: %pattern_type.cb1 = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt: %pattern_type.cb1 = at_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt: %pattern_type.cb1 = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.5b8 = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.5b8 = return_slot_pattern %return.param_patt, %.loc16_25.4 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -64,7 +64,7 @@ fn ColonBangParam(generic T: type) -> type = "maybe_unformed.make_type";
// CHECK:STDOUT: %.2ba: type = maybe_unformed_type %.a8d [concrete]
// CHECK:STDOUT: %pattern_type.ce6: type = pattern_type %.2ba [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.ce6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.ce6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.ce6 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -76,7 +76,7 @@ fn ColonBangParam(generic T: type) -> type = "maybe_unformed.make_type";
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %b.param_patt: %pattern_type.ce6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.ce6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.ce6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %b.param: %.2ba = value_param call_param0
// CHECK:STDOUT: %.loc7_29.1: type = splice_block %.loc7_29.3 [concrete = constants.%.2ba] {
+8 -8
View File
@@ -108,11 +108,11 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: %IsNullC.type: type = fn_type @IsNullC [concrete]
// CHECK:STDOUT: %IsNullC: %IsNullC.type = struct_value () [concrete]
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern [concrete]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = at_binding_pattern s, %s.param_patt [concrete]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = wrapper_binding_pattern s, %s.param_patt [concrete]
// CHECK:STDOUT: %TestEmptyStruct.type: type = fn_type @TestEmptyStruct [concrete]
// CHECK:STDOUT: %TestEmptyStruct: %TestEmptyStruct.type = struct_value () [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.e22 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %TestC.type: type = fn_type @TestC [concrete]
// CHECK:STDOUT: %TestC: %TestC.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -120,7 +120,7 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: file {
// CHECK:STDOUT: %TestEmptyStruct.decl: %TestEmptyStruct.type = fn_decl @TestEmptyStruct [concrete = constants.%TestEmptyStruct] {
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern [concrete = constants.%s.param_patt]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = at_binding_pattern s, %s.param_patt [concrete = constants.%s.patt]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = wrapper_binding_pattern s, %s.param_patt [concrete = constants.%s.patt]
// 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, %.loc11_45.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -142,7 +142,7 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: }
// CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.e22 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// 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, %.loc15_34.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -197,7 +197,7 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: %.b2d: type = maybe_unformed_type %ptr.c28 [concrete]
// CHECK:STDOUT: %pattern_type.b42: type = pattern_type %.b2d [concrete]
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern [concrete]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = at_binding_pattern s, %s.param_patt [concrete]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = wrapper_binding_pattern s, %s.param_patt [concrete]
// CHECK:STDOUT: %TestEmptyStruct.type: type = fn_type @TestEmptyStruct [concrete]
// CHECK:STDOUT: %TestEmptyStruct: %TestEmptyStruct.type = struct_value () [concrete]
// CHECK:STDOUT: %IsNull.specific_fn.add: <specific function> = specific_function %IsNull, @IsNull(%empty_struct_type) [concrete]
@@ -205,7 +205,7 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: %.9e8: type = maybe_unformed_type %ptr.6b6 [concrete]
// CHECK:STDOUT: %pattern_type.e22: type = pattern_type %.9e8 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.e22 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %TestC.type: type = fn_type @TestC [concrete]
// CHECK:STDOUT: %TestC: %TestC.type = struct_value () [concrete]
// CHECK:STDOUT: %IsNull.specific_fn.5e3: <specific function> = specific_function %IsNull, @IsNull(%C) [concrete]
@@ -214,7 +214,7 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: file {
// CHECK:STDOUT: %TestEmptyStruct.decl: %TestEmptyStruct.type = fn_decl @TestEmptyStruct [concrete = constants.%TestEmptyStruct] {
// CHECK:STDOUT: %s.param_patt: %pattern_type.b42 = value_param_pattern [concrete = constants.%s.param_patt]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = at_binding_pattern s, %s.param_patt [concrete = constants.%s.patt]
// CHECK:STDOUT: %s.patt: %pattern_type.b42 = wrapper_binding_pattern s, %s.param_patt [concrete = constants.%s.patt]
// 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, %.loc10_45.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
@@ -236,7 +236,7 @@ fn NotPointer(p: MakeUnformed({})) -> bool = "pointer.is_null";
// CHECK:STDOUT: }
// CHECK:STDOUT: %TestC.decl: %TestC.type = fn_decl @TestC [concrete = constants.%TestC] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.e22 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e22 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// 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, %.loc14_34.1 [concrete = constants.%return.patt.c0c]
// CHECK:STDOUT: } {
+13 -13
View File
@@ -393,7 +393,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Abstract [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = 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: %l.patt: %pattern_type = value_binding_pattern l [concrete]
@@ -416,7 +416,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Abstract.ref.loc6: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
@@ -497,12 +497,12 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Abstract [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %Param.type: type = fn_type @Param [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Param: %Param.type = struct_value () [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete]
// CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -525,7 +525,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {}
// CHECK:STDOUT: %Param.decl: %Param.type = fn_decl @Param [concrete = constants.%Param] {
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
@@ -533,7 +533,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
@@ -667,7 +667,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %complete_type.3c7: <witness> = complete_type_witness %struct_type.base.d [concrete]
// CHECK:STDOUT: %pattern_type.169: type = pattern_type %Abstract [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.169 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.749: Core.Form = init_form %Abstract [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.169 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.169 = return_slot_pattern %return.param_patt, %Abstract [concrete]
@@ -694,7 +694,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Return.decl: %Return.type = fn_decl @Return [concrete = constants.%Return] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.169 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.169 = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.169 = return_slot_pattern %return.param_patt, %Abstract.ref.loc19_27 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -754,7 +754,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %complete_type.3c7: <witness> = complete_type_witness %struct_type.base.d.008 [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt.fac: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt.2df: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %.469: Core.Form = init_form %empty_struct_type [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %empty_struct_type [concrete]
@@ -784,7 +784,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %AccessViaBase.decl: %AccessViaBase.type = fn_decl @AccessViaBase [concrete = constants.%AccessViaBase] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.fac]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.2df]
// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc13_34.2 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -799,7 +799,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.fac]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.2df]
// CHECK:STDOUT: %return.param_patt: %pattern_type.a96 = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %.loc17_27.2 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -1092,7 +1092,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.169: type = pattern_type %Abstract [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.169 = ref_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %Assign.type: type = fn_type @Assign [concrete]
// CHECK:STDOUT: %Assign: %Assign.type = struct_value () [concrete]
// CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete]
@@ -1117,7 +1117,7 @@ fn Assign(ref a: Abstract) {
// CHECK:STDOUT: %Abstract.decl: type = class_decl @Abstract [concrete = constants.%Abstract] {} {}
// CHECK:STDOUT: %Assign.decl: %Assign.type = fn_decl @Assign [concrete = constants.%Assign] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.169 = ref_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.169 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: ref %Abstract = ref_param call_param0
// CHECK:STDOUT: %Abstract.ref: type = name_ref Abstract, file.%Abstract.decl [concrete = constants.%Abstract]
@@ -201,7 +201,7 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.457: type = pattern_type %Abstract3 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.457 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = 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: %struct_type.m3.937: type = struct_type {.m3: %Abstract3} [concrete]
@@ -217,7 +217,7 @@ var v5: {.m: Abstract};
// CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.457 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0
// CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3]
@@ -238,7 +238,7 @@ fn Var5() {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.457: type = pattern_type %Abstract3 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.457 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = 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: %tuple.type.85c: type = tuple_type (type) [concrete]
@@ -265,7 +265,7 @@ fn Var5() {
// CHECK:STDOUT: %Abstract3.decl: type = class_decl @Abstract3 [concrete = constants.%Abstract3] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.457 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.457 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %Abstract3 = value_param call_param0
// CHECK:STDOUT: %Abstract3.ref.loc6: type = name_ref Abstract3, file.%Abstract3.decl [concrete = constants.%Abstract3]
+4 -4
View File
@@ -447,7 +447,7 @@ private class Redecl {}
// CHECK:STDOUT: %ptr: type = ptr_type %Forward [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr [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: %empty_struct_type: type = struct_type {} [concrete]
@@ -467,7 +467,7 @@ private class Redecl {}
// CHECK:STDOUT: %default.import = import <none>
// 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: %ptr = value_param call_param0
// CHECK:STDOUT: %.loc4: type = splice_block %ptr [concrete = constants.%ptr] {
@@ -507,7 +507,7 @@ private class Redecl {}
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: <error> = value_param_pattern [concrete = <error>]
// CHECK:STDOUT: %c.patt: <error> = at_binding_pattern c, %c.param_patt [concrete = <error>]
// CHECK:STDOUT: %c.patt: <error> = wrapper_binding_pattern c, %c.param_patt [concrete = <error>]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: <error> = value_param call_param0
// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = <error>] {
@@ -545,7 +545,7 @@ private class Redecl {}
// CHECK:STDOUT: %Test.import = import Test
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: <error> = value_param_pattern [concrete = <error>]
// CHECK:STDOUT: %c.patt: <error> = at_binding_pattern c, %c.param_patt [concrete = <error>]
// CHECK:STDOUT: %c.patt: <error> = wrapper_binding_pattern c, %c.param_patt [concrete = <error>]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: <error> = value_param call_param0
// CHECK:STDOUT: %.loc10: type = splice_block %ptr [concrete = <error>] {
@@ -300,7 +300,7 @@ class B {
// CHECK:STDOUT: %Circle.elem: type = unbound_element_type %Circle, %Shape [concrete]
// CHECK:STDOUT: %pattern_type.f70: type = pattern_type %Circle [concrete]
// CHECK:STDOUT: %self.param_patt.769: %pattern_type.f70 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.cfb: %pattern_type.f70 = at_binding_pattern self, %self.param_patt.769 [concrete]
// CHECK:STDOUT: %self.patt.cc7: %pattern_type.f70 = wrapper_binding_pattern self, %self.param_patt.769 [concrete]
// CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete]
// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete]
// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete]
@@ -365,7 +365,7 @@ class B {
// CHECK:STDOUT: %.loc10: %Circle.elem = base_decl %Shape.ref, element0 [concrete]
// CHECK:STDOUT: %Circle.GetPosition.decl: %Circle.GetPosition.type = fn_decl @Circle.GetPosition [concrete = constants.%Circle.GetPosition] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f70 = value_param_pattern [concrete = constants.%self.param_patt.769]
// CHECK:STDOUT: %self.patt: %pattern_type.f70 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cfb]
// CHECK:STDOUT: %self.patt: %pattern_type.f70 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cc7]
// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete = constants.%return.param_patt.a90]
// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc12_36.2 [concrete = constants.%return.patt.2ed]
// CHECK:STDOUT: } {
@@ -456,7 +456,7 @@ class B {
// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
// CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
@@ -528,7 +528,7 @@ class B {
// CHECK:STDOUT: %.loc14: %C.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete = constants.%return.param_patt.900]
// CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %.loc15_18.2 [concrete = constants.%return.patt.427]
// CHECK:STDOUT: } {
@@ -762,7 +762,7 @@ class B {
// CHECK:STDOUT: %Square.elem: type = unbound_element_type %Square, %Shape [concrete]
// CHECK:STDOUT: %pattern_type.1f6: type = pattern_type %Square [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f6 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.1f6 = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.1f6 = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete]
@@ -807,7 +807,7 @@ class B {
// CHECK:STDOUT: %.loc9: %Square.elem = base_decl %Shape.ref, element0 [concrete]
// CHECK:STDOUT: %Square.GetPosition.decl: %Square.GetPosition.type = fn_decl @Square.GetPosition [concrete = constants.%Square.GetPosition] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.1f6 = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.1f6 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.1f6 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.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: } {
@@ -1315,7 +1315,7 @@ class B {
// CHECK:STDOUT: %B.G: %B.G.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete]
// CHECK:STDOUT: %self.param_patt.f1f: %pattern_type.e39 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.4eb: %pattern_type.e39 = at_binding_pattern self, %self.param_patt.f1f [concrete]
// CHECK:STDOUT: %self.patt.4c3: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt.f1f [concrete]
// CHECK:STDOUT: %B.SomeFunc.type: type = fn_type @B.SomeFunc [concrete]
// CHECK:STDOUT: %B.SomeFunc: %B.SomeFunc.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.internal.a00: type = struct_type {.internal: %Internal} [concrete]
@@ -1419,7 +1419,7 @@ class B {
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.SomeFunc.decl: %B.SomeFunc.type = fn_decl @B.SomeFunc [concrete = constants.%B.SomeFunc] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete = constants.%self.param_patt.f1f]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.4eb]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.4c3]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -1477,7 +1477,7 @@ class B {
// CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [concrete]
// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %B.F.type: type = fn_type @B.F [concrete]
// CHECK:STDOUT: %B.F: %B.F.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete]
@@ -1520,7 +1520,7 @@ class B {
// CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %B = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B]
@@ -1560,7 +1560,7 @@ class B {
// CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [concrete]
// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %B.F.type: type = fn_type @B.F [concrete]
// CHECK:STDOUT: %B.F: %B.F.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete]
@@ -1603,7 +1603,7 @@ class B {
// CHECK:STDOUT: %.loc9: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %B = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B]
+4 -4
View File
@@ -33,14 +33,14 @@ fn G(x: X) {
// CHECK:STDOUT: %X: type = class_type @X [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %X [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %X.F.type: type = fn_type @X.F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %X.F: %X.F.type = struct_value () [concrete]
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %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: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -53,7 +53,7 @@ fn G(x: X) {
// CHECK:STDOUT: %X.decl: type = class_decl @X [concrete = constants.%X] {} {}
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// 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: %X = value_param call_param0
// CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X]
@@ -64,7 +64,7 @@ fn G(x: X) {
// CHECK:STDOUT: class @X {
// CHECK:STDOUT: %X.F.decl: %X.F.type = fn_decl @X.F [concrete = constants.%X.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %X = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%X [concrete = constants.%X]
+2 -2
View File
@@ -153,7 +153,7 @@ interface I {
// CHECK:STDOUT: %AdaptNotExtend: type = class_type @AdaptNotExtend [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %AdaptNotExtend [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = 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: }
@@ -177,7 +177,7 @@ interface I {
// CHECK:STDOUT: %AdaptNotExtend.decl: type = class_decl @AdaptNotExtend [concrete = constants.%AdaptNotExtend] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %AdaptNotExtend = value_param call_param0
// CHECK:STDOUT: %AdaptNotExtend.ref: type = name_ref AdaptNotExtend, file.%AdaptNotExtend.decl [concrete = constants.%AdaptNotExtend]
+16 -16
View File
@@ -178,7 +178,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %complete_type.f8a: <witness> = complete_type_witness %i32.builtin [concrete]
// CHECK:STDOUT: %pattern_type.3b9: type = pattern_type %AdaptCopyable [concrete]
// CHECK:STDOUT: %c.param_patt.a0c: %pattern_type.3b9 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.9a3: %pattern_type.3b9 = at_binding_pattern c, %c.param_patt.a0c [concrete]
// CHECK:STDOUT: %c.patt.10d: %pattern_type.3b9 = wrapper_binding_pattern c, %c.param_patt.a0c [concrete]
// CHECK:STDOUT: %.748: Core.Form = init_form %AdaptCopyable [concrete]
// CHECK:STDOUT: %return.param_patt.c61: %pattern_type.3b9 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.539: %pattern_type.3b9 = return_slot_pattern %return.param_patt.c61, %AdaptCopyable [concrete]
@@ -198,7 +198,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %tuple.type.28f: type = tuple_type (%AdaptCopyable, %u32) [concrete]
// CHECK:STDOUT: %pattern_type.c42: type = pattern_type %tuple.type.28f [concrete]
// CHECK:STDOUT: %c.param_patt.ccf: %pattern_type.c42 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.314: %pattern_type.c42 = at_binding_pattern c, %c.param_patt.ccf [concrete]
// CHECK:STDOUT: %c.patt.199: %pattern_type.c42 = wrapper_binding_pattern c, %c.param_patt.ccf [concrete]
// CHECK:STDOUT: %.ac9: Core.Form = init_form %tuple.type.28f [concrete]
// CHECK:STDOUT: %return.param_patt.1e8: %pattern_type.c42 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.ada: %pattern_type.c42 = return_slot_pattern %return.param_patt.1e8, %tuple.type.28f [concrete]
@@ -237,7 +237,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptCopyable.decl: type = class_decl @AdaptCopyable [concrete = constants.%AdaptCopyable] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.3b9 = value_param_pattern [concrete = constants.%c.param_patt.a0c]
// CHECK:STDOUT: %c.patt: %pattern_type.3b9 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.9a3]
// CHECK:STDOUT: %c.patt: %pattern_type.3b9 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.10d]
// CHECK:STDOUT: %return.param_patt: %pattern_type.3b9 = out_param_pattern [concrete = constants.%return.param_patt.c61]
// CHECK:STDOUT: %return.patt: %pattern_type.3b9 = return_slot_pattern %return.param_patt, %AdaptCopyable.ref.loc8_27 [concrete = constants.%return.patt.539]
// CHECK:STDOUT: } {
@@ -251,7 +251,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.c42 = value_param_pattern [concrete = constants.%c.param_patt.ccf]
// CHECK:STDOUT: %c.patt: %pattern_type.c42 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.314]
// CHECK:STDOUT: %c.patt: %pattern_type.c42 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.199]
// CHECK:STDOUT: %return.param_patt: %pattern_type.c42 = out_param_pattern [concrete = constants.%return.param_patt.1e8]
// CHECK:STDOUT: %return.patt: %pattern_type.c42 = return_slot_pattern %return.param_patt, %.loc27_59.2 [concrete = constants.%return.patt.ada]
// CHECK:STDOUT: } {
@@ -367,7 +367,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %complete_type.6c4: <witness> = complete_type_witness %tuple.type.e55 [concrete]
// CHECK:STDOUT: %pattern_type.ea1: type = pattern_type %AdaptTuple [concrete]
// CHECK:STDOUT: %c.param_patt.a12: %pattern_type.ea1 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.b46: %pattern_type.ea1 = at_binding_pattern c, %c.param_patt.a12 [concrete]
// CHECK:STDOUT: %c.patt.0c5: %pattern_type.ea1 = wrapper_binding_pattern c, %c.param_patt.a12 [concrete]
// CHECK:STDOUT: %.6bf: Core.Form = init_form %AdaptTuple [concrete]
// CHECK:STDOUT: %return.param_patt.511: %pattern_type.ea1 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.ead: %pattern_type.ea1 = return_slot_pattern %return.param_patt.511, %AdaptTuple [concrete]
@@ -395,7 +395,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %tuple.type.e88: type = tuple_type (%AdaptTuple, %u32) [concrete]
// CHECK:STDOUT: %pattern_type.996: type = pattern_type %tuple.type.e88 [concrete]
// CHECK:STDOUT: %c.param_patt.677: %pattern_type.996 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.0c5: %pattern_type.996 = at_binding_pattern c, %c.param_patt.677 [concrete]
// CHECK:STDOUT: %c.patt.b6f: %pattern_type.996 = wrapper_binding_pattern c, %c.param_patt.677 [concrete]
// CHECK:STDOUT: %.c2f: Core.Form = init_form %tuple.type.e88 [concrete]
// CHECK:STDOUT: %return.param_patt.446: %pattern_type.996 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.70a: %pattern_type.996 = return_slot_pattern %return.param_patt.446, %tuple.type.e88 [concrete]
@@ -447,7 +447,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptTuple.decl: type = class_decl @AdaptTuple [concrete = constants.%AdaptTuple] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.ea1 = value_param_pattern [concrete = constants.%c.param_patt.a12]
// CHECK:STDOUT: %c.patt: %pattern_type.ea1 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.b46]
// CHECK:STDOUT: %c.patt: %pattern_type.ea1 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.0c5]
// CHECK:STDOUT: %return.param_patt: %pattern_type.ea1 = out_param_pattern [concrete = constants.%return.param_patt.511]
// CHECK:STDOUT: %return.patt: %pattern_type.ea1 = return_slot_pattern %return.param_patt, %AdaptTuple.ref.loc8_24 [concrete = constants.%return.patt.ead]
// CHECK:STDOUT: } {
@@ -461,7 +461,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.996 = value_param_pattern [concrete = constants.%c.param_patt.677]
// CHECK:STDOUT: %c.patt: %pattern_type.996 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.0c5]
// CHECK:STDOUT: %c.patt: %pattern_type.996 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.b6f]
// CHECK:STDOUT: %return.param_patt: %pattern_type.996 = out_param_pattern [concrete = constants.%return.param_patt.446]
// CHECK:STDOUT: %return.patt: %pattern_type.996 = return_slot_pattern %return.param_patt, %.loc13_53.2 [concrete = constants.%return.patt.70a]
// CHECK:STDOUT: } {
@@ -687,7 +687,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %pattern_type.d14: type = pattern_type %AdaptNoncopyable [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.d14 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.d14 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.d14 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.a97: Core.Form = init_form %AdaptNoncopyable [concrete]
// CHECK:STDOUT: %return.param_patt.f81: %pattern_type.d14 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.1dc: %pattern_type.d14 = return_slot_pattern %return.param_patt.f81, %AdaptNoncopyable [concrete]
@@ -724,7 +724,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptNoncopyable.decl: type = class_decl @AdaptNoncopyable [concrete = constants.%AdaptNoncopyable] {} {}
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.d14 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.d14 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.d14 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.d14 = out_param_pattern [concrete = constants.%return.param_patt.f81]
// CHECK:STDOUT: %return.patt: %pattern_type.d14 = return_slot_pattern %return.param_patt, %AdaptNoncopyable.ref.loc12_30 [concrete = constants.%return.patt.1dc]
// CHECK:STDOUT: } {
@@ -807,7 +807,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %complete_type.591: <witness> = complete_type_witness %tuple.type.227 [concrete]
// CHECK:STDOUT: %pattern_type.be3: type = pattern_type %AdaptNoncopyableIndirect [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.be3 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.be3 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.be3 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.284: Core.Form = init_form %AdaptNoncopyableIndirect [concrete]
// CHECK:STDOUT: %return.param_patt.6c3: %pattern_type.be3 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.de6: %pattern_type.be3 = return_slot_pattern %return.param_patt.6c3, %AdaptNoncopyableIndirect [concrete]
@@ -857,7 +857,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptNoncopyableIndirect.decl: type = class_decl @AdaptNoncopyableIndirect [concrete = constants.%AdaptNoncopyableIndirect] {} {}
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.be3 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.be3 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.be3 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.be3 = out_param_pattern [concrete = constants.%return.param_patt.6c3]
// CHECK:STDOUT: %return.patt: %pattern_type.be3 = return_slot_pattern %return.param_patt, %AdaptNoncopyableIndirect.ref.loc12_38 [concrete = constants.%return.patt.de6]
// CHECK:STDOUT: } {
@@ -974,7 +974,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %complete_type.db4: <witness> = complete_type_witness %struct_type.e.f [concrete]
// CHECK:STDOUT: %pattern_type.27f: type = pattern_type %AdaptStruct [concrete]
// CHECK:STDOUT: %g.param_patt: %pattern_type.27f = value_param_pattern [concrete]
// CHECK:STDOUT: %g.patt: %pattern_type.27f = at_binding_pattern g, %g.param_patt [concrete]
// CHECK:STDOUT: %g.patt: %pattern_type.27f = wrapper_binding_pattern g, %g.param_patt [concrete]
// CHECK:STDOUT: %.ae3: Core.Form = init_form %AdaptStruct [concrete]
// CHECK:STDOUT: %return.param_patt.427: %pattern_type.27f = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.0e8: %pattern_type.27f = return_slot_pattern %return.param_patt.427, %AdaptStruct [concrete]
@@ -1003,7 +1003,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %tuple.type.e00: type = tuple_type (%AdaptStruct, %u32) [concrete]
// CHECK:STDOUT: %pattern_type.418: type = pattern_type %tuple.type.e00 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.418 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.418 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.418 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %.70d: Core.Form = init_form %tuple.type.e00 [concrete]
// CHECK:STDOUT: %return.param_patt.9c4: %pattern_type.418 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.3e9: %pattern_type.418 = return_slot_pattern %return.param_patt.9c4, %tuple.type.e00 [concrete]
@@ -1055,7 +1055,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: %AdaptStruct.decl: type = class_decl @AdaptStruct [concrete = constants.%AdaptStruct] {} {}
// CHECK:STDOUT: %I.decl: %I.type = fn_decl @I [concrete = constants.%I] {
// CHECK:STDOUT: %g.param_patt: %pattern_type.27f = value_param_pattern [concrete = constants.%g.param_patt]
// CHECK:STDOUT: %g.patt: %pattern_type.27f = at_binding_pattern g, %g.param_patt [concrete = constants.%g.patt]
// CHECK:STDOUT: %g.patt: %pattern_type.27f = wrapper_binding_pattern g, %g.param_patt [concrete = constants.%g.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.27f = out_param_pattern [concrete = constants.%return.param_patt.427]
// CHECK:STDOUT: %return.patt: %pattern_type.27f = return_slot_pattern %return.param_patt, %AdaptStruct.ref.loc8_25 [concrete = constants.%return.patt.0e8]
// CHECK:STDOUT: } {
@@ -1069,7 +1069,7 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InTuple.decl: %InTuple.type = fn_decl @InTuple [concrete = constants.%InTuple] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.418 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.418 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.418 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.418 = out_param_pattern [concrete = constants.%return.param_patt.9c4]
// CHECK:STDOUT: %return.patt: %pattern_type.418 = return_slot_pattern %return.param_patt, %.loc13_55.2 [concrete = constants.%return.patt.3e9]
// CHECK:STDOUT: } {
+19 -19
View File
@@ -157,13 +157,13 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClass.StaticMemberFunction: %SomeClass.StaticMemberFunction.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.54b: type = pattern_type %SomeClassAdapter [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.54b = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.54b = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.54b = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %SomeClass.AdapterMethod.type: type = fn_type @SomeClass.AdapterMethod [concrete]
// CHECK:STDOUT: %SomeClass.AdapterMethod: %SomeClass.AdapterMethod.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete]
// CHECK:STDOUT: %complete_type.7b9: <witness> = complete_type_witness %struct_type.a.b [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.4cf: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt.80b: %pattern_type.54b = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %TestStaticMemberFunction.type: type = fn_type @TestStaticMemberFunction [concrete]
// CHECK:STDOUT: %TestStaticMemberFunction: %TestStaticMemberFunction.type = struct_value () [concrete]
// CHECK:STDOUT: %TestAdapterMethod.type: type = fn_type @TestAdapterMethod [concrete]
@@ -193,7 +193,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter.decl.loc15: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {}
// CHECK:STDOUT: %TestStaticMemberFunction.decl: %TestStaticMemberFunction.type = fn_decl @TestStaticMemberFunction [concrete = constants.%TestStaticMemberFunction] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.4cf]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.80b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter]
@@ -201,7 +201,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %TestAdapterMethod.decl: %TestAdapterMethod.type = fn_decl @TestAdapterMethod [concrete = constants.%TestAdapterMethod] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.4cf]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.80b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter]
@@ -229,7 +229,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClass.StaticMemberFunction.decl: %SomeClass.StaticMemberFunction.type = fn_decl @SomeClass.StaticMemberFunction [concrete = constants.%SomeClass.StaticMemberFunction] {} {}
// CHECK:STDOUT: %SomeClass.AdapterMethod.decl: %SomeClass.AdapterMethod.type = fn_decl @SomeClass.AdapterMethod [concrete = constants.%SomeClass.AdapterMethod] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.54b = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.54b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.54b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl.loc4 [concrete = constants.%SomeClassAdapter]
@@ -274,7 +274,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClass: type = class_type @SomeClass [concrete]
// CHECK:STDOUT: %pattern_type.b5d: type = pattern_type %SomeClass [concrete]
// CHECK:STDOUT: %self.param_patt.1e7: %pattern_type.b5d = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.ba7: %pattern_type.b5d = at_binding_pattern self, %self.param_patt.1e7 [concrete]
// CHECK:STDOUT: %self.patt.358: %pattern_type.b5d = wrapper_binding_pattern self, %self.param_patt.1e7 [concrete]
// CHECK:STDOUT: %SomeClass.F.type: type = fn_type @SomeClass.F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %SomeClass.F: %SomeClass.F.type = struct_value () [concrete]
@@ -283,7 +283,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [concrete]
// CHECK:STDOUT: %pattern_type.54b: type = pattern_type %SomeClassAdapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = 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: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
@@ -311,7 +311,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %SomeClassAdapter = value_param call_param0
// CHECK:STDOUT: %SomeClassAdapter.ref: type = name_ref SomeClassAdapter, file.%SomeClassAdapter.decl [concrete = constants.%SomeClassAdapter]
@@ -322,7 +322,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: class @SomeClass {
// CHECK:STDOUT: %SomeClass.F.decl: %SomeClass.F.type = fn_decl @SomeClass.F [concrete = constants.%SomeClass.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.b5d = value_param_pattern [concrete = constants.%self.param_patt.1e7]
// CHECK:STDOUT: %self.patt: %pattern_type.b5d = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ba7]
// CHECK:STDOUT: %self.patt: %pattern_type.b5d = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.358]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %SomeClass = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%SomeClass [concrete = constants.%SomeClass]
@@ -376,7 +376,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter: type = class_type @SomeClassAdapter [concrete]
// CHECK:STDOUT: %pattern_type.54b: type = pattern_type %SomeClassAdapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.4cf: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt.80b: %pattern_type.54b = wrapper_binding_pattern a, %a.param_patt [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]
@@ -409,7 +409,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %SomeClassAdapter.decl: type = class_decl @SomeClassAdapter [concrete = constants.%SomeClassAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.54b = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.4cf]
// CHECK:STDOUT: %a.patt: %pattern_type.54b = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.80b]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -469,7 +469,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %complete_type.7b9: <witness> = complete_type_witness %struct_type.a.b [concrete]
// CHECK:STDOUT: %pattern_type.9b8: type = pattern_type %StructAdapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.9b8 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9b8 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.9b8 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete]
@@ -497,7 +497,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %StructAdapter.decl: type = class_decl @StructAdapter [concrete = constants.%StructAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.9b8 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9b8 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.9b8 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.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: } {
@@ -546,7 +546,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %complete_type.6c4: <witness> = complete_type_witness %tuple.type.e55 [concrete]
// CHECK:STDOUT: %pattern_type.59f: type = pattern_type %TupleAdapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.59f = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.59f = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.59f = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete]
@@ -575,7 +575,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %TupleAdapter.decl: type = class_decl @TupleAdapter [concrete = constants.%TupleAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.59f = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.59f = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.59f = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.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: } {
@@ -615,7 +615,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete]
// CHECK:STDOUT: %N.patt.eef: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %N.patt.4a4: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %.805: Core.Form = init_form type [concrete]
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
// CHECK:STDOUT: %return.param_patt.70e: %pattern_type.98f = out_param_pattern [concrete]
@@ -628,7 +628,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %complete_type.f8a: <witness> = complete_type_witness %i32.builtin [concrete]
// CHECK:STDOUT: %pattern_type.353: type = pattern_type %IntAdapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.353 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.353 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.353 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
@@ -661,7 +661,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %MakeInt.decl: %MakeInt.type = fn_decl @MakeInt [concrete = constants.%MakeInt] {
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete = constants.%N.param_patt]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete = constants.%N.patt.eef]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete = constants.%N.patt.4a4]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete = constants.%return.param_patt.70e]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc4_35.1 [concrete = constants.%return.patt.3ae]
// CHECK:STDOUT: } {
@@ -679,7 +679,7 @@ fn F(a: IntAdapter) -> i32 {
// CHECK:STDOUT: %IntAdapter.decl: type = class_decl @IntAdapter [concrete = constants.%IntAdapter] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.353 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.353 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.353 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
+4 -4
View File
@@ -41,7 +41,7 @@ fn Run() -> i32 {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [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: %.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]
@@ -110,7 +110,7 @@ fn Run() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// 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: %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.loc25_23 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -136,7 +136,7 @@ fn Run() -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// 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: %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.loc16_19 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -150,7 +150,7 @@ fn Run() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// 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: %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.loc25_23 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -24,7 +24,7 @@ class C {
// CHECK:STDOUT: %C: type = class_type @C [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: %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]
@@ -76,7 +76,7 @@ class C {
// CHECK:STDOUT: class @C {
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.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.a9a]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
+6 -6
View File
@@ -61,7 +61,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: %complete_type.9b3: <witness> = complete_type_witness %struct_type.base.d.e.26c [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt.fac: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt.2df: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [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]
@@ -85,7 +85,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete]
// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete]
// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete]
// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete]
@@ -134,7 +134,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %AccessDerived.decl: %AccessDerived.type = fn_decl @AccessDerived [concrete = constants.%AccessDerived] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.fac]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.2df]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -148,7 +148,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: }
// CHECK:STDOUT: %AccessBase.decl: %AccessBase.type = fn_decl @AccessBase [concrete = constants.%AccessBase] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.fac]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.2df]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -162,7 +162,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: }
// CHECK:STDOUT: %AccessDerivedIndirect.decl: %AccessDerivedIndirect.type = fn_decl @AccessDerivedIndirect [concrete = constants.%AccessDerivedIndirect] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete = constants.%return.param_patt.7dd]
// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr.loc36_45 [concrete = constants.%return.patt.dbe]
// CHECK:STDOUT: } {
@@ -180,7 +180,7 @@ fn AccessBaseIndirect(p: Derived*) -> i32* {
// CHECK:STDOUT: }
// CHECK:STDOUT: %AccessBaseIndirect.decl: %AccessBaseIndirect.type = fn_decl @AccessBaseIndirect [concrete = constants.%AccessBaseIndirect] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete = constants.%return.param_patt.7dd]
// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr.loc40_42 [concrete = constants.%return.patt.dbe]
// CHECK:STDOUT: } {
+2 -2
View File
@@ -23,7 +23,7 @@ fn F(p: Class*) -> Class* { return p; }
// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete]
// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %.90e: Core.Form = init_form %ptr.7ee [concrete]
// CHECK:STDOUT: %return.param_patt.14e: %pattern_type.8c5 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.7b1: %pattern_type.8c5 = return_slot_pattern %return.param_patt.14e, %ptr.7ee [concrete]
@@ -63,7 +63,7 @@ fn F(p: Class*) -> Class* { return p; }
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.8c5 = out_param_pattern [concrete = constants.%return.param_patt.14e]
// CHECK:STDOUT: %return.patt: %pattern_type.8c5 = return_slot_pattern %return.param_patt, %ptr.loc17_25 [concrete = constants.%return.patt.7b1]
// CHECK:STDOUT: } {
+14 -14
View File
@@ -158,7 +158,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %complete_type.0c6: <witness> = complete_type_witness %struct_type.x.a15 [concrete]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [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]
@@ -209,7 +209,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {}
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -330,7 +330,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %x.patt.29f: %pattern_type.6b6 = ref_binding_pattern x [concrete]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [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]
@@ -383,7 +383,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// 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.loc6 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -496,7 +496,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %complete_type.0c6: <witness> = complete_type_witness %struct_type.x.a15 [concrete]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [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]
@@ -537,7 +537,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %Adapter.decl: type = class_decl @Adapter [concrete = constants.%Adapter] {} {}
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -765,7 +765,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %x.patt.29f: %pattern_type.6b6 = ref_binding_pattern x [concrete]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %Adapter [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [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]
@@ -807,7 +807,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedAccess.decl: %ImportedAccess.type = fn_decl @ImportedAccess [concrete = constants.%ImportedAccess] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -901,7 +901,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %Adapter.0d1: type = class_type @Adapter, @Adapter(%i32) [concrete]
// CHECK:STDOUT: %pattern_type.493: type = pattern_type %Adapter.0d1 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.493 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.493 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.493 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %return.param_patt.a9a: %pattern_type.6b6 = out_param_pattern [concrete]
@@ -954,7 +954,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Convert.decl: %Convert.type = fn_decl @Convert [concrete = constants.%Convert] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.493 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.493 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.493 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// 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.loc8_32 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -1038,7 +1038,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %Adapter.0d1: type = class_type @Adapter, @Adapter(%i32) [concrete]
// CHECK:STDOUT: %pattern_type.493: type = pattern_type %Adapter.0d1 [concrete]
// CHECK:STDOUT: %a.param_patt.fdb: %pattern_type.493 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.113: %pattern_type.493 = at_binding_pattern a, %a.param_patt.fdb [concrete]
// CHECK:STDOUT: %a.patt.41c: %pattern_type.493 = wrapper_binding_pattern a, %a.param_patt.fdb [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %return.param_patt.a9a: %pattern_type.6b6 = out_param_pattern [concrete]
@@ -1065,7 +1065,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %Adapter.347: type = class_type @Adapter, @Adapter(%C) [concrete]
// CHECK:STDOUT: %pattern_type.5db: type = pattern_type %Adapter.347 [concrete]
// CHECK:STDOUT: %a.param_patt.95b: %pattern_type.5db = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.b1b: %pattern_type.5db = at_binding_pattern a, %a.param_patt.95b [concrete]
// CHECK:STDOUT: %a.patt.1fc: %pattern_type.5db = wrapper_binding_pattern a, %a.param_patt.95b [concrete]
// CHECK:STDOUT: %ImportedConvertLocal.type: type = fn_type @ImportedConvertLocal [concrete]
// CHECK:STDOUT: %ImportedConvertLocal: %ImportedConvertLocal.type = struct_value () [concrete]
// CHECK:STDOUT: %complete_type.c1f: <witness> = complete_type_witness %C [concrete]
@@ -1102,7 +1102,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedConvert.decl: %ImportedConvert.type = fn_decl @ImportedConvert [concrete = constants.%ImportedConvert] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.493 = value_param_pattern [concrete = constants.%a.param_patt.fdb]
// CHECK:STDOUT: %a.patt: %pattern_type.493 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.113]
// CHECK:STDOUT: %a.patt: %pattern_type.493 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.41c]
// 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.loc6_40 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -1121,7 +1121,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
// CHECK:STDOUT: %ImportedConvertLocal.decl: %ImportedConvertLocal.type = fn_decl @ImportedConvertLocal [concrete = constants.%ImportedConvertLocal] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.5db = value_param_pattern [concrete = constants.%a.param_patt.95b]
// CHECK:STDOUT: %a.patt: %pattern_type.5db = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.b1b]
// CHECK:STDOUT: %a.patt: %pattern_type.5db = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.1fc]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -128,7 +128,7 @@ fn H() {
// CHECK:STDOUT: %complete_type.90c: <witness> = complete_type_witness %struct_type.base.a1b [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [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]
@@ -181,7 +181,7 @@ fn H() {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %DoubleFieldAccess.decl: %DoubleFieldAccess.type = fn_decl @DoubleFieldAccess [concrete = constants.%DoubleFieldAccess] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -317,7 +317,7 @@ fn H() {
// CHECK:STDOUT: %complete_type.90c: <witness> = complete_type_witness %struct_type.base.a1b [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %return.param_patt.a9a: %pattern_type.6b6 = out_param_pattern [concrete]
@@ -380,7 +380,7 @@ fn H() {
// CHECK:STDOUT: %default.import = import <none>
// CHECK:STDOUT: %ImportedDoubleFieldAccess.decl: %ImportedDoubleFieldAccess.type = fn_decl @ImportedDoubleFieldAccess [concrete = constants.%ImportedDoubleFieldAccess] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.patt: %pattern_type.746 = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
+8 -8
View File
@@ -45,7 +45,7 @@ class Declaration(T: type);
// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.f84) [symbolic]
// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class [symbolic]
// CHECK:STDOUT: %self.param_patt.f0d: %pattern_type.e18 = ref_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.282: %pattern_type.e18 = at_binding_pattern self, %self.param_patt.f0d [symbolic]
// CHECK:STDOUT: %self.patt.7e2: %pattern_type.e18 = wrapper_binding_pattern self, %self.param_patt.f0d [symbolic]
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic]
// CHECK:STDOUT: %ptr.215: type = ptr_type %T.as_type [symbolic]
// CHECK:STDOUT: %.4fb: Core.Form = init_form %ptr.215 [symbolic]
@@ -55,7 +55,7 @@ class Declaration(T: type);
// CHECK:STDOUT: %Class.GetAddr.type: type = fn_type @Class.GetAddr, @Class(%T.f84) [symbolic]
// CHECK:STDOUT: %Class.GetAddr: %Class.GetAddr.type = struct_value () [symbolic]
// CHECK:STDOUT: %self.param_patt.aaa: %pattern_type.e18 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.d8a: %pattern_type.e18 = at_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %self.patt.f4e: %pattern_type.e18 = wrapper_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %return.param_patt.bf4475.2: %pattern_type.2c66b4.2 = out_param_pattern [symbolic]
@@ -140,7 +140,7 @@ class Declaration(T: type);
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Class.GetAddr.decl: @Class.%Class.GetAddr.type (%Class.GetAddr.type) = fn_decl @Class.GetAddr [symbolic = @Class.%Class.GetAddr (constants.%Class.GetAddr)] {
// CHECK:STDOUT: %self.param_patt.loc6_18.1: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.e18) = ref_param_pattern [symbolic = %self.param_patt.loc6_18.2 (constants.%self.param_patt.f0d)]
// CHECK:STDOUT: %self.patt.loc6_18.1: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc6_18.1 [symbolic = %self.patt.loc6_18.2 (constants.%self.patt.282)]
// CHECK:STDOUT: %self.patt.loc6_18.1: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc6_18.1 [symbolic = %self.patt.loc6_18.2 (constants.%self.patt.7e2)]
// CHECK:STDOUT: %return.param_patt.loc6_28.1: @Class.GetAddr.%pattern_type.loc6_28 (%pattern_type.d5b) = out_param_pattern [symbolic = %return.param_patt.loc6_28.2 (constants.%return.param_patt.4df)]
// CHECK:STDOUT: %return.patt.loc6_24.1: @Class.GetAddr.%pattern_type.loc6_28 (%pattern_type.d5b) = return_slot_pattern %return.param_patt.loc6_28.1, %ptr.loc6_28.2 [symbolic = %return.patt.loc6_24.2 (constants.%return.patt.c21)]
// CHECK:STDOUT: } {
@@ -160,7 +160,7 @@ class Declaration(T: type);
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.GetValue.decl: @Class.%Class.GetValue.type (%Class.GetValue.type) = fn_decl @Class.GetValue [symbolic = @Class.%Class.GetValue (constants.%Class.GetValue)] {
// CHECK:STDOUT: %self.param_patt.loc10_15.1: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.e18) = value_param_pattern [symbolic = %self.param_patt.loc10_15.2 (constants.%self.param_patt.aaa)]
// CHECK:STDOUT: %self.patt.loc10_15.1: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc10_15.1 [symbolic = %self.patt.loc10_15.2 (constants.%self.patt.d8a)]
// CHECK:STDOUT: %self.patt.loc10_15.1: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc10_15.1 [symbolic = %self.patt.loc10_15.2 (constants.%self.patt.f4e)]
// CHECK:STDOUT: %return.param_patt.loc10_24.1: @Class.GetValue.%pattern_type.loc10_24 (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc10_24.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc10_21.1: @Class.GetValue.%pattern_type.loc10_24 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc10_24.1, %.loc10_24.3 [symbolic = %return.patt.loc10_21.2 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -202,7 +202,7 @@ class Declaration(T: type);
// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)]
// CHECK:STDOUT: %pattern_type.loc6_18: type = pattern_type %Class [symbolic = %pattern_type.loc6_18 (constants.%pattern_type.e18)]
// CHECK:STDOUT: %self.param_patt.loc6_18.2: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.e18) = ref_param_pattern [symbolic = %self.param_patt.loc6_18.2 (constants.%self.param_patt.f0d)]
// CHECK:STDOUT: %self.patt.loc6_18.2: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc6_18.2 [symbolic = %self.patt.loc6_18.2 (constants.%self.patt.282)]
// CHECK:STDOUT: %self.patt.loc6_18.2: @Class.GetAddr.%pattern_type.loc6_18 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc6_18.2 [symbolic = %self.patt.loc6_18.2 (constants.%self.patt.7e2)]
// CHECK:STDOUT: %T.as_type.loc6_28.1: type = facet_access_type %T [symbolic = %T.as_type.loc6_28.1 (constants.%T.as_type)]
// CHECK:STDOUT: %ptr.loc6_28.1: type = ptr_type %T.as_type.loc6_28.1 [symbolic = %ptr.loc6_28.1 (constants.%ptr.215)]
// CHECK:STDOUT: %.loc6_28.1: Core.Form = init_form %ptr.loc6_28.1 [symbolic = %.loc6_28.1 (constants.%.4fb)]
@@ -246,7 +246,7 @@ class Declaration(T: type);
// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)]
// CHECK:STDOUT: %pattern_type.loc10_15: type = pattern_type %Class [symbolic = %pattern_type.loc10_15 (constants.%pattern_type.e18)]
// CHECK:STDOUT: %self.param_patt.loc10_15.2: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.e18) = value_param_pattern [symbolic = %self.param_patt.loc10_15.2 (constants.%self.param_patt.aaa)]
// CHECK:STDOUT: %self.patt.loc10_15.2: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc10_15.2 [symbolic = %self.patt.loc10_15.2 (constants.%self.patt.d8a)]
// CHECK:STDOUT: %self.patt.loc10_15.2: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc10_15.2 [symbolic = %self.patt.loc10_15.2 (constants.%self.patt.f4e)]
// CHECK:STDOUT: %T.as_type.loc10_24.1: type = facet_access_type %T [symbolic = %T.as_type.loc10_24.1 (constants.%T.as_type)]
// CHECK:STDOUT: %.loc10_24.2: Core.Form = init_form %T.as_type.loc10_24.1 [symbolic = %.loc10_24.2 (constants.%.1ce700.2)]
// CHECK:STDOUT: %pattern_type.loc10_24: type = pattern_type %T.as_type.loc10_24.1 [symbolic = %pattern_type.loc10_24 (constants.%pattern_type.2c66b4.2)]
@@ -305,7 +305,7 @@ class Declaration(T: type);
// CHECK:STDOUT: %Class => constants.%Class
// CHECK:STDOUT: %pattern_type.loc6_18 => constants.%pattern_type.e18
// CHECK:STDOUT: %self.param_patt.loc6_18.2 => constants.%self.param_patt.f0d
// CHECK:STDOUT: %self.patt.loc6_18.2 => constants.%self.patt.282
// CHECK:STDOUT: %self.patt.loc6_18.2 => constants.%self.patt.7e2
// CHECK:STDOUT: %T.as_type.loc6_28.1 => constants.%T.as_type
// CHECK:STDOUT: %ptr.loc6_28.1 => constants.%ptr.215
// CHECK:STDOUT: %.loc6_28.1 => constants.%.4fb
@@ -319,7 +319,7 @@ class Declaration(T: type);
// CHECK:STDOUT: %Class => constants.%Class
// CHECK:STDOUT: %pattern_type.loc10_15 => constants.%pattern_type.e18
// CHECK:STDOUT: %self.param_patt.loc10_15.2 => constants.%self.param_patt.aaa
// CHECK:STDOUT: %self.patt.loc10_15.2 => constants.%self.patt.d8a
// CHECK:STDOUT: %self.patt.loc10_15.2 => constants.%self.patt.f4e
// CHECK:STDOUT: %T.as_type.loc10_24.1 => constants.%T.as_type
// CHECK:STDOUT: %.loc10_24.2 => constants.%.1ce700.2
// CHECK:STDOUT: %pattern_type.loc10_24 => constants.%pattern_type.2c66b4.2
@@ -40,7 +40,7 @@ fn F(a: A(0)*) {
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete]
// CHECK:STDOUT: %N.patt.eef: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %N.patt.4a4: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %.805: Core.Form = init_form type [concrete]
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
// CHECK:STDOUT: %return.param_patt.70e: %pattern_type.98f = out_param_pattern [concrete]
@@ -97,7 +97,7 @@ fn F(a: A(0)*) {
// CHECK:STDOUT: %ptr.4dd: type = ptr_type %A.32a [concrete]
// CHECK:STDOUT: %pattern_type.0c3: type = pattern_type %ptr.4dd [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.0c3 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.0c3 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.0c3 = 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: %ptr.432: type = ptr_type %B [concrete]
@@ -134,7 +134,7 @@ fn F(a: A(0)*) {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Int.decl: %Int.type.9c0 = fn_decl @Int.loc2 [concrete = constants.%Int.c4a] {
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete = constants.%N.param_patt]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete = constants.%N.patt.eef]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete = constants.%N.patt.4a4]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete = constants.%return.param_patt.70e]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc2_31.1 [concrete = constants.%return.patt.3ae]
// CHECK:STDOUT: } {
@@ -161,7 +161,7 @@ fn F(a: A(0)*) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.0c3 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.0c3 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.0c3 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %ptr.4dd = value_param call_param0
// CHECK:STDOUT: %.loc12_13: type = splice_block %ptr.loc12 [concrete = constants.%ptr.4dd] {
+10 -10
View File
@@ -58,7 +58,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %Class.1b7: type = class_type @Class, @Class(%i32) [concrete]
// CHECK:STDOUT: %pattern_type.5da: type = pattern_type %Class.1b7 [concrete]
// CHECK:STDOUT: %c.param_patt.b53: %pattern_type.5da = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.a4f: %pattern_type.5da = at_binding_pattern c, %c.param_patt.b53 [concrete]
// CHECK:STDOUT: %c.patt.ac0: %pattern_type.5da = wrapper_binding_pattern c, %c.param_patt.b53 [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %return.param_patt.a9a: %pattern_type.6b6 = out_param_pattern [concrete]
@@ -97,7 +97,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %Class.c74ef3.1: type = class_type @Class, @Class(%T.as_type) [symbolic]
// CHECK:STDOUT: %pattern_type.6b8c16.1: type = pattern_type %Class.c74ef3.1 [symbolic]
// CHECK:STDOUT: %c.param_patt.7092f5.1: %pattern_type.6b8c16.1 = value_param_pattern [symbolic]
// CHECK:STDOUT: %c.patt.39adc7.1: %pattern_type.6b8c16.1 = at_binding_pattern c, %c.param_patt.7092f5.1 [symbolic]
// CHECK:STDOUT: %c.patt.45f77b.1: %pattern_type.6b8c16.1 = wrapper_binding_pattern c, %c.param_patt.7092f5.1 [symbolic]
// CHECK:STDOUT: %return.patt.f449d7.1: %pattern_type.2c66b4.2 = return_slot_pattern %return.param_patt.bf4475.2, %T.as_type [symbolic]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
@@ -112,7 +112,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %Class.c74ef3.2: type = class_type @Class, @Class(%U.as_type.c1c) [symbolic]
// CHECK:STDOUT: %pattern_type.6b8c16.2: type = pattern_type %Class.c74ef3.2 [symbolic]
// CHECK:STDOUT: %c.param_patt.7092f5.2: %pattern_type.6b8c16.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %c.patt.39adc7.2: %pattern_type.6b8c16.2 = at_binding_pattern c, %c.param_patt.7092f5.2 [symbolic]
// CHECK:STDOUT: %c.patt.45f77b.2: %pattern_type.6b8c16.2 = wrapper_binding_pattern c, %c.param_patt.7092f5.2 [symbolic]
// CHECK:STDOUT: %.1ce700.3: Core.Form = init_form %U.as_type.c1c [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.3: type = pattern_type %U.as_type.c1c [symbolic]
// CHECK:STDOUT: %return.param_patt.bf4475.3: %pattern_type.2c66b4.3 = out_param_pattern [symbolic]
@@ -157,7 +157,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.5da = value_param_pattern [concrete = constants.%c.param_patt.b53]
// CHECK:STDOUT: %c.patt: %pattern_type.5da = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.a4f]
// CHECK:STDOUT: %c.patt: %pattern_type.5da = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.ac0]
// 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.loc9_24 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -176,7 +176,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %T.patt.loc13_15.1: %pattern_type.e81 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_15.2 (constants.%T.patt.fe6)]
// CHECK:STDOUT: %c.param_patt.loc13_29.1: @G.%pattern_type.loc13_29 (%pattern_type.6b8c16.1) = value_param_pattern [symbolic = %c.param_patt.loc13_29.2 (constants.%c.param_patt.7092f5.1)]
// CHECK:STDOUT: %c.patt.loc13_29.1: @G.%pattern_type.loc13_29 (%pattern_type.6b8c16.1) = at_binding_pattern c, %c.param_patt.loc13_29.1 [symbolic = %c.patt.loc13_29.2 (constants.%c.patt.39adc7.1)]
// CHECK:STDOUT: %c.patt.loc13_29.1: @G.%pattern_type.loc13_29 (%pattern_type.6b8c16.1) = wrapper_binding_pattern c, %c.param_patt.loc13_29.1 [symbolic = %c.patt.loc13_29.2 (constants.%c.patt.45f77b.1)]
// CHECK:STDOUT: %return.param_patt.loc13_44.1: @G.%pattern_type.loc13_44 (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc13_44.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc13_41.1: @G.%pattern_type.loc13_44 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc13_44.1, %.loc13_44.3 [symbolic = %return.patt.loc13_41.2 (constants.%return.patt.f449d7.1)]
// CHECK:STDOUT: } {
@@ -205,7 +205,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] {
// CHECK:STDOUT: %U.patt.loc17_15.1: %pattern_type.e81 = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc17_15.2 (constants.%U.patt.fe6)]
// CHECK:STDOUT: %c.param_patt.loc17_29.1: @H.%pattern_type.loc17_29 (%pattern_type.6b8c16.2) = value_param_pattern [symbolic = %c.param_patt.loc17_29.2 (constants.%c.param_patt.7092f5.2)]
// CHECK:STDOUT: %c.patt.loc17_29.1: @H.%pattern_type.loc17_29 (%pattern_type.6b8c16.2) = at_binding_pattern c, %c.param_patt.loc17_29.1 [symbolic = %c.patt.loc17_29.2 (constants.%c.patt.39adc7.2)]
// CHECK:STDOUT: %c.patt.loc17_29.1: @H.%pattern_type.loc17_29 (%pattern_type.6b8c16.2) = wrapper_binding_pattern c, %c.param_patt.loc17_29.1 [symbolic = %c.patt.loc17_29.2 (constants.%c.patt.45f77b.2)]
// CHECK:STDOUT: %return.param_patt.loc17_44.1: @H.%pattern_type.loc17_44 (%pattern_type.2c66b4.3) = out_param_pattern [symbolic = %return.param_patt.loc17_44.2 (constants.%return.param_patt.bf4475.3)]
// CHECK:STDOUT: %return.patt.loc17_41.1: @H.%pattern_type.loc17_44 (%pattern_type.2c66b4.3) = return_slot_pattern %return.param_patt.loc17_44.1, %.loc17_44.3 [symbolic = %return.patt.loc17_41.2 (constants.%return.patt.f449d7.2)]
// CHECK:STDOUT: } {
@@ -279,7 +279,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %Class.loc13_38.1: type = class_type @Class, @Class(%T.as_type.loc13_38.1) [symbolic = %Class.loc13_38.1 (constants.%Class.c74ef3.1)]
// CHECK:STDOUT: %pattern_type.loc13_29: type = pattern_type %Class.loc13_38.1 [symbolic = %pattern_type.loc13_29 (constants.%pattern_type.6b8c16.1)]
// CHECK:STDOUT: %c.param_patt.loc13_29.2: @G.%pattern_type.loc13_29 (%pattern_type.6b8c16.1) = value_param_pattern [symbolic = %c.param_patt.loc13_29.2 (constants.%c.param_patt.7092f5.1)]
// CHECK:STDOUT: %c.patt.loc13_29.2: @G.%pattern_type.loc13_29 (%pattern_type.6b8c16.1) = at_binding_pattern c, %c.param_patt.loc13_29.2 [symbolic = %c.patt.loc13_29.2 (constants.%c.patt.39adc7.1)]
// CHECK:STDOUT: %c.patt.loc13_29.2: @G.%pattern_type.loc13_29 (%pattern_type.6b8c16.1) = wrapper_binding_pattern c, %c.param_patt.loc13_29.2 [symbolic = %c.patt.loc13_29.2 (constants.%c.patt.45f77b.1)]
// CHECK:STDOUT: %.loc13_44.2: Core.Form = init_form %T.as_type.loc13_38.1 [symbolic = %.loc13_44.2 (constants.%.1ce700.2)]
// CHECK:STDOUT: %pattern_type.loc13_44: type = pattern_type %T.as_type.loc13_38.1 [symbolic = %pattern_type.loc13_44 (constants.%pattern_type.2c66b4.2)]
// CHECK:STDOUT: %return.param_patt.loc13_44.2: @G.%pattern_type.loc13_44 (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc13_44.2 (constants.%return.param_patt.bf4475.2)]
@@ -320,7 +320,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %Class.loc17_38.1: type = class_type @Class, @Class(%U.as_type.loc17_38.1) [symbolic = %Class.loc17_38.1 (constants.%Class.c74ef3.2)]
// CHECK:STDOUT: %pattern_type.loc17_29: type = pattern_type %Class.loc17_38.1 [symbolic = %pattern_type.loc17_29 (constants.%pattern_type.6b8c16.2)]
// CHECK:STDOUT: %c.param_patt.loc17_29.2: @H.%pattern_type.loc17_29 (%pattern_type.6b8c16.2) = value_param_pattern [symbolic = %c.param_patt.loc17_29.2 (constants.%c.param_patt.7092f5.2)]
// CHECK:STDOUT: %c.patt.loc17_29.2: @H.%pattern_type.loc17_29 (%pattern_type.6b8c16.2) = at_binding_pattern c, %c.param_patt.loc17_29.2 [symbolic = %c.patt.loc17_29.2 (constants.%c.patt.39adc7.2)]
// CHECK:STDOUT: %c.patt.loc17_29.2: @H.%pattern_type.loc17_29 (%pattern_type.6b8c16.2) = wrapper_binding_pattern c, %c.param_patt.loc17_29.2 [symbolic = %c.patt.loc17_29.2 (constants.%c.patt.45f77b.2)]
// CHECK:STDOUT: %.loc17_44.2: Core.Form = init_form %U.as_type.loc17_38.1 [symbolic = %.loc17_44.2 (constants.%.1ce700.3)]
// CHECK:STDOUT: %pattern_type.loc17_44: type = pattern_type %U.as_type.loc17_38.1 [symbolic = %pattern_type.loc17_44 (constants.%pattern_type.2c66b4.3)]
// CHECK:STDOUT: %return.param_patt.loc17_44.2: @H.%pattern_type.loc17_44 (%pattern_type.2c66b4.3) = out_param_pattern [symbolic = %return.param_patt.loc17_44.2 (constants.%return.param_patt.bf4475.3)]
@@ -394,7 +394,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %Class.loc13_38.1 => constants.%Class.c74ef3.1
// CHECK:STDOUT: %pattern_type.loc13_29 => constants.%pattern_type.6b8c16.1
// CHECK:STDOUT: %c.param_patt.loc13_29.2 => constants.%c.param_patt.7092f5.1
// CHECK:STDOUT: %c.patt.loc13_29.2 => constants.%c.patt.39adc7.1
// CHECK:STDOUT: %c.patt.loc13_29.2 => constants.%c.patt.45f77b.1
// CHECK:STDOUT: %.loc13_44.2 => constants.%.1ce700.2
// CHECK:STDOUT: %pattern_type.loc13_44 => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %return.param_patt.loc13_44.2 => constants.%return.param_patt.bf4475.2
@@ -422,7 +422,7 @@ fn H(generic U: Core.Copy, c: Class(U)) -> U {
// CHECK:STDOUT: %Class.loc17_38.1 => constants.%Class.c74ef3.2
// CHECK:STDOUT: %pattern_type.loc17_29 => constants.%pattern_type.6b8c16.2
// CHECK:STDOUT: %c.param_patt.loc17_29.2 => constants.%c.param_patt.7092f5.2
// CHECK:STDOUT: %c.patt.loc17_29.2 => constants.%c.patt.39adc7.2
// CHECK:STDOUT: %c.patt.loc17_29.2 => constants.%c.patt.45f77b.2
// CHECK:STDOUT: %.loc17_44.2 => constants.%.1ce700.3
// CHECK:STDOUT: %pattern_type.loc17_44 => constants.%pattern_type.2c66b4.3
// CHECK:STDOUT: %return.param_patt.loc17_44.2 => constants.%return.param_patt.bf4475.3
+12 -12
View File
@@ -76,7 +76,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %T.as_type.74b: type = facet_access_type %T.283 [symbolic]
// CHECK:STDOUT: %pattern_type.44a: type = pattern_type %T.as_type.74b [symbolic]
// CHECK:STDOUT: %x.param_patt.e3c: %pattern_type.44a = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.a06: %pattern_type.44a = at_binding_pattern x, %x.param_patt.e3c [symbolic]
// CHECK:STDOUT: %x.patt.ecd: %pattern_type.44a = wrapper_binding_pattern x, %x.param_patt.e3c [symbolic]
// CHECK:STDOUT: %.2b9: Core.Form = init_form %T.as_type.74b [symbolic]
// CHECK:STDOUT: %return.param_patt.7e9: %pattern_type.44a = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.c4f: %pattern_type.44a = return_slot_pattern %return.param_patt.7e9, %T.as_type.74b [symbolic]
@@ -111,7 +111,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %x.param_patt.cee: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.fbe: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt.cee [concrete]
// CHECK:STDOUT: %x.patt.e3b: %pattern_type.6b6 = wrapper_binding_pattern x, %x.param_patt.cee [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]
@@ -164,7 +164,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %InitFromStructGeneric.decl: %InitFromStructGeneric.type = fn_decl @InitFromStructGeneric [concrete = constants.%InitFromStructGeneric] {
// CHECK:STDOUT: %T.patt.loc9_35.1: %pattern_type.709 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_35.2 (constants.%T.patt.478)]
// CHECK:STDOUT: %x.param_patt.loc9_64.1: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = value_param_pattern [symbolic = %x.param_patt.loc9_64.2 (constants.%x.param_patt.e3c)]
// CHECK:STDOUT: %x.patt.loc9_64.1: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = at_binding_pattern x, %x.param_patt.loc9_64.1 [symbolic = %x.patt.loc9_64.2 (constants.%x.patt.a06)]
// CHECK:STDOUT: %x.patt.loc9_64.1: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = wrapper_binding_pattern x, %x.param_patt.loc9_64.1 [symbolic = %x.patt.loc9_64.2 (constants.%x.patt.ecd)]
// CHECK:STDOUT: %return.param_patt.loc9_72.1: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = out_param_pattern [symbolic = %return.param_patt.loc9_72.2 (constants.%return.param_patt.7e9)]
// CHECK:STDOUT: %return.patt.loc9_69.1: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = return_slot_pattern %return.param_patt.loc9_72.1, %.loc9_72.3 [symbolic = %return.patt.loc9_69.2 (constants.%return.patt.c4f)]
// CHECK:STDOUT: } {
@@ -197,7 +197,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [concrete = constants.%InitFromStructSpecific] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%x.param_patt.cee]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.fbe]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.e3b]
// 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.loc14_38 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -217,7 +217,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %T.as_type.loc9_66.1: type = facet_access_type %T.loc9_35.1 [symbolic = %T.as_type.loc9_66.1 (constants.%T.as_type.74b)]
// CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %T.as_type.loc9_66.1 [symbolic = %pattern_type.loc9 (constants.%pattern_type.44a)]
// CHECK:STDOUT: %x.param_patt.loc9_64.2: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = value_param_pattern [symbolic = %x.param_patt.loc9_64.2 (constants.%x.param_patt.e3c)]
// CHECK:STDOUT: %x.patt.loc9_64.2: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = at_binding_pattern x, %x.param_patt.loc9_64.2 [symbolic = %x.patt.loc9_64.2 (constants.%x.patt.a06)]
// CHECK:STDOUT: %x.patt.loc9_64.2: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = wrapper_binding_pattern x, %x.param_patt.loc9_64.2 [symbolic = %x.patt.loc9_64.2 (constants.%x.patt.ecd)]
// CHECK:STDOUT: %.loc9_72.2: Core.Form = init_form %T.as_type.loc9_66.1 [symbolic = %.loc9_72.2 (constants.%.2b9)]
// CHECK:STDOUT: %return.param_patt.loc9_72.2: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = out_param_pattern [symbolic = %return.param_patt.loc9_72.2 (constants.%return.param_patt.7e9)]
// CHECK:STDOUT: %return.patt.loc9_69.2: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.44a) = return_slot_pattern %return.param_patt.loc9_72.2, %T.as_type.loc9_66.1 [symbolic = %return.patt.loc9_69.2 (constants.%return.patt.c4f)]
@@ -369,7 +369,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %T.as_type.loc9_66.1 => constants.%T.as_type.74b
// CHECK:STDOUT: %pattern_type.loc9 => constants.%pattern_type.44a
// CHECK:STDOUT: %x.param_patt.loc9_64.2 => constants.%x.param_patt.e3c
// CHECK:STDOUT: %x.patt.loc9_64.2 => constants.%x.patt.a06
// CHECK:STDOUT: %x.patt.loc9_64.2 => constants.%x.patt.ecd
// CHECK:STDOUT: %.loc9_72.2 => constants.%.2b9
// CHECK:STDOUT: %return.param_patt.loc9_72.2 => constants.%return.param_patt.7e9
// CHECK:STDOUT: %return.patt.loc9_69.2 => constants.%return.patt.c4f
@@ -389,7 +389,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [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 %T.as_type [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, %T.as_type [symbolic]
@@ -410,7 +410,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %x.param_patt.cee: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.fbe: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt.cee [concrete]
// CHECK:STDOUT: %x.patt.e3b: %pattern_type.6b6 = wrapper_binding_pattern x, %x.param_patt.cee [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]
@@ -445,7 +445,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %InitFromAdaptedGeneric.decl: %InitFromAdaptedGeneric.type = fn_decl @InitFromAdaptedGeneric [concrete = constants.%InitFromAdaptedGeneric] {
// CHECK:STDOUT: %T.patt.loc9_36.1: %pattern_type.e81 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_36.2 (constants.%T.patt.fe6)]
// CHECK:STDOUT: %x.param_patt.loc9_50.1: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %x.param_patt.loc9_50.2 (constants.%x.param_patt.1f4)]
// CHECK:STDOUT: %x.patt.loc9_50.1: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt.loc9_50.1 [symbolic = %x.patt.loc9_50.2 (constants.%x.patt.f93)]
// CHECK:STDOUT: %x.patt.loc9_50.1: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern x, %x.param_patt.loc9_50.1 [symbolic = %x.patt.loc9_50.2 (constants.%x.patt.cec)]
// CHECK:STDOUT: %return.param_patt.loc9_58.1: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc9_58.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc9_55.1: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc9_58.1, %.loc9_58.3 [symbolic = %return.patt.loc9_55.2 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -471,7 +471,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [concrete = constants.%InitFromAdaptedSpecific] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%x.param_patt.cee]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.fbe]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt.e3b]
// 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.loc13_39 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -491,7 +491,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %T.as_type.loc9_52.1: type = facet_access_type %T.loc9_36.1 [symbolic = %T.as_type.loc9_52.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_52.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)]
// CHECK:STDOUT: %x.param_patt.loc9_50.2: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %x.param_patt.loc9_50.2 (constants.%x.param_patt.1f4)]
// CHECK:STDOUT: %x.patt.loc9_50.2: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern x, %x.param_patt.loc9_50.2 [symbolic = %x.patt.loc9_50.2 (constants.%x.patt.f93)]
// CHECK:STDOUT: %x.patt.loc9_50.2: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern x, %x.param_patt.loc9_50.2 [symbolic = %x.patt.loc9_50.2 (constants.%x.patt.cec)]
// CHECK:STDOUT: %.loc9_58.2: Core.Form = init_form %T.as_type.loc9_52.1 [symbolic = %.loc9_58.2 (constants.%.1ce700.2)]
// CHECK:STDOUT: %return.param_patt.loc9_58.2: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc9_58.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc9_55.2: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc9_58.2, %T.as_type.loc9_52.1 [symbolic = %return.patt.loc9_55.2 (constants.%return.patt.f44)]
@@ -558,7 +558,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
// CHECK:STDOUT: %T.as_type.loc9_52.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %x.param_patt.loc9_50.2 => constants.%x.param_patt.1f4
// CHECK:STDOUT: %x.patt.loc9_50.2 => constants.%x.patt.f93
// CHECK:STDOUT: %x.patt.loc9_50.2 => constants.%x.patt.cec
// CHECK:STDOUT: %.loc9_58.2 => constants.%.1ce700.2
// CHECK:STDOUT: %return.param_patt.loc9_58.2 => constants.%return.param_patt.bf4475.2
// CHECK:STDOUT: %return.patt.loc9_55.2 => constants.%return.patt.f44
@@ -78,14 +78,14 @@ fn StaticMemberFunctionCall(generic T: type) -> Class(T) {
// CHECK:STDOUT: %Class.elem.1ee: type = unbound_element_type %Class.575, %T.as_type [symbolic]
// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class.575 [symbolic]
// CHECK:STDOUT: %self.param_patt.aaa: %pattern_type.e18 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.d8a: %pattern_type.e18 = at_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %self.patt.f4e: %pattern_type.e18 = wrapper_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [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, %T.as_type [symbolic]
// CHECK:STDOUT: %Class.Get.type.0dd: type = fn_type @Class.Get, @Class(%T.f84) [symbolic]
// CHECK:STDOUT: %Class.Get.112: %Class.Get.type.0dd = struct_value () [symbolic]
// CHECK:STDOUT: %self.param_patt.f0d: %pattern_type.e18 = ref_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.282: %pattern_type.e18 = at_binding_pattern self, %self.param_patt.f0d [symbolic]
// CHECK:STDOUT: %self.patt.7e2: %pattern_type.e18 = wrapper_binding_pattern self, %self.param_patt.f0d [symbolic]
// CHECK:STDOUT: %ptr.215: type = ptr_type %T.as_type [symbolic]
// CHECK:STDOUT: %.4fb: Core.Form = init_form %ptr.215 [symbolic]
// CHECK:STDOUT: %pattern_type.d5b: type = pattern_type %ptr.215 [symbolic]
@@ -139,11 +139,11 @@ fn StaticMemberFunctionCall(generic T: type) -> Class(T) {
// CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet.1e1 [concrete]
// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete]
// CHECK:STDOUT: %self.param_patt.2d3: %pattern_type.7a2 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.fdc: %pattern_type.7a2 = at_binding_pattern self, %self.param_patt.2d3 [concrete]
// CHECK:STDOUT: %self.patt.9c9: %pattern_type.7a2 = wrapper_binding_pattern self, %self.param_patt.2d3 [concrete]
// CHECK:STDOUT: %Class.Get.specific_fn: <specific function> = specific_function %Class.Get.28a, @Class.Get(%Copy.facet.1e1) [concrete]
// CHECK:STDOUT: %ptr.747: type = ptr_type %Class.e86 [concrete]
// CHECK:STDOUT: %self.param_patt.1b9: %pattern_type.7a2 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.964: %pattern_type.7a2 = at_binding_pattern self, %self.param_patt.1b9 [concrete]
// CHECK:STDOUT: %self.patt.887: %pattern_type.7a2 = wrapper_binding_pattern self, %self.param_patt.1b9 [concrete]
// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete]
// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete]
// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete]
@@ -323,7 +323,7 @@ fn StaticMemberFunctionCall(generic T: type) -> Class(T) {
// CHECK:STDOUT: %Class => constants.%Class.575
// CHECK:STDOUT: %pattern_type.loc7_10 => constants.%pattern_type.e18
// CHECK:STDOUT: %self.param_patt.loc7_10.2 => constants.%self.param_patt.aaa
// CHECK:STDOUT: %self.patt.loc7_10.2 => constants.%self.patt.d8a
// CHECK:STDOUT: %self.patt.loc7_10.2 => constants.%self.patt.f4e
// CHECK:STDOUT: %T.as_type.loc7_19.1 => constants.%T.as_type
// CHECK:STDOUT: %.loc7_19.2 => constants.%.1ce700.2
// CHECK:STDOUT: %pattern_type.loc7_19 => constants.%pattern_type.2c66b4.2
@@ -336,7 +336,7 @@ fn StaticMemberFunctionCall(generic T: type) -> Class(T) {
// CHECK:STDOUT: %Class => constants.%Class.575
// CHECK:STDOUT: %pattern_type.loc13_18 => constants.%pattern_type.e18
// CHECK:STDOUT: %self.param_patt.loc13_18.2 => constants.%self.param_patt.f0d
// CHECK:STDOUT: %self.patt.loc13_18.2 => constants.%self.patt.282
// CHECK:STDOUT: %self.patt.loc13_18.2 => constants.%self.patt.7e2
// CHECK:STDOUT: %T.as_type.loc13_28.1 => constants.%T.as_type
// CHECK:STDOUT: %ptr.loc13_28.1 => constants.%ptr.215
// CHECK:STDOUT: %.loc13_28.1 => constants.%.4fb
@@ -369,7 +369,7 @@ fn StaticMemberFunctionCall(generic T: type) -> Class(T) {
// CHECK:STDOUT: %Class => constants.%Class.e86
// CHECK:STDOUT: %pattern_type.loc7_10 => constants.%pattern_type.7a2
// CHECK:STDOUT: %self.param_patt.loc7_10.2 => constants.%self.param_patt.2d3
// CHECK:STDOUT: %self.patt.loc7_10.2 => constants.%self.patt.fdc
// CHECK:STDOUT: %self.patt.loc7_10.2 => constants.%self.patt.9c9
// CHECK:STDOUT: %T.as_type.loc7_19.1 => constants.%i32
// CHECK:STDOUT: %.loc7_19.2 => constants.%.795
// CHECK:STDOUT: %pattern_type.loc7_19 => constants.%pattern_type.6b6
@@ -392,7 +392,7 @@ fn StaticMemberFunctionCall(generic T: type) -> Class(T) {
// CHECK:STDOUT: %Class => constants.%Class.e86
// CHECK:STDOUT: %pattern_type.loc13_18 => constants.%pattern_type.7a2
// CHECK:STDOUT: %self.param_patt.loc13_18.2 => constants.%self.param_patt.1b9
// CHECK:STDOUT: %self.patt.loc13_18.2 => constants.%self.patt.964
// CHECK:STDOUT: %self.patt.loc13_18.2 => constants.%self.patt.887
// CHECK:STDOUT: %T.as_type.loc13_28.1 => constants.%i32
// CHECK:STDOUT: %ptr.loc13_28.1 => constants.%ptr.d08
// CHECK:STDOUT: %.loc13_28.1 => constants.%.952
@@ -61,7 +61,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %n.param_patt: %pattern_type.2c66b4.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %n.patt.8c9: %pattern_type.2c66b4.2 = at_binding_pattern n, %n.param_patt [symbolic]
// CHECK:STDOUT: %n.patt.364: %pattern_type.2c66b4.2 = wrapper_binding_pattern n, %n.param_patt [symbolic]
// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [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, %T.as_type [symbolic]
@@ -69,7 +69,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class [symbolic]
// CHECK:STDOUT: %self.param_patt.aaa: %pattern_type.e18 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.d8a: %pattern_type.e18 = at_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %self.patt.f4e: %pattern_type.e18 = wrapper_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.f84) [symbolic]
// CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic]
// CHECK:STDOUT: %require_complete.d83: <witness> = require_complete_type %T.as_type [symbolic]
@@ -128,7 +128,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] {
// CHECK:STDOUT: %n.param_patt.loc6_9.1: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %n.param_patt.loc6_9.2 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc6_9.1: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt.loc6_9.1 [symbolic = %n.patt.loc6_9.2 (constants.%n.patt.8c9)]
// CHECK:STDOUT: %n.patt.loc6_9.1: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern n, %n.param_patt.loc6_9.1 [symbolic = %n.patt.loc6_9.2 (constants.%n.patt.364)]
// CHECK:STDOUT: %return.param_patt.loc6_17.1: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc6_17.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc6_14.1: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc6_17.1, %.loc6_17.3 [symbolic = %return.patt.loc6_14.2 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -148,7 +148,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] {
// CHECK:STDOUT: %self.param_patt.loc10_8.1: @Class.G.%pattern_type.loc10_8 (%pattern_type.e18) = value_param_pattern [symbolic = %self.param_patt.loc10_8.2 (constants.%self.param_patt.aaa)]
// CHECK:STDOUT: %self.patt.loc10_8.1: @Class.G.%pattern_type.loc10_8 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc10_8.1 [symbolic = %self.patt.loc10_8.2 (constants.%self.patt.d8a)]
// CHECK:STDOUT: %self.patt.loc10_8.1: @Class.G.%pattern_type.loc10_8 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc10_8.1 [symbolic = %self.patt.loc10_8.2 (constants.%self.patt.f4e)]
// CHECK:STDOUT: %return.param_patt.loc10_17.1: @Class.G.%pattern_type.loc10_17 (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc10_17.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc10_14.1: @Class.G.%pattern_type.loc10_17 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc10_17.1, %.loc10_17.3 [symbolic = %return.patt.loc10_14.2 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -183,7 +183,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: %T.as_type.loc6_11.1: type = facet_access_type %T [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)]
// CHECK:STDOUT: %n.param_patt.loc6_9.2: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %n.param_patt.loc6_9.2 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc6_9.2: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt.loc6_9.2 [symbolic = %n.patt.loc6_9.2 (constants.%n.patt.8c9)]
// CHECK:STDOUT: %n.patt.loc6_9.2: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern n, %n.param_patt.loc6_9.2 [symbolic = %n.patt.loc6_9.2 (constants.%n.patt.364)]
// CHECK:STDOUT: %.loc6_17.2: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.2 (constants.%.1ce700.2)]
// CHECK:STDOUT: %return.param_patt.loc6_17.2: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc6_17.2 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc6_14.2: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc6_17.2, %T.as_type.loc6_11.1 [symbolic = %return.patt.loc6_14.2 (constants.%return.patt.f44)]
@@ -216,7 +216,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)]
// CHECK:STDOUT: %pattern_type.loc10_8: type = pattern_type %Class [symbolic = %pattern_type.loc10_8 (constants.%pattern_type.e18)]
// CHECK:STDOUT: %self.param_patt.loc10_8.2: @Class.G.%pattern_type.loc10_8 (%pattern_type.e18) = value_param_pattern [symbolic = %self.param_patt.loc10_8.2 (constants.%self.param_patt.aaa)]
// CHECK:STDOUT: %self.patt.loc10_8.2: @Class.G.%pattern_type.loc10_8 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc10_8.2 [symbolic = %self.patt.loc10_8.2 (constants.%self.patt.d8a)]
// CHECK:STDOUT: %self.patt.loc10_8.2: @Class.G.%pattern_type.loc10_8 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc10_8.2 [symbolic = %self.patt.loc10_8.2 (constants.%self.patt.f4e)]
// CHECK:STDOUT: %T.as_type.loc10_17.1: type = facet_access_type %T [symbolic = %T.as_type.loc10_17.1 (constants.%T.as_type)]
// CHECK:STDOUT: %.loc10_17.2: Core.Form = init_form %T.as_type.loc10_17.1 [symbolic = %.loc10_17.2 (constants.%.1ce700.2)]
// CHECK:STDOUT: %pattern_type.loc10_17: type = pattern_type %T.as_type.loc10_17.1 [symbolic = %pattern_type.loc10_17 (constants.%pattern_type.2c66b4.2)]
@@ -275,7 +275,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %n.param_patt.loc6_9.2 => constants.%n.param_patt
// CHECK:STDOUT: %n.patt.loc6_9.2 => constants.%n.patt.8c9
// CHECK:STDOUT: %n.patt.loc6_9.2 => constants.%n.patt.364
// CHECK:STDOUT: %.loc6_17.2 => constants.%.1ce700.2
// CHECK:STDOUT: %return.param_patt.loc6_17.2 => constants.%return.param_patt.bf4475.2
// CHECK:STDOUT: %return.patt.loc6_14.2 => constants.%return.patt.f44
@@ -286,7 +286,7 @@ class C(T: Core.Copy) {
// CHECK:STDOUT: %Class => constants.%Class
// CHECK:STDOUT: %pattern_type.loc10_8 => constants.%pattern_type.e18
// CHECK:STDOUT: %self.param_patt.loc10_8.2 => constants.%self.param_patt.aaa
// CHECK:STDOUT: %self.patt.loc10_8.2 => constants.%self.patt.d8a
// CHECK:STDOUT: %self.patt.loc10_8.2 => constants.%self.patt.f4e
// CHECK:STDOUT: %T.as_type.loc10_17.1 => constants.%T.as_type
// CHECK:STDOUT: %.loc10_17.2 => constants.%.1ce700.2
// CHECK:STDOUT: %pattern_type.loc10_17 => constants.%pattern_type.2c66b4.2
@@ -88,7 +88,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 {
// CHECK:STDOUT: %Derived.e87: type = class_type @Derived, @Derived(%T.as_type) [symbolic]
// CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %Derived.e87 [symbolic]
// CHECK:STDOUT: %x.param_patt.203: %pattern_type.ebc = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.c37: %pattern_type.ebc = at_binding_pattern x, %x.param_patt.203 [symbolic]
// CHECK:STDOUT: %x.patt.2d0: %pattern_type.ebc = wrapper_binding_pattern x, %x.param_patt.203 [symbolic]
// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %return.param_patt.bf4475.2: %pattern_type.2c66b4.2 = out_param_pattern [symbolic]
@@ -179,7 +179,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 {
// CHECK:STDOUT: %Derived.loc13_44.1 => constants.%Derived.e87
// CHECK:STDOUT: %pattern_type.loc13_33 => constants.%pattern_type.ebc
// CHECK:STDOUT: %x.param_patt.loc13_33.2 => constants.%x.param_patt.203
// CHECK:STDOUT: %x.patt.loc13_33.2 => constants.%x.patt.c37
// CHECK:STDOUT: %x.patt.loc13_33.2 => constants.%x.patt.2d0
// CHECK:STDOUT: %.loc13_50.2 => constants.%.1ce700.2
// CHECK:STDOUT: %pattern_type.loc13_50 => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %return.param_patt.loc13_50.2 => constants.%return.param_patt.bf4475.2
@@ -193,7 +193,7 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 {
// CHECK:STDOUT: %Derived.loc19_41.1 => constants.%Derived.e87
// CHECK:STDOUT: %pattern_type.loc19_30 => constants.%pattern_type.ebc
// CHECK:STDOUT: %x.param_patt.loc19_30.2 => constants.%x.param_patt.203
// CHECK:STDOUT: %x.patt.loc19_30.2 => constants.%x.patt.c37
// CHECK:STDOUT: %x.patt.loc19_30.2 => constants.%x.patt.2d0
// CHECK:STDOUT: %.loc19_47.2 => constants.%.1ce700.2
// CHECK:STDOUT: %pattern_type.loc19_47 => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %return.param_patt.loc19_47.2 => constants.%return.param_patt.bf4475.2
@@ -128,7 +128,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f84 [symbolic]
// CHECK:STDOUT: %pattern_type.2c66b4.2: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %n.param_patt: %pattern_type.2c66b4.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %n.patt.8c9: %pattern_type.2c66b4.2 = at_binding_pattern n, %n.param_patt [symbolic]
// CHECK:STDOUT: %n.patt.364: %pattern_type.2c66b4.2 = wrapper_binding_pattern n, %n.param_patt [symbolic]
// CHECK:STDOUT: %.1ce700.2: Core.Form = init_form %T.as_type [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, %T.as_type [symbolic]
@@ -136,7 +136,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %pattern_type.e18: type = pattern_type %Class [symbolic]
// CHECK:STDOUT: %self.param_patt.aaa: %pattern_type.e18 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.d8a: %pattern_type.e18 = at_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %self.patt.f4e: %pattern_type.e18 = wrapper_binding_pattern self, %self.param_patt.aaa [symbolic]
// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.f84) [symbolic]
// CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic]
// CHECK:STDOUT: %require_complete.d83: <witness> = require_complete_type %T.as_type [symbolic]
@@ -174,7 +174,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] {
// CHECK:STDOUT: %n.param_patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %n.param_patt.loc6 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt.loc11 [symbolic = %n.patt.loc6 (constants.%n.patt.8c9)]
// CHECK:STDOUT: %n.patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern n, %n.param_patt.loc11 [symbolic = %n.patt.loc6 (constants.%n.patt.364)]
// CHECK:STDOUT: %return.param_patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc6 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc11, %.loc11_35.2 [symbolic = %return.patt.loc6 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -200,7 +200,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [symbolic = constants.%Class.G] {
// CHECK:STDOUT: %self.param_patt.loc15: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = value_param_pattern [symbolic = %self.param_patt.loc7 (constants.%self.param_patt.aaa)]
// CHECK:STDOUT: %self.patt.loc15: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc15 [symbolic = %self.patt.loc7 (constants.%self.patt.d8a)]
// CHECK:STDOUT: %self.patt.loc15: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc15 [symbolic = %self.patt.loc7 (constants.%self.patt.f4e)]
// CHECK:STDOUT: %return.param_patt.loc15: @Class.G.%pattern_type.loc7_17 (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc7 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc15: @Class.G.%pattern_type.loc7_17 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc15, %.loc15_35.2 [symbolic = %return.patt.loc7 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -246,7 +246,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: class {
// CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] {
// CHECK:STDOUT: %n.param_patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %n.param_patt.loc6 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt.loc11 [symbolic = %n.patt.loc6 (constants.%n.patt.8c9)]
// CHECK:STDOUT: %n.patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern n, %n.param_patt.loc11 [symbolic = %n.patt.loc6 (constants.%n.patt.364)]
// CHECK:STDOUT: %return.param_patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc6 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc11: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc11, %.loc11_35.2 [symbolic = %return.patt.loc6 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -266,7 +266,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] {
// CHECK:STDOUT: %self.param_patt.loc15: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = value_param_pattern [symbolic = %self.param_patt.loc7 (constants.%self.param_patt.aaa)]
// CHECK:STDOUT: %self.patt.loc15: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc15 [symbolic = %self.patt.loc7 (constants.%self.patt.d8a)]
// CHECK:STDOUT: %self.patt.loc15: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc15 [symbolic = %self.patt.loc7 (constants.%self.patt.f4e)]
// CHECK:STDOUT: %return.param_patt.loc15: @Class.G.%pattern_type.loc7_17 (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc7 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc15: @Class.G.%pattern_type.loc7_17 (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc15, %.loc15_35.2 [symbolic = %return.patt.loc7 (constants.%return.patt.f44)]
// CHECK:STDOUT: } {
@@ -301,7 +301,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %T.as_type.loc6_11.1: type = facet_access_type %T.loc6 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.2c66b4.2)]
// CHECK:STDOUT: %n.param_patt.loc6: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %n.param_patt.loc6 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc6: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt.loc6 [symbolic = %n.patt.loc6 (constants.%n.patt.8c9)]
// CHECK:STDOUT: %n.patt.loc6: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = wrapper_binding_pattern n, %n.param_patt.loc6 [symbolic = %n.patt.loc6 (constants.%n.patt.364)]
// CHECK:STDOUT: %.loc6_17.1: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.1 (constants.%.1ce700.2)]
// CHECK:STDOUT: %return.param_patt.loc6: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = out_param_pattern [symbolic = %return.param_patt.loc6 (constants.%return.param_patt.bf4475.2)]
// CHECK:STDOUT: %return.patt.loc6: @Class.F.%pattern_type (%pattern_type.2c66b4.2) = return_slot_pattern %return.param_patt.loc6, %T.as_type.loc6_11.1 [symbolic = %return.patt.loc6 (constants.%return.patt.f44)]
@@ -334,7 +334,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc7) [symbolic = %Class (constants.%Class)]
// CHECK:STDOUT: %pattern_type.loc7_8: type = pattern_type %Class [symbolic = %pattern_type.loc7_8 (constants.%pattern_type.e18)]
// CHECK:STDOUT: %self.param_patt.loc7: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = value_param_pattern [symbolic = %self.param_patt.loc7 (constants.%self.param_patt.aaa)]
// CHECK:STDOUT: %self.patt.loc7: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = at_binding_pattern self, %self.param_patt.loc7 [symbolic = %self.patt.loc7 (constants.%self.patt.d8a)]
// CHECK:STDOUT: %self.patt.loc7: @Class.G.%pattern_type.loc7_8 (%pattern_type.e18) = wrapper_binding_pattern self, %self.param_patt.loc7 [symbolic = %self.patt.loc7 (constants.%self.patt.f4e)]
// CHECK:STDOUT: %T.as_type.loc7_17.1: type = facet_access_type %T.loc7 [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)]
// CHECK:STDOUT: %.loc7_17.1: Core.Form = init_form %T.as_type.loc7_17.1 [symbolic = %.loc7_17.1 (constants.%.1ce700.2)]
// CHECK:STDOUT: %pattern_type.loc7_17: type = pattern_type %T.as_type.loc7_17.1 [symbolic = %pattern_type.loc7_17 (constants.%pattern_type.2c66b4.2)]
@@ -393,7 +393,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %n.param_patt.loc6 => constants.%n.param_patt
// CHECK:STDOUT: %n.patt.loc6 => constants.%n.patt.8c9
// CHECK:STDOUT: %n.patt.loc6 => constants.%n.patt.364
// CHECK:STDOUT: %.loc6_17.1 => constants.%.1ce700.2
// CHECK:STDOUT: %return.param_patt.loc6 => constants.%return.param_patt.bf4475.2
// CHECK:STDOUT: %return.patt.loc6 => constants.%return.patt.f44
@@ -404,7 +404,7 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %Class => constants.%Class
// CHECK:STDOUT: %pattern_type.loc7_8 => constants.%pattern_type.e18
// CHECK:STDOUT: %self.param_patt.loc7 => constants.%self.param_patt.aaa
// CHECK:STDOUT: %self.patt.loc7 => constants.%self.patt.d8a
// CHECK:STDOUT: %self.patt.loc7 => constants.%self.patt.f4e
// CHECK:STDOUT: %T.as_type.loc7_17.1 => constants.%T.as_type
// CHECK:STDOUT: %.loc7_17.1 => constants.%.1ce700.2
// CHECK:STDOUT: %pattern_type.loc7_17 => constants.%pattern_type.2c66b4.2
@@ -431,9 +431,9 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %B: type = class_type @B, @B(%T, %_) [symbolic]
// CHECK:STDOUT: %pattern_type.b16: type = pattern_type %B [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.b16 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.b16 = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.b16 = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %a.param_patt: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.51d = at_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.51d = wrapper_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %B.F.type: type = fn_type @B.F, @B(%T, %_) [symbolic]
// CHECK:STDOUT: %B.F: %B.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
@@ -454,9 +454,9 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [symbolic = constants.%B.F] {
// CHECK:STDOUT: %self.param_patt.loc11: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = value_param_pattern [symbolic = %self.param_patt.loc7 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc11: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = at_binding_pattern self, %self.param_patt.loc11 [symbolic = %self.patt.loc7 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc11: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = wrapper_binding_pattern self, %self.param_patt.loc11 [symbolic = %self.patt.loc7 (constants.%self.patt)]
// CHECK:STDOUT: %a.param_patt.loc11: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = value_param_pattern [symbolic = %a.param_patt.loc7 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc11: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = at_binding_pattern a, %a.param_patt.loc11 [symbolic = %a.patt.loc7 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc11: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = wrapper_binding_pattern a, %a.param_patt.loc11 [symbolic = %a.patt.loc7 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc11_9.1: type = splice_block %.loc11_9.2 [concrete = type] {
// CHECK:STDOUT: %.Self.frozen.loc11_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -521,9 +521,9 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: class {
// CHECK:STDOUT: %B.F.decl: @B.%B.F.type (%B.F.type) = fn_decl @B.F [symbolic = @B.%B.F (constants.%B.F)] {
// CHECK:STDOUT: %self.param_patt.loc11: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = value_param_pattern [symbolic = %self.param_patt.loc7 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc11: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = at_binding_pattern self, %self.param_patt.loc11 [symbolic = %self.patt.loc7 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc11: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = wrapper_binding_pattern self, %self.param_patt.loc11 [symbolic = %self.patt.loc7 (constants.%self.patt)]
// CHECK:STDOUT: %a.param_patt.loc11: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = value_param_pattern [symbolic = %a.param_patt.loc7 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc11: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = at_binding_pattern a, %a.param_patt.loc11 [symbolic = %a.patt.loc7 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc11: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = wrapper_binding_pattern a, %a.param_patt.loc11 [symbolic = %a.patt.loc7 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc7: @B.F.%B (%B) = value_param call_param0
// CHECK:STDOUT: %.loc7_10.1: type = splice_block %Self.ref.loc7 [symbolic = %B (constants.%B)] {
@@ -551,10 +551,10 @@ fn Generic(unused T: ()).WrongType() {}
// CHECK:STDOUT: %B: type = class_type @B, @B(%T.loc7, %_.loc7) [symbolic = %B (constants.%B)]
// CHECK:STDOUT: %pattern_type.loc7_10: type = pattern_type %B [symbolic = %pattern_type.loc7_10 (constants.%pattern_type.b16)]
// CHECK:STDOUT: %self.param_patt.loc7: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = value_param_pattern [symbolic = %self.param_patt.loc7 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc7: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = at_binding_pattern self, %self.param_patt.loc7 [symbolic = %self.patt.loc7 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc7: @B.F.%pattern_type.loc7_10 (%pattern_type.b16) = wrapper_binding_pattern self, %self.param_patt.loc7 [symbolic = %self.patt.loc7 (constants.%self.patt)]
// CHECK:STDOUT: %pattern_type.loc7_17: type = pattern_type %T.loc7 [symbolic = %pattern_type.loc7_17 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %a.param_patt.loc7: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = value_param_pattern [symbolic = %a.param_patt.loc7 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc7: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = at_binding_pattern a, %a.param_patt.loc7 [symbolic = %a.patt.loc7 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc7: @B.F.%pattern_type.loc7_17 (%pattern_type.51d) = wrapper_binding_pattern a, %a.param_patt.loc7 [symbolic = %a.patt.loc7 (constants.%a.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc11_32: <witness> = require_complete_type %B [symbolic = %require_complete.loc11_32 (constants.%require_complete.0e8)]
+22 -22
View File
@@ -79,7 +79,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %struct_type.n.797: type = struct_type {.n: %T.as_type} [symbolic]
// CHECK:STDOUT: %complete_type.22c: <witness> = complete_type_witness %struct_type.n.797 [symbolic]
// CHECK:STDOUT: %n.param_patt.18f: %pattern_type.2c66b4.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %n.patt.8c9: %pattern_type.2c66b4.2 = at_binding_pattern n, %n.param_patt.18f [symbolic]
// CHECK:STDOUT: %n.patt.364: %pattern_type.2c66b4.2 = wrapper_binding_pattern n, %n.param_patt.18f [symbolic]
// CHECK:STDOUT: %.c17: Core.Form = init_form %Inner.06b [symbolic]
// CHECK:STDOUT: %pattern_type.c1c: type = pattern_type %Inner.06b [symbolic]
// CHECK:STDOUT: %return.param_patt.953: %pattern_type.c1c = out_param_pattern [symbolic]
@@ -128,7 +128,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Copy.impl_witness.0b3: <witness> = impl_witness imports.%Copy.impl_witness_table.ee5 [concrete]
// CHECK:STDOUT: %Copy.facet.d66: %Copy.type = facet_value Core.IntLiteral, (%Copy.impl_witness.0b3) [concrete]
// CHECK:STDOUT: %n.param_patt.47b: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt.f0b: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt.47b [concrete]
// CHECK:STDOUT: %n.patt.ae8: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt.47b [concrete]
// CHECK:STDOUT: %.705: Core.Form = init_form %Inner.84a [concrete]
// CHECK:STDOUT: %return.param_patt.6b5: %pattern_type.4f49 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.3cd: %pattern_type.4f49 = return_slot_pattern %return.param_patt.6b5, %Inner.84a [concrete]
@@ -219,7 +219,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Outer.%Inner (constants.%Inner.06b)] {} {}
// CHECK:STDOUT: %Outer.F.decl: @Outer.%Outer.F.type (%Outer.F.type.823) = fn_decl @Outer.F [symbolic = @Outer.%Outer.F (constants.%Outer.F.e27)] {
// CHECK:STDOUT: %n.param_patt.loc9_9.1: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %n.param_patt.loc9_9.2 (constants.%n.param_patt.18f)]
// CHECK:STDOUT: %n.patt.loc9_9.1: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt.loc9_9.1 [symbolic = %n.patt.loc9_9.2 (constants.%n.patt.8c9)]
// CHECK:STDOUT: %n.patt.loc9_9.1: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = wrapper_binding_pattern n, %n.param_patt.loc9_9.1 [symbolic = %n.patt.loc9_9.2 (constants.%n.patt.364)]
// CHECK:STDOUT: %return.param_patt.loc9_17.1: @Outer.F.%pattern_type.loc9_17 (%pattern_type.c1c) = out_param_pattern [symbolic = %return.param_patt.loc9_17.2 (constants.%return.param_patt.953)]
// CHECK:STDOUT: %return.patt.loc9_14.1: @Outer.F.%pattern_type.loc9_17 (%pattern_type.c1c) = return_slot_pattern %return.param_patt.loc9_17.1, %Inner.ref [symbolic = %return.patt.loc9_14.2 (constants.%return.patt.0b4)]
// CHECK:STDOUT: } {
@@ -276,7 +276,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %T.as_type.loc9_11.1: type = facet_access_type %T [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type.loc9_9: type = pattern_type %T.as_type.loc9_11.1 [symbolic = %pattern_type.loc9_9 (constants.%pattern_type.2c66b4.2)]
// CHECK:STDOUT: %n.param_patt.loc9_9.2: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = value_param_pattern [symbolic = %n.param_patt.loc9_9.2 (constants.%n.param_patt.18f)]
// CHECK:STDOUT: %n.patt.loc9_9.2: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = at_binding_pattern n, %n.param_patt.loc9_9.2 [symbolic = %n.patt.loc9_9.2 (constants.%n.patt.8c9)]
// CHECK:STDOUT: %n.patt.loc9_9.2: @Outer.F.%pattern_type.loc9_9 (%pattern_type.2c66b4.2) = wrapper_binding_pattern n, %n.param_patt.loc9_9.2 [symbolic = %n.patt.loc9_9.2 (constants.%n.patt.364)]
// CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.06b)]
// CHECK:STDOUT: %.loc9_17.1: Core.Form = init_form %Inner [symbolic = %.loc9_17.1 (constants.%.c17)]
// CHECK:STDOUT: %pattern_type.loc9_17: type = pattern_type %Inner [symbolic = %pattern_type.loc9_17 (constants.%pattern_type.c1c)]
@@ -411,7 +411,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.2c66b4.2
// CHECK:STDOUT: %n.param_patt.loc9_9.2 => constants.%n.param_patt.18f
// CHECK:STDOUT: %n.patt.loc9_9.2 => constants.%n.patt.8c9
// CHECK:STDOUT: %n.patt.loc9_9.2 => constants.%n.patt.364
// CHECK:STDOUT: %Inner => constants.%Inner.06b
// CHECK:STDOUT: %.loc9_17.1 => constants.%.c17
// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.c1c
@@ -447,7 +447,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%i32
// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.6b6
// CHECK:STDOUT: %n.param_patt.loc9_9.2 => constants.%n.param_patt.47b
// CHECK:STDOUT: %n.patt.loc9_9.2 => constants.%n.patt.f0b
// CHECK:STDOUT: %n.patt.loc9_9.2 => constants.%n.patt.ae8
// CHECK:STDOUT: %Inner => constants.%Inner.84a
// CHECK:STDOUT: %.loc9_17.1 => constants.%.705
// CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.4f49
@@ -482,7 +482,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Self.as_type.abe: type = facet_access_type %Self.656 [symbolic]
// CHECK:STDOUT: %pattern_type.397: type = pattern_type %Self.as_type.abe [symbolic]
// CHECK:STDOUT: %self.param_patt.1f9: %pattern_type.397 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.621: %pattern_type.397 = at_binding_pattern self, %self.param_patt.1f9 [symbolic]
// CHECK:STDOUT: %self.patt.a21: %pattern_type.397 = wrapper_binding_pattern self, %self.param_patt.1f9 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -497,7 +497,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %require_complete.fcc: <witness> = require_complete_type %Inner.type.84b [symbolic]
// CHECK:STDOUT: %pattern_type.6fd: type = pattern_type %C.7d7 [symbolic]
// CHECK:STDOUT: %self.param_patt.b1b: %pattern_type.6fd = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.b71: %pattern_type.6fd = at_binding_pattern self, %self.param_patt.b1b [symbolic]
// CHECK:STDOUT: %self.patt.d43: %pattern_type.6fd = wrapper_binding_pattern self, %self.param_patt.b1b [symbolic]
// CHECK:STDOUT: %C.as.Inner.impl.F.type.1ec: type = fn_type @C.as.Inner.impl.F, @C.as.Inner.impl(%T) [symbolic]
// CHECK:STDOUT: %C.as.Inner.impl.F.4be: %C.as.Inner.impl.F.type.1ec = struct_value () [symbolic]
// CHECK:STDOUT: %Inner.facet.fcd: %Inner.type.84b = facet_value %C.7d7, (%Inner.impl_witness.98e) [symbolic]
@@ -532,7 +532,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %assoc0.7b8: %Inner.assoc_type.477 = assoc_entity element0, @Inner.WithSelf.%Inner.WithSelf.F.decl [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: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %return.param_patt.a9a: %pattern_type.6b6 = out_param_pattern [concrete]
@@ -562,7 +562,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Inner.WithSelf.F.fdd: %Inner.WithSelf.F.type.9ea = struct_value () [concrete]
// CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %Inner.WithSelf.F.type.9ea, %Inner.facet.a19 [concrete]
// CHECK:STDOUT: %self.param_patt.edf: %pattern_type.9d0 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.14b: %pattern_type.9d0 = at_binding_pattern self, %self.param_patt.edf [concrete]
// CHECK:STDOUT: %self.patt.2f9: %pattern_type.9d0 = wrapper_binding_pattern self, %self.param_patt.edf [concrete]
// CHECK:STDOUT: %C.as.Inner.impl.F.specific_fn: <specific function> = specific_function %C.as.Inner.impl.F.e77, @C.as.Inner.impl.F(%i32) [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc23_3.2 [concrete]
@@ -622,7 +622,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.792) = fn_decl @Inner.WithSelf.F [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.576)] {
// CHECK:STDOUT: %self.param_patt.loc6_10.1: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.397) = value_param_pattern [symbolic = %self.param_patt.loc6_10.2 (constants.%self.param_patt.1f9)]
// CHECK:STDOUT: %self.patt.loc6_10.1: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.397) = at_binding_pattern self, %self.param_patt.loc6_10.1 [symbolic = %self.patt.loc6_10.2 (constants.%self.patt.621)]
// CHECK:STDOUT: %self.patt.loc6_10.1: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.397) = wrapper_binding_pattern self, %self.param_patt.loc6_10.1 [symbolic = %self.patt.loc6_10.2 (constants.%self.patt.a21)]
// CHECK:STDOUT: %return.param_patt.loc6_19.1: @Inner.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_19.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc6_16.1: @Inner.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc6_19.1, %T.ref [symbolic = %return.patt.loc6_16.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -670,7 +670,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: impl: %Self.ref as %Inner.ref {
// CHECK:STDOUT: %C.as.Inner.impl.F.decl: @C.as.Inner.impl.%C.as.Inner.impl.F.type (%C.as.Inner.impl.F.type.1ec) = fn_decl @C.as.Inner.impl.F [symbolic = @C.as.Inner.impl.%C.as.Inner.impl.F (constants.%C.as.Inner.impl.F.4be)] {
// CHECK:STDOUT: %self.param_patt.loc11_16.1: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = value_param_pattern [symbolic = %self.param_patt.loc11_16.2 (constants.%self.param_patt.b1b)]
// CHECK:STDOUT: %self.patt.loc11_16.1: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = at_binding_pattern self, %self.param_patt.loc11_16.1 [symbolic = %self.patt.loc11_16.2 (constants.%self.patt.b71)]
// CHECK:STDOUT: %self.patt.loc11_16.1: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = wrapper_binding_pattern self, %self.param_patt.loc11_16.1 [symbolic = %self.patt.loc11_16.2 (constants.%self.patt.d43)]
// CHECK:STDOUT: %return.param_patt.loc11_24.1: @C.as.Inner.impl.F.%pattern_type.loc11_24 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc11_24.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc11_21.1: @C.as.Inner.impl.F.%pattern_type.loc11_24 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc11_24.1, %T.ref [symbolic = %return.patt.loc11_21.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -701,7 +701,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: impl @D.as.Inner.impl: %Self.ref as %Inner.ref {
// CHECK:STDOUT: %D.as.Inner.impl.F.decl: %D.as.Inner.impl.F.type = fn_decl @D.as.Inner.impl.F [concrete = constants.%D.as.Inner.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: %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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -792,7 +792,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Self.as_type.loc6_10.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_10.1 (constants.%Self.as_type.abe)]
// CHECK:STDOUT: %pattern_type.loc6_10: type = pattern_type %Self.as_type.loc6_10.1 [symbolic = %pattern_type.loc6_10 (constants.%pattern_type.397)]
// CHECK:STDOUT: %self.param_patt.loc6_10.2: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.397) = value_param_pattern [symbolic = %self.param_patt.loc6_10.2 (constants.%self.param_patt.1f9)]
// CHECK:STDOUT: %self.patt.loc6_10.2: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.397) = at_binding_pattern self, %self.param_patt.loc6_10.2 [symbolic = %self.patt.loc6_10.2 (constants.%self.patt.621)]
// CHECK:STDOUT: %self.patt.loc6_10.2: @Inner.WithSelf.F.%pattern_type.loc6_10 (%pattern_type.397) = wrapper_binding_pattern self, %self.param_patt.loc6_10.2 [symbolic = %self.patt.loc6_10.2 (constants.%self.patt.a21)]
// CHECK:STDOUT: %.loc6_19.1: Core.Form = init_form %T [symbolic = %.loc6_19.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc6_19: type = pattern_type %T [symbolic = %pattern_type.loc6_19 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc6_19.2: @Inner.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_19.2 (constants.%return.param_patt.41d)]
@@ -806,7 +806,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.7d7)]
// CHECK:STDOUT: %pattern_type.loc11_16: type = pattern_type %C [symbolic = %pattern_type.loc11_16 (constants.%pattern_type.6fd)]
// CHECK:STDOUT: %self.param_patt.loc11_16.2: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = value_param_pattern [symbolic = %self.param_patt.loc11_16.2 (constants.%self.param_patt.b1b)]
// CHECK:STDOUT: %self.patt.loc11_16.2: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = at_binding_pattern self, %self.param_patt.loc11_16.2 [symbolic = %self.patt.loc11_16.2 (constants.%self.patt.b71)]
// CHECK:STDOUT: %self.patt.loc11_16.2: @C.as.Inner.impl.F.%pattern_type.loc11_16 (%pattern_type.6fd) = wrapper_binding_pattern self, %self.param_patt.loc11_16.2 [symbolic = %self.patt.loc11_16.2 (constants.%self.patt.d43)]
// CHECK:STDOUT: %.loc11_24.2: Core.Form = init_form %T [symbolic = %.loc11_24.2 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc11_24: type = pattern_type %T [symbolic = %pattern_type.loc11_24 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc11_24.2: @C.as.Inner.impl.F.%pattern_type.loc11_24 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc11_24.2 (constants.%return.param_patt.41d)]
@@ -925,7 +925,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Self.as_type.loc6_10.1 => constants.%Self.as_type.abe
// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.397
// CHECK:STDOUT: %self.param_patt.loc6_10.2 => constants.%self.param_patt.1f9
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.621
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.a21
// CHECK:STDOUT: %.loc6_19.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_19.2 => constants.%return.param_patt.41d
@@ -954,7 +954,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %C => constants.%C.7d7
// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.6fd
// CHECK:STDOUT: %self.param_patt.loc11_16.2 => constants.%self.param_patt.b1b
// CHECK:STDOUT: %self.patt.loc11_16.2 => constants.%self.patt.b71
// CHECK:STDOUT: %self.patt.loc11_16.2 => constants.%self.patt.d43
// CHECK:STDOUT: %.loc11_24.2 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc11_24 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc11_24.2 => constants.%return.param_patt.41d
@@ -979,7 +979,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Self.as_type.loc6_10.1 => constants.%C.7d7
// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.6fd
// CHECK:STDOUT: %self.param_patt.loc6_10.2 => constants.%self.param_patt.b1b
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.b71
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.d43
// CHECK:STDOUT: %.loc6_19.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_19.2 => constants.%return.param_patt.41d
@@ -1004,7 +1004,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Self.as_type.loc6_10.1 => constants.%C.7d7
// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.6fd
// CHECK:STDOUT: %self.param_patt.loc6_10.2 => constants.%self.param_patt.b1b
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.b71
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.d43
// CHECK:STDOUT: %.loc6_19.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_19.2 => constants.%return.param_patt.41d
@@ -1060,7 +1060,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Self.as_type.loc6_10.1 => constants.%D
// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.d8d
// CHECK:STDOUT: %self.param_patt.loc6_10.2 => constants.%self.param_patt.f16
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.6c0
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.752
// CHECK:STDOUT: %.loc6_19.1 => constants.%.795
// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.6b6
// CHECK:STDOUT: %return.param_patt.loc6_19.2 => constants.%return.param_patt.a9a
@@ -1096,7 +1096,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %C => constants.%C.b7f
// CHECK:STDOUT: %pattern_type.loc11_16 => constants.%pattern_type.9d0
// CHECK:STDOUT: %self.param_patt.loc11_16.2 => constants.%self.param_patt.edf
// CHECK:STDOUT: %self.patt.loc11_16.2 => constants.%self.patt.14b
// CHECK:STDOUT: %self.patt.loc11_16.2 => constants.%self.patt.2f9
// CHECK:STDOUT: %.loc11_24.2 => constants.%.795
// CHECK:STDOUT: %pattern_type.loc11_24 => constants.%pattern_type.6b6
// CHECK:STDOUT: %return.param_patt.loc11_24.2 => constants.%return.param_patt.a9a
@@ -1125,7 +1125,7 @@ fn Test() -> i32 {
// CHECK:STDOUT: %Self.as_type.loc6_10.1 => constants.%C.b7f
// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.9d0
// CHECK:STDOUT: %self.param_patt.loc6_10.2 => constants.%self.param_patt.edf
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.14b
// CHECK:STDOUT: %self.patt.loc6_10.2 => constants.%self.patt.2f9
// CHECK:STDOUT: %.loc6_19.1 => constants.%.795
// CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.6b6
// CHECK:STDOUT: %return.param_patt.loc6_19.2 => constants.%return.param_patt.a9a
+17 -17
View File
@@ -63,13 +63,13 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %Class.Get.ceb: %Class.Get.type.49d = struct_value () [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %x.param_patt.91d: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.800: %pattern_type.51d = at_binding_pattern x, %x.param_patt.91d [symbolic]
// CHECK:STDOUT: %x.patt.260: %pattern_type.51d = wrapper_binding_pattern x, %x.param_patt.91d [symbolic]
// CHECK:STDOUT: %Class.GetNoDeduce.type.83e: type = fn_type @Class.GetNoDeduce, @Class(%T) [symbolic]
// CHECK:STDOUT: %Class.GetNoDeduce.a04: %Class.GetNoDeduce.type.83e = struct_value () [symbolic]
// CHECK:STDOUT: %Class.d74: type = class_type @Class, @Class(%U) [symbolic]
// CHECK:STDOUT: %pattern_type.cc0: type = pattern_type %Class.d74 [symbolic]
// CHECK:STDOUT: %self.param_patt.814: %pattern_type.cc0 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.868: %pattern_type.cc0 = at_binding_pattern self, %self.param_patt.814 [symbolic]
// CHECK:STDOUT: %self.patt.788: %pattern_type.cc0 = wrapper_binding_pattern self, %self.param_patt.814 [symbolic]
// CHECK:STDOUT: %.822: Core.Form = init_form %U [symbolic]
// CHECK:STDOUT: %pattern_type.946: type = pattern_type %U [symbolic]
// CHECK:STDOUT: %return.param_patt.6dd: %pattern_type.946 = out_param_pattern [symbolic]
@@ -91,7 +91,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %Class.30a: type = class_type @Class, @Class(%A) [concrete]
// CHECK:STDOUT: %pattern_type.89e: type = pattern_type %Class.30a [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.89e = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %tuple.9aa: %tuple.type.24b = tuple_value (%A, %B) [concrete]
// CHECK:STDOUT: %tuple.type.1e7: type = tuple_type (%A, %B) [concrete]
// CHECK:STDOUT: %.7f5: Core.Form = init_form %tuple.type.1e7 [concrete]
@@ -112,7 +112,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %x.param_patt.4c3: %pattern_type.9ef = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.313: %pattern_type.9ef = at_binding_pattern x, %x.param_patt.4c3 [concrete]
// CHECK:STDOUT: %x.patt.e63: %pattern_type.9ef = wrapper_binding_pattern x, %x.param_patt.4c3 [concrete]
// CHECK:STDOUT: %Class.GetNoDeduce.specific_fn.931: <specific function> = specific_function %Class.GetNoDeduce.c1e, @Class.GetNoDeduce(%A, %B) [concrete]
// CHECK:STDOUT: %A.val: %A = struct_value () [concrete]
// CHECK:STDOUT: %.367: ref %A = temporary invalid, %A.val [concrete]
@@ -126,7 +126,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %CallMethodSelfDeduce.type: type = fn_type @CallMethodSelfDeduce [concrete]
// CHECK:STDOUT: %CallMethodSelfDeduce: %CallMethodSelfDeduce.type = struct_value () [concrete]
// CHECK:STDOUT: %self.param_patt.225: %pattern_type.89e = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.39c: %pattern_type.89e = at_binding_pattern self, %self.param_patt.225 [concrete]
// CHECK:STDOUT: %self.patt.94c: %pattern_type.89e = wrapper_binding_pattern self, %self.param_patt.225 [concrete]
// CHECK:STDOUT: %Class.F.specific_fn.0bd: <specific function> = specific_function %Class.F.805, @Class.F(%A, %A) [concrete]
// CHECK:STDOUT: %complete_type.c44: <witness> = complete_type_witness %tuple.type.1e7 [concrete]
// CHECK:STDOUT: }
@@ -164,7 +164,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.89e = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c6 = out_param_pattern [concrete = constants.%return.param_patt.1be]
// CHECK:STDOUT: %return.patt: %pattern_type.7c6 = return_slot_pattern %return.param_patt, %.loc24_43.3 [concrete = constants.%return.patt.709]
// CHECK:STDOUT: } {
@@ -185,7 +185,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallGenericMethodWithNonDeducedParam.decl: %CallGenericMethodWithNonDeducedParam.type = fn_decl @CallGenericMethodWithNonDeducedParam [concrete = constants.%CallGenericMethodWithNonDeducedParam] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.89e = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.7c6 = out_param_pattern [concrete = constants.%return.param_patt.1be]
// CHECK:STDOUT: %return.patt: %pattern_type.7c6 = return_slot_pattern %return.param_patt, %.loc28_62.3 [concrete = constants.%return.patt.709]
// CHECK:STDOUT: } {
@@ -206,7 +206,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallMethodSelfDeduce.decl: %CallMethodSelfDeduce.type = fn_decl @CallMethodSelfDeduce [concrete = constants.%CallMethodSelfDeduce] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.89e = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.89e = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.9ef = out_param_pattern [concrete = constants.%return.param_patt.f0c]
// CHECK:STDOUT: %return.patt: %pattern_type.9ef = return_slot_pattern %return.param_patt, %A.ref.loc32_41 [concrete = constants.%return.patt.a6d]
// CHECK:STDOUT: } {
@@ -273,7 +273,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.GetNoDeduce.decl: @Class.%Class.GetNoDeduce.type (%Class.GetNoDeduce.type.83e) = fn_decl @Class.GetNoDeduce [symbolic = @Class.%Class.GetNoDeduce (constants.%Class.GetNoDeduce.a04)] {
// CHECK:STDOUT: %x.param_patt.loc20_19.1: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc20_19.2 (constants.%x.param_patt.91d)]
// CHECK:STDOUT: %x.patt.loc20_19.1: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc20_19.1 [symbolic = %x.patt.loc20_19.2 (constants.%x.patt.800)]
// CHECK:STDOUT: %x.patt.loc20_19.1: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc20_19.1 [symbolic = %x.patt.loc20_19.2 (constants.%x.patt.260)]
// CHECK:STDOUT: %U.patt.loc20_33.1: %pattern_type.98f = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc20_33.2 (constants.%U.patt)]
// CHECK:STDOUT: %return.param_patt.loc20_49.1: @Class.GetNoDeduce.%pattern_type.loc20_49 (%pattern_type.eee) = out_param_pattern [symbolic = %return.param_patt.loc20_49.2 (constants.%return.param_patt.a41)]
// CHECK:STDOUT: %return.patt.loc20_41.1: @Class.GetNoDeduce.%pattern_type.loc20_49 (%pattern_type.eee) = return_slot_pattern %return.param_patt.loc20_49.1, %.loc20_49.4 [symbolic = %return.patt.loc20_41.2 (constants.%return.patt.453)]
@@ -297,7 +297,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type.982) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F.c63)] {
// CHECK:STDOUT: %U.patt.loc21_9.1: %pattern_type.98f = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc21_9.2 (constants.%U.patt)]
// CHECK:STDOUT: %self.param_patt.loc21_21.1: @Class.F.%pattern_type.loc21_21 (%pattern_type.cc0) = value_param_pattern [symbolic = %self.param_patt.loc21_21.2 (constants.%self.param_patt.814)]
// CHECK:STDOUT: %self.patt.loc21_21.1: @Class.F.%pattern_type.loc21_21 (%pattern_type.cc0) = at_binding_pattern self, %self.param_patt.loc21_21.1 [symbolic = %self.patt.loc21_21.2 (constants.%self.patt.868)]
// CHECK:STDOUT: %self.patt.loc21_21.1: @Class.F.%pattern_type.loc21_21 (%pattern_type.cc0) = wrapper_binding_pattern self, %self.param_patt.loc21_21.1 [symbolic = %self.patt.loc21_21.2 (constants.%self.patt.788)]
// CHECK:STDOUT: %return.param_patt.loc21_36.1: @Class.F.%pattern_type.loc21_36 (%pattern_type.946) = out_param_pattern [symbolic = %return.param_patt.loc21_36.2 (constants.%return.param_patt.6dd)]
// CHECK:STDOUT: %return.patt.loc21_33.1: @Class.F.%pattern_type.loc21_36 (%pattern_type.946) = return_slot_pattern %return.param_patt.loc21_36.1, %U.ref.loc21_36 [symbolic = %return.patt.loc21_33.2 (constants.%return.patt.4dd)]
// CHECK:STDOUT: } {
@@ -364,7 +364,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
// CHECK:STDOUT: %pattern_type.loc20_19: type = pattern_type %T [symbolic = %pattern_type.loc20_19 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %x.param_patt.loc20_19.2: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc20_19.2 (constants.%x.param_patt.91d)]
// CHECK:STDOUT: %x.patt.loc20_19.2: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc20_19.2 [symbolic = %x.patt.loc20_19.2 (constants.%x.patt.800)]
// CHECK:STDOUT: %x.patt.loc20_19.2: @Class.GetNoDeduce.%pattern_type.loc20_19 (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc20_19.2 [symbolic = %x.patt.loc20_19.2 (constants.%x.patt.260)]
// CHECK:STDOUT: %U.patt.loc20_33.2: %pattern_type.98f = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc20_33.2 (constants.%U.patt)]
// CHECK:STDOUT: %U.loc20_33.1: type = symbolic_binding U, 1 [symbolic = %U.loc20_33.1 (constants.%U)]
// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T, %U.loc20_33.1) [symbolic = %tuple (constants.%tuple.4b9)]
@@ -399,7 +399,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %Class.loc21_30.1: type = class_type @Class, @Class(%U.loc21_9.1) [symbolic = %Class.loc21_30.1 (constants.%Class.d74)]
// CHECK:STDOUT: %pattern_type.loc21_21: type = pattern_type %Class.loc21_30.1 [symbolic = %pattern_type.loc21_21 (constants.%pattern_type.cc0)]
// CHECK:STDOUT: %self.param_patt.loc21_21.2: @Class.F.%pattern_type.loc21_21 (%pattern_type.cc0) = value_param_pattern [symbolic = %self.param_patt.loc21_21.2 (constants.%self.param_patt.814)]
// CHECK:STDOUT: %self.patt.loc21_21.2: @Class.F.%pattern_type.loc21_21 (%pattern_type.cc0) = at_binding_pattern self, %self.param_patt.loc21_21.2 [symbolic = %self.patt.loc21_21.2 (constants.%self.patt.868)]
// CHECK:STDOUT: %self.patt.loc21_21.2: @Class.F.%pattern_type.loc21_21 (%pattern_type.cc0) = wrapper_binding_pattern self, %self.param_patt.loc21_21.2 [symbolic = %self.patt.loc21_21.2 (constants.%self.patt.788)]
// CHECK:STDOUT: %.loc21_36.2: Core.Form = init_form %U.loc21_9.1 [symbolic = %.loc21_36.2 (constants.%.822)]
// CHECK:STDOUT: %pattern_type.loc21_36: type = pattern_type %U.loc21_9.1 [symbolic = %pattern_type.loc21_36 (constants.%pattern_type.946)]
// CHECK:STDOUT: %return.param_patt.loc21_36.2: @Class.F.%pattern_type.loc21_36 (%pattern_type.946) = out_param_pattern [symbolic = %return.param_patt.loc21_36.2 (constants.%return.param_patt.6dd)]
@@ -511,7 +511,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %T => constants.%T
// CHECK:STDOUT: %pattern_type.loc20_19 => constants.%pattern_type.51d
// CHECK:STDOUT: %x.param_patt.loc20_19.2 => constants.%x.param_patt.91d
// CHECK:STDOUT: %x.patt.loc20_19.2 => constants.%x.patt.800
// CHECK:STDOUT: %x.patt.loc20_19.2 => constants.%x.patt.260
// CHECK:STDOUT: %U.patt.loc20_33.2 => constants.%U.patt
// CHECK:STDOUT: %U.loc20_33.1 => constants.%U
// CHECK:STDOUT: %tuple => constants.%tuple.4b9
@@ -547,7 +547,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %Class.loc21_30.1 => constants.%Class.d74
// CHECK:STDOUT: %pattern_type.loc21_21 => constants.%pattern_type.cc0
// CHECK:STDOUT: %self.param_patt.loc21_21.2 => constants.%self.param_patt.814
// CHECK:STDOUT: %self.patt.loc21_21.2 => constants.%self.patt.868
// CHECK:STDOUT: %self.patt.loc21_21.2 => constants.%self.patt.788
// CHECK:STDOUT: %.loc21_36.2 => constants.%.822
// CHECK:STDOUT: %pattern_type.loc21_36 => constants.%pattern_type.946
// CHECK:STDOUT: %return.param_patt.loc21_36.2 => constants.%return.param_patt.6dd
@@ -560,7 +560,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %Class.loc21_30.1 => constants.%Class.d74
// CHECK:STDOUT: %pattern_type.loc21_21 => constants.%pattern_type.cc0
// CHECK:STDOUT: %self.param_patt.loc21_21.2 => constants.%self.param_patt.814
// CHECK:STDOUT: %self.patt.loc21_21.2 => constants.%self.patt.868
// CHECK:STDOUT: %self.patt.loc21_21.2 => constants.%self.patt.788
// CHECK:STDOUT: %.loc21_36.2 => constants.%.822
// CHECK:STDOUT: %pattern_type.loc21_36 => constants.%pattern_type.946
// CHECK:STDOUT: %return.param_patt.loc21_36.2 => constants.%return.param_patt.6dd
@@ -608,7 +608,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %T => constants.%A
// CHECK:STDOUT: %pattern_type.loc20_19 => constants.%pattern_type.9ef
// CHECK:STDOUT: %x.param_patt.loc20_19.2 => constants.%x.param_patt.4c3
// CHECK:STDOUT: %x.patt.loc20_19.2 => constants.%x.patt.313
// CHECK:STDOUT: %x.patt.loc20_19.2 => constants.%x.patt.e63
// CHECK:STDOUT: %U.patt.loc20_33.2 => constants.%U.patt
// CHECK:STDOUT: %U.loc20_33.1 => constants.%B
// CHECK:STDOUT: %tuple => constants.%tuple.9aa
@@ -631,7 +631,7 @@ fn CallMethodSelfDeduce(c: Class(A)) -> A {
// CHECK:STDOUT: %Class.loc21_30.1 => constants.%Class.30a
// CHECK:STDOUT: %pattern_type.loc21_21 => constants.%pattern_type.89e
// CHECK:STDOUT: %self.param_patt.loc21_21.2 => constants.%self.param_patt.225
// CHECK:STDOUT: %self.patt.loc21_21.2 => constants.%self.patt.39c
// CHECK:STDOUT: %self.patt.loc21_21.2 => constants.%self.patt.94c
// CHECK:STDOUT: %.loc21_36.2 => constants.%.cbf
// CHECK:STDOUT: %pattern_type.loc21_36 => constants.%pattern_type.9ef
// CHECK:STDOUT: %return.param_patt.loc21_36.2 => constants.%return.param_patt.f0c
+4 -4
View File
@@ -71,11 +71,11 @@ fn Run() {
// CHECK:STDOUT: %ForwardDeclared: type = class_type @ForwardDeclared [concrete]
// CHECK:STDOUT: %pattern_type.bdf: type = pattern_type %ForwardDeclared [concrete]
// CHECK:STDOUT: %self.param_patt.46c: %pattern_type.bdf = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.34d: %pattern_type.bdf = at_binding_pattern self, %self.param_patt.46c [concrete]
// CHECK:STDOUT: %self.patt.f4a: %pattern_type.bdf = wrapper_binding_pattern self, %self.param_patt.46c [concrete]
// CHECK:STDOUT: %ForwardDeclared.F.type: type = fn_type @ForwardDeclared.F [concrete]
// CHECK:STDOUT: %ForwardDeclared.F: %ForwardDeclared.F.type = struct_value () [concrete]
// CHECK:STDOUT: %self.param_patt.a42: %pattern_type.bdf = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.d30: %pattern_type.bdf = at_binding_pattern self, %self.param_patt.a42 [concrete]
// CHECK:STDOUT: %self.patt.d7c: %pattern_type.bdf = wrapper_binding_pattern self, %self.param_patt.a42 [concrete]
// CHECK:STDOUT: %ForwardDeclared.G.type: type = fn_type @ForwardDeclared.G [concrete]
// CHECK:STDOUT: %ForwardDeclared.G: %ForwardDeclared.G.type = struct_value () [concrete]
// CHECK:STDOUT: %Incomplete: type = class_type @Incomplete [concrete]
@@ -127,7 +127,7 @@ fn Run() {
// CHECK:STDOUT: class @ForwardDeclared {
// CHECK:STDOUT: %ForwardDeclared.F.decl: %ForwardDeclared.F.type = fn_decl @ForwardDeclared.F [concrete = constants.%ForwardDeclared.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.bdf = value_param_pattern [concrete = constants.%self.param_patt.46c]
// CHECK:STDOUT: %self.patt: %pattern_type.bdf = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.34d]
// CHECK:STDOUT: %self.patt: %pattern_type.bdf = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f4a]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %ForwardDeclared = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared]
@@ -135,7 +135,7 @@ fn Run() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ForwardDeclared.G.decl: %ForwardDeclared.G.type = fn_decl @ForwardDeclared.G [concrete = constants.%ForwardDeclared.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.bdf = ref_param_pattern [concrete = constants.%self.param_patt.a42]
// CHECK:STDOUT: %self.patt: %pattern_type.bdf = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.d30]
// CHECK:STDOUT: %self.patt: %pattern_type.bdf = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.d7c]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %ForwardDeclared = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%ForwardDeclared [concrete = constants.%ForwardDeclared]
+2 -2
View File
@@ -102,7 +102,7 @@ class Derived {
// CHECK:STDOUT: %int_7.690: %i32 = int_value 7 [concrete]
// CHECK:STDOUT: %Derived.val: %Derived = struct_value (%Base.val, %int_7.690) [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.4fd = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt.ad5: %pattern_type.4fd = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt.cd7: %pattern_type.4fd = wrapper_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete]
// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete]
// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete]
@@ -163,7 +163,7 @@ class Derived {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %d.param_patt: %pattern_type.4fd = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.4fd = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.ad5]
// CHECK:STDOUT: %d.patt: %pattern_type.4fd = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt.cd7]
// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete = constants.%return.param_patt.a90]
// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc17_35.2 [concrete = constants.%return.patt.2ed]
// CHECK:STDOUT: } {
@@ -48,7 +48,7 @@ fn Access(p: Derived*) -> i32* {
// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete]
// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %ptr.d08: type = ptr_type %i32 [concrete]
// CHECK:STDOUT: %.952: Core.Form = init_form %ptr.d08 [concrete]
// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %ptr.d08 [concrete]
@@ -94,7 +94,7 @@ fn Access(p: Derived*) -> i32* {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Access.decl: %Access.type = fn_decl @Access [concrete = constants.%Access] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f00 = out_param_pattern [concrete = constants.%return.param_patt.7dd]
// CHECK:STDOUT: %return.patt: %pattern_type.f00 = return_slot_pattern %return.param_patt, %ptr.loc28_30 [concrete = constants.%return.patt.dbe]
// CHECK:STDOUT: } {
@@ -42,7 +42,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %i32 [concrete]
// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete]
// CHECK:STDOUT: %self.param_patt.21c: %pattern_type.912 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.a45: %pattern_type.912 = at_binding_pattern self, %self.param_patt.21c [concrete]
// CHECK:STDOUT: %self.patt.26b: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt.21c [concrete]
// CHECK:STDOUT: %Base.F.type: type = fn_type @Base.F [concrete]
// CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete]
@@ -71,7 +71,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete]
// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete]
// CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -100,7 +100,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {}
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete = constants.%self.param_patt.21c]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.a45]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.26b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc21: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -109,7 +109,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %ptr.64c = value_param call_param0
// CHECK:STDOUT: %.loc29: type = splice_block %ptr [concrete = constants.%ptr.64c] {
@@ -124,7 +124,7 @@ fn Call(p: Derived*) {
// CHECK:STDOUT: %.loc16: %Base.elem = field_decl a, element0 [concrete]
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete = constants.%self.param_patt.21c]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.a45]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.26b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc18: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -49,7 +49,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: %Base: type = class_type @Base [concrete]
// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete]
// CHECK:STDOUT: %self.param_patt.0db: %pattern_type.912 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.97c: %pattern_type.912 = at_binding_pattern self, %self.param_patt.0db [concrete]
// CHECK:STDOUT: %self.patt.ed7: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt.0db [concrete]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
@@ -62,7 +62,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %self.param_patt.138: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.727: %pattern_type.746 = at_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %self.patt.ba9: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %Base.G.type: type = fn_type @Base.G [concrete]
// CHECK:STDOUT: %Base.G: %Base.G.type = struct_value () [concrete]
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
@@ -75,13 +75,13 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete]
// CHECK:STDOUT: %complete_type.c02: <witness> = complete_type_witness %struct_type.base.cae [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.746 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.746 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete]
// CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete]
// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete]
// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete]
// CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete]
// CHECK:STDOUT: %PassDerivedToBase.type: type = fn_type @PassDerivedToBase [concrete]
@@ -115,7 +115,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: %Derived.decl.loc22: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.746 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.746 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.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: } {
@@ -129,7 +129,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallIndirect.decl: %CallIndirect.type = fn_decl @CallIndirect [concrete = constants.%CallIndirect] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.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: } {
@@ -146,7 +146,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %PassDerivedToBase.decl: %PassDerivedToBase.type = fn_decl @PassDerivedToBase [concrete = constants.%PassDerivedToBase] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.746 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.746 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.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: } {
@@ -160,7 +160,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %PassDerivedToBaseIndirect.decl: %PassDerivedToBaseIndirect.type = fn_decl @PassDerivedToBaseIndirect [concrete = constants.%PassDerivedToBaseIndirect] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.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: } {
@@ -182,7 +182,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: %.loc23: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.F.decl: %Derived.F.type = fn_decl @Derived.F [concrete = constants.%Derived.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%self.param_patt.138]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.727]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ba9]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -190,7 +190,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Derived.G.decl: %Derived.G.type = fn_decl @Derived.G [concrete = constants.%Derived.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%self.param_patt.138]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.727]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ba9]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -211,7 +211,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete = constants.%self.param_patt.0db]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.97c]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ed7]
// 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: } {
@@ -225,7 +225,7 @@ fn PassDerivedToBaseIndirect(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Base.G.decl: %Base.G.type = fn_decl @Base.G [concrete = constants.%Base.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%self.param_patt.138]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.727]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ba9]
// 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: } {
@@ -43,7 +43,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %A: type = class_type @A [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: %A.F.type: type = fn_type @A.F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %A.F: %A.F.type = struct_value () [concrete]
@@ -53,7 +53,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %B.elem: type = unbound_element_type %B, %A [concrete]
// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %B [concrete]
// CHECK:STDOUT: %self.param_patt.039: %pattern_type.e39 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.6c3: %pattern_type.e39 = at_binding_pattern self, %self.param_patt.039 [concrete]
// CHECK:STDOUT: %self.patt.535: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt.039 [concrete]
// CHECK:STDOUT: %B.F.type: type = fn_type @B.F [concrete]
// CHECK:STDOUT: %B.F: %B.F.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.base.cb7: type = struct_type {.base: %A} [concrete]
@@ -62,7 +62,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %B [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.99a: %pattern_type.98b = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.807: %pattern_type.98b = at_binding_pattern self, %self.param_patt.99a [concrete]
// CHECK:STDOUT: %self.patt.cbd: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt.99a [concrete]
// CHECK:STDOUT: %C.F.type: type = fn_type @C.F [concrete]
// CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.base.e05: type = struct_type {.base: %B} [concrete]
@@ -72,19 +72,19 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete]
// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.8a5 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.8a5 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.8a5 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete]
// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.3c8 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.fcb = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %ptr.d57: type = ptr_type %D [concrete]
// CHECK:STDOUT: %pattern_type.02f: type = pattern_type %ptr.d57 [concrete]
// CHECK:STDOUT: %d.param_patt: %pattern_type.02f = value_param_pattern [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.02f = at_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %d.patt: %pattern_type.02f = wrapper_binding_pattern d, %d.param_patt [concrete]
// CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete]
// CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -112,13 +112,13 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %D.decl: type = class_decl @D [concrete = constants.%D] {} {}
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.8a5 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.8a5 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.8a5 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.3c8 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.3c8 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %c.param_patt: %pattern_type.fcb = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %d.param_patt: %pattern_type.02f = value_param_pattern [concrete = constants.%d.param_patt]
// CHECK:STDOUT: %d.patt: %pattern_type.02f = at_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: %d.patt: %pattern_type.02f = wrapper_binding_pattern d, %d.param_patt [concrete = constants.%d.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %ptr.d43 = value_param call_param0
// CHECK:STDOUT: %.loc33_13: type = splice_block %ptr.loc33_13 [concrete = constants.%ptr.d43] {
@@ -150,7 +150,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: class @A {
// CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] {
// 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: } {
// CHECK:STDOUT: %self.param: ref %A = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A [concrete = constants.%A]
@@ -169,7 +169,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %.loc20: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %B.F.decl: %B.F.type = fn_decl @B.F [concrete = constants.%B.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.e39 = ref_param_pattern [concrete = constants.%self.param_patt.039]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6c3]
// CHECK:STDOUT: %self.patt: %pattern_type.e39 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.535]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %B = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B]
@@ -191,7 +191,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %.loc25: %C.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = ref_param_pattern [concrete = constants.%self.param_patt.99a]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.807]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cbd]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -135,7 +135,7 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete]
// CHECK:STDOUT: %p.param_patt.9b8: %pattern_type.fcb = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.d88: %pattern_type.fcb = at_binding_pattern p, %p.param_patt.9b8 [concrete]
// CHECK:STDOUT: %p.patt.ffd: %pattern_type.fcb = wrapper_binding_pattern p, %p.param_patt.9b8 [concrete]
// CHECK:STDOUT: %ptr.432: type = ptr_type %B [concrete]
// CHECK:STDOUT: %.d69: Core.Form = init_form %ptr.432 [concrete]
// CHECK:STDOUT: %pattern_type.3c8: type = pattern_type %ptr.432 [concrete]
@@ -155,7 +155,7 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: %.dbf: type = fn_type_with_self_type %Copy.WithSelf.Op.type.65d, %Copy.facet.482 [concrete]
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn.bbe: <specific function> = specific_function %ptr.as.Copy.impl.Op.70e, @ptr.as.Copy.impl.Op(%B) [concrete]
// CHECK:STDOUT: %p.param_patt.436: %pattern_type.3c8 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.c38: %pattern_type.3c8 = at_binding_pattern p, %p.param_patt.436 [concrete]
// CHECK:STDOUT: %p.patt.8dd: %pattern_type.3c8 = wrapper_binding_pattern p, %p.param_patt.436 [concrete]
// CHECK:STDOUT: %ptr.d43: type = ptr_type %A [concrete]
// CHECK:STDOUT: %.1a4: Core.Form = init_form %ptr.d43 [concrete]
// CHECK:STDOUT: %pattern_type.8a5: type = pattern_type %ptr.d43 [concrete]
@@ -174,13 +174,13 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: %ConvertCToA: %ConvertCToA.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %c.param_patt.965: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.e1a: %pattern_type.98b = at_binding_pattern c, %c.param_patt.965 [concrete]
// CHECK:STDOUT: %c.patt.4ae: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt.965 [concrete]
// CHECK:STDOUT: %ConvertValue.type: type = fn_type @ConvertValue [concrete]
// CHECK:STDOUT: %ConvertValue: %ConvertValue.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.9ef: type = pattern_type %A [concrete]
// CHECK:STDOUT: %a.patt.bb7b23.1: %pattern_type.9ef = value_binding_pattern a [concrete]
// CHECK:STDOUT: %c.param_patt.200: %pattern_type.fcb = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.d05: %pattern_type.fcb = at_binding_pattern c, %c.param_patt.200 [concrete]
// CHECK:STDOUT: %c.patt.49d: %pattern_type.fcb = wrapper_binding_pattern c, %c.param_patt.200 [concrete]
// CHECK:STDOUT: %ConvertRef.type: type = fn_type @ConvertRef [concrete]
// CHECK:STDOUT: %ConvertRef: %ConvertRef.type = struct_value () [concrete]
// CHECK:STDOUT: %ConvertInit.type: type = fn_type @ConvertInit [concrete]
@@ -241,7 +241,7 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %ConvertCToB.decl: %ConvertCToB.type = fn_decl @ConvertCToB [concrete = constants.%ConvertCToB] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete = constants.%p.param_patt.9b8]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.d88]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.ffd]
// CHECK:STDOUT: %return.param_patt: %pattern_type.3c8 = out_param_pattern [concrete = constants.%return.param_patt.9ba]
// CHECK:STDOUT: %return.patt: %pattern_type.3c8 = return_slot_pattern %return.param_patt, %ptr.loc19_27 [concrete = constants.%return.patt.e3e]
// CHECK:STDOUT: } {
@@ -259,7 +259,7 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertBToA.decl: %ConvertBToA.type = fn_decl @ConvertBToA [concrete = constants.%ConvertBToA] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.3c8 = value_param_pattern [concrete = constants.%p.param_patt.436]
// CHECK:STDOUT: %p.patt: %pattern_type.3c8 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.c38]
// CHECK:STDOUT: %p.patt: %pattern_type.3c8 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.8dd]
// CHECK:STDOUT: %return.param_patt: %pattern_type.8a5 = out_param_pattern [concrete = constants.%return.param_patt.7a0]
// CHECK:STDOUT: %return.patt: %pattern_type.8a5 = return_slot_pattern %return.param_patt, %ptr.loc20_27 [concrete = constants.%return.patt.264]
// CHECK:STDOUT: } {
@@ -277,7 +277,7 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertCToA.decl: %ConvertCToA.type = fn_decl @ConvertCToA [concrete = constants.%ConvertCToA] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete = constants.%p.param_patt.9b8]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.d88]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.ffd]
// CHECK:STDOUT: %return.param_patt: %pattern_type.8a5 = out_param_pattern [concrete = constants.%return.param_patt.7a0]
// CHECK:STDOUT: %return.patt: %pattern_type.8a5 = return_slot_pattern %return.param_patt, %ptr.loc21_27 [concrete = constants.%return.patt.264]
// CHECK:STDOUT: } {
@@ -295,7 +295,7 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertValue.decl: %ConvertValue.type = fn_decl @ConvertValue [concrete = constants.%ConvertValue] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.98b = value_param_pattern [concrete = constants.%c.param_patt.965]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.e1a]
// CHECK:STDOUT: %c.patt: %pattern_type.98b = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.4ae]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %C = value_param call_param0
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
@@ -303,7 +303,7 @@ fn PassPartialB(b: partial B) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %ConvertRef.decl: %ConvertRef.type = fn_decl @ConvertRef [concrete = constants.%ConvertRef] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.fcb = value_param_pattern [concrete = constants.%c.param_patt.200]
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.d05]
// CHECK:STDOUT: %c.patt: %pattern_type.fcb = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.49d]
// CHECK:STDOUT: %return.param_patt: %pattern_type.8a5 = out_param_pattern [concrete = constants.%return.param_patt.7a0]
// CHECK:STDOUT: %return.patt: %pattern_type.8a5 = return_slot_pattern %return.param_patt, %ptr.loc27_26 [concrete = constants.%return.patt.264]
// CHECK:STDOUT: } {
@@ -47,7 +47,7 @@ fn Run() {
// CHECK:STDOUT: %Base: type = class_type @Base [concrete]
// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %Base.F.type: type = fn_type @Base.F [concrete]
// CHECK:STDOUT: %Base.F: %Base.F.type = struct_value () [concrete]
// CHECK:STDOUT: %Base.Unused.type: type = fn_type @Base.Unused [concrete]
@@ -88,7 +88,7 @@ fn Run() {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.F.decl: %Base.F.type = fn_decl @Base.F [concrete = constants.%Base.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -96,7 +96,7 @@ fn Run() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Base.Unused.decl: %Base.Unused.type = fn_decl @Base.Unused [concrete = constants.%Base.Unused] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -54,14 +54,14 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete]
// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete]
// CHECK:STDOUT: %self.param_patt.0db: %pattern_type.912 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.97c: %pattern_type.912 = at_binding_pattern self, %self.param_patt.0db [concrete]
// CHECK:STDOUT: %self.patt.ed7: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt.0db [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]
// CHECK:STDOUT: %Derived.SelfBase.type: type = fn_type @Derived.SelfBase [concrete]
// CHECK:STDOUT: %Derived.SelfBase: %Derived.SelfBase.type = struct_value () [concrete]
// CHECK:STDOUT: %self.param_patt.21c: %pattern_type.912 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.a45: %pattern_type.912 = at_binding_pattern self, %self.param_patt.21c [concrete]
// CHECK:STDOUT: %self.patt.26b: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt.21c [concrete]
// CHECK:STDOUT: %Derived.RefSelfBase.type: type = fn_type @Derived.RefSelfBase [concrete]
// CHECK:STDOUT: %Derived.RefSelfBase: %Derived.RefSelfBase.type = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.base.cae: type = struct_type {.base: %Base} [concrete]
@@ -96,7 +96,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: %ptr.64c: type = ptr_type %Derived [concrete]
// CHECK:STDOUT: %pattern_type.56c: type = pattern_type %ptr.64c [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete]
// CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -130,7 +130,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: %Derived.decl: type = class_decl @Derived [concrete = constants.%Derived] {} {}
// CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete = constants.%self.param_patt.0db]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.97c]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ed7]
// 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.loc26 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -144,7 +144,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete = constants.%self.param_patt.21c]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.a45]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.26b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc30: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Base.ref.loc30: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
@@ -152,7 +152,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.56c = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.56c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -185,7 +185,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: %.loc20: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.SelfBase.decl: %Derived.SelfBase.type = fn_decl @Derived.SelfBase [concrete = constants.%Derived.SelfBase] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = value_param_pattern [concrete = constants.%self.param_patt.0db]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.97c]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ed7]
// 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.loc26 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -199,7 +199,7 @@ fn Call(p: Derived*) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Derived.RefSelfBase.decl: %Derived.RefSelfBase.type = fn_decl @Derived.RefSelfBase [concrete = constants.%Derived.RefSelfBase] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete = constants.%self.param_patt.21c]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.a45]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.26b]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc23: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Base.ref.loc23: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
+6 -6
View File
@@ -42,9 +42,9 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
// CHECK:STDOUT: %struct_type.n.next: type = struct_type {.n: %i32, .next: %ptr.7ee} [concrete]
// CHECK:STDOUT: %complete_type.dc3: <witness> = complete_type_witness %struct_type.n.next [concrete]
// CHECK:STDOUT: %n.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt.f0b: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %n.patt.ae8: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt [concrete]
// CHECK:STDOUT: %next.param_patt: %pattern_type.8c5 = value_param_pattern [concrete]
// CHECK:STDOUT: %next.patt.5a1: %pattern_type.8c5 = at_binding_pattern next, %next.param_patt [concrete]
// CHECK:STDOUT: %next.patt.b38: %pattern_type.8c5 = wrapper_binding_pattern next, %next.param_patt [concrete]
// CHECK:STDOUT: %.d76: Core.Form = init_form %Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %return.param_patt.86e: %pattern_type.f15 = out_param_pattern [concrete]
@@ -102,9 +102,9 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Make.decl: %Make.type = fn_decl @Make [concrete = constants.%Make] {
// 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.f0b]
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt.ae8]
// CHECK:STDOUT: %next.param_patt: %pattern_type.8c5 = value_param_pattern [concrete = constants.%next.param_patt]
// CHECK:STDOUT: %next.patt: %pattern_type.8c5 = at_binding_pattern next, %next.param_patt [concrete = constants.%next.patt.5a1]
// CHECK:STDOUT: %next.patt: %pattern_type.8c5 = wrapper_binding_pattern next, %next.param_patt [concrete = constants.%next.patt.b38]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f15 = out_param_pattern [concrete = constants.%return.param_patt.86e]
// CHECK:STDOUT: %return.patt: %pattern_type.f15 = return_slot_pattern %return.param_patt, %Class.ref.loc20_34 [concrete = constants.%return.patt.0b7]
// CHECK:STDOUT: } {
@@ -124,9 +124,9 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %MakeReorder.decl: %MakeReorder.type = fn_decl @MakeReorder [concrete = constants.%MakeReorder] {
// 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.f0b]
// CHECK:STDOUT: %n.patt: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt [concrete = constants.%n.patt.ae8]
// CHECK:STDOUT: %next.param_patt: %pattern_type.8c5 = value_param_pattern [concrete = constants.%next.param_patt]
// CHECK:STDOUT: %next.patt: %pattern_type.8c5 = at_binding_pattern next, %next.param_patt [concrete = constants.%next.patt.5a1]
// CHECK:STDOUT: %next.patt: %pattern_type.8c5 = wrapper_binding_pattern next, %next.param_patt [concrete = constants.%next.patt.b38]
// CHECK:STDOUT: %return.param_patt: %pattern_type.f15 = out_param_pattern [concrete = constants.%return.param_patt.86e]
// CHECK:STDOUT: %return.patt: %pattern_type.f15 = return_slot_pattern %return.param_patt, %Class.ref.loc24_41 [concrete = constants.%return.patt.0b7]
// CHECK:STDOUT: } {
@@ -46,7 +46,7 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: %Point: type = class_type @Point [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: %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]
@@ -59,7 +59,7 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: %Point.Get.type: type = fn_type @Point.Get [concrete]
// CHECK:STDOUT: %Point.Get: %Point.Get.type = struct_value () [concrete]
// CHECK:STDOUT: %other.param_patt: %pattern_type.9d8 = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt: %pattern_type.9d8 = at_binding_pattern other, %other.param_patt [concrete]
// CHECK:STDOUT: %other.patt: %pattern_type.9d8 = wrapper_binding_pattern other, %other.param_patt [concrete]
// CHECK:STDOUT: %Point.First.type: type = fn_type @Point.First [concrete]
// CHECK:STDOUT: %Point.First: %Point.First.type = struct_value () [concrete]
// CHECK:STDOUT: %Point.elem: type = unbound_element_type %Point, %i32 [concrete]
@@ -76,11 +76,11 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete]
// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.9d8 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %CallGet.type: type = fn_type @CallGet [concrete]
// CHECK:STDOUT: %CallGet: %CallGet.type = struct_value () [concrete]
// CHECK:STDOUT: %q.param_patt: %pattern_type.9d8 = value_param_pattern [concrete]
// CHECK:STDOUT: %q.patt: %pattern_type.9d8 = at_binding_pattern q, %q.param_patt [concrete]
// CHECK:STDOUT: %q.patt: %pattern_type.9d8 = wrapper_binding_pattern q, %q.param_patt [concrete]
// CHECK:STDOUT: %CallFirst.type: type = fn_type @CallFirst [concrete]
// CHECK:STDOUT: %CallFirst: %CallFirst.type = struct_value () [concrete]
// CHECK:STDOUT: %CallViaAlias.type: type = fn_type @CallViaAlias [concrete]
@@ -112,7 +112,7 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: %Point.decl: type = class_decl @Point [concrete = constants.%Point] {} {}
// CHECK:STDOUT: %CallGet.decl: %CallGet.type = fn_decl @CallGet [concrete = constants.%CallGet] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.9d8 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -126,9 +126,9 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallFirst.decl: %CallFirst.type = fn_decl @CallFirst [concrete = constants.%CallFirst] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.9d8 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %q.param_patt: %pattern_type.9d8 = value_param_pattern [concrete = constants.%q.param_patt]
// CHECK:STDOUT: %q.patt: %pattern_type.9d8 = at_binding_pattern q, %q.param_patt [concrete = constants.%q.patt]
// CHECK:STDOUT: %q.patt: %pattern_type.9d8 = wrapper_binding_pattern q, %q.param_patt [concrete = constants.%q.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -145,7 +145,7 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallViaAlias.decl: %CallViaAlias.type = fn_decl @CallViaAlias [concrete = constants.%CallViaAlias] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.9d8 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.9d8 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -162,7 +162,7 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: class @Point {
// CHECK:STDOUT: %Point.Get.decl: %Point.Get.type = fn_decl @Point.Get [concrete = constants.%Point.Get] {
// 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: %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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -176,9 +176,9 @@ fn CallViaAlias(p: Point) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Point.First.decl: %Point.First.type = fn_decl @Point.First [concrete = constants.%Point.First] {
// 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: %other.param_patt: %pattern_type.9d8 = value_param_pattern [concrete = constants.%other.param_patt]
// CHECK:STDOUT: %other.patt: %pattern_type.9d8 = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt]
// CHECK:STDOUT: %other.patt: %pattern_type.9d8 = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -37,9 +37,9 @@ fn Class(T: type).F(unused self, unused n: T) {}
// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T [symbolic]
// CHECK:STDOUT: %pattern_type.36e: type = pattern_type %Class [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.36e = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.36e = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.36e = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %n.param_patt: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %n.patt: %pattern_type.51d = at_binding_pattern n, %n.param_patt [symbolic]
// CHECK:STDOUT: %n.patt: %pattern_type.51d = wrapper_binding_pattern n, %n.param_patt [symbolic]
// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T) [symbolic]
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T} [symbolic]
@@ -71,9 +71,9 @@ fn Class(T: type).F(unused self, unused n: T) {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt.loc20: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = value_param_pattern [symbolic = %self.param_patt.loc17 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc20: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = at_binding_pattern self, %self.param_patt.loc20 [symbolic = %self.patt.loc17 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc20: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = wrapper_binding_pattern self, %self.param_patt.loc20 [symbolic = %self.patt.loc17 (constants.%self.patt)]
// CHECK:STDOUT: %n.param_patt.loc20: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = value_param_pattern [symbolic = %n.param_patt.loc17 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc20: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = at_binding_pattern n, %n.param_patt.loc20 [symbolic = %n.patt.loc17 (constants.%n.patt)]
// CHECK:STDOUT: %n.patt.loc20: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = wrapper_binding_pattern n, %n.param_patt.loc20 [symbolic = %n.patt.loc17 (constants.%n.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc20_13.1: type = splice_block %.loc20_13.2 [concrete = type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -111,9 +111,9 @@ fn Class(T: type).F(unused self, unused n: T) {}
// CHECK:STDOUT: %.loc16: @Class.%Class.elem (%Class.elem) = field_decl a, element0 [concrete]
// CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] {
// CHECK:STDOUT: %self.param_patt.loc20: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = value_param_pattern [symbolic = %self.param_patt.loc17 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc20: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = at_binding_pattern self, %self.param_patt.loc20 [symbolic = %self.patt.loc17 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc20: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = wrapper_binding_pattern self, %self.param_patt.loc20 [symbolic = %self.patt.loc17 (constants.%self.patt)]
// CHECK:STDOUT: %n.param_patt.loc20: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = value_param_pattern [symbolic = %n.param_patt.loc17 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc20: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = at_binding_pattern n, %n.param_patt.loc20 [symbolic = %n.patt.loc17 (constants.%n.patt)]
// CHECK:STDOUT: %n.patt.loc20: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = wrapper_binding_pattern n, %n.param_patt.loc20 [symbolic = %n.patt.loc17 (constants.%n.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc17: @Class.F.%Class (%Class) = value_param call_param0
// CHECK:STDOUT: %.loc17_8.1: type = splice_block %Self.ref.loc17 [symbolic = %Class (constants.%Class)] {
@@ -141,10 +141,10 @@ fn Class(T: type).F(unused self, unused n: T) {}
// CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc17) [symbolic = %Class (constants.%Class)]
// CHECK:STDOUT: %pattern_type.loc17_8: type = pattern_type %Class [symbolic = %pattern_type.loc17_8 (constants.%pattern_type.36e)]
// CHECK:STDOUT: %self.param_patt.loc17: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = value_param_pattern [symbolic = %self.param_patt.loc17 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc17: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = at_binding_pattern self, %self.param_patt.loc17 [symbolic = %self.patt.loc17 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc17: @Class.F.%pattern_type.loc17_8 (%pattern_type.36e) = wrapper_binding_pattern self, %self.param_patt.loc17 [symbolic = %self.patt.loc17 (constants.%self.patt)]
// CHECK:STDOUT: %pattern_type.loc17_15: type = pattern_type %T.loc17 [symbolic = %pattern_type.loc17_15 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %n.param_patt.loc17: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = value_param_pattern [symbolic = %n.param_patt.loc17 (constants.%n.param_patt)]
// CHECK:STDOUT: %n.patt.loc17: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = at_binding_pattern n, %n.param_patt.loc17 [symbolic = %n.patt.loc17 (constants.%n.patt)]
// CHECK:STDOUT: %n.patt.loc17: @Class.F.%pattern_type.loc17_15 (%pattern_type.51d) = wrapper_binding_pattern n, %n.param_patt.loc17 [symbolic = %n.patt.loc17 (constants.%n.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc20_28: <witness> = require_complete_type %Class [symbolic = %require_complete.loc20_28 (constants.%require_complete.4d9)]
+11 -11
View File
@@ -68,7 +68,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt.c01: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f26: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %self.patt.1f6: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
@@ -82,7 +82,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete]
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete]
// CHECK:STDOUT: %self.param_patt.b2b: %pattern_type.f15 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.123: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %self.patt.f19: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete]
// CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [concrete]
// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete]
@@ -101,7 +101,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: %.737: type = fn_type_with_self_type %Copy.WithSelf.Op.type.381, %Copy.facet [concrete]
// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt.dde: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt.854: %pattern_type.f15 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %Call.type: type = fn_type @Call [concrete]
// CHECK:STDOUT: %Call: %Call.type = struct_value () [concrete]
// CHECK:STDOUT: %CallAlias.type: type = fn_type @CallAlias [concrete]
@@ -151,7 +151,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete]
// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %CallFThroughPointer.type: type = fn_type @CallFThroughPointer [concrete]
// CHECK:STDOUT: %CallFThroughPointer: %CallFThroughPointer.type = struct_value () [concrete]
// CHECK:STDOUT: %CallGThroughPointer.type: type = fn_type @CallGThroughPointer [concrete]
@@ -206,7 +206,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1f6]
// 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.loc24 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -220,7 +220,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Call.decl: %Call.type = fn_decl @Call [concrete = constants.%Call] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.dde]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.854]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -234,7 +234,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallAlias.decl: %CallAlias.type = fn_decl @CallAlias [concrete = constants.%CallAlias] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.dde]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt.854]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -266,7 +266,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallFThroughPointer.decl: %CallFThroughPointer.type = fn_decl @CallFThroughPointer [concrete = constants.%CallFThroughPointer] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -283,7 +283,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %CallGThroughPointer.decl: %CallGThroughPointer.type = fn_decl @CallGThroughPointer [concrete = constants.%CallGThroughPointer] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -330,7 +330,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1f6]
// 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.loc24 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -344,7 +344,7 @@ fn CallGOnInitializingExpr() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete = constants.%self.param_patt.b2b]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.123]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f19]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
+37 -37
View File
@@ -548,7 +548,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %Base: type = class_type @Base [concrete]
// CHECK:STDOUT: %pattern_type.b8d: type = pattern_type %Base [concrete]
// CHECK:STDOUT: %self.param_patt.d44: %pattern_type.b8d = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.62b: %pattern_type.b8d = at_binding_pattern self, %self.param_patt.d44 [concrete]
// CHECK:STDOUT: %self.patt.6eb: %pattern_type.b8d = wrapper_binding_pattern self, %self.param_patt.d44 [concrete]
// CHECK:STDOUT: %Base.H.type: type = fn_type @Base.H [concrete]
// CHECK:STDOUT: %Base.H: %Base.H.type = struct_value () [concrete]
// CHECK:STDOUT: %ptr: type = ptr_type <vtable> [concrete]
@@ -558,7 +558,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %Abstract: type = class_type @Abstract [concrete]
// CHECK:STDOUT: %pattern_type.0e2: type = pattern_type %Abstract [concrete]
// CHECK:STDOUT: %self.param_patt.950: %pattern_type.0e2 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.64e: %pattern_type.0e2 = at_binding_pattern self, %self.param_patt.950 [concrete]
// CHECK:STDOUT: %self.patt.165: %pattern_type.0e2 = wrapper_binding_pattern self, %self.param_patt.950 [concrete]
// CHECK:STDOUT: %Abstract.J.type: type = fn_type @Abstract.J [concrete]
// CHECK:STDOUT: %Abstract.J: %Abstract.J.type = struct_value () [concrete]
// CHECK:STDOUT: %Abstract.K.type: type = fn_type @Abstract.K [concrete]
@@ -574,7 +574,7 @@ class T2(G2: type) {
// CHECK:STDOUT: class @Base {
// CHECK:STDOUT: %Base.H.decl: %Base.H.type = fn_decl @Base.H [concrete = constants.%Base.H] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.b8d = value_param_pattern [concrete = constants.%self.param_patt.d44]
// CHECK:STDOUT: %self.patt: %pattern_type.b8d = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.62b]
// CHECK:STDOUT: %self.patt: %pattern_type.b8d = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.6eb]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Base = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
@@ -593,7 +593,7 @@ class T2(G2: type) {
// CHECK:STDOUT: class @Abstract {
// CHECK:STDOUT: %Abstract.J.decl: %Abstract.J.type = fn_decl @Abstract.J [concrete = constants.%Abstract.J] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.0e2 = value_param_pattern [concrete = constants.%self.param_patt.950]
// CHECK:STDOUT: %self.patt: %pattern_type.0e2 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.64e]
// CHECK:STDOUT: %self.patt: %pattern_type.0e2 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.165]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract]
@@ -601,7 +601,7 @@ class T2(G2: type) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Abstract.K.decl: %Abstract.K.type = fn_decl @Abstract.K [concrete = constants.%Abstract.K] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.0e2 = value_param_pattern [concrete = constants.%self.param_patt.950]
// CHECK:STDOUT: %self.patt: %pattern_type.0e2 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.64e]
// CHECK:STDOUT: %self.patt: %pattern_type.0e2 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.165]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Abstract = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Abstract [concrete = constants.%Abstract]
@@ -643,7 +643,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %self.param_patt.138: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.727: %pattern_type.746 = at_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %self.patt.ba9: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %Derived.H.type.1f42d4.1: type = fn_type @Derived.H.loc9_22.1 [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Derived.H.a6796b.1: %Derived.H.type.1f42d4.1 = struct_value () [concrete]
@@ -689,7 +689,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %.loc8: %Derived.elem = base_decl %Base.ref, element0 [concrete]
// CHECK:STDOUT: %Derived.H.decl.loc9_22.1: %Derived.H.type.1f42d4.1 = fn_decl @Derived.H.loc9_22.1 [concrete = constants.%Derived.H.a6796b.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%self.param_patt.138]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.727]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ba9]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -1025,7 +1025,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %self.param_patt.138: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.727: %pattern_type.746 = at_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %self.patt.ba9: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %Derived.F.type.48cdab.1: type = fn_type @Derived.F.loc15_22.1 [concrete]
// CHECK:STDOUT: %Derived.F.bd5be1.1: %Derived.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %Derived.F.type.48cdab.2: type = fn_type @Derived.F.loc15_22.2 [concrete]
@@ -1036,7 +1036,7 @@ class T2(G2: type) {
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %Derived.F.decl.loc15_22.1: %Derived.F.type.48cdab.1 = fn_decl @Derived.F.loc15_22.1 [concrete = constants.%Derived.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%self.param_patt.138]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.727]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ba9]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -1096,7 +1096,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %Derived: type = class_type @Derived [concrete]
// CHECK:STDOUT: %pattern_type.746: type = pattern_type %Derived [concrete]
// CHECK:STDOUT: %self.param_patt.138: %pattern_type.746 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.727: %pattern_type.746 = at_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %self.patt.ba9: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt.138 [concrete]
// CHECK:STDOUT: %Derived.F.type.48cdab.1: type = fn_type @Derived.F.loc15_22.1 [concrete]
// CHECK:STDOUT: %Derived.F.bd5be1.1: %Derived.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %Derived.F.type.48cdab.2: type = fn_type @Derived.F.loc15_22.2 [concrete]
@@ -1107,7 +1107,7 @@ class T2(G2: type) {
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %Derived.F.decl.loc15_22.1: %Derived.F.type.48cdab.1 = fn_decl @Derived.F.loc15_22.1 [concrete = constants.%Derived.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.746 = value_param_pattern [concrete = constants.%self.param_patt.138]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.727]
// CHECK:STDOUT: %self.patt: %pattern_type.746 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.ba9]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Derived = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Derived [concrete = constants.%Derived]
@@ -1258,7 +1258,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic]
// CHECK:STDOUT: %pattern_type.c79: type = pattern_type %T1 [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.c79 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.c79 = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.c79 = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %T1.F.type: type = fn_type @T1.F, @T1(%T) [symbolic]
// CHECK:STDOUT: %T1.F: %T1.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %T1.F.specific_fn: <specific function> = specific_function %T1.F, @T1.F(%T) [symbolic]
@@ -1276,7 +1276,7 @@ class T2(G2: type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] {
// CHECK:STDOUT: %self.param_patt.loc6_23.1: @T1.F.%pattern_type (%pattern_type.c79) = value_param_pattern [symbolic = %self.param_patt.loc6_23.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc6_23.1: @T1.F.%pattern_type (%pattern_type.c79) = at_binding_pattern self, %self.param_patt.loc6_23.1 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc6_23.1: @T1.F.%pattern_type (%pattern_type.c79) = wrapper_binding_pattern self, %self.param_patt.loc6_23.1 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0
// CHECK:STDOUT: %.loc6_23.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1)] {
@@ -1304,7 +1304,7 @@ class T2(G2: type) {
// CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic = %T1 (constants.%T1)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T1 [symbolic = %pattern_type (constants.%pattern_type.c79)]
// CHECK:STDOUT: %self.param_patt.loc6_23.2: @T1.F.%pattern_type (%pattern_type.c79) = value_param_pattern [symbolic = %self.param_patt.loc6_23.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc6_23.2: @T1.F.%pattern_type (%pattern_type.c79) = at_binding_pattern self, %self.param_patt.loc6_23.2 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc6_23.2: @T1.F.%pattern_type (%pattern_type.c79) = wrapper_binding_pattern self, %self.param_patt.loc6_23.2 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T1 [symbolic = %require_complete (constants.%require_complete)]
@@ -1345,10 +1345,10 @@ class T2(G2: type) {
// CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic]
// CHECK:STDOUT: %pattern_type.c79: type = pattern_type %T1 [symbolic]
// CHECK:STDOUT: %self.param_patt: %pattern_type.c79 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.c79 = at_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %self.patt: %pattern_type.c79 = wrapper_binding_pattern self, %self.param_patt [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %t.param_patt: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.51d = at_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.51d = wrapper_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %T1.F.type: type = fn_type @T1.F, @T1(%T) [symbolic]
// CHECK:STDOUT: %T1.F: %T1.F.type = struct_value () [symbolic]
// CHECK:STDOUT: %T1.F.specific_fn: <specific function> = specific_function %T1.F, @T1.F(%T) [symbolic]
@@ -1367,9 +1367,9 @@ class T2(G2: type) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %T1.F.decl: @T1.%T1.F.type (%T1.F.type) = fn_decl @T1.F [symbolic = @T1.%T1.F (constants.%T1.F)] {
// CHECK:STDOUT: %self.param_patt.loc6_23.1: @T1.F.%pattern_type.loc6_23 (%pattern_type.c79) = value_param_pattern [symbolic = %self.param_patt.loc6_23.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc6_23.1: @T1.F.%pattern_type.loc6_23 (%pattern_type.c79) = at_binding_pattern self, %self.param_patt.loc6_23.1 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc6_23.1: @T1.F.%pattern_type.loc6_23 (%pattern_type.c79) = wrapper_binding_pattern self, %self.param_patt.loc6_23.1 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT: %t.param_patt.loc6_37.1: @T1.F.%pattern_type.loc6_37 (%pattern_type.51d) = value_param_pattern [symbolic = %t.param_patt.loc6_37.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc6_37.1: @T1.F.%pattern_type.loc6_37 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt.loc6_37.1 [symbolic = %t.patt.loc6_37.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc6_37.1: @T1.F.%pattern_type.loc6_37 (%pattern_type.51d) = wrapper_binding_pattern t, %t.param_patt.loc6_37.1 [symbolic = %t.patt.loc6_37.2 (constants.%t.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @T1.F.%T1 (%T1) = value_param call_param0
// CHECK:STDOUT: %.loc6_23.1: type = splice_block %Self.ref [symbolic = %T1 (constants.%T1)] {
@@ -1401,10 +1401,10 @@ class T2(G2: type) {
// CHECK:STDOUT: %T1: type = class_type @T1, @T1(%T) [symbolic = %T1 (constants.%T1)]
// CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T1 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.c79)]
// CHECK:STDOUT: %self.param_patt.loc6_23.2: @T1.F.%pattern_type.loc6_23 (%pattern_type.c79) = value_param_pattern [symbolic = %self.param_patt.loc6_23.2 (constants.%self.param_patt)]
// CHECK:STDOUT: %self.patt.loc6_23.2: @T1.F.%pattern_type.loc6_23 (%pattern_type.c79) = at_binding_pattern self, %self.param_patt.loc6_23.2 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT: %self.patt.loc6_23.2: @T1.F.%pattern_type.loc6_23 (%pattern_type.c79) = wrapper_binding_pattern self, %self.param_patt.loc6_23.2 [symbolic = %self.patt.loc6_23.2 (constants.%self.patt)]
// CHECK:STDOUT: %pattern_type.loc6_37: type = pattern_type %T [symbolic = %pattern_type.loc6_37 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %t.param_patt.loc6_37.2: @T1.F.%pattern_type.loc6_37 (%pattern_type.51d) = value_param_pattern [symbolic = %t.param_patt.loc6_37.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc6_37.2: @T1.F.%pattern_type.loc6_37 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt.loc6_37.2 [symbolic = %t.patt.loc6_37.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc6_37.2: @T1.F.%pattern_type.loc6_37 (%pattern_type.51d) = wrapper_binding_pattern t, %t.param_patt.loc6_37.2 [symbolic = %t.patt.loc6_37.2 (constants.%t.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc6_23: <witness> = require_complete_type %T1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.ce3)]
@@ -1455,8 +1455,8 @@ class T2(G2: type) {
// CHECK:STDOUT: %t.param_patt.cd0: %pattern_type.e0f = value_param_pattern [concrete]
// CHECK:STDOUT: %pattern_type.c35: type = pattern_type %D1 [concrete]
// CHECK:STDOUT: %self.param_patt.fc7: %pattern_type.c35 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.1b8: %pattern_type.c35 = at_binding_pattern self, %self.param_patt.fc7 [concrete]
// CHECK:STDOUT: %t.patt.27f644.2: %pattern_type.e0f = at_binding_pattern t, %t.param_patt.cd0 [concrete]
// CHECK:STDOUT: %self.patt.4c5: %pattern_type.c35 = wrapper_binding_pattern self, %self.param_patt.fc7 [concrete]
// CHECK:STDOUT: %t.patt.7ce472.2: %pattern_type.e0f = wrapper_binding_pattern t, %t.param_patt.cd0 [concrete]
// CHECK:STDOUT: %D1.F.type.48cdab.1: type = fn_type @D1.F.loc11_51.1 [concrete]
// CHECK:STDOUT: %D1.F.bd5be1.1: %D1.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %D1.F.type.48cdab.2: type = fn_type @D1.F.loc11_51.2 [concrete]
@@ -1467,9 +1467,9 @@ class T2(G2: type) {
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %D1.F.decl.loc11_51.1: %D1.F.type.48cdab.1 = fn_decl @D1.F.loc11_51.1 [concrete = constants.%D1.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.c35 = value_param_pattern [concrete = constants.%self.param_patt.fc7]
// CHECK:STDOUT: %self.patt: %pattern_type.c35 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1b8]
// CHECK:STDOUT: %self.patt: %pattern_type.c35 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.4c5]
// CHECK:STDOUT: %t.param_patt: %pattern_type.e0f = value_param_pattern [concrete = constants.%t.param_patt.cd0]
// CHECK:STDOUT: %t.patt: %pattern_type.e0f = at_binding_pattern t, %t.param_patt [concrete = constants.%t.patt.27f644.2]
// CHECK:STDOUT: %t.patt: %pattern_type.e0f = wrapper_binding_pattern t, %t.param_patt [concrete = constants.%t.patt.7ce472.2]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %D1 = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%D1 [concrete = constants.%D1]
@@ -1537,17 +1537,17 @@ class T2(G2: type) {
// CHECK:STDOUT: %Base.99a: type = class_type @Base, @Base(%ptr.e8f) [symbolic]
// CHECK:STDOUT: %pattern_type.bdc: type = pattern_type %Base.99a [symbolic]
// CHECK:STDOUT: %self.param_patt.c5a: %pattern_type.bdc = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.489: %pattern_type.bdc = at_binding_pattern self, %self.param_patt.c5a [symbolic]
// CHECK:STDOUT: %self.patt.fd0: %pattern_type.bdc = wrapper_binding_pattern self, %self.param_patt.c5a [symbolic]
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic]
// CHECK:STDOUT: %t.param_patt.47b: %pattern_type.4f4 = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt.14f0ed.1: %pattern_type.4f4 = at_binding_pattern t, %t.param_patt.47b [symbolic]
// CHECK:STDOUT: %t.patt.4bb685.1: %pattern_type.4f4 = wrapper_binding_pattern t, %t.param_patt.47b [symbolic]
// CHECK:STDOUT: %require_complete.29f: <witness> = require_complete_type %Base.99a [symbolic]
// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived, %Base.99a [symbolic]
// CHECK:STDOUT: %pattern_type.839: type = pattern_type %Derived [symbolic]
// CHECK:STDOUT: %self.param_patt.c15: %pattern_type.839 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.62f3ac.1: %pattern_type.839 = at_binding_pattern self, %self.param_patt.c15 [symbolic]
// CHECK:STDOUT: %t.patt.14f0ed.2: %pattern_type.4f4 = at_binding_pattern t, %t.param_patt.47b [symbolic]
// CHECK:STDOUT: %self.patt.62f3ac.2: %pattern_type.839 = at_binding_pattern self, %self.param_patt.c15 [symbolic]
// CHECK:STDOUT: %self.patt.8ae410.1: %pattern_type.839 = wrapper_binding_pattern self, %self.param_patt.c15 [symbolic]
// CHECK:STDOUT: %t.patt.4bb685.2: %pattern_type.4f4 = wrapper_binding_pattern t, %t.param_patt.47b [symbolic]
// CHECK:STDOUT: %self.patt.8ae410.2: %pattern_type.839 = wrapper_binding_pattern self, %self.param_patt.c15 [symbolic]
// CHECK:STDOUT: %Derived.F.type.77405e.1: type = fn_type @Derived.F.loc10_44.1, @Derived(%T) [symbolic]
// CHECK:STDOUT: %Derived.F.d85493.1: %Derived.F.type.77405e.1 = struct_value () [symbolic]
// CHECK:STDOUT: %Derived.F.type.77405e.2: type = fn_type @Derived.F.loc10_44.2, @Derived(%T) [symbolic]
@@ -1575,9 +1575,9 @@ class T2(G2: type) {
// CHECK:STDOUT: <elided>
// CHECK:STDOUT: %Derived.F.decl.loc10_44.1: @Derived.%Derived.F.type.loc10_44.1 (%Derived.F.type.77405e.1) = fn_decl @Derived.F.loc10_44.1 [symbolic = @Derived.%Derived.F.loc10_44.1 (constants.%Derived.F.d85493.1)] {
// CHECK:STDOUT: %self.param_patt.loc10_24.1: @Derived.F.loc10_44.1.%pattern_type.loc10_24 (%pattern_type.839) = value_param_pattern [symbolic = %self.param_patt.loc10_24.2 (constants.%self.param_patt.c15)]
// CHECK:STDOUT: %self.patt.loc10_24.1: @Derived.F.loc10_44.1.%pattern_type.loc10_24 (%pattern_type.839) = at_binding_pattern self, %self.param_patt.loc10_24.1 [symbolic = %self.patt.loc10_24.2 (constants.%self.patt.62f3ac.1)]
// CHECK:STDOUT: %self.patt.loc10_24.1: @Derived.F.loc10_44.1.%pattern_type.loc10_24 (%pattern_type.839) = wrapper_binding_pattern self, %self.param_patt.loc10_24.1 [symbolic = %self.patt.loc10_24.2 (constants.%self.patt.8ae410.1)]
// CHECK:STDOUT: %t.param_patt.loc10_38.1: @Derived.F.loc10_44.1.%pattern_type.loc10_38 (%pattern_type.4f4) = value_param_pattern [symbolic = %t.param_patt.loc10_38.2 (constants.%t.param_patt.47b)]
// CHECK:STDOUT: %t.patt.loc10_38.1: @Derived.F.loc10_44.1.%pattern_type.loc10_38 (%pattern_type.4f4) = at_binding_pattern t, %t.param_patt.loc10_38.1 [symbolic = %t.patt.loc10_38.2 (constants.%t.patt.14f0ed.2)]
// CHECK:STDOUT: %t.patt.loc10_38.1: @Derived.F.loc10_44.1.%pattern_type.loc10_38 (%pattern_type.4f4) = wrapper_binding_pattern t, %t.param_patt.loc10_38.1 [symbolic = %t.patt.loc10_38.2 (constants.%t.patt.4bb685.2)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: @Derived.F.loc10_44.1.%Derived (%Derived) = value_param call_param0
// CHECK:STDOUT: %.loc10_24.1: type = splice_block %Self.ref [symbolic = %Derived (constants.%Derived)] {
@@ -1624,11 +1624,11 @@ class T2(G2: type) {
// CHECK:STDOUT: %Derived: type = class_type @Derived, @Derived(%T) [symbolic = %Derived (constants.%Derived)]
// CHECK:STDOUT: %pattern_type.loc10_24: type = pattern_type %Derived [symbolic = %pattern_type.loc10_24 (constants.%pattern_type.839)]
// CHECK:STDOUT: %self.param_patt.loc10_24.2: @Derived.F.loc10_44.1.%pattern_type.loc10_24 (%pattern_type.839) = value_param_pattern [symbolic = %self.param_patt.loc10_24.2 (constants.%self.param_patt.c15)]
// CHECK:STDOUT: %self.patt.loc10_24.2: @Derived.F.loc10_44.1.%pattern_type.loc10_24 (%pattern_type.839) = at_binding_pattern self, %self.param_patt.loc10_24.2 [symbolic = %self.patt.loc10_24.2 (constants.%self.patt.62f3ac.1)]
// CHECK:STDOUT: %self.patt.loc10_24.2: @Derived.F.loc10_44.1.%pattern_type.loc10_24 (%pattern_type.839) = wrapper_binding_pattern self, %self.param_patt.loc10_24.2 [symbolic = %self.patt.loc10_24.2 (constants.%self.patt.8ae410.1)]
// CHECK:STDOUT: %ptr.loc10_41.1: type = ptr_type %T [symbolic = %ptr.loc10_41.1 (constants.%ptr.e8f)]
// CHECK:STDOUT: %pattern_type.loc10_38: type = pattern_type %ptr.loc10_41.1 [symbolic = %pattern_type.loc10_38 (constants.%pattern_type.4f4)]
// CHECK:STDOUT: %t.param_patt.loc10_38.2: @Derived.F.loc10_44.1.%pattern_type.loc10_38 (%pattern_type.4f4) = value_param_pattern [symbolic = %t.param_patt.loc10_38.2 (constants.%t.param_patt.47b)]
// CHECK:STDOUT: %t.patt.loc10_38.2: @Derived.F.loc10_44.1.%pattern_type.loc10_38 (%pattern_type.4f4) = at_binding_pattern t, %t.param_patt.loc10_38.2 [symbolic = %t.patt.loc10_38.2 (constants.%t.patt.14f0ed.2)]
// CHECK:STDOUT: %t.patt.loc10_38.2: @Derived.F.loc10_44.1.%pattern_type.loc10_38 (%pattern_type.4f4) = wrapper_binding_pattern t, %t.param_patt.loc10_38.2 [symbolic = %t.patt.loc10_38.2 (constants.%t.patt.4bb685.2)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc10_24: <witness> = require_complete_type %Derived [symbolic = %require_complete.loc10_24 (constants.%require_complete.1e7)]
@@ -1689,11 +1689,11 @@ class T2(G2: type) {
// CHECK:STDOUT: %Derived => constants.%Derived
// CHECK:STDOUT: %pattern_type.loc10_24 => constants.%pattern_type.839
// CHECK:STDOUT: %self.param_patt.loc10_24.2 => constants.%self.param_patt.c15
// CHECK:STDOUT: %self.patt.loc10_24.2 => constants.%self.patt.62f3ac.2
// CHECK:STDOUT: %self.patt.loc10_24.2 => constants.%self.patt.8ae410.2
// CHECK:STDOUT: %ptr.loc10_41.1 => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type.loc10_38 => constants.%pattern_type.4f4
// CHECK:STDOUT: %t.param_patt.loc10_38.2 => constants.%t.param_patt.47b
// CHECK:STDOUT: %t.patt.loc10_38.2 => constants.%t.patt.14f0ed.1
// CHECK:STDOUT: %t.patt.loc10_38.2 => constants.%t.patt.4bb685.1
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc10_24 => constants.%require_complete.1e7
@@ -1706,10 +1706,10 @@ class T2(G2: type) {
// CHECK:STDOUT: %Base => constants.%Base.99a
// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.bdc
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.c5a
// CHECK:STDOUT: %self.patt.2 => constants.%self.patt.489
// CHECK:STDOUT: %self.patt.2 => constants.%self.patt.fd0
// CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.4f4
// CHECK:STDOUT: %t.param_patt => constants.%t.param_patt.47b
// CHECK:STDOUT: %t.patt.2 => constants.%t.patt.14f0ed.1
// CHECK:STDOUT: %t.patt.2 => constants.%t.patt.4bb685.1
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.1 => constants.%require_complete.29f
+2 -2
View File
@@ -111,7 +111,7 @@ fn F(a: Outer*) {
// CHECK:STDOUT: %i.patt.539460.3: %pattern_type.dc4 = ref_binding_pattern i [concrete]
// CHECK:STDOUT: %i.var_patt.15311d.3: %pattern_type.dc4 = var_pattern %i.patt.539460.3 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.647 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.647 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.647 = 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: %b.patt: %pattern_type.36a = value_binding_pattern b [concrete]
@@ -161,7 +161,7 @@ fn F(a: Outer*) {
// CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.647 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.647 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.647 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %ptr.286 = value_param call_param0
// CHECK:STDOUT: %.loc45: type = splice_block %ptr.loc45 [concrete = constants.%ptr.286] {
+4 -4
View File
@@ -46,7 +46,7 @@ fn G(o: Outer) {
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.dc4: type = pattern_type %Inner [concrete]
// CHECK:STDOUT: %oi.param_patt: %pattern_type.dc4 = value_param_pattern [concrete]
// CHECK:STDOUT: %oi.patt: %pattern_type.dc4 = at_binding_pattern oi, %oi.param_patt [concrete]
// CHECK:STDOUT: %oi.patt: %pattern_type.dc4 = wrapper_binding_pattern oi, %oi.param_patt [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]
@@ -65,7 +65,7 @@ fn G(o: Outer) {
// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.d6c: type = pattern_type %Outer [concrete]
// CHECK:STDOUT: %o.param_patt: %pattern_type.d6c = value_param_pattern [concrete]
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = at_binding_pattern o, %o.param_patt [concrete]
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = wrapper_binding_pattern o, %o.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %i.patt: %pattern_type.dc4 = ref_binding_pattern i [concrete]
@@ -113,7 +113,7 @@ fn G(o: Outer) {
// CHECK:STDOUT: %Outer.decl: type = class_decl @Outer [concrete = constants.%Outer] {} {}
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %oi.param_patt: %pattern_type.dc4 = value_param_pattern [concrete = constants.%oi.param_patt]
// CHECK:STDOUT: %oi.patt: %pattern_type.dc4 = at_binding_pattern oi, %oi.param_patt [concrete = constants.%oi.patt]
// CHECK:STDOUT: %oi.patt: %pattern_type.dc4 = wrapper_binding_pattern oi, %oi.param_patt [concrete = constants.%oi.patt]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -130,7 +130,7 @@ fn G(o: Outer) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %o.param_patt: %pattern_type.d6c = value_param_pattern [concrete = constants.%o.param_patt]
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = at_binding_pattern o, %o.param_patt [concrete = constants.%o.patt]
// CHECK:STDOUT: %o.patt: %pattern_type.d6c = wrapper_binding_pattern o, %o.param_patt [concrete = constants.%o.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %o.param: %Outer = value_param call_param0
// CHECK:STDOUT: %Outer.ref: type = name_ref Outer, file.%Outer.decl [concrete = constants.%Outer]
+16 -16
View File
@@ -182,7 +182,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.331: type = partial_type %C [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %A.type: type = fn_type @A [concrete]
// CHECK:STDOUT: %A: %A.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -190,7 +190,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.331 = value_param call_param0
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.331] {
@@ -210,7 +210,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.331: type = partial_type %C [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %A.type: type = fn_type @A [concrete]
// CHECK:STDOUT: %A: %A.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -218,7 +218,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.331 = value_param call_param0
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = constants.%.331] {
@@ -266,7 +266,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.331: type = partial_type %C [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -274,7 +274,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.331 = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.331] {
@@ -294,7 +294,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.546: type = partial_type %Derived [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.546 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -302,7 +302,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.546 = value_param call_param0
// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.546] {
@@ -322,7 +322,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.331: type = partial_type %C [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.331 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -330,7 +330,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.331 = value_param call_param0
// CHECK:STDOUT: %.loc13_9.1: type = splice_block %.loc13_9.2 [concrete = constants.%.331] {
@@ -353,7 +353,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.8dc: type = partial_type %tuple.type.748 [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.8dc [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -361,7 +361,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.8dc = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.3 [concrete = constants.%.8dc] {
@@ -385,7 +385,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.91f: type = partial_type %struct_type.x [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.91f [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -393,7 +393,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.91f = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.91f] {
@@ -415,7 +415,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: %.d52: type = partial_type %.331 [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.d52 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -423,7 +423,7 @@ fn F[T: type](p: partial T*);
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %p.param_patt: %pattern_type = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %p.param: %.d52 = value_param call_param0
// CHECK:STDOUT: %.loc10_9.1: type = splice_block %.loc10_9.2 [concrete = constants.%.d52] {
+6 -6
View File
@@ -26,12 +26,12 @@ fn Class.F(unused self, unused b: ()) {}
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
// CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete]
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete]
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
@@ -55,9 +55,9 @@ fn Class.F(unused self, unused b: ()) {}
// CHECK:STDOUT: %Class.decl.loc17: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc21: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -74,9 +74,9 @@ fn Class.F(unused self, unused b: ()) {}
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.cb1 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.cb1 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc18: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc18: type = name_ref Self, constants.%Class [concrete = constants.%Class]
+6 -6
View File
@@ -41,7 +41,7 @@ fn F(c: Class, p: Class*) {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt.b2b: %pattern_type.f15 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.123: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %self.patt.f19: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete]
@@ -53,11 +53,11 @@ fn F(c: Class, p: Class*) {
// CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete]
// CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %ptr.7ee: type = ptr_type %Class [concrete]
// CHECK:STDOUT: %pattern_type.8c5: type = pattern_type %ptr.7ee [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
@@ -94,9 +94,9 @@ fn F(c: Class, p: Class*) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.f15 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %p.param_patt: %pattern_type.8c5 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.8c5 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %c.param: %Class = value_param call_param0
// CHECK:STDOUT: %Class.ref.loc21_9: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
@@ -113,7 +113,7 @@ fn F(c: Class, p: Class*) {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete = constants.%self.param_patt.b2b]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.123]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f19]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %Class = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class]
+11 -11
View File
@@ -33,7 +33,7 @@ fn Class.G(self, r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt.b2b: %pattern_type.f15 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.123: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %self.patt.f19: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
@@ -41,11 +41,11 @@ fn Class.G(self, r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %self.param_patt.0499a5.1: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f6cfaa.1: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.0499a5.1 [concrete]
// CHECK:STDOUT: %self.patt.aabd20.1: %pattern_type.6b6 = wrapper_binding_pattern r#self, %self.param_patt.0499a5.1 [concrete]
// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete]
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete]
// CHECK:STDOUT: %self.param_patt.c01: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f26: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %self.patt.1f6: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete]
// CHECK:STDOUT: %tuple.b59: %tuple.type.24b = tuple_value (%i32, %i32) [concrete]
// CHECK:STDOUT: %tuple.type.e55: type = tuple_type (%i32, %i32) [concrete]
@@ -92,9 +92,9 @@ fn Class.G(self, r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt.loc21_16: %pattern_type.f15 = ref_param_pattern [concrete = constants.%self.param_patt.b2b]
// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc21_16 [concrete = constants.%self.patt.123]
// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.loc21_16 [concrete = constants.%self.patt.f19]
// CHECK:STDOUT: %self.param_patt.loc21_28: %pattern_type.6b6 = value_param_pattern [concrete = constants.%self.param_patt.0499a5.1]
// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc21_28 [concrete = constants.%self.patt.f6cfaa.1]
// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.6b6 = wrapper_binding_pattern r#self, %self.param_patt.loc21_28 [concrete = constants.%self.patt.aabd20.1]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc21_16: ref %Class = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc21: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -105,9 +105,9 @@ fn Class.G(self, r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.param_patt.loc25_12: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc25_12 [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.loc25_12 [concrete = constants.%self.patt.1f6]
// CHECK:STDOUT: %self.param_patt.loc25_24: %pattern_type.6b6 = value_param_pattern [concrete = constants.%self.param_patt.0499a5.1]
// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc25_24 [concrete = constants.%self.patt.f6cfaa.1]
// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.6b6 = wrapper_binding_pattern r#self, %self.param_patt.loc25_24 [concrete = constants.%self.patt.aabd20.1]
// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete = constants.%return.param_patt.a90]
// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc25_43.2 [concrete = constants.%return.patt.2ed]
// CHECK:STDOUT: } {
@@ -130,9 +130,9 @@ fn Class.G(self, r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt.loc21_16: %pattern_type.f15 = ref_param_pattern [concrete = constants.%self.param_patt.b2b]
// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc21_16 [concrete = constants.%self.patt.123]
// CHECK:STDOUT: %self.patt.loc21_16: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.loc21_16 [concrete = constants.%self.patt.f19]
// CHECK:STDOUT: %self.param_patt.loc21_28: %pattern_type.6b6 = value_param_pattern [concrete = constants.%self.param_patt.0499a5.1]
// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc21_28 [concrete = constants.%self.patt.f6cfaa.1]
// CHECK:STDOUT: %self.patt.loc21_28: %pattern_type.6b6 = wrapper_binding_pattern r#self, %self.param_patt.loc21_28 [concrete = constants.%self.patt.aabd20.1]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param.loc16_12: ref %Class = ref_param call_param0
// CHECK:STDOUT: %Self.ref.loc16: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -143,9 +143,9 @@ fn Class.G(self, r#self: i32) -> (i32, i32) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.param_patt.loc25_12: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.loc25_12 [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt.loc25_12: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.loc25_12 [concrete = constants.%self.patt.1f6]
// CHECK:STDOUT: %self.param_patt.loc25_24: %pattern_type.6b6 = value_param_pattern [concrete = constants.%self.param_patt.0499a5.1]
// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.6b6 = at_binding_pattern r#self, %self.param_patt.loc25_24 [concrete = constants.%self.patt.f6cfaa.1]
// CHECK:STDOUT: %self.patt.loc25_24: %pattern_type.6b6 = wrapper_binding_pattern r#self, %self.param_patt.loc25_24 [concrete = constants.%self.patt.aabd20.1]
// CHECK:STDOUT: %return.param_patt: %pattern_type.394 = out_param_pattern [concrete = constants.%return.param_patt.a90]
// CHECK:STDOUT: %return.patt: %pattern_type.394 = return_slot_pattern %return.param_patt, %.loc25_43.2 [concrete = constants.%return.patt.2ed]
// CHECK:STDOUT: } {
+6 -6
View File
@@ -68,10 +68,10 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT: %Self.7fc: type = class_type @Self [concrete]
// CHECK:STDOUT: %pattern_type.bb1: type = pattern_type %MemberNamedSelf [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.bb1 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = wrapper_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %pattern_type.917: type = pattern_type %Self.7fc [concrete]
// CHECK:STDOUT: %y.param_patt: %pattern_type.917 = value_param_pattern [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.917 = at_binding_pattern y, %y.param_patt [concrete]
// CHECK:STDOUT: %y.patt: %pattern_type.917 = wrapper_binding_pattern y, %y.param_patt [concrete]
// CHECK:STDOUT: %MemberNamedSelf.F.type: type = fn_type @MemberNamedSelf.F [concrete]
// CHECK:STDOUT: %MemberNamedSelf.F: %MemberNamedSelf.F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -104,9 +104,9 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT: %MemberNamedSelf.decl: type = class_decl @MemberNamedSelf [concrete = constants.%MemberNamedSelf] {} {}
// CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.bb1 = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %y.param_patt: %pattern_type.917 = value_param_pattern [concrete = constants.%y.param_patt]
// CHECK:STDOUT: %y.patt: %pattern_type.917 = at_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: %y.patt: %pattern_type.917 = wrapper_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param.loc28: %MemberNamedSelf = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc28_32: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf]
@@ -131,9 +131,9 @@ fn MemberNamedSelf.F(unused x: Self, unused y: r#Self) {}
// CHECK:STDOUT: %Self.decl: type = class_decl @Self [concrete = constants.%Self.7fc] {} {}
// CHECK:STDOUT: %MemberNamedSelf.F.decl: %MemberNamedSelf.F.type = fn_decl @MemberNamedSelf.F [concrete = constants.%MemberNamedSelf.F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.bb1 = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.bb1 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %y.param_patt: %pattern_type.917 = value_param_pattern [concrete = constants.%y.param_patt]
// CHECK:STDOUT: %y.patt: %pattern_type.917 = at_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: %y.patt: %pattern_type.917 = wrapper_binding_pattern y, %y.param_patt [concrete = constants.%y.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param.loc25: %MemberNamedSelf = value_param call_param0
// CHECK:STDOUT: %Self.ref.loc25_11: type = name_ref Self, constants.%MemberNamedSelf [concrete = constants.%MemberNamedSelf]
+16 -16
View File
@@ -99,7 +99,7 @@ class Class {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt.c01: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f26: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %self.patt.1f6: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
@@ -112,7 +112,7 @@ class Class {
// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete]
// CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [concrete]
// CHECK:STDOUT: %self.param_patt.b2b: %pattern_type.f15 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.123: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %self.patt.f19: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.b2b [concrete]
// CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G [concrete]
// CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [concrete]
// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %i32 [concrete]
@@ -152,7 +152,7 @@ class Class {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1f6]
// 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.loc13 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -166,7 +166,7 @@ class Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete = constants.%self.param_patt.b2b]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.123]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f19]
// 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.loc17 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -183,7 +183,7 @@ class Class {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1f6]
// 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.loc13 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -197,7 +197,7 @@ class Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [concrete = constants.%Class.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = ref_param_pattern [concrete = constants.%self.param_patt.b2b]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.123]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f19]
// 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.loc17 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -254,7 +254,7 @@ class Class {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %Class.F.type.48cdab.1: type = fn_type @Class.F.loc4 [concrete]
// CHECK:STDOUT: %Class.F.bd5be1.1: %Class.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %Class.G.type.321a2c.1: type = fn_type @Class.G.loc5 [concrete]
@@ -283,7 +283,7 @@ class Class {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type.48cdab.2 = fn_decl @Class.F.loc16 [concrete = constants.%Class.F.bd5be1.2] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -291,7 +291,7 @@ class Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type.321a2c.2 = fn_decl @Class.G.loc25 [concrete = constants.%Class.G.d407b2.2] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -302,7 +302,7 @@ class Class {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type.48cdab.1 = fn_decl @Class.F.loc4 [concrete = constants.%Class.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -310,7 +310,7 @@ class Class {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Class.G.decl: %Class.G.type.321a2c.1 = fn_decl @Class.G.loc5 [concrete = constants.%Class.G.d407b2.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -345,7 +345,7 @@ class Class {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %Class.F.type.48cdab.1: type = fn_type @Class.F.loc4 [concrete]
// CHECK:STDOUT: %Class.F.bd5be1.1: %Class.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
@@ -370,7 +370,7 @@ class Class {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type.48cdab.2 = fn_decl @Class.F.loc16 [concrete = constants.%Class.F.bd5be1.2] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Class = value_param call_param0
// CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class]
@@ -381,7 +381,7 @@ class Class {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type.48cdab.1 = fn_decl @Class.F.loc4 [concrete = constants.%Class.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %Class = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Class [concrete = constants.%Class]
@@ -409,7 +409,7 @@ class Class {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt.c01: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f26: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %self.patt.1f6: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete]
// CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F [concrete]
@@ -439,7 +439,7 @@ class Class {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1f6]
// CHECK:STDOUT: %return.patt: <error> = return_slot_pattern <error>, <error> [concrete = <error>]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.ref: %Class = name_ref self, %self
+3 -3
View File
@@ -32,7 +32,7 @@ fn Class.F(self) -> i32 {
// CHECK:STDOUT: %Class: type = class_type @Class [concrete]
// CHECK:STDOUT: %pattern_type.f15: type = pattern_type %Class [concrete]
// CHECK:STDOUT: %self.param_patt.c01: %pattern_type.f15 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.f26: %pattern_type.f15 = at_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %self.patt.1f6: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt.c01 [concrete]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete]
@@ -101,7 +101,7 @@ fn Class.F(self) -> i32 {
// CHECK:STDOUT: %Class.decl: type = class_decl @Class [concrete = constants.%Class] {} {}
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1f6]
// 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.loc25 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -118,7 +118,7 @@ fn Class.F(self) -> i32 {
// CHECK:STDOUT: class @Class {
// CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [concrete = constants.%Class.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.f15 = value_param_pattern [concrete = constants.%self.param_patt.c01]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f26]
// CHECK:STDOUT: %self.patt: %pattern_type.f15 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.1f6]
// 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.loc25 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
+3 -3
View File
@@ -1210,7 +1210,7 @@ fn Base.F(ref self: Base) {
// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %empty_tuple.type [concrete]
// CHECK:STDOUT: %pattern_type.912: type = pattern_type %Base [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %Base.F.type.48cdab.1: type = fn_type @Base.F.loc7 [concrete]
// CHECK:STDOUT: %Base.F.bd5be1.1: %Base.F.type.48cdab.1 = struct_value () [concrete]
// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [concrete]
@@ -1226,7 +1226,7 @@ fn Base.F(ref self: Base) {
// CHECK:STDOUT: %Base.decl: type = class_decl @Base [concrete = constants.%Base] {} {}
// CHECK:STDOUT: %Base.F.decl: %Base.F.type.48cdab.2 = fn_decl @Base.F.loc17 [concrete = constants.%Base.F.bd5be1.2] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Base.ref: type = name_ref Base, file.%Base.decl [concrete = constants.%Base]
@@ -1238,7 +1238,7 @@ fn Base.F(ref self: Base) {
// CHECK:STDOUT: %.loc5: %Base.elem = field_decl a, element0 [concrete]
// CHECK:STDOUT: %Base.F.decl: %Base.F.type.48cdab.1 = fn_decl @Base.F.loc7 [concrete = constants.%Base.F.bd5be1.1] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.912 = ref_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type.912 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %Base = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%Base [concrete = constants.%Base]
+6 -6
View File
@@ -137,7 +137,7 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: %ptr.0c8: type = ptr_type %ptr.77f [concrete]
// CHECK:STDOUT: %pattern_type.803: type = pattern_type %ptr.0c8 [concrete]
// CHECK:STDOUT: %p.param_patt.a04: %pattern_type.803 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.b92: %pattern_type.803 = at_binding_pattern p, %p.param_patt.a04 [concrete]
// CHECK:STDOUT: %p.patt.442: %pattern_type.803 = wrapper_binding_pattern p, %p.param_patt.a04 [concrete]
// CHECK:STDOUT: %.5f5: Core.Form = init_form %ptr.0c8 [concrete]
// CHECK:STDOUT: %return.param_patt.934: %pattern_type.803 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.895: %pattern_type.803 = return_slot_pattern %return.param_patt.934, %ptr.0c8 [concrete]
@@ -161,7 +161,7 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: %const.0f8: type = const_type %ptr.6b6 [concrete]
// CHECK:STDOUT: %pattern_type.76c: type = pattern_type %const.0f8 [concrete]
// CHECK:STDOUT: %p.param_patt.eb7: %pattern_type.76c = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.168: %pattern_type.76c = at_binding_pattern p, %p.param_patt.eb7 [concrete]
// CHECK:STDOUT: %p.patt.5d3: %pattern_type.76c = wrapper_binding_pattern p, %p.param_patt.eb7 [concrete]
// CHECK:STDOUT: %.fdf: Core.Form = init_form %const.0f8 [concrete]
// CHECK:STDOUT: %return.param_patt.7d8: %pattern_type.76c = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.973: %pattern_type.76c = return_slot_pattern %return.param_patt.7d8, %const.0f8 [concrete]
@@ -188,7 +188,7 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.803 = value_param_pattern [concrete = constants.%p.param_patt.a04]
// CHECK:STDOUT: %p.patt: %pattern_type.803 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.b92]
// CHECK:STDOUT: %p.patt: %pattern_type.803 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.442]
// CHECK:STDOUT: %return.param_patt: %pattern_type.803 = out_param_pattern [concrete = constants.%return.param_patt.934]
// CHECK:STDOUT: %return.patt: %pattern_type.803 = return_slot_pattern %return.param_patt, %ptr.loc6_31 [concrete = constants.%return.patt.895]
// CHECK:STDOUT: } {
@@ -210,7 +210,7 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.76c = value_param_pattern [concrete = constants.%p.param_patt.eb7]
// CHECK:STDOUT: %p.patt: %pattern_type.76c = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.168]
// CHECK:STDOUT: %p.patt: %pattern_type.76c = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.5d3]
// CHECK:STDOUT: %return.param_patt: %pattern_type.76c = out_param_pattern [concrete = constants.%return.param_patt.7d8]
// CHECK:STDOUT: %return.patt: %pattern_type.76c = return_slot_pattern %return.param_patt, %const.loc10_24 [concrete = constants.%return.patt.973]
// CHECK:STDOUT: } {
@@ -265,7 +265,7 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: %ptr.0c8: type = ptr_type %ptr.77f [concrete]
// CHECK:STDOUT: %pattern_type.803: type = pattern_type %ptr.0c8 [concrete]
// CHECK:STDOUT: %p.param_patt: %pattern_type.803 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.803 = at_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %p.patt: %pattern_type.803 = wrapper_binding_pattern p, %p.param_patt [concrete]
// CHECK:STDOUT: %.5f5: Core.Form = init_form %ptr.0c8 [concrete]
// CHECK:STDOUT: %return.param_patt.934: %pattern_type.803 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.895: %pattern_type.803 = return_slot_pattern %return.param_patt.934, %ptr.0c8 [concrete]
@@ -292,7 +292,7 @@ fn PassConstReferenceToReference(p: const X*) {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.803 = value_param_pattern [concrete = constants.%p.param_patt]
// CHECK:STDOUT: %p.patt: %pattern_type.803 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %p.patt: %pattern_type.803 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.803 = out_param_pattern [concrete = constants.%return.param_patt.934]
// CHECK:STDOUT: %return.patt: %pattern_type.803 = return_slot_pattern %return.param_patt, %ptr.loc11_39 [concrete = constants.%return.patt.895]
// CHECK:STDOUT: } {
+37 -37
View File
@@ -160,7 +160,7 @@ fn G() {
// CHECK:STDOUT: %array_type.3ec: type = array_type %int_3, %T [symbolic]
// CHECK:STDOUT: %pattern_type.b3f: type = pattern_type %array_type.3ec [symbolic]
// CHECK:STDOUT: %a.param_patt.480: %pattern_type.b3f = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.2e7: %pattern_type.b3f = at_binding_pattern a, %a.param_patt.480 [symbolic]
// CHECK:STDOUT: %a.patt.bde: %pattern_type.b3f = wrapper_binding_pattern a, %a.param_patt.480 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -189,7 +189,7 @@ fn G() {
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete]
// CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [concrete]
// CHECK:STDOUT: %a.param_patt.79a: %pattern_type.3f5 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.e9e: %pattern_type.3f5 = at_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %F.specific_fn.e0d: <specific function> = specific_function %F, @F(%C) [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete]
@@ -218,7 +218,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc6_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %a.param_patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = value_param_pattern [symbolic = %a.param_patt.loc6_16.2 (constants.%a.param_patt.480)]
// CHECK:STDOUT: %a.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = at_binding_pattern a, %a.param_patt.loc6_16.1 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.2e7)]
// CHECK:STDOUT: %a.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = wrapper_binding_pattern a, %a.param_patt.loc6_16.1 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.bde)]
// CHECK:STDOUT: %return.param_patt.loc6_34.1: @F.%pattern_type.loc6_34 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_34.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc6_31.1: @F.%pattern_type.loc6_34 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc6_34.1, %T.ref.loc6_34 [symbolic = %return.patt.loc6_31.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -264,7 +264,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_28.1: type = array_type constants.%int_3, %T.loc6_7.1 [symbolic = %array_type.loc6_28.1 (constants.%array_type.3ec)]
// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_28.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.b3f)]
// CHECK:STDOUT: %a.param_patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = value_param_pattern [symbolic = %a.param_patt.loc6_16.2 (constants.%a.param_patt.480)]
// CHECK:STDOUT: %a.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = at_binding_pattern a, %a.param_patt.loc6_16.2 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.2e7)]
// CHECK:STDOUT: %a.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.b3f) = wrapper_binding_pattern a, %a.param_patt.loc6_16.2 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.bde)]
// CHECK:STDOUT: %.loc6_34.2: Core.Form = init_form %T.loc6_7.1 [symbolic = %.loc6_34.2 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc6_34: type = pattern_type %T.loc6_7.1 [symbolic = %pattern_type.loc6_34 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc6_34.2: @F.%pattern_type.loc6_34 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_34.2 (constants.%return.param_patt.41d)]
@@ -346,7 +346,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_28.1 => constants.%array_type.3ec
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.b3f
// CHECK:STDOUT: %a.param_patt.loc6_16.2 => constants.%a.param_patt.480
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.2e7
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.bde
// CHECK:STDOUT: %.loc6_34.2 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_34 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_34.2 => constants.%return.param_patt.41d
@@ -363,7 +363,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_28.1 => constants.%array_type.9a3
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.3f5
// CHECK:STDOUT: %a.param_patt.loc6_16.2 => constants.%a.param_patt.79a
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.e9e
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.40c
// CHECK:STDOUT: %.loc6_34.2 => constants.%.a44
// CHECK:STDOUT: %pattern_type.loc6_34 => constants.%pattern_type.98b
// CHECK:STDOUT: %return.param_patt.loc6_34.2 => constants.%return.param_patt.89a
@@ -388,7 +388,7 @@ fn G() {
// CHECK:STDOUT: %array_type.87f: type = array_type %N, %C [symbolic]
// CHECK:STDOUT: %pattern_type.5ed: type = pattern_type %array_type.87f [symbolic]
// CHECK:STDOUT: %a.param_patt.9e2: %pattern_type.5ed = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.59e: %pattern_type.5ed = at_binding_pattern a, %a.param_patt.9e2 [symbolic]
// CHECK:STDOUT: %a.patt.8c4: %pattern_type.5ed = wrapper_binding_pattern a, %a.param_patt.9e2 [symbolic]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
@@ -433,7 +433,7 @@ fn G() {
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete]
// CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [concrete]
// CHECK:STDOUT: %a.param_patt.79a: %pattern_type.3f5 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.e9e: %pattern_type.3f5 = at_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%int_3.1ba) [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete]
@@ -473,7 +473,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt.loc6_7.1: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_7.2 (constants.%N.patt)]
// CHECK:STDOUT: %a.param_patt.loc6_34.1: @F.%pattern_type (%pattern_type.5ed) = value_param_pattern [symbolic = %a.param_patt.loc6_34.2 (constants.%a.param_patt.9e2)]
// CHECK:STDOUT: %a.patt.loc6_34.1: @F.%pattern_type (%pattern_type.5ed) = at_binding_pattern a, %a.param_patt.loc6_34.1 [symbolic = %a.patt.loc6_34.2 (constants.%a.patt.59e)]
// CHECK:STDOUT: %a.patt.loc6_34.1: @F.%pattern_type (%pattern_type.5ed) = wrapper_binding_pattern a, %a.param_patt.loc6_34.1 [symbolic = %a.patt.loc6_34.2 (constants.%a.patt.8c4)]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -520,7 +520,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_46.1: type = array_type %N.loc6_7.1, constants.%C [symbolic = %array_type.loc6_46.1 (constants.%array_type.87f)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_46.1 [symbolic = %pattern_type (constants.%pattern_type.5ed)]
// CHECK:STDOUT: %a.param_patt.loc6_34.2: @F.%pattern_type (%pattern_type.5ed) = value_param_pattern [symbolic = %a.param_patt.loc6_34.2 (constants.%a.param_patt.9e2)]
// CHECK:STDOUT: %a.patt.loc6_34.2: @F.%pattern_type (%pattern_type.5ed) = at_binding_pattern a, %a.param_patt.loc6_34.2 [symbolic = %a.patt.loc6_34.2 (constants.%a.patt.59e)]
// CHECK:STDOUT: %a.patt.loc6_34.2: @F.%pattern_type (%pattern_type.5ed) = wrapper_binding_pattern a, %a.param_patt.loc6_34.2 [symbolic = %a.patt.loc6_34.2 (constants.%a.patt.8c4)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %array_type.loc6_46.1 [symbolic = %require_complete (constants.%require_complete.29f)]
@@ -601,7 +601,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_46.1 => constants.%array_type.87f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5ed
// CHECK:STDOUT: %a.param_patt.loc6_34.2 => constants.%a.param_patt.9e2
// CHECK:STDOUT: %a.patt.loc6_34.2 => constants.%a.patt.59e
// CHECK:STDOUT: %a.patt.loc6_34.2 => constants.%a.patt.8c4
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @F(constants.%int_3.1ba) {
@@ -610,7 +610,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_46.1 => constants.%array_type.9a3
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f5
// CHECK:STDOUT: %a.param_patt.loc6_34.2 => constants.%a.param_patt.79a
// CHECK:STDOUT: %a.patt.loc6_34.2 => constants.%a.patt.e9e
// CHECK:STDOUT: %a.patt.loc6_34.2 => constants.%a.patt.40c
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.1a4
@@ -636,7 +636,7 @@ fn G() {
// CHECK:STDOUT: %array_type.6d2: type = array_type %N, %T [symbolic]
// CHECK:STDOUT: %pattern_type.4d8: type = pattern_type %array_type.6d2 [symbolic]
// CHECK:STDOUT: %a.param_patt.0e1: %pattern_type.4d8 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.3a9: %pattern_type.4d8 = at_binding_pattern a, %a.param_patt.0e1 [symbolic]
// CHECK:STDOUT: %a.patt.f10: %pattern_type.4d8 = wrapper_binding_pattern a, %a.param_patt.0e1 [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
@@ -657,7 +657,7 @@ fn G() {
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete]
// CHECK:STDOUT: %array: %array_type.9a3 = tuple_value (%C.val, %C.val, %C.val) [concrete]
// CHECK:STDOUT: %a.param_patt.79a: %pattern_type.3f5 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.e9e: %pattern_type.3f5 = at_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%C, %int_3) [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc9_3.3 [concrete]
@@ -689,7 +689,7 @@ fn G() {
// CHECK:STDOUT: %T.patt.loc6_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %N.patt.loc6_16.1: %pattern_type.dc0 = symbolic_binding_pattern N, 1 [symbolic = %N.patt.loc6_16.2 (constants.%N.patt)]
// CHECK:STDOUT: %a.param_patt.loc6_43.1: @F.%pattern_type (%pattern_type.4d8) = value_param_pattern [symbolic = %a.param_patt.loc6_43.2 (constants.%a.param_patt.0e1)]
// CHECK:STDOUT: %a.patt.loc6_43.1: @F.%pattern_type (%pattern_type.4d8) = at_binding_pattern a, %a.param_patt.loc6_43.1 [symbolic = %a.patt.loc6_43.2 (constants.%a.patt.3a9)]
// CHECK:STDOUT: %a.patt.loc6_43.1: @F.%pattern_type (%pattern_type.4d8) = wrapper_binding_pattern a, %a.param_patt.loc6_43.1 [symbolic = %a.patt.loc6_43.2 (constants.%a.patt.f10)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc6_9.1: type = splice_block %.loc6_9.2 [concrete = type] {
// CHECK:STDOUT: %.Self.frozen.loc6_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -729,7 +729,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_55.1: type = array_type %N.loc6_16.1, %T.loc6_7.1 [symbolic = %array_type.loc6_55.1 (constants.%array_type.6d2)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_55.1 [symbolic = %pattern_type (constants.%pattern_type.4d8)]
// CHECK:STDOUT: %a.param_patt.loc6_43.2: @F.%pattern_type (%pattern_type.4d8) = value_param_pattern [symbolic = %a.param_patt.loc6_43.2 (constants.%a.param_patt.0e1)]
// CHECK:STDOUT: %a.patt.loc6_43.2: @F.%pattern_type (%pattern_type.4d8) = at_binding_pattern a, %a.param_patt.loc6_43.2 [symbolic = %a.patt.loc6_43.2 (constants.%a.patt.3a9)]
// CHECK:STDOUT: %a.patt.loc6_43.2: @F.%pattern_type (%pattern_type.4d8) = wrapper_binding_pattern a, %a.param_patt.loc6_43.2 [symbolic = %a.patt.loc6_43.2 (constants.%a.patt.f10)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %array_type.loc6_55.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -802,7 +802,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_55.1 => constants.%array_type.6d2
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4d8
// CHECK:STDOUT: %a.param_patt.loc6_43.2 => constants.%a.param_patt.0e1
// CHECK:STDOUT: %a.patt.loc6_43.2 => constants.%a.patt.3a9
// CHECK:STDOUT: %a.patt.loc6_43.2 => constants.%a.patt.f10
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @F(constants.%C, constants.%int_3) {
@@ -813,7 +813,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_55.1 => constants.%array_type.9a3
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f5
// CHECK:STDOUT: %a.param_patt.loc6_43.2 => constants.%a.param_patt.79a
// CHECK:STDOUT: %a.patt.loc6_43.2 => constants.%a.patt.e9e
// CHECK:STDOUT: %a.patt.loc6_43.2 => constants.%a.patt.40c
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.1a4
@@ -834,7 +834,7 @@ fn G() {
// CHECK:STDOUT: %array_type.a0b: type = array_type %int_2, %T [symbolic]
// CHECK:STDOUT: %pattern_type.b42: type = pattern_type %array_type.a0b [symbolic]
// CHECK:STDOUT: %a.param_patt.9b5: %pattern_type.b42 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.388: %pattern_type.b42 = at_binding_pattern a, %a.param_patt.9b5 [symbolic]
// CHECK:STDOUT: %a.patt.c20: %pattern_type.b42 = wrapper_binding_pattern a, %a.param_patt.9b5 [symbolic]
// CHECK:STDOUT: %.184347.1: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d1c4.1: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d2d9.1: %pattern_type.51d1c4.1 = out_param_pattern [symbolic]
@@ -865,7 +865,7 @@ fn G() {
// CHECK:STDOUT: %array_type.cc9: type = array_type %int_2, %C [concrete]
// CHECK:STDOUT: %pattern_type.08b: type = pattern_type %array_type.cc9 [concrete]
// CHECK:STDOUT: %a.param_patt.143: %pattern_type.08b = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.7c0: %pattern_type.08b = at_binding_pattern a, %a.param_patt.143 [concrete]
// CHECK:STDOUT: %a.patt.841: %pattern_type.08b = wrapper_binding_pattern a, %a.param_patt.143 [concrete]
// CHECK:STDOUT: %F.specific_fn.e0d: <specific function> = specific_function %F, @F(%C) [concrete]
// CHECK:STDOUT: %ImplicitAs.type.0ff: type = generic_interface_type @ImplicitAs [concrete]
// CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.0ff = struct_value () [concrete]
@@ -898,7 +898,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc6_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %a.param_patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.b42) = value_param_pattern [symbolic = %a.param_patt.loc6_16.2 (constants.%a.param_patt.9b5)]
// CHECK:STDOUT: %a.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.b42) = at_binding_pattern a, %a.param_patt.loc6_16.1 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.388)]
// CHECK:STDOUT: %a.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.b42) = wrapper_binding_pattern a, %a.param_patt.loc6_16.1 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.c20)]
// CHECK:STDOUT: %return.param_patt.loc6_34.1: @F.%pattern_type.loc6_34 (%pattern_type.51d1c4.1) = out_param_pattern [symbolic = %return.param_patt.loc6_34.2 (constants.%return.param_patt.41d2d9.1)]
// CHECK:STDOUT: %return.patt.loc6_31.1: @F.%pattern_type.loc6_34 (%pattern_type.51d1c4.1) = return_slot_pattern %return.param_patt.loc6_34.1, %T.ref.loc6_34 [symbolic = %return.patt.loc6_31.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -944,7 +944,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_28.1: type = array_type constants.%int_2, %T.loc6_7.1 [symbolic = %array_type.loc6_28.1 (constants.%array_type.a0b)]
// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %array_type.loc6_28.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.b42)]
// CHECK:STDOUT: %a.param_patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.b42) = value_param_pattern [symbolic = %a.param_patt.loc6_16.2 (constants.%a.param_patt.9b5)]
// CHECK:STDOUT: %a.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.b42) = at_binding_pattern a, %a.param_patt.loc6_16.2 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.388)]
// CHECK:STDOUT: %a.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.b42) = wrapper_binding_pattern a, %a.param_patt.loc6_16.2 [symbolic = %a.patt.loc6_16.2 (constants.%a.patt.c20)]
// CHECK:STDOUT: %.loc6_34.2: Core.Form = init_form %T.loc6_7.1 [symbolic = %.loc6_34.2 (constants.%.184347.1)]
// CHECK:STDOUT: %pattern_type.loc6_34: type = pattern_type %T.loc6_7.1 [symbolic = %pattern_type.loc6_34 (constants.%pattern_type.51d1c4.1)]
// CHECK:STDOUT: %return.param_patt.loc6_34.2: @F.%pattern_type.loc6_34 (%pattern_type.51d1c4.1) = out_param_pattern [symbolic = %return.param_patt.loc6_34.2 (constants.%return.param_patt.41d2d9.1)]
@@ -1026,7 +1026,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_28.1 => constants.%array_type.a0b
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.b42
// CHECK:STDOUT: %a.param_patt.loc6_16.2 => constants.%a.param_patt.9b5
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.388
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.c20
// CHECK:STDOUT: %.loc6_34.2 => constants.%.184347.1
// CHECK:STDOUT: %pattern_type.loc6_34 => constants.%pattern_type.51d1c4.1
// CHECK:STDOUT: %return.param_patt.loc6_34.2 => constants.%return.param_patt.41d2d9.1
@@ -1043,7 +1043,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_28.1 => constants.%array_type.cc9
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.08b
// CHECK:STDOUT: %a.param_patt.loc6_16.2 => constants.%a.param_patt.143
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.7c0
// CHECK:STDOUT: %a.patt.loc6_16.2 => constants.%a.patt.841
// CHECK:STDOUT: %.loc6_34.2 => constants.%.a44
// CHECK:STDOUT: %pattern_type.loc6_34 => constants.%pattern_type.98b
// CHECK:STDOUT: %return.param_patt.loc6_34.2 => constants.%return.param_patt.89a
@@ -1069,7 +1069,7 @@ fn G() {
// CHECK:STDOUT: %array_type.87f: type = array_type %N, %C [symbolic]
// CHECK:STDOUT: %pattern_type.5ed: type = pattern_type %array_type.87f [symbolic]
// CHECK:STDOUT: %a.param_patt.9e2: %pattern_type.5ed = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.59e: %pattern_type.5ed = at_binding_pattern a, %a.param_patt.9e2 [symbolic]
// CHECK:STDOUT: %a.patt.8c4: %pattern_type.5ed = wrapper_binding_pattern a, %a.param_patt.9e2 [symbolic]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
@@ -1116,7 +1116,7 @@ fn G() {
// CHECK:STDOUT: %array_type.9a3: type = array_type %int_3.1ba, %C [concrete]
// CHECK:STDOUT: %pattern_type.3f5: type = pattern_type %array_type.9a3 [concrete]
// CHECK:STDOUT: %a.param_patt.79a: %pattern_type.3f5 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.e9e: %pattern_type.3f5 = at_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %a.patt.40c: %pattern_type.3f5 = wrapper_binding_pattern a, %a.param_patt.79a [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%int_3.1ba) [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.3: type = fn_type @Destroy.Op.loc11_3.3 [concrete]
@@ -1158,7 +1158,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt.loc7_7.1: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc7_7.2 (constants.%N.patt)]
// CHECK:STDOUT: %a.param_patt.loc7_34.1: @F.%pattern_type (%pattern_type.5ed) = value_param_pattern [symbolic = %a.param_patt.loc7_34.2 (constants.%a.param_patt.9e2)]
// CHECK:STDOUT: %a.patt.loc7_34.1: @F.%pattern_type (%pattern_type.5ed) = at_binding_pattern a, %a.param_patt.loc7_34.1 [symbolic = %a.patt.loc7_34.2 (constants.%a.patt.59e)]
// CHECK:STDOUT: %a.patt.loc7_34.1: @F.%pattern_type (%pattern_type.5ed) = wrapper_binding_pattern a, %a.param_patt.loc7_34.1 [symbolic = %a.patt.loc7_34.2 (constants.%a.patt.8c4)]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -1213,7 +1213,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc7_46.1: type = array_type %N.loc7_7.1, constants.%C [symbolic = %array_type.loc7_46.1 (constants.%array_type.87f)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_46.1 [symbolic = %pattern_type (constants.%pattern_type.5ed)]
// CHECK:STDOUT: %a.param_patt.loc7_34.2: @F.%pattern_type (%pattern_type.5ed) = value_param_pattern [symbolic = %a.param_patt.loc7_34.2 (constants.%a.param_patt.9e2)]
// CHECK:STDOUT: %a.patt.loc7_34.2: @F.%pattern_type (%pattern_type.5ed) = at_binding_pattern a, %a.param_patt.loc7_34.2 [symbolic = %a.patt.loc7_34.2 (constants.%a.patt.59e)]
// CHECK:STDOUT: %a.patt.loc7_34.2: @F.%pattern_type (%pattern_type.5ed) = wrapper_binding_pattern a, %a.param_patt.loc7_34.2 [symbolic = %a.patt.loc7_34.2 (constants.%a.patt.8c4)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %array_type.loc7_46.1 [symbolic = %require_complete (constants.%require_complete.29f)]
@@ -1294,7 +1294,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc7_46.1 => constants.%array_type.87f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5ed
// CHECK:STDOUT: %a.param_patt.loc7_34.2 => constants.%a.param_patt.9e2
// CHECK:STDOUT: %a.patt.loc7_34.2 => constants.%a.patt.59e
// CHECK:STDOUT: %a.patt.loc7_34.2 => constants.%a.patt.8c4
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @F(constants.%int_3.1ba) {
@@ -1303,7 +1303,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc7_46.1 => constants.%array_type.9a3
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f5
// CHECK:STDOUT: %a.param_patt.loc7_34.2 => constants.%a.param_patt.79a
// CHECK:STDOUT: %a.patt.loc7_34.2 => constants.%a.patt.e9e
// CHECK:STDOUT: %a.patt.loc7_34.2 => constants.%a.patt.40c
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.1a4
@@ -1348,7 +1348,7 @@ fn G() {
// CHECK:STDOUT: %array_type.47c: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %C [symbolic]
// CHECK:STDOUT: %pattern_type.f28: type = pattern_type %array_type.47c [symbolic]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f28 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.624: %pattern_type.f28 = at_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %a.patt.9dd: %pattern_type.f28 = wrapper_binding_pattern a, %a.param_patt [symbolic]
// 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]
@@ -1418,7 +1418,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt.loc6_7.1: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_7.2 (constants.%N.patt.38a)]
// CHECK:STDOUT: %a.param_patt.loc6_22.1: @F.%pattern_type (%pattern_type.f28) = value_param_pattern [symbolic = %a.param_patt.loc6_22.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc6_22.1: @F.%pattern_type (%pattern_type.f28) = at_binding_pattern a, %a.param_patt.loc6_22.1 [symbolic = %a.patt.loc6_22.2 (constants.%a.patt.624)]
// CHECK:STDOUT: %a.patt.loc6_22.1: @F.%pattern_type (%pattern_type.f28) = wrapper_binding_pattern a, %a.param_patt.loc6_22.1 [symbolic = %a.patt.loc6_22.2 (constants.%a.patt.9dd)]
// 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.loc6_40 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -1474,7 +1474,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_34.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc6_33.1, constants.%C [symbolic = %array_type.loc6_34.1 (constants.%array_type.47c)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_34.1 [symbolic = %pattern_type (constants.%pattern_type.f28)]
// CHECK:STDOUT: %a.param_patt.loc6_22.2: @F.%pattern_type (%pattern_type.f28) = value_param_pattern [symbolic = %a.param_patt.loc6_22.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc6_22.2: @F.%pattern_type (%pattern_type.f28) = at_binding_pattern a, %a.param_patt.loc6_22.2 [symbolic = %a.patt.loc6_22.2 (constants.%a.patt.624)]
// CHECK:STDOUT: %a.patt.loc6_22.2: @F.%pattern_type (%pattern_type.f28) = wrapper_binding_pattern a, %a.param_patt.loc6_22.2 [symbolic = %a.patt.loc6_22.2 (constants.%a.patt.9dd)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %array_type.loc6_34.1 [symbolic = %require_complete (constants.%require_complete.540)]
@@ -1553,7 +1553,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc6_34.1 => constants.%array_type.47c
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f28
// CHECK:STDOUT: %a.param_patt.loc6_22.2 => constants.%a.param_patt
// CHECK:STDOUT: %a.patt.loc6_22.2 => constants.%a.patt.624
// CHECK:STDOUT: %a.patt.loc6_22.2 => constants.%a.patt.9dd
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: --- fail_todo_array_length_from_tuple.carbon
@@ -1590,7 +1590,7 @@ fn G() {
// CHECK:STDOUT: %array_type: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %C [symbolic]
// CHECK:STDOUT: %pattern_type.f28: type = pattern_type %array_type [symbolic]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f28 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.f28 = at_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.f28 = wrapper_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.540: <witness> = require_complete_type %array_type [symbolic]
@@ -1626,7 +1626,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt.loc5_7.1: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc5_7.2 (constants.%N.patt.38a)]
// CHECK:STDOUT: %a.param_patt.loc5_22.1: @F.%pattern_type (%pattern_type.f28) = value_param_pattern [symbolic = %a.param_patt.loc5_22.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc5_22.1: @F.%pattern_type (%pattern_type.f28) = at_binding_pattern a, %a.param_patt.loc5_22.1 [symbolic = %a.patt.loc5_22.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc5_22.1: @F.%pattern_type (%pattern_type.f28) = wrapper_binding_pattern a, %a.param_patt.loc5_22.1 [symbolic = %a.patt.loc5_22.2 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc5_9: type = splice_block %i32 [concrete = constants.%i32] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1668,7 +1668,7 @@ fn G() {
// CHECK:STDOUT: %array_type.loc5_34.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc5_33.1, constants.%C [symbolic = %array_type.loc5_34.1 (constants.%array_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc5_34.1 [symbolic = %pattern_type (constants.%pattern_type.f28)]
// CHECK:STDOUT: %a.param_patt.loc5_22.2: @F.%pattern_type (%pattern_type.f28) = value_param_pattern [symbolic = %a.param_patt.loc5_22.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc5_22.2: @F.%pattern_type (%pattern_type.f28) = at_binding_pattern a, %a.param_patt.loc5_22.2 [symbolic = %a.patt.loc5_22.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc5_22.2: @F.%pattern_type (%pattern_type.f28) = wrapper_binding_pattern a, %a.param_patt.loc5_22.2 [symbolic = %a.patt.loc5_22.2 (constants.%a.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %array_type.loc5_34.1 [symbolic = %require_complete (constants.%require_complete.540)]
+27 -27
View File
@@ -85,7 +85,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %D: type = class_type @D [concrete]
// CHECK:STDOUT: %pattern_type.ebe: type = pattern_type %C.1d0 [symbolic]
// CHECK:STDOUT: %p.param_patt.f49: %pattern_type.ebe = value_param_pattern [symbolic]
// CHECK:STDOUT: %p.patt.37b: %pattern_type.ebe = at_binding_pattern p, %p.param_patt.f49 [symbolic]
// CHECK:STDOUT: %p.patt.efb: %pattern_type.ebe = wrapper_binding_pattern p, %p.param_patt.f49 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -98,7 +98,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %C.aae: type = class_type @C, @C(%D) [concrete]
// CHECK:STDOUT: %pattern_type.3dc: type = pattern_type %C.aae [concrete]
// CHECK:STDOUT: %p.param_patt.ead: %pattern_type.3dc = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.08c: %pattern_type.3dc = at_binding_pattern p, %p.param_patt.ead [concrete]
// CHECK:STDOUT: %p.patt.5cd: %pattern_type.3dc = wrapper_binding_pattern p, %p.param_patt.ead [concrete]
// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete]
// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete]
// CHECK:STDOUT: %return.param_patt.eae: %pattern_type.d8d = out_param_pattern [concrete]
@@ -137,7 +137,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc7_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %p.param_patt.loc7_16.1: @F.%pattern_type.loc7_16 (%pattern_type.ebe) = value_param_pattern [symbolic = %p.param_patt.loc7_16.2 (constants.%p.param_patt.f49)]
// CHECK:STDOUT: %p.patt.loc7_16.1: @F.%pattern_type.loc7_16 (%pattern_type.ebe) = at_binding_pattern p, %p.param_patt.loc7_16.1 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.37b)]
// CHECK:STDOUT: %p.patt.loc7_16.1: @F.%pattern_type.loc7_16 (%pattern_type.ebe) = wrapper_binding_pattern p, %p.param_patt.loc7_16.1 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.efb)]
// CHECK:STDOUT: %return.param_patt.loc7_27.1: @F.%pattern_type.loc7_27 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc7_27.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc7_24.1: @F.%pattern_type.loc7_27 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc7_27.1, %T.ref.loc7_27 [symbolic = %return.patt.loc7_24.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -160,7 +160,7 @@ fn G() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.3dc = value_param_pattern [concrete = constants.%p.param_patt.ead]
// CHECK:STDOUT: %p.patt: %pattern_type.3dc = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.08c]
// CHECK:STDOUT: %p.patt: %pattern_type.3dc = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.5cd]
// 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, %D.ref.loc9_18 [concrete = constants.%return.patt.e38]
// CHECK:STDOUT: } {
@@ -207,7 +207,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %C.loc7_21.1: type = class_type @C, @C(%T.loc7_7.1) [symbolic = %C.loc7_21.1 (constants.%C.1d0)]
// CHECK:STDOUT: %pattern_type.loc7_16: type = pattern_type %C.loc7_21.1 [symbolic = %pattern_type.loc7_16 (constants.%pattern_type.ebe)]
// CHECK:STDOUT: %p.param_patt.loc7_16.2: @F.%pattern_type.loc7_16 (%pattern_type.ebe) = value_param_pattern [symbolic = %p.param_patt.loc7_16.2 (constants.%p.param_patt.f49)]
// CHECK:STDOUT: %p.patt.loc7_16.2: @F.%pattern_type.loc7_16 (%pattern_type.ebe) = at_binding_pattern p, %p.param_patt.loc7_16.2 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.37b)]
// CHECK:STDOUT: %p.patt.loc7_16.2: @F.%pattern_type.loc7_16 (%pattern_type.ebe) = wrapper_binding_pattern p, %p.param_patt.loc7_16.2 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.efb)]
// CHECK:STDOUT: %.loc7_27.2: Core.Form = init_form %T.loc7_7.1 [symbolic = %.loc7_27.2 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc7_27: type = pattern_type %T.loc7_7.1 [symbolic = %pattern_type.loc7_27 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc7_27.2: @F.%pattern_type.loc7_27 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc7_27.2 (constants.%return.param_patt.41d)]
@@ -252,7 +252,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %C.loc7_21.1 => constants.%C.1d0
// CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.ebe
// CHECK:STDOUT: %p.param_patt.loc7_16.2 => constants.%p.param_patt.f49
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.37b
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.efb
// CHECK:STDOUT: %.loc7_27.2 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc7_27.2 => constants.%return.param_patt.41d
@@ -277,7 +277,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %C.loc7_21.1 => constants.%C.aae
// CHECK:STDOUT: %pattern_type.loc7_16 => constants.%pattern_type.3dc
// CHECK:STDOUT: %p.param_patt.loc7_16.2 => constants.%p.param_patt.ead
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.08c
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.5cd
// CHECK:STDOUT: %.loc7_27.2 => constants.%.592
// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.d8d
// CHECK:STDOUT: %return.param_patt.loc7_27.2 => constants.%return.param_patt.eae
@@ -305,7 +305,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %C: type = class_type @C [concrete]
// CHECK:STDOUT: %pattern_type.477: type = pattern_type %I.76e [symbolic]
// CHECK:STDOUT: %p.param_patt.4f4: %pattern_type.477 = value_param_pattern [symbolic]
// CHECK:STDOUT: %p.patt.276: %pattern_type.477 = at_binding_pattern p, %p.param_patt.4f4 [symbolic]
// CHECK:STDOUT: %p.patt.dc4: %pattern_type.477 = wrapper_binding_pattern p, %p.param_patt.4f4 [symbolic]
// CHECK:STDOUT: %.a44: Core.Form = init_form %C [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete]
@@ -317,7 +317,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %I.d0b: type = class_type @I, @I(%C) [concrete]
// CHECK:STDOUT: %pattern_type.fa1: type = pattern_type %I.d0b [concrete]
// CHECK:STDOUT: %p.param_patt.e45: %pattern_type.fa1 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.6ae: %pattern_type.fa1 = at_binding_pattern p, %p.param_patt.e45 [concrete]
// CHECK:STDOUT: %p.patt.309: %pattern_type.fa1 = wrapper_binding_pattern p, %p.param_patt.e45 [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %F.specific_fn.e0d: <specific function> = specific_function %F, @F(%C) [concrete]
@@ -352,7 +352,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc7_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %p.param_patt.loc7_16.1: @F.%pattern_type (%pattern_type.477) = value_param_pattern [symbolic = %p.param_patt.loc7_16.2 (constants.%p.param_patt.4f4)]
// CHECK:STDOUT: %p.patt.loc7_16.1: @F.%pattern_type (%pattern_type.477) = at_binding_pattern p, %p.param_patt.loc7_16.1 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.276)]
// CHECK:STDOUT: %p.patt.loc7_16.1: @F.%pattern_type (%pattern_type.477) = wrapper_binding_pattern p, %p.param_patt.loc7_16.1 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.dc4)]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -375,7 +375,7 @@ fn G() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.fa1 = value_param_pattern [concrete = constants.%p.param_patt.e45]
// CHECK:STDOUT: %p.patt: %pattern_type.fa1 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.6ae]
// CHECK:STDOUT: %p.patt: %pattern_type.fa1 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.309]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98b = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.98b = return_slot_pattern %return.param_patt, %C.ref.loc9_18 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -422,7 +422,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %I.loc7_21.1: type = class_type @I, @I(%T.loc7_7.1) [symbolic = %I.loc7_21.1 (constants.%I.76e)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %I.loc7_21.1 [symbolic = %pattern_type (constants.%pattern_type.477)]
// CHECK:STDOUT: %p.param_patt.loc7_16.2: @F.%pattern_type (%pattern_type.477) = value_param_pattern [symbolic = %p.param_patt.loc7_16.2 (constants.%p.param_patt.4f4)]
// CHECK:STDOUT: %p.patt.loc7_16.2: @F.%pattern_type (%pattern_type.477) = at_binding_pattern p, %p.param_patt.loc7_16.2 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.276)]
// CHECK:STDOUT: %p.patt.loc7_16.2: @F.%pattern_type (%pattern_type.477) = wrapper_binding_pattern p, %p.param_patt.loc7_16.2 [symbolic = %p.patt.loc7_16.2 (constants.%p.patt.dc4)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %I.loc7_21.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -462,7 +462,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %I.loc7_21.1 => constants.%I.76e
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.477
// CHECK:STDOUT: %p.param_patt.loc7_16.2 => constants.%p.param_patt.4f4
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.276
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.dc4
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete
@@ -482,7 +482,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %I.loc7_21.1 => constants.%I.d0b
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa1
// CHECK:STDOUT: %p.param_patt.loc7_16.2 => constants.%p.param_patt.e45
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.6ae
// CHECK:STDOUT: %p.patt.loc7_16.2 => constants.%p.patt.309
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -512,7 +512,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %require_complete.dae: <witness> = require_complete_type %Outer.dee [symbolic]
// CHECK:STDOUT: %pattern_type.f00: type = pattern_type %Inner.34b [symbolic]
// CHECK:STDOUT: %p.param_patt.785: %pattern_type.f00 = value_param_pattern [symbolic]
// CHECK:STDOUT: %p.patt.b5b: %pattern_type.f00 = at_binding_pattern p, %p.param_patt.785 [symbolic]
// CHECK:STDOUT: %p.patt.a33: %pattern_type.f00 = wrapper_binding_pattern p, %p.param_patt.785 [symbolic]
// CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete]
// CHECK:STDOUT: %tuple.4b9: %tuple.type.24b = tuple_value (%T, %U) [symbolic]
// CHECK:STDOUT: %tuple.type.a5e: type = tuple_type (%T, %U) [symbolic]
@@ -531,7 +531,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %Inner.3ff: type = class_type @Inner, @Inner(%C, %D) [concrete]
// CHECK:STDOUT: %pattern_type.0d8: type = pattern_type %Inner.3ff [concrete]
// CHECK:STDOUT: %p.param_patt.f58: %pattern_type.0d8 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.cca: %pattern_type.0d8 = at_binding_pattern p, %p.param_patt.f58 [concrete]
// CHECK:STDOUT: %p.patt.b2b: %pattern_type.0d8 = wrapper_binding_pattern p, %p.param_patt.f58 [concrete]
// CHECK:STDOUT: %tuple.b04: %tuple.type.24b = tuple_value (%C, %D) [concrete]
// CHECK:STDOUT: %tuple.type.af1: type = tuple_type (%C, %D) [concrete]
// CHECK:STDOUT: %.71f: Core.Form = init_form %tuple.type.af1 [concrete]
@@ -576,7 +576,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %T.patt.loc13_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %U.patt.loc13_16.1: %pattern_type.98f = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc13_16.2 (constants.%U.patt)]
// CHECK:STDOUT: %p.param_patt.loc13_25.1: @F.%pattern_type.loc13_25 (%pattern_type.f00) = value_param_pattern [symbolic = %p.param_patt.loc13_25.2 (constants.%p.param_patt.785)]
// CHECK:STDOUT: %p.patt.loc13_25.1: @F.%pattern_type.loc13_25 (%pattern_type.f00) = at_binding_pattern p, %p.param_patt.loc13_25.1 [symbolic = %p.patt.loc13_25.2 (constants.%p.patt.b5b)]
// CHECK:STDOUT: %p.patt.loc13_25.1: @F.%pattern_type.loc13_25 (%pattern_type.f00) = wrapper_binding_pattern p, %p.param_patt.loc13_25.1 [symbolic = %p.patt.loc13_25.2 (constants.%p.patt.a33)]
// CHECK:STDOUT: %return.param_patt.loc13_54.1: @F.%pattern_type.loc13_54 (%pattern_type.eee) = out_param_pattern [symbolic = %return.param_patt.loc13_54.2 (constants.%return.param_patt.a41)]
// CHECK:STDOUT: %return.patt.loc13_46.1: @F.%pattern_type.loc13_54 (%pattern_type.eee) = return_slot_pattern %return.param_patt.loc13_54.1, %.loc13_54.4 [symbolic = %return.patt.loc13_46.2 (constants.%return.patt.453)]
// CHECK:STDOUT: } {
@@ -611,7 +611,7 @@ fn G() -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.0d8 = value_param_pattern [concrete = constants.%p.param_patt.f58]
// CHECK:STDOUT: %p.patt: %pattern_type.0d8 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.cca]
// CHECK:STDOUT: %p.patt: %pattern_type.0d8 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.b2b]
// CHECK:STDOUT: %return.param_patt: %pattern_type.c66 = out_param_pattern [concrete = constants.%return.param_patt.fc8]
// CHECK:STDOUT: %return.patt: %pattern_type.c66 = return_slot_pattern %return.param_patt, %.loc15_36.3 [concrete = constants.%return.patt.964]
// CHECK:STDOUT: } {
@@ -706,7 +706,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %Inner.loc13_43.1: type = class_type @Inner, @Inner(%T.loc13_7.1, %U.loc13_16.1) [symbolic = %Inner.loc13_43.1 (constants.%Inner.34b)]
// CHECK:STDOUT: %pattern_type.loc13_25: type = pattern_type %Inner.loc13_43.1 [symbolic = %pattern_type.loc13_25 (constants.%pattern_type.f00)]
// CHECK:STDOUT: %p.param_patt.loc13_25.2: @F.%pattern_type.loc13_25 (%pattern_type.f00) = value_param_pattern [symbolic = %p.param_patt.loc13_25.2 (constants.%p.param_patt.785)]
// CHECK:STDOUT: %p.patt.loc13_25.2: @F.%pattern_type.loc13_25 (%pattern_type.f00) = at_binding_pattern p, %p.param_patt.loc13_25.2 [symbolic = %p.patt.loc13_25.2 (constants.%p.patt.b5b)]
// CHECK:STDOUT: %p.patt.loc13_25.2: @F.%pattern_type.loc13_25 (%pattern_type.f00) = wrapper_binding_pattern p, %p.param_patt.loc13_25.2 [symbolic = %p.patt.loc13_25.2 (constants.%p.patt.a33)]
// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%T.loc13_7.1, %U.loc13_16.1) [symbolic = %tuple (constants.%tuple.4b9)]
// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc13_7.1, %U.loc13_16.1) [symbolic = %tuple.type (constants.%tuple.type.a5e)]
// CHECK:STDOUT: %.loc13_54.2: Core.Form = init_form %tuple.type [symbolic = %.loc13_54.2 (constants.%.f18)]
@@ -768,7 +768,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %Inner.loc13_43.1 => constants.%Inner.34b
// CHECK:STDOUT: %pattern_type.loc13_25 => constants.%pattern_type.f00
// CHECK:STDOUT: %p.param_patt.loc13_25.2 => constants.%p.param_patt.785
// CHECK:STDOUT: %p.patt.loc13_25.2 => constants.%p.patt.b5b
// CHECK:STDOUT: %p.patt.loc13_25.2 => constants.%p.patt.a33
// CHECK:STDOUT: %tuple => constants.%tuple.4b9
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5e
// CHECK:STDOUT: %.loc13_54.2 => constants.%.f18
@@ -810,7 +810,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %Inner.loc13_43.1 => constants.%Inner.3ff
// CHECK:STDOUT: %pattern_type.loc13_25 => constants.%pattern_type.0d8
// CHECK:STDOUT: %p.param_patt.loc13_25.2 => constants.%p.param_patt.f58
// CHECK:STDOUT: %p.patt.loc13_25.2 => constants.%p.patt.cca
// CHECK:STDOUT: %p.patt.loc13_25.2 => constants.%p.patt.b2b
// CHECK:STDOUT: %tuple => constants.%tuple.b04
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.af1
// CHECK:STDOUT: %.loc13_54.2 => constants.%.71f
@@ -845,7 +845,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.e30: type = pattern_type %WithNontype.40e [symbolic]
// CHECK:STDOUT: %x.param_patt.12a: %pattern_type.e30 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.e34: %pattern_type.e30 = at_binding_pattern x, %x.param_patt.12a [symbolic]
// CHECK:STDOUT: %x.patt.c4b: %pattern_type.e30 = wrapper_binding_pattern x, %x.param_patt.12a [symbolic]
// 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]
@@ -888,7 +888,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %WithNontype.val: %WithNontype.888 = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.d30: type = pattern_type %WithNontype.888 [concrete]
// CHECK:STDOUT: %x.param_patt.33b: %pattern_type.d30 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.a47: %pattern_type.d30 = at_binding_pattern x, %x.param_patt.33b [concrete]
// CHECK:STDOUT: %x.patt.c49: %pattern_type.d30 = wrapper_binding_pattern x, %x.param_patt.33b [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%int_0.3c0) [concrete]
// CHECK:STDOUT: %.0e2: ref %WithNontype.888 = temporary invalid, %WithNontype.val [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
@@ -938,7 +938,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt.loc6_7.1: %pattern_type.6b6 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc6_7.2 (constants.%N.patt.38a)]
// CHECK:STDOUT: %x.param_patt.loc6_22.1: @F.%pattern_type (%pattern_type.e30) = value_param_pattern [symbolic = %x.param_patt.loc6_22.2 (constants.%x.param_patt.12a)]
// CHECK:STDOUT: %x.patt.loc6_22.1: @F.%pattern_type (%pattern_type.e30) = at_binding_pattern x, %x.param_patt.loc6_22.1 [symbolic = %x.patt.loc6_22.2 (constants.%x.patt.e34)]
// CHECK:STDOUT: %x.patt.loc6_22.1: @F.%pattern_type (%pattern_type.e30) = wrapper_binding_pattern x, %x.param_patt.loc6_22.1 [symbolic = %x.patt.loc6_22.2 (constants.%x.patt.c4b)]
// 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.loc6_43 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -991,7 +991,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %WithNontype.loc6_37.1: type = class_type @WithNontype, @WithNontype(%N.loc6_7.1) [symbolic = %WithNontype.loc6_37.1 (constants.%WithNontype.40e)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %WithNontype.loc6_37.1 [symbolic = %pattern_type (constants.%pattern_type.e30)]
// CHECK:STDOUT: %x.param_patt.loc6_22.2: @F.%pattern_type (%pattern_type.e30) = value_param_pattern [symbolic = %x.param_patt.loc6_22.2 (constants.%x.param_patt.12a)]
// CHECK:STDOUT: %x.patt.loc6_22.2: @F.%pattern_type (%pattern_type.e30) = at_binding_pattern x, %x.param_patt.loc6_22.2 [symbolic = %x.patt.loc6_22.2 (constants.%x.patt.e34)]
// CHECK:STDOUT: %x.patt.loc6_22.2: @F.%pattern_type (%pattern_type.e30) = wrapper_binding_pattern x, %x.param_patt.loc6_22.2 [symbolic = %x.patt.loc6_22.2 (constants.%x.patt.c4b)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %WithNontype.loc6_37.1 [symbolic = %require_complete (constants.%require_complete.fef)]
@@ -1055,7 +1055,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %WithNontype.loc6_37.1 => constants.%WithNontype.40e
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e30
// CHECK:STDOUT: %x.param_patt.loc6_22.2 => constants.%x.param_patt.12a
// CHECK:STDOUT: %x.patt.loc6_22.2 => constants.%x.patt.e34
// CHECK:STDOUT: %x.patt.loc6_22.2 => constants.%x.patt.c4b
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @WithNontype(constants.%int_0.3c0) {
@@ -1071,7 +1071,7 @@ fn G() -> i32 {
// CHECK:STDOUT: %WithNontype.loc6_37.1 => constants.%WithNontype.888
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d30
// CHECK:STDOUT: %x.param_patt.loc6_22.2 => constants.%x.param_patt.33b
// CHECK:STDOUT: %x.patt.loc6_22.2 => constants.%x.patt.a47
// CHECK:STDOUT: %x.patt.loc6_22.2 => constants.%x.patt.c49
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.357
+16 -16
View File
@@ -49,7 +49,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic]
// CHECK:STDOUT: %pattern_type.142: type = pattern_type %Int [symbolic]
// CHECK:STDOUT: %n.param_patt.283: %pattern_type.142 = value_param_pattern [symbolic]
// CHECK:STDOUT: %n.patt.f0b: %pattern_type.142 = at_binding_pattern n, %n.param_patt.283 [symbolic]
// CHECK:STDOUT: %n.patt.6c3: %pattern_type.142 = wrapper_binding_pattern n, %n.param_patt.283 [symbolic]
// CHECK:STDOUT: %.f7d: Core.Form = init_form Core.IntLiteral [concrete]
// CHECK:STDOUT: %return.param_patt.eab: %pattern_type.dc0 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.cd4: %pattern_type.dc0 = return_slot_pattern %return.param_patt.eab, Core.IntLiteral [concrete]
@@ -68,13 +68,13 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete]
// CHECK:STDOUT: %pattern_type.f57: type = pattern_type %i64 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.f57 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.f57 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.f57 = 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: %i64.builtin: type = int_type signed, %int_64 [concrete]
// CHECK:STDOUT: %complete_type.4a1: <witness> = complete_type_witness %i64.builtin [concrete]
// CHECK:STDOUT: %n.param_patt.dfd: %pattern_type.f57 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt.958: %pattern_type.f57 = at_binding_pattern n, %n.param_patt.dfd [concrete]
// CHECK:STDOUT: %n.patt.1e5: %pattern_type.f57 = wrapper_binding_pattern n, %n.param_patt.dfd [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%int_64) [concrete]
// CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.03c: <bound method> = bound_method %int_64, %Core.IntLiteral.as.Copy.impl.Op [concrete]
// CHECK:STDOUT: }
@@ -104,7 +104,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt.loc4_7.1: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_7.2 (constants.%N.patt)]
// CHECK:STDOUT: %n.param_patt.loc4_34.1: @F.%pattern_type (%pattern_type.142) = value_param_pattern [symbolic = %n.param_patt.loc4_34.2 (constants.%n.param_patt.283)]
// CHECK:STDOUT: %n.patt.loc4_34.1: @F.%pattern_type (%pattern_type.142) = at_binding_pattern n, %n.param_patt.loc4_34.1 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.f0b)]
// CHECK:STDOUT: %n.patt.loc4_34.1: @F.%pattern_type (%pattern_type.142) = wrapper_binding_pattern n, %n.param_patt.loc4_34.1 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.6c3)]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete = constants.%return.param_patt.eab]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %IntLiteral.ref.loc4_56 [concrete = constants.%return.patt.cd4]
// CHECK:STDOUT: } {
@@ -130,7 +130,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.f57 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.f57 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.f57 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete = constants.%return.param_patt.eab]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %IntLiteral.ref [concrete = constants.%return.patt.cd4]
// CHECK:STDOUT: } {
@@ -151,7 +151,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Int.loc4_46.1: type = class_type @Int, @Int(%N.loc4_7.1) [symbolic = %Int.loc4_46.1 (constants.%Int)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc4_46.1 [symbolic = %pattern_type (constants.%pattern_type.142)]
// CHECK:STDOUT: %n.param_patt.loc4_34.2: @F.%pattern_type (%pattern_type.142) = value_param_pattern [symbolic = %n.param_patt.loc4_34.2 (constants.%n.param_patt.283)]
// CHECK:STDOUT: %n.patt.loc4_34.2: @F.%pattern_type (%pattern_type.142) = at_binding_pattern n, %n.param_patt.loc4_34.2 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.f0b)]
// CHECK:STDOUT: %n.patt.loc4_34.2: @F.%pattern_type (%pattern_type.142) = wrapper_binding_pattern n, %n.param_patt.loc4_34.2 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.6c3)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Int.loc4_46.1 [symbolic = %require_complete (constants.%require_complete.4df)]
@@ -182,7 +182,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Int.loc4_46.1 => constants.%Int
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.142
// CHECK:STDOUT: %n.param_patt.loc4_34.2 => constants.%n.param_patt.283
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.f0b
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.6c3
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @F(constants.%int_64) {
@@ -191,7 +191,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Int.loc4_46.1 => constants.%i64
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f57
// CHECK:STDOUT: %n.param_patt.loc4_34.2 => constants.%n.param_patt.dfd
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.958
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.1e5
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.4a1
@@ -211,7 +211,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Float: type = class_type @Float, @Float(%N) [symbolic]
// CHECK:STDOUT: %pattern_type.903: type = pattern_type %Float [symbolic]
// CHECK:STDOUT: %n.param_patt.0bd: %pattern_type.903 = value_param_pattern [symbolic]
// CHECK:STDOUT: %n.patt.862: %pattern_type.903 = at_binding_pattern n, %n.param_patt.0bd [symbolic]
// CHECK:STDOUT: %n.patt.a48: %pattern_type.903 = wrapper_binding_pattern n, %n.param_patt.0bd [symbolic]
// CHECK:STDOUT: %.f7d: Core.Form = init_form Core.IntLiteral [concrete]
// CHECK:STDOUT: %return.param_patt.eab: %pattern_type.dc0 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.cd4: %pattern_type.dc0 = return_slot_pattern %return.param_patt.eab, Core.IntLiteral [concrete]
@@ -230,13 +230,13 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %f64.dc1: type = class_type @Float, @Float(%int_64) [concrete]
// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %f64.dc1 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.fb7 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = 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: %f64.794: type = float_type %int_64, f64 [concrete]
// CHECK:STDOUT: %complete_type.7b9: <witness> = complete_type_witness %f64.794 [concrete]
// CHECK:STDOUT: %n.param_patt.632: %pattern_type.fb7 = value_param_pattern [concrete]
// CHECK:STDOUT: %n.patt.572: %pattern_type.fb7 = at_binding_pattern n, %n.param_patt.632 [concrete]
// CHECK:STDOUT: %n.patt.0ff: %pattern_type.fb7 = wrapper_binding_pattern n, %n.param_patt.632 [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%int_64) [concrete]
// CHECK:STDOUT: %Core.IntLiteral.as.Copy.impl.Op.bound.03c: <bound method> = bound_method %int_64, %Core.IntLiteral.as.Copy.impl.Op [concrete]
// CHECK:STDOUT: }
@@ -266,7 +266,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %N.patt.loc4_7.1: %pattern_type.dc0 = symbolic_binding_pattern N, 0 [symbolic = %N.patt.loc4_7.2 (constants.%N.patt)]
// CHECK:STDOUT: %n.param_patt.loc4_34.1: @F.%pattern_type (%pattern_type.903) = value_param_pattern [symbolic = %n.param_patt.loc4_34.2 (constants.%n.param_patt.0bd)]
// CHECK:STDOUT: %n.patt.loc4_34.1: @F.%pattern_type (%pattern_type.903) = at_binding_pattern n, %n.param_patt.loc4_34.1 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.862)]
// CHECK:STDOUT: %n.patt.loc4_34.1: @F.%pattern_type (%pattern_type.903) = wrapper_binding_pattern n, %n.param_patt.loc4_34.1 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.a48)]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete = constants.%return.param_patt.eab]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %IntLiteral.ref.loc4_58 [concrete = constants.%return.patt.cd4]
// CHECK:STDOUT: } {
@@ -292,7 +292,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.fb7 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.fb7 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete = constants.%return.param_patt.eab]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %IntLiteral.ref [concrete = constants.%return.patt.cd4]
// CHECK:STDOUT: } {
@@ -313,7 +313,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Float.loc4_48.1: type = class_type @Float, @Float(%N.loc4_7.1) [symbolic = %Float.loc4_48.1 (constants.%Float)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Float.loc4_48.1 [symbolic = %pattern_type (constants.%pattern_type.903)]
// CHECK:STDOUT: %n.param_patt.loc4_34.2: @F.%pattern_type (%pattern_type.903) = value_param_pattern [symbolic = %n.param_patt.loc4_34.2 (constants.%n.param_patt.0bd)]
// CHECK:STDOUT: %n.patt.loc4_34.2: @F.%pattern_type (%pattern_type.903) = at_binding_pattern n, %n.param_patt.loc4_34.2 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.862)]
// CHECK:STDOUT: %n.patt.loc4_34.2: @F.%pattern_type (%pattern_type.903) = wrapper_binding_pattern n, %n.param_patt.loc4_34.2 [symbolic = %n.patt.loc4_34.2 (constants.%n.patt.a48)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %Float.loc4_48.1 [symbolic = %require_complete (constants.%require_complete.eb0)]
@@ -344,7 +344,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Float.loc4_48.1 => constants.%Float
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.903
// CHECK:STDOUT: %n.param_patt.loc4_34.2 => constants.%n.param_patt.0bd
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.862
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.a48
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @F(constants.%int_64) {
@@ -353,7 +353,7 @@ fn G(a: f64) -> Core.IntLiteral {
// CHECK:STDOUT: %Float.loc4_48.1 => constants.%f64.dc1
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fb7
// CHECK:STDOUT: %n.param_patt.loc4_34.2 => constants.%n.param_patt.632
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.572
// CHECK:STDOUT: %n.patt.loc4_34.2 => constants.%n.patt.0ff
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.7b9
+21 -21
View File
@@ -76,7 +76,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type.a5e: type = tuple_type (%T, %U) [symbolic]
// CHECK:STDOUT: %pattern_type.eee: type = pattern_type %tuple.type.a5e [symbolic]
// CHECK:STDOUT: %pair.param_patt.185: %pattern_type.eee = value_param_pattern [symbolic]
// CHECK:STDOUT: %pair.patt.940: %pattern_type.eee = at_binding_pattern pair, %pair.param_patt.185 [symbolic]
// CHECK:STDOUT: %pair.patt.c37: %pattern_type.eee = wrapper_binding_pattern pair, %pair.param_patt.185 [symbolic]
// CHECK:STDOUT: %.822: Core.Form = init_form %U [symbolic]
// CHECK:STDOUT: %pattern_type.946: type = pattern_type %U [symbolic]
// CHECK:STDOUT: %return.param_patt.6dd: %pattern_type.946 = out_param_pattern [symbolic]
@@ -89,7 +89,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type.af1: type = tuple_type (%C, %D) [concrete]
// CHECK:STDOUT: %pattern_type.c66: type = pattern_type %tuple.type.af1 [concrete]
// CHECK:STDOUT: %pair.param_patt.f67: %pattern_type.c66 = value_param_pattern [concrete]
// CHECK:STDOUT: %pair.patt.a61: %pattern_type.c66 = at_binding_pattern pair, %pair.param_patt.f67 [concrete]
// CHECK:STDOUT: %pair.patt.4d2: %pattern_type.c66 = wrapper_binding_pattern pair, %pair.param_patt.f67 [concrete]
// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete]
// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete]
// CHECK:STDOUT: %return.param_patt.eae: %pattern_type.d8d = out_param_pattern [concrete]
@@ -122,7 +122,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %T.patt.loc7_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %U.patt.loc7_16.1: %pattern_type.98f = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc7_16.2 (constants.%U.patt)]
// CHECK:STDOUT: %pair.param_patt.loc7_28.1: @F.%pattern_type.loc7_28 (%pattern_type.eee) = value_param_pattern [symbolic = %pair.param_patt.loc7_28.2 (constants.%pair.param_patt.185)]
// CHECK:STDOUT: %pair.patt.loc7_28.1: @F.%pattern_type.loc7_28 (%pattern_type.eee) = at_binding_pattern pair, %pair.param_patt.loc7_28.1 [symbolic = %pair.patt.loc7_28.2 (constants.%pair.patt.940)]
// CHECK:STDOUT: %pair.patt.loc7_28.1: @F.%pattern_type.loc7_28 (%pattern_type.eee) = wrapper_binding_pattern pair, %pair.param_patt.loc7_28.1 [symbolic = %pair.patt.loc7_28.2 (constants.%pair.patt.c37)]
// CHECK:STDOUT: %return.param_patt.loc7_41.1: @F.%pattern_type.loc7_41 (%pattern_type.946) = out_param_pattern [symbolic = %return.param_patt.loc7_41.2 (constants.%return.param_patt.6dd)]
// CHECK:STDOUT: %return.patt.loc7_38.1: @F.%pattern_type.loc7_41 (%pattern_type.946) = return_slot_pattern %return.param_patt.loc7_41.1, %U.ref.loc7_41 [symbolic = %return.patt.loc7_38.2 (constants.%return.patt.4dd)]
// CHECK:STDOUT: } {
@@ -151,7 +151,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %pair.param_patt: %pattern_type.c66 = value_param_pattern [concrete = constants.%pair.param_patt.f67]
// CHECK:STDOUT: %pair.patt: %pattern_type.c66 = at_binding_pattern pair, %pair.param_patt [concrete = constants.%pair.patt.a61]
// CHECK:STDOUT: %pair.patt: %pattern_type.c66 = wrapper_binding_pattern pair, %pair.param_patt [concrete = constants.%pair.patt.4d2]
// 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, %D.ref.loc9_23 [concrete = constants.%return.patt.e38]
// CHECK:STDOUT: } {
@@ -195,7 +195,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc7_7.1, %U.loc7_16.1) [symbolic = %tuple.type (constants.%tuple.type.a5e)]
// CHECK:STDOUT: %pattern_type.loc7_28: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_28 (constants.%pattern_type.eee)]
// CHECK:STDOUT: %pair.param_patt.loc7_28.2: @F.%pattern_type.loc7_28 (%pattern_type.eee) = value_param_pattern [symbolic = %pair.param_patt.loc7_28.2 (constants.%pair.param_patt.185)]
// CHECK:STDOUT: %pair.patt.loc7_28.2: @F.%pattern_type.loc7_28 (%pattern_type.eee) = at_binding_pattern pair, %pair.param_patt.loc7_28.2 [symbolic = %pair.patt.loc7_28.2 (constants.%pair.patt.940)]
// CHECK:STDOUT: %pair.patt.loc7_28.2: @F.%pattern_type.loc7_28 (%pattern_type.eee) = wrapper_binding_pattern pair, %pair.param_patt.loc7_28.2 [symbolic = %pair.patt.loc7_28.2 (constants.%pair.patt.c37)]
// CHECK:STDOUT: %.loc7_41.2: Core.Form = init_form %U.loc7_16.1 [symbolic = %.loc7_41.2 (constants.%.822)]
// CHECK:STDOUT: %pattern_type.loc7_41: type = pattern_type %U.loc7_16.1 [symbolic = %pattern_type.loc7_41 (constants.%pattern_type.946)]
// CHECK:STDOUT: %return.param_patt.loc7_41.2: @F.%pattern_type.loc7_41 (%pattern_type.946) = out_param_pattern [symbolic = %return.param_patt.loc7_41.2 (constants.%return.param_patt.6dd)]
@@ -235,7 +235,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5e
// CHECK:STDOUT: %pattern_type.loc7_28 => constants.%pattern_type.eee
// CHECK:STDOUT: %pair.param_patt.loc7_28.2 => constants.%pair.param_patt.185
// CHECK:STDOUT: %pair.patt.loc7_28.2 => constants.%pair.patt.940
// CHECK:STDOUT: %pair.patt.loc7_28.2 => constants.%pair.patt.c37
// CHECK:STDOUT: %.loc7_41.2 => constants.%.822
// CHECK:STDOUT: %pattern_type.loc7_41 => constants.%pattern_type.946
// CHECK:STDOUT: %return.param_patt.loc7_41.2 => constants.%return.param_patt.6dd
@@ -255,7 +255,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.af1
// CHECK:STDOUT: %pattern_type.loc7_28 => constants.%pattern_type.c66
// CHECK:STDOUT: %pair.param_patt.loc7_28.2 => constants.%pair.param_patt.f67
// CHECK:STDOUT: %pair.patt.loc7_28.2 => constants.%pair.patt.a61
// CHECK:STDOUT: %pair.patt.loc7_28.2 => constants.%pair.patt.4d2
// CHECK:STDOUT: %.loc7_41.2 => constants.%.592
// CHECK:STDOUT: %pattern_type.loc7_41 => constants.%pattern_type.d8d
// CHECK:STDOUT: %return.param_patt.loc7_41.2 => constants.%return.param_patt.eae
@@ -296,7 +296,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %HasPair.72f: type = class_type @HasPair, @HasPair(%tuple.509) [symbolic]
// CHECK:STDOUT: %pattern_type.725: type = pattern_type %HasPair.72f [symbolic]
// CHECK:STDOUT: %h.param_patt.cdf: %pattern_type.725 = value_param_pattern [symbolic]
// CHECK:STDOUT: %h.patt.596: %pattern_type.725 = at_binding_pattern h, %h.param_patt.cdf [symbolic]
// CHECK:STDOUT: %h.patt.694: %pattern_type.725 = wrapper_binding_pattern h, %h.param_patt.cdf [symbolic]
// 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]
@@ -342,10 +342,10 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %HasPair.69b: type = class_type @HasPair, @HasPair(%tuple.102) [concrete]
// CHECK:STDOUT: %pattern_type.adf: type = pattern_type %HasPair.69b [concrete]
// CHECK:STDOUT: %h.param_patt.7d9: %pattern_type.adf = value_param_pattern [concrete]
// CHECK:STDOUT: %h.patt.25e585.1: %pattern_type.adf = at_binding_pattern h, %h.param_patt.7d9 [concrete]
// CHECK:STDOUT: %h.patt.4baa9d.1: %pattern_type.adf = wrapper_binding_pattern h, %h.param_patt.7d9 [concrete]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %h.patt.25e585.2: %pattern_type.adf = at_binding_pattern h, %h.param_patt.7d9 [concrete]
// CHECK:STDOUT: %h.patt.4baa9d.2: %pattern_type.adf = wrapper_binding_pattern h, %h.param_patt.7d9 [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%int_1.0c6, %int_2.295) [concrete]
// CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.245: <bound method> = bound_method %int_2.295, %Int.as.Copy.impl.Op.4f6 [concrete]
// CHECK:STDOUT: %bound_method.03a: <bound method> = bound_method %int_2.295, %Int.as.Copy.impl.Op.specific_fn [concrete]
@@ -392,7 +392,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %A.patt.loc6_7.1: %pattern_type.6b6 = symbolic_binding_pattern A, 0 [symbolic = %A.patt.loc6_7.2 (constants.%A.patt)]
// CHECK:STDOUT: %B.patt.loc6_15.1: %pattern_type.6b6 = symbolic_binding_pattern B, 1 [symbolic = %B.patt.loc6_15.2 (constants.%B.patt)]
// CHECK:STDOUT: %h.param_patt.loc6_30.1: @F.%pattern_type (%pattern_type.725) = value_param_pattern [symbolic = %h.param_patt.loc6_30.2 (constants.%h.param_patt.cdf)]
// CHECK:STDOUT: %h.patt.loc6_30.1: @F.%pattern_type (%pattern_type.725) = at_binding_pattern h, %h.param_patt.loc6_30.1 [symbolic = %h.patt.loc6_30.2 (constants.%h.patt.596)]
// CHECK:STDOUT: %h.patt.loc6_30.1: @F.%pattern_type (%pattern_type.725) = wrapper_binding_pattern h, %h.param_patt.loc6_30.1 [symbolic = %h.patt.loc6_30.2 (constants.%h.patt.694)]
// 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.loc6_52 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -424,7 +424,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %h.param_patt: %pattern_type.adf = value_param_pattern [concrete = constants.%h.param_patt.7d9]
// CHECK:STDOUT: %h.patt: %pattern_type.adf = at_binding_pattern h, %h.param_patt [concrete = constants.%h.patt.25e585.1]
// CHECK:STDOUT: %h.patt: %pattern_type.adf = wrapper_binding_pattern h, %h.param_patt [concrete = constants.%h.patt.4baa9d.1]
// 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 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -484,7 +484,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %HasPair.loc6_46.1: type = class_type @HasPair, @HasPair(%tuple.loc6_45.1) [symbolic = %HasPair.loc6_46.1 (constants.%HasPair.72f)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %HasPair.loc6_46.1 [symbolic = %pattern_type (constants.%pattern_type.725)]
// CHECK:STDOUT: %h.param_patt.loc6_30.2: @F.%pattern_type (%pattern_type.725) = value_param_pattern [symbolic = %h.param_patt.loc6_30.2 (constants.%h.param_patt.cdf)]
// CHECK:STDOUT: %h.patt.loc6_30.2: @F.%pattern_type (%pattern_type.725) = at_binding_pattern h, %h.param_patt.loc6_30.2 [symbolic = %h.patt.loc6_30.2 (constants.%h.patt.596)]
// CHECK:STDOUT: %h.patt.loc6_30.2: @F.%pattern_type (%pattern_type.725) = wrapper_binding_pattern h, %h.param_patt.loc6_30.2 [symbolic = %h.patt.loc6_30.2 (constants.%h.patt.694)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %HasPair.loc6_46.1 [symbolic = %require_complete (constants.%require_complete.39d)]
@@ -533,7 +533,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %HasPair.loc6_46.1 => constants.%HasPair.72f
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.725
// CHECK:STDOUT: %h.param_patt.loc6_30.2 => constants.%h.param_patt.cdf
// CHECK:STDOUT: %h.patt.loc6_30.2 => constants.%h.patt.596
// CHECK:STDOUT: %h.patt.loc6_30.2 => constants.%h.patt.694
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HasPair(constants.%tuple.102) {
@@ -552,7 +552,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %HasPair.loc6_46.1 => constants.%HasPair.69b
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.adf
// CHECK:STDOUT: %h.param_patt.loc6_30.2 => constants.%h.param_patt.7d9
// CHECK:STDOUT: %h.patt.loc6_30.2 => constants.%h.patt.25e585.2
// CHECK:STDOUT: %h.patt.loc6_30.2 => constants.%h.patt.4baa9d.2
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.357
@@ -577,7 +577,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type.07a: type = tuple_type (%T, %T) [symbolic]
// CHECK:STDOUT: %pattern_type.c3f: type = pattern_type %tuple.type.07a [symbolic]
// CHECK:STDOUT: %pair.param_patt.5a3: %pattern_type.c3f = value_param_pattern [symbolic]
// CHECK:STDOUT: %pair.patt.f0f: %pattern_type.c3f = at_binding_pattern pair, %pair.param_patt.5a3 [symbolic]
// CHECK:STDOUT: %pair.patt.2b4: %pattern_type.c3f = wrapper_binding_pattern pair, %pair.param_patt.5a3 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -588,7 +588,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type.af1: type = tuple_type (%C, %D) [concrete]
// CHECK:STDOUT: %pattern_type.c66: type = pattern_type %tuple.type.af1 [concrete]
// CHECK:STDOUT: %pair.param_patt.f67: %pattern_type.c66 = value_param_pattern [concrete]
// CHECK:STDOUT: %pair.patt.a61: %pattern_type.c66 = at_binding_pattern pair, %pair.param_patt.f67 [concrete]
// CHECK:STDOUT: %pair.patt.4d2: %pattern_type.c66 = wrapper_binding_pattern pair, %pair.param_patt.f67 [concrete]
// CHECK:STDOUT: %.592: Core.Form = init_form %D [concrete]
// CHECK:STDOUT: %pattern_type.d8d: type = pattern_type %D [concrete]
// CHECK:STDOUT: %return.param_patt.eae: %pattern_type.d8d = out_param_pattern [concrete]
@@ -618,7 +618,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc7_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %pair.param_patt.loc7_19.1: @F.%pattern_type.loc7_19 (%pattern_type.c3f) = value_param_pattern [symbolic = %pair.param_patt.loc7_19.2 (constants.%pair.param_patt.5a3)]
// CHECK:STDOUT: %pair.patt.loc7_19.1: @F.%pattern_type.loc7_19 (%pattern_type.c3f) = at_binding_pattern pair, %pair.param_patt.loc7_19.1 [symbolic = %pair.patt.loc7_19.2 (constants.%pair.patt.f0f)]
// CHECK:STDOUT: %pair.patt.loc7_19.1: @F.%pattern_type.loc7_19 (%pattern_type.c3f) = wrapper_binding_pattern pair, %pair.param_patt.loc7_19.1 [symbolic = %pair.patt.loc7_19.2 (constants.%pair.patt.2b4)]
// CHECK:STDOUT: %return.param_patt.loc7_32.1: @F.%pattern_type.loc7_32 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc7_32.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc7_29.1: @F.%pattern_type.loc7_32 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc7_32.1, %T.ref.loc7_32 [symbolic = %return.patt.loc7_29.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -642,7 +642,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %pair.param_patt: %pattern_type.c66 = value_param_pattern [concrete = constants.%pair.param_patt.f67]
// CHECK:STDOUT: %pair.patt: %pattern_type.c66 = at_binding_pattern pair, %pair.param_patt [concrete = constants.%pair.patt.a61]
// CHECK:STDOUT: %pair.patt: %pattern_type.c66 = wrapper_binding_pattern pair, %pair.param_patt [concrete = constants.%pair.patt.4d2]
// 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, %D.ref.loc9_23 [concrete = constants.%return.patt.e38]
// CHECK:STDOUT: } {
@@ -684,7 +684,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type: type = tuple_type (%T.loc7_7.1, %T.loc7_7.1) [symbolic = %tuple.type (constants.%tuple.type.07a)]
// CHECK:STDOUT: %pattern_type.loc7_19: type = pattern_type %tuple.type [symbolic = %pattern_type.loc7_19 (constants.%pattern_type.c3f)]
// CHECK:STDOUT: %pair.param_patt.loc7_19.2: @F.%pattern_type.loc7_19 (%pattern_type.c3f) = value_param_pattern [symbolic = %pair.param_patt.loc7_19.2 (constants.%pair.param_patt.5a3)]
// CHECK:STDOUT: %pair.patt.loc7_19.2: @F.%pattern_type.loc7_19 (%pattern_type.c3f) = at_binding_pattern pair, %pair.param_patt.loc7_19.2 [symbolic = %pair.patt.loc7_19.2 (constants.%pair.patt.f0f)]
// CHECK:STDOUT: %pair.patt.loc7_19.2: @F.%pattern_type.loc7_19 (%pattern_type.c3f) = wrapper_binding_pattern pair, %pair.param_patt.loc7_19.2 [symbolic = %pair.patt.loc7_19.2 (constants.%pair.patt.2b4)]
// CHECK:STDOUT: %.loc7_32.1: Core.Form = init_form %T.loc7_7.1 [symbolic = %.loc7_32.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc7_32: type = pattern_type %T.loc7_7.1 [symbolic = %pattern_type.loc7_32 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc7_32.2: @F.%pattern_type.loc7_32 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc7_32.2 (constants.%return.param_patt.41d)]
@@ -707,7 +707,7 @@ fn G(pair: (C, D)) -> D {
// CHECK:STDOUT: %tuple.type => constants.%tuple.type.07a
// CHECK:STDOUT: %pattern_type.loc7_19 => constants.%pattern_type.c3f
// CHECK:STDOUT: %pair.param_patt.loc7_19.2 => constants.%pair.param_patt.5a3
// CHECK:STDOUT: %pair.patt.loc7_19.2 => constants.%pair.patt.f0f
// CHECK:STDOUT: %pair.patt.loc7_19.2 => constants.%pair.patt.2b4
// CHECK:STDOUT: %.loc7_32.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc7_32 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc7_32.2 => constants.%return.param_patt.41d
+27 -27
View File
@@ -81,7 +81,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic]
// CHECK:STDOUT: %p.param_patt.a12: %pattern_type.4f4 = value_param_pattern [symbolic]
// CHECK:STDOUT: %p.patt.14c: %pattern_type.4f4 = at_binding_pattern p, %p.param_patt.a12 [symbolic]
// CHECK:STDOUT: %p.patt.b16: %pattern_type.4f4 = wrapper_binding_pattern p, %p.param_patt.a12 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -94,7 +94,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete]
// CHECK:STDOUT: %p.param_patt.9b8: %pattern_type.fcb = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.d88: %pattern_type.fcb = at_binding_pattern p, %p.param_patt.9b8 [concrete]
// CHECK:STDOUT: %p.patt.ffd: %pattern_type.fcb = wrapper_binding_pattern p, %p.param_patt.9b8 [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]
@@ -124,7 +124,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc6_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %p.param_patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.a12)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = at_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.14c)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = wrapper_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b16)]
// CHECK:STDOUT: %return.param_patt.loc6_25.1: @F.%pattern_type.loc6_25 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_25.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc6_22.1: @F.%pattern_type.loc6_25 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc6_25.1, %T.ref.loc6_25 [symbolic = %return.patt.loc6_22.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -146,7 +146,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete = constants.%p.param_patt.9b8]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.d88]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.ffd]
// 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.loc8_16 [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
@@ -177,7 +177,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_19.1: type = ptr_type %T.loc6_7.1 [symbolic = %ptr.loc6_19.1 (constants.%ptr.e8f)]
// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_19.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.4f4)]
// CHECK:STDOUT: %p.param_patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.a12)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = at_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.14c)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = wrapper_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b16)]
// CHECK:STDOUT: %.loc6_25.2: Core.Form = init_form %T.loc6_7.1 [symbolic = %.loc6_25.2 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc6_25: type = pattern_type %T.loc6_7.1 [symbolic = %pattern_type.loc6_25 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc6_25.2: @F.%pattern_type.loc6_25 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_25.2 (constants.%return.param_patt.41d)]
@@ -215,7 +215,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_19.1 => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.4f4
// CHECK:STDOUT: %p.param_patt.loc6_16.2 => constants.%p.param_patt.a12
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.14c
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.b16
// CHECK:STDOUT: %.loc6_25.2 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_25.2 => constants.%return.param_patt.41d
@@ -233,7 +233,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_19.1 => constants.%ptr.6b6
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.fcb
// CHECK:STDOUT: %p.param_patt.loc6_16.2 => constants.%p.param_patt.9b8
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.d88
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.ffd
// CHECK:STDOUT: %.loc6_25.2 => constants.%.a44
// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.98b
// CHECK:STDOUT: %return.param_patt.loc6_25.2 => constants.%return.param_patt.89a
@@ -260,7 +260,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.a15: type = ptr_type %const.4ff [symbolic]
// CHECK:STDOUT: %pattern_type.26f: type = pattern_type %ptr.a15 [symbolic]
// CHECK:STDOUT: %p.param_patt.b08: %pattern_type.26f = value_param_pattern [symbolic]
// CHECK:STDOUT: %p.patt.b03: %pattern_type.26f = at_binding_pattern p, %p.param_patt.b08 [symbolic]
// CHECK:STDOUT: %p.patt.0f3: %pattern_type.26f = wrapper_binding_pattern p, %p.param_patt.b08 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -274,7 +274,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.77f: type = ptr_type %const.13f [concrete]
// CHECK:STDOUT: %pattern_type.7d2: type = pattern_type %ptr.77f [concrete]
// CHECK:STDOUT: %p.param_patt.a6a: %pattern_type.7d2 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.bb7: %pattern_type.7d2 = at_binding_pattern p, %p.param_patt.a6a [concrete]
// CHECK:STDOUT: %p.patt.3ee: %pattern_type.7d2 = wrapper_binding_pattern p, %p.param_patt.a6a [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]
@@ -304,7 +304,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc6_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %p.param_patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.b08)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.26f) = at_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b03)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.26f) = wrapper_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.0f3)]
// CHECK:STDOUT: %return.param_patt.loc6_31.1: @F.%pattern_type.loc6_31 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_31.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc6_28.1: @F.%pattern_type.loc6_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc6_31.1, %T.ref.loc6_31 [symbolic = %return.patt.loc6_28.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -327,7 +327,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.7d2 = value_param_pattern [concrete = constants.%p.param_patt.a6a]
// CHECK:STDOUT: %p.patt: %pattern_type.7d2 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.bb7]
// CHECK:STDOUT: %p.patt: %pattern_type.7d2 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.3ee]
// 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.loc8_22 [concrete = constants.%return.patt.e4a]
// CHECK:STDOUT: } {
@@ -360,7 +360,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_25.1: type = ptr_type %const.loc6_18.1 [symbolic = %ptr.loc6_25.1 (constants.%ptr.a15)]
// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_25.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.26f)]
// CHECK:STDOUT: %p.param_patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.b08)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.26f) = at_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b03)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.26f) = wrapper_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.0f3)]
// CHECK:STDOUT: %.loc6_31.2: Core.Form = init_form %T.loc6_7.1 [symbolic = %.loc6_31.2 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc6_31: type = pattern_type %T.loc6_7.1 [symbolic = %pattern_type.loc6_31 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc6_31.2: @F.%pattern_type.loc6_31 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_31.2 (constants.%return.param_patt.41d)]
@@ -399,7 +399,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_25.1 => constants.%ptr.a15
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.26f
// CHECK:STDOUT: %p.param_patt.loc6_16.2 => constants.%p.param_patt.b08
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.b03
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.0f3
// CHECK:STDOUT: %.loc6_31.2 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_31 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_31.2 => constants.%return.param_patt.41d
@@ -418,7 +418,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_25.1 => constants.%ptr.77f
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.7d2
// CHECK:STDOUT: %p.param_patt.loc6_16.2 => constants.%p.param_patt.a6a
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.bb7
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.3ee
// CHECK:STDOUT: %.loc6_31.2 => constants.%.a44
// CHECK:STDOUT: %pattern_type.loc6_31 => constants.%pattern_type.98b
// CHECK:STDOUT: %return.param_patt.loc6_31.2 => constants.%return.param_patt.89a
@@ -444,7 +444,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.4f4: type = pattern_type %ptr.e8f [symbolic]
// CHECK:STDOUT: %p.param_patt.a12: %pattern_type.4f4 = value_param_pattern [symbolic]
// CHECK:STDOUT: %p.patt.14c: %pattern_type.4f4 = at_binding_pattern p, %p.param_patt.a12 [symbolic]
// CHECK:STDOUT: %p.patt.b16: %pattern_type.4f4 = wrapper_binding_pattern p, %p.param_patt.a12 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -458,7 +458,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.77f: type = ptr_type %const [concrete]
// CHECK:STDOUT: %pattern_type.7d2: type = pattern_type %ptr.77f [concrete]
// CHECK:STDOUT: %p.param_patt.a6a: %pattern_type.7d2 = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.bb7: %pattern_type.7d2 = at_binding_pattern p, %p.param_patt.a6a [concrete]
// CHECK:STDOUT: %p.patt.3ee: %pattern_type.7d2 = wrapper_binding_pattern p, %p.param_patt.a6a [concrete]
// CHECK:STDOUT: %.ab2: Core.Form = init_form %const [concrete]
// CHECK:STDOUT: %pattern_type.1e4: type = pattern_type %const [concrete]
// CHECK:STDOUT: %return.param_patt.727: %pattern_type.1e4 = out_param_pattern [concrete]
@@ -488,7 +488,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc6_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %p.param_patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.a12)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = at_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.14c)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = wrapper_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b16)]
// CHECK:STDOUT: %return.param_patt.loc6_25.1: @F.%pattern_type.loc6_25 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_25.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc6_22.1: @F.%pattern_type.loc6_25 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc6_25.1, %T.ref.loc6_25 [symbolic = %return.patt.loc6_22.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -510,7 +510,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.7d2 = value_param_pattern [concrete = constants.%p.param_patt.a6a]
// CHECK:STDOUT: %p.patt: %pattern_type.7d2 = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.bb7]
// CHECK:STDOUT: %p.patt: %pattern_type.7d2 = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.3ee]
// CHECK:STDOUT: %return.param_patt: %pattern_type.1e4 = out_param_pattern [concrete = constants.%return.param_patt.727]
// CHECK:STDOUT: %return.patt: %pattern_type.1e4 = return_slot_pattern %return.param_patt, %const.loc8_22 [concrete = constants.%return.patt.dc5]
// CHECK:STDOUT: } {
@@ -543,7 +543,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_19.1: type = ptr_type %T.loc6_7.1 [symbolic = %ptr.loc6_19.1 (constants.%ptr.e8f)]
// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_19.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.4f4)]
// CHECK:STDOUT: %p.param_patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.a12)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = at_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.14c)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.4f4) = wrapper_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b16)]
// CHECK:STDOUT: %.loc6_25.2: Core.Form = init_form %T.loc6_7.1 [symbolic = %.loc6_25.2 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc6_25: type = pattern_type %T.loc6_7.1 [symbolic = %pattern_type.loc6_25 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc6_25.2: @F.%pattern_type.loc6_25 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_25.2 (constants.%return.param_patt.41d)]
@@ -581,7 +581,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_19.1 => constants.%ptr.e8f
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.4f4
// CHECK:STDOUT: %p.param_patt.loc6_16.2 => constants.%p.param_patt.a12
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.14c
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.b16
// CHECK:STDOUT: %.loc6_25.2 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_25.2 => constants.%return.param_patt.41d
@@ -599,7 +599,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_19.1 => constants.%ptr.77f
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.7d2
// CHECK:STDOUT: %p.param_patt.loc6_16.2 => constants.%p.param_patt.a6a
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.bb7
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.3ee
// CHECK:STDOUT: %.loc6_25.2 => constants.%.ab2
// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.1e4
// CHECK:STDOUT: %return.param_patt.loc6_25.2 => constants.%return.param_patt.727
@@ -626,7 +626,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.a15: type = ptr_type %const.4ff [symbolic]
// CHECK:STDOUT: %pattern_type.26f: type = pattern_type %ptr.a15 [symbolic]
// CHECK:STDOUT: %p.param_patt.b08: %pattern_type.26f = value_param_pattern [symbolic]
// CHECK:STDOUT: %p.patt.b03: %pattern_type.26f = at_binding_pattern p, %p.param_patt.b08 [symbolic]
// CHECK:STDOUT: %p.patt.0f3: %pattern_type.26f = wrapper_binding_pattern p, %p.param_patt.b08 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -639,7 +639,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.6b6: type = ptr_type %C [concrete]
// CHECK:STDOUT: %pattern_type.fcb: type = pattern_type %ptr.6b6 [concrete]
// CHECK:STDOUT: %p.param_patt.9b8: %pattern_type.fcb = value_param_pattern [concrete]
// CHECK:STDOUT: %p.patt.d88: %pattern_type.fcb = at_binding_pattern p, %p.param_patt.9b8 [concrete]
// CHECK:STDOUT: %p.patt.ffd: %pattern_type.fcb = wrapper_binding_pattern p, %p.param_patt.9b8 [concrete]
// CHECK:STDOUT: %const.13f: type = const_type %C [concrete]
// CHECK:STDOUT: %.ab2: Core.Form = init_form %const.13f [concrete]
// CHECK:STDOUT: %pattern_type.1e4: type = pattern_type %const.13f [concrete]
@@ -668,7 +668,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc6_7.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %p.param_patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.b08)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.26f) = at_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b03)]
// CHECK:STDOUT: %p.patt.loc6_16.1: @F.%pattern_type.loc6_16 (%pattern_type.26f) = wrapper_binding_pattern p, %p.param_patt.loc6_16.1 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.0f3)]
// CHECK:STDOUT: %return.param_patt.loc6_31.1: @F.%pattern_type.loc6_31 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_31.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc6_28.1: @F.%pattern_type.loc6_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc6_31.1, %T.ref.loc6_31 [symbolic = %return.patt.loc6_28.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -691,7 +691,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %p.param_patt: %pattern_type.fcb = value_param_pattern [concrete = constants.%p.param_patt.9b8]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = at_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.d88]
// CHECK:STDOUT: %p.patt: %pattern_type.fcb = wrapper_binding_pattern p, %p.param_patt [concrete = constants.%p.patt.ffd]
// CHECK:STDOUT: %return.param_patt: %pattern_type.1e4 = out_param_pattern [concrete = constants.%return.param_patt.727]
// CHECK:STDOUT: %return.patt: %pattern_type.1e4 = return_slot_pattern %return.param_patt, %const [concrete = constants.%return.patt.dc5]
// CHECK:STDOUT: } {
@@ -724,7 +724,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_25.1: type = ptr_type %const.loc6_18.1 [symbolic = %ptr.loc6_25.1 (constants.%ptr.a15)]
// CHECK:STDOUT: %pattern_type.loc6_16: type = pattern_type %ptr.loc6_25.1 [symbolic = %pattern_type.loc6_16 (constants.%pattern_type.26f)]
// CHECK:STDOUT: %p.param_patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.26f) = value_param_pattern [symbolic = %p.param_patt.loc6_16.2 (constants.%p.param_patt.b08)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.26f) = at_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.b03)]
// CHECK:STDOUT: %p.patt.loc6_16.2: @F.%pattern_type.loc6_16 (%pattern_type.26f) = wrapper_binding_pattern p, %p.param_patt.loc6_16.2 [symbolic = %p.patt.loc6_16.2 (constants.%p.patt.0f3)]
// CHECK:STDOUT: %.loc6_31.2: Core.Form = init_form %T.loc6_7.1 [symbolic = %.loc6_31.2 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc6_31: type = pattern_type %T.loc6_7.1 [symbolic = %pattern_type.loc6_31 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc6_31.2: @F.%pattern_type.loc6_31 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc6_31.2 (constants.%return.param_patt.41d)]
@@ -760,7 +760,7 @@ fn G(p: C*) -> const C {
// CHECK:STDOUT: %ptr.loc6_25.1 => constants.%ptr.a15
// CHECK:STDOUT: %pattern_type.loc6_16 => constants.%pattern_type.26f
// CHECK:STDOUT: %p.param_patt.loc6_16.2 => constants.%p.param_patt.b08
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.b03
// CHECK:STDOUT: %p.patt.loc6_16.2 => constants.%p.patt.0f3
// CHECK:STDOUT: %.loc6_31.2 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc6_31 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc6_31.2 => constants.%return.param_patt.41d
@@ -117,12 +117,12 @@ fn G() {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.b2f: type = pattern_type %HoldsType.a83 [symbolic]
// CHECK:STDOUT: %x.param_patt.321: %pattern_type.b2f = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.a80: %pattern_type.b2f = at_binding_pattern x, %x.param_patt.321 [symbolic]
// CHECK:STDOUT: %x.patt.a1d: %pattern_type.b2f = wrapper_binding_pattern x, %x.param_patt.321 [symbolic]
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete]
// CHECK:STDOUT: %tuple.elem0: type = tuple_access %T, element0 [symbolic]
// CHECK:STDOUT: %pattern_type.e66: type = pattern_type %tuple.elem0 [symbolic]
// CHECK:STDOUT: %a.param_patt.d7c: %pattern_type.e66 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.803: %pattern_type.e66 = at_binding_pattern a, %a.param_patt.d7c [symbolic]
// CHECK:STDOUT: %a.patt.dea: %pattern_type.e66 = wrapper_binding_pattern a, %a.param_patt.d7c [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.9de: <witness> = require_complete_type %HoldsType.a83 [symbolic]
@@ -136,10 +136,10 @@ fn G() {
// CHECK:STDOUT: %HoldsType.val: %HoldsType.30f = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.ff4: type = pattern_type %HoldsType.30f [concrete]
// CHECK:STDOUT: %x.param_patt.995: %pattern_type.ff4 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.ea0: %pattern_type.ff4 = at_binding_pattern x, %x.param_patt.995 [concrete]
// CHECK:STDOUT: %x.patt.242: %pattern_type.ff4 = wrapper_binding_pattern x, %x.param_patt.995 [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %a.param_patt.c88: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.159: %pattern_type.98b = at_binding_pattern a, %a.param_patt.c88 [concrete]
// CHECK:STDOUT: %a.patt.4cc: %pattern_type.98b = wrapper_binding_pattern a, %a.param_patt.c88 [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%tuple.e45) [concrete]
// CHECK:STDOUT: %.eb0: ref %HoldsType.30f = temporary invalid, %HoldsType.val [concrete]
// CHECK:STDOUT: %C.val: %C = struct_value () [concrete]
@@ -185,9 +185,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc8_7.1: %pattern_type.f1e = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %x.param_patt.loc8_27.1: @F.%pattern_type.loc8_27 (%pattern_type.b2f) = value_param_pattern [symbolic = %x.param_patt.loc8_27.2 (constants.%x.param_patt.321)]
// CHECK:STDOUT: %x.patt.loc8_27.1: @F.%pattern_type.loc8_27 (%pattern_type.b2f) = at_binding_pattern x, %x.param_patt.loc8_27.1 [symbolic = %x.patt.loc8_27.2 (constants.%x.patt.a80)]
// CHECK:STDOUT: %x.patt.loc8_27.1: @F.%pattern_type.loc8_27 (%pattern_type.b2f) = wrapper_binding_pattern x, %x.param_patt.loc8_27.1 [symbolic = %x.patt.loc8_27.2 (constants.%x.patt.a1d)]
// CHECK:STDOUT: %a.param_patt.loc8_51.1: @F.%pattern_type.loc8_51 (%pattern_type.e66) = value_param_pattern [symbolic = %a.param_patt.loc8_51.2 (constants.%a.param_patt.d7c)]
// CHECK:STDOUT: %a.patt.loc8_51.1: @F.%pattern_type.loc8_51 (%pattern_type.e66) = at_binding_pattern a, %a.param_patt.loc8_51.1 [symbolic = %a.patt.loc8_51.2 (constants.%a.patt.803)]
// CHECK:STDOUT: %a.patt.loc8_51.1: @F.%pattern_type.loc8_51 (%pattern_type.e66) = wrapper_binding_pattern a, %a.param_patt.loc8_51.1 [symbolic = %a.patt.loc8_51.2 (constants.%a.patt.dea)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc8_16.1: type = splice_block %.loc8_16.3 [concrete = constants.%tuple.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -244,11 +244,11 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc8_40.1: type = class_type @HoldsType, @HoldsType(%T.loc8_7.1) [symbolic = %HoldsType.loc8_40.1 (constants.%HoldsType.a83)]
// CHECK:STDOUT: %pattern_type.loc8_27: type = pattern_type %HoldsType.loc8_40.1 [symbolic = %pattern_type.loc8_27 (constants.%pattern_type.b2f)]
// CHECK:STDOUT: %x.param_patt.loc8_27.2: @F.%pattern_type.loc8_27 (%pattern_type.b2f) = value_param_pattern [symbolic = %x.param_patt.loc8_27.2 (constants.%x.param_patt.321)]
// CHECK:STDOUT: %x.patt.loc8_27.2: @F.%pattern_type.loc8_27 (%pattern_type.b2f) = at_binding_pattern x, %x.param_patt.loc8_27.2 [symbolic = %x.patt.loc8_27.2 (constants.%x.patt.a80)]
// CHECK:STDOUT: %x.patt.loc8_27.2: @F.%pattern_type.loc8_27 (%pattern_type.b2f) = wrapper_binding_pattern x, %x.param_patt.loc8_27.2 [symbolic = %x.patt.loc8_27.2 (constants.%x.patt.a1d)]
// CHECK:STDOUT: %tuple.elem0.loc8_54.1: type = tuple_access %T.loc8_7.1, element0 [symbolic = %tuple.elem0.loc8_54.1 (constants.%tuple.elem0)]
// CHECK:STDOUT: %pattern_type.loc8_51: type = pattern_type %tuple.elem0.loc8_54.1 [symbolic = %pattern_type.loc8_51 (constants.%pattern_type.e66)]
// CHECK:STDOUT: %a.param_patt.loc8_51.2: @F.%pattern_type.loc8_51 (%pattern_type.e66) = value_param_pattern [symbolic = %a.param_patt.loc8_51.2 (constants.%a.param_patt.d7c)]
// CHECK:STDOUT: %a.patt.loc8_51.2: @F.%pattern_type.loc8_51 (%pattern_type.e66) = at_binding_pattern a, %a.param_patt.loc8_51.2 [symbolic = %a.patt.loc8_51.2 (constants.%a.patt.803)]
// CHECK:STDOUT: %a.patt.loc8_51.2: @F.%pattern_type.loc8_51 (%pattern_type.e66) = wrapper_binding_pattern a, %a.param_patt.loc8_51.2 [symbolic = %a.patt.loc8_51.2 (constants.%a.patt.dea)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc8_27: <witness> = require_complete_type %HoldsType.loc8_40.1 [symbolic = %require_complete.loc8_27 (constants.%require_complete.9de)]
@@ -313,11 +313,11 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc8_40.1 => constants.%HoldsType.a83
// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.b2f
// CHECK:STDOUT: %x.param_patt.loc8_27.2 => constants.%x.param_patt.321
// CHECK:STDOUT: %x.patt.loc8_27.2 => constants.%x.patt.a80
// CHECK:STDOUT: %x.patt.loc8_27.2 => constants.%x.patt.a1d
// CHECK:STDOUT: %tuple.elem0.loc8_54.1 => constants.%tuple.elem0
// CHECK:STDOUT: %pattern_type.loc8_51 => constants.%pattern_type.e66
// CHECK:STDOUT: %a.param_patt.loc8_51.2 => constants.%a.param_patt.d7c
// CHECK:STDOUT: %a.patt.loc8_51.2 => constants.%a.patt.803
// CHECK:STDOUT: %a.patt.loc8_51.2 => constants.%a.patt.dea
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HoldsType(constants.%tuple.e45) {
@@ -333,11 +333,11 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc8_40.1 => constants.%HoldsType.30f
// CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.ff4
// CHECK:STDOUT: %x.param_patt.loc8_27.2 => constants.%x.param_patt.995
// CHECK:STDOUT: %x.patt.loc8_27.2 => constants.%x.patt.ea0
// CHECK:STDOUT: %x.patt.loc8_27.2 => constants.%x.patt.242
// CHECK:STDOUT: %tuple.elem0.loc8_54.1 => constants.%C
// CHECK:STDOUT: %pattern_type.loc8_51 => constants.%pattern_type.98b
// CHECK:STDOUT: %a.param_patt.loc8_51.2 => constants.%a.param_patt.c88
// CHECK:STDOUT: %a.patt.loc8_51.2 => constants.%a.patt.159
// CHECK:STDOUT: %a.patt.loc8_51.2 => constants.%a.patt.4cc
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc8_27 => constants.%complete_type
@@ -361,11 +361,11 @@ fn G() {
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.ce7: type = pattern_type %HoldsType.07e [symbolic]
// CHECK:STDOUT: %x.param_patt.ade: %pattern_type.ce7 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.d2a: %pattern_type.ce7 = at_binding_pattern x, %x.param_patt.ade [symbolic]
// CHECK:STDOUT: %x.patt.76a: %pattern_type.ce7 = wrapper_binding_pattern x, %x.param_patt.ade [symbolic]
// CHECK:STDOUT: %.424: type = struct_access %T, element0 [symbolic]
// CHECK:STDOUT: %pattern_type.92c: type = pattern_type %.424 [symbolic]
// CHECK:STDOUT: %a.param_patt.314: %pattern_type.92c = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.92f: %pattern_type.92c = at_binding_pattern a, %a.param_patt.314 [symbolic]
// CHECK:STDOUT: %a.patt.62a: %pattern_type.92c = wrapper_binding_pattern a, %a.param_patt.314 [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.d40: <witness> = require_complete_type %HoldsType.07e [symbolic]
@@ -379,10 +379,10 @@ fn G() {
// CHECK:STDOUT: %HoldsType.val: %HoldsType.53c = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.1fc: type = pattern_type %HoldsType.53c [concrete]
// CHECK:STDOUT: %x.param_patt.4a0: %pattern_type.1fc = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.5e6: %pattern_type.1fc = at_binding_pattern x, %x.param_patt.4a0 [concrete]
// CHECK:STDOUT: %x.patt.40f: %pattern_type.1fc = wrapper_binding_pattern x, %x.param_patt.4a0 [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %a.param_patt.c88: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.159: %pattern_type.98b = at_binding_pattern a, %a.param_patt.c88 [concrete]
// CHECK:STDOUT: %a.patt.4cc: %pattern_type.98b = wrapper_binding_pattern a, %a.param_patt.c88 [concrete]
// CHECK:STDOUT: %F.specific_fn: <specific function> = specific_function %F, @F(%struct) [concrete]
// CHECK:STDOUT: %.344: ref %HoldsType.53c = temporary invalid, %HoldsType.val [concrete]
// CHECK:STDOUT: %C.val: %C = struct_value () [concrete]
@@ -427,9 +427,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc8_7.1: %pattern_type.7f2 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %x.param_patt.loc8_29.1: @F.%pattern_type.loc8_29 (%pattern_type.ce7) = value_param_pattern [symbolic = %x.param_patt.loc8_29.2 (constants.%x.param_patt.ade)]
// CHECK:STDOUT: %x.patt.loc8_29.1: @F.%pattern_type.loc8_29 (%pattern_type.ce7) = at_binding_pattern x, %x.param_patt.loc8_29.1 [symbolic = %x.patt.loc8_29.2 (constants.%x.patt.d2a)]
// CHECK:STDOUT: %x.patt.loc8_29.1: @F.%pattern_type.loc8_29 (%pattern_type.ce7) = wrapper_binding_pattern x, %x.param_patt.loc8_29.1 [symbolic = %x.patt.loc8_29.2 (constants.%x.patt.76a)]
// CHECK:STDOUT: %a.param_patt.loc8_53.1: @F.%pattern_type.loc8_53 (%pattern_type.92c) = value_param_pattern [symbolic = %a.param_patt.loc8_53.2 (constants.%a.param_patt.314)]
// CHECK:STDOUT: %a.patt.loc8_53.1: @F.%pattern_type.loc8_53 (%pattern_type.92c) = at_binding_pattern a, %a.param_patt.loc8_53.1 [symbolic = %a.patt.loc8_53.2 (constants.%a.patt.92f)]
// CHECK:STDOUT: %a.patt.loc8_53.1: @F.%pattern_type.loc8_53 (%pattern_type.92c) = wrapper_binding_pattern a, %a.param_patt.loc8_53.1 [symbolic = %a.patt.loc8_53.2 (constants.%a.patt.62a)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc8_18: type = splice_block %struct_type.t [concrete = constants.%struct_type.t] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -484,11 +484,11 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc8_42.1: type = class_type @HoldsType, @HoldsType(%T.loc8_7.1) [symbolic = %HoldsType.loc8_42.1 (constants.%HoldsType.07e)]
// CHECK:STDOUT: %pattern_type.loc8_29: type = pattern_type %HoldsType.loc8_42.1 [symbolic = %pattern_type.loc8_29 (constants.%pattern_type.ce7)]
// CHECK:STDOUT: %x.param_patt.loc8_29.2: @F.%pattern_type.loc8_29 (%pattern_type.ce7) = value_param_pattern [symbolic = %x.param_patt.loc8_29.2 (constants.%x.param_patt.ade)]
// CHECK:STDOUT: %x.patt.loc8_29.2: @F.%pattern_type.loc8_29 (%pattern_type.ce7) = at_binding_pattern x, %x.param_patt.loc8_29.2 [symbolic = %x.patt.loc8_29.2 (constants.%x.patt.d2a)]
// CHECK:STDOUT: %x.patt.loc8_29.2: @F.%pattern_type.loc8_29 (%pattern_type.ce7) = wrapper_binding_pattern x, %x.param_patt.loc8_29.2 [symbolic = %x.patt.loc8_29.2 (constants.%x.patt.76a)]
// CHECK:STDOUT: %.loc8_56.1: type = struct_access %T.loc8_7.1, element0 [symbolic = %.loc8_56.1 (constants.%.424)]
// CHECK:STDOUT: %pattern_type.loc8_53: type = pattern_type %.loc8_56.1 [symbolic = %pattern_type.loc8_53 (constants.%pattern_type.92c)]
// CHECK:STDOUT: %a.param_patt.loc8_53.2: @F.%pattern_type.loc8_53 (%pattern_type.92c) = value_param_pattern [symbolic = %a.param_patt.loc8_53.2 (constants.%a.param_patt.314)]
// CHECK:STDOUT: %a.patt.loc8_53.2: @F.%pattern_type.loc8_53 (%pattern_type.92c) = at_binding_pattern a, %a.param_patt.loc8_53.2 [symbolic = %a.patt.loc8_53.2 (constants.%a.patt.92f)]
// CHECK:STDOUT: %a.patt.loc8_53.2: @F.%pattern_type.loc8_53 (%pattern_type.92c) = wrapper_binding_pattern a, %a.param_patt.loc8_53.2 [symbolic = %a.patt.loc8_53.2 (constants.%a.patt.62a)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc8_29: <witness> = require_complete_type %HoldsType.loc8_42.1 [symbolic = %require_complete.loc8_29 (constants.%require_complete.d40)]
@@ -553,11 +553,11 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc8_42.1 => constants.%HoldsType.07e
// CHECK:STDOUT: %pattern_type.loc8_29 => constants.%pattern_type.ce7
// CHECK:STDOUT: %x.param_patt.loc8_29.2 => constants.%x.param_patt.ade
// CHECK:STDOUT: %x.patt.loc8_29.2 => constants.%x.patt.d2a
// CHECK:STDOUT: %x.patt.loc8_29.2 => constants.%x.patt.76a
// CHECK:STDOUT: %.loc8_56.1 => constants.%.424
// CHECK:STDOUT: %pattern_type.loc8_53 => constants.%pattern_type.92c
// CHECK:STDOUT: %a.param_patt.loc8_53.2 => constants.%a.param_patt.314
// CHECK:STDOUT: %a.patt.loc8_53.2 => constants.%a.patt.92f
// CHECK:STDOUT: %a.patt.loc8_53.2 => constants.%a.patt.62a
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HoldsType(constants.%struct) {
@@ -573,11 +573,11 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc8_42.1 => constants.%HoldsType.53c
// CHECK:STDOUT: %pattern_type.loc8_29 => constants.%pattern_type.1fc
// CHECK:STDOUT: %x.param_patt.loc8_29.2 => constants.%x.param_patt.4a0
// CHECK:STDOUT: %x.patt.loc8_29.2 => constants.%x.patt.5e6
// CHECK:STDOUT: %x.patt.loc8_29.2 => constants.%x.patt.40f
// CHECK:STDOUT: %.loc8_56.1 => constants.%C
// CHECK:STDOUT: %pattern_type.loc8_53 => constants.%pattern_type.98b
// CHECK:STDOUT: %a.param_patt.loc8_53.2 => constants.%a.param_patt.c88
// CHECK:STDOUT: %a.patt.loc8_53.2 => constants.%a.patt.159
// CHECK:STDOUT: %a.patt.loc8_53.2 => constants.%a.patt.4cc
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc8_29 => constants.%complete_type
@@ -604,7 +604,7 @@ fn G() {
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.e53: type = pattern_type %HoldsType.3500da.1 [symbolic]
// CHECK:STDOUT: %x.param_patt: %pattern_type.e53 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.e53 = at_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.e53 = wrapper_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %.9dd: ref type = class_element_access %T.f25, element0 [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
@@ -677,9 +677,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc21_7.1: %pattern_type.f15 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_7.2 (constants.%T.patt.125)]
// CHECK:STDOUT: %x.param_patt.loc21_24.1: @F.%pattern_type (%pattern_type.e53) = value_param_pattern [symbolic = %x.param_patt.loc21_24.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc21_24.1: @F.%pattern_type (%pattern_type.e53) = at_binding_pattern x, %x.param_patt.loc21_24.1 [symbolic = %x.patt.loc21_24.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc21_24.1: @F.%pattern_type (%pattern_type.e53) = wrapper_binding_pattern x, %x.param_patt.loc21_24.1 [symbolic = %x.patt.loc21_24.2 (constants.%x.patt)]
// CHECK:STDOUT: %a.param_patt: <error> = value_param_pattern [concrete = <error>]
// CHECK:STDOUT: %a.patt: <error> = at_binding_pattern a, %a.param_patt [concrete = <error>]
// CHECK:STDOUT: %a.patt: <error> = wrapper_binding_pattern a, %a.param_patt [concrete = <error>]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc21_9: type = splice_block %Class.ref [concrete = constants.%Class] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -754,7 +754,7 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc21_37.1: type = class_type @HoldsType, @HoldsType(%T.loc21_7.1) [symbolic = %HoldsType.loc21_37.1 (constants.%HoldsType.3500da.1)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc21_37.1 [symbolic = %pattern_type (constants.%pattern_type.e53)]
// CHECK:STDOUT: %x.param_patt.loc21_24.2: @F.%pattern_type (%pattern_type.e53) = value_param_pattern [symbolic = %x.param_patt.loc21_24.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc21_24.2: @F.%pattern_type (%pattern_type.e53) = at_binding_pattern x, %x.param_patt.loc21_24.2 [symbolic = %x.patt.loc21_24.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc21_24.2: @F.%pattern_type (%pattern_type.e53) = wrapper_binding_pattern x, %x.param_patt.loc21_24.2 [symbolic = %x.patt.loc21_24.2 (constants.%x.patt)]
// CHECK:STDOUT: %.loc21_51.1: ref type = class_element_access %T.loc21_7.1, element0 [symbolic = %.loc21_51.1 (constants.%.9dd)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
@@ -887,7 +887,7 @@ fn G() {
// CHECK:STDOUT: %complete_type.357: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.d35: type = pattern_type %HoldsType.881 [symbolic]
// CHECK:STDOUT: %x.param_patt: %pattern_type.d35 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.d35 = at_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.d35 = wrapper_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete]
@@ -978,9 +978,9 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %T.patt.loc12_7.1: %pattern_type.dcb = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_7.2 (constants.%T.patt.4c7)]
// CHECK:STDOUT: %x.param_patt.loc12_33.1: @F.%pattern_type (%pattern_type.d35) = value_param_pattern [symbolic = %x.param_patt.loc12_33.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc12_33.1: @F.%pattern_type (%pattern_type.d35) = at_binding_pattern x, %x.param_patt.loc12_33.1 [symbolic = %x.patt.loc12_33.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc12_33.1: @F.%pattern_type (%pattern_type.d35) = wrapper_binding_pattern x, %x.param_patt.loc12_33.1 [symbolic = %x.patt.loc12_33.2 (constants.%x.patt)]
// CHECK:STDOUT: %a.param_patt: <error> = value_param_pattern [concrete = <error>]
// CHECK:STDOUT: %a.patt: <error> = at_binding_pattern a, %a.param_patt [concrete = <error>]
// CHECK:STDOUT: %a.patt: <error> = wrapper_binding_pattern a, %a.param_patt [concrete = <error>]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc12_22: type = splice_block %array_type [concrete = constants.%array_type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1046,7 +1046,7 @@ fn G() {
// CHECK:STDOUT: %HoldsType.loc12_46.1: type = class_type @HoldsType, @HoldsType(%T.loc12_7.1) [symbolic = %HoldsType.loc12_46.1 (constants.%HoldsType.881)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %HoldsType.loc12_46.1 [symbolic = %pattern_type (constants.%pattern_type.d35)]
// CHECK:STDOUT: %x.param_patt.loc12_33.2: @F.%pattern_type (%pattern_type.d35) = value_param_pattern [symbolic = %x.param_patt.loc12_33.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc12_33.2: @F.%pattern_type (%pattern_type.d35) = at_binding_pattern x, %x.param_patt.loc12_33.2 [symbolic = %x.patt.loc12_33.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc12_33.2: @F.%pattern_type (%pattern_type.d35) = wrapper_binding_pattern x, %x.param_patt.loc12_33.2 [symbolic = %x.patt.loc12_33.2 (constants.%x.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %HoldsType.loc12_46.1 [symbolic = %require_complete (constants.%require_complete.80d)]
+5 -5
View File
@@ -591,7 +591,7 @@ fn F(generic T: Z where C impls NY(.Self)) -> C.(Y(T).Y1) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %x.param_patt: %pattern_type.b3a = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.b3a = at_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.b3a = wrapper_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %.0ce: Core.Form = init_form %T.as_type [symbolic]
// CHECK:STDOUT: %return.param_patt.b82: %pattern_type.b3a = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.2e6: %pattern_type.b3a = return_slot_pattern %return.param_patt.b82, %T.as_type [symbolic]
@@ -609,7 +609,7 @@ fn F(generic T: Z where C impls NY(.Self)) -> C.(Y(T).Y1) {
// CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] {
// CHECK:STDOUT: %T.patt.loc9_9.1: %pattern_type.6cb = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_9.2 (constants.%T.patt)]
// CHECK:STDOUT: %x.param_patt.loc9_15.1: @Use.%pattern_type (%pattern_type.b3a) = value_param_pattern [symbolic = %x.param_patt.loc9_15.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc9_15.1: @Use.%pattern_type (%pattern_type.b3a) = at_binding_pattern x, %x.param_patt.loc9_15.1 [symbolic = %x.patt.loc9_15.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc9_15.1: @Use.%pattern_type (%pattern_type.b3a) = wrapper_binding_pattern x, %x.param_patt.loc9_15.1 [symbolic = %x.patt.loc9_15.2 (constants.%x.patt)]
// CHECK:STDOUT: %return.param_patt.loc9_23.1: @Use.%pattern_type (%pattern_type.b3a) = out_param_pattern [symbolic = %return.param_patt.loc9_23.2 (constants.%return.param_patt.b82)]
// CHECK:STDOUT: %return.patt.loc9_20.1: @Use.%pattern_type (%pattern_type.b3a) = return_slot_pattern %return.param_patt.loc9_23.1, %.loc9_23.3 [symbolic = %return.patt.loc9_20.2 (constants.%return.patt.2e6)]
// CHECK:STDOUT: } {
@@ -640,7 +640,7 @@ fn F(generic T: Z where C impls NY(.Self)) -> C.(Y(T).Y1) {
// CHECK:STDOUT: %T.as_type.loc9_17.1: type = facet_access_type %T.loc9_9.1 [symbolic = %T.as_type.loc9_17.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_17.1 [symbolic = %pattern_type (constants.%pattern_type.b3a)]
// CHECK:STDOUT: %x.param_patt.loc9_15.2: @Use.%pattern_type (%pattern_type.b3a) = value_param_pattern [symbolic = %x.param_patt.loc9_15.2 (constants.%x.param_patt)]
// CHECK:STDOUT: %x.patt.loc9_15.2: @Use.%pattern_type (%pattern_type.b3a) = at_binding_pattern x, %x.param_patt.loc9_15.2 [symbolic = %x.patt.loc9_15.2 (constants.%x.patt)]
// CHECK:STDOUT: %x.patt.loc9_15.2: @Use.%pattern_type (%pattern_type.b3a) = wrapper_binding_pattern x, %x.param_patt.loc9_15.2 [symbolic = %x.patt.loc9_15.2 (constants.%x.patt)]
// CHECK:STDOUT: %.loc9_23.2: Core.Form = init_form %T.as_type.loc9_17.1 [symbolic = %.loc9_23.2 (constants.%.0ce)]
// CHECK:STDOUT: %return.param_patt.loc9_23.2: @Use.%pattern_type (%pattern_type.b3a) = out_param_pattern [symbolic = %return.param_patt.loc9_23.2 (constants.%return.param_patt.b82)]
// CHECK:STDOUT: %return.patt.loc9_20.2: @Use.%pattern_type (%pattern_type.b3a) = return_slot_pattern %return.param_patt.loc9_23.2, %T.as_type.loc9_17.1 [symbolic = %return.patt.loc9_20.2 (constants.%return.patt.2e6)]
@@ -694,7 +694,7 @@ fn F(generic T: Z where C impls NY(.Self)) -> C.(Y(T).Y1) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %x.param_patt: %pattern_type.b3a = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.b3a = at_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.b3a = wrapper_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %I.WithSelf.Hello.type.d5c: type = fn_type @I.WithSelf.Hello, @I.WithSelf(%T) [symbolic]
// CHECK:STDOUT: %I.lookup_impl_witness: <witness> = lookup_impl_witness %T, @I [symbolic]
// CHECK:STDOUT: %.244: type = fn_type_with_self_type %I.WithSelf.Hello.type.d5c, %T [symbolic]
@@ -745,7 +745,7 @@ fn F(generic T: Z where C impls NY(.Self)) -> C.(Y(T).Y1) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %x.param_patt: %pattern_type.b3a = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.b3a = at_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %x.patt: %pattern_type.b3a = wrapper_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %.0ce: Core.Form = init_form %T.as_type [symbolic]
// CHECK:STDOUT: %return.param_patt.b82: %pattern_type.b3a = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.2e6: %pattern_type.b3a = return_slot_pattern %return.param_patt.b82, %T.as_type [symbolic]
@@ -104,7 +104,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.653: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %t.param_patt.4f9: %pattern_type.653 = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt.ecc: %pattern_type.653 = at_binding_pattern t, %t.param_patt.4f9 [symbolic]
// CHECK:STDOUT: %t.patt.00d: %pattern_type.653 = wrapper_binding_pattern t, %t.param_patt.4f9 [symbolic]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type [symbolic]
@@ -133,7 +133,7 @@ fn F() {
// CHECK:STDOUT: %facet_value: %facet_type.22e = facet_value %C, (%Empty.impl_witness, %A.impl_witness, %B.impl_witness) [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %t.param_patt.5f9: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %t.patt.c3d: %pattern_type.98b = at_binding_pattern t, %t.param_patt.5f9 [concrete]
// CHECK:STDOUT: %t.patt.429: %pattern_type.98b = wrapper_binding_pattern t, %t.param_patt.5f9 [concrete]
// CHECK:STDOUT: %G.specific_fn: <specific function> = specific_function %G, @G(%facet_value) [concrete]
// CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
@@ -190,7 +190,7 @@ fn F() {
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %T.patt.loc33_7.1: %pattern_type.a67 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc33_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %t.param_patt.loc33_25.1: @G.%pattern_type (%pattern_type.653) = value_param_pattern [symbolic = %t.param_patt.loc33_25.2 (constants.%t.param_patt.4f9)]
// CHECK:STDOUT: %t.patt.loc33_25.1: @G.%pattern_type (%pattern_type.653) = at_binding_pattern t, %t.param_patt.loc33_25.1 [symbolic = %t.patt.loc33_25.2 (constants.%t.patt.ecc)]
// CHECK:STDOUT: %t.patt.loc33_25.1: @G.%pattern_type (%pattern_type.653) = wrapper_binding_pattern t, %t.param_patt.loc33_25.1 [symbolic = %t.patt.loc33_25.2 (constants.%t.patt.00d)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc33_19.1: type = splice_block %.loc33_19.3 [concrete = constants.%facet_type.22e] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -330,7 +330,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc33_27.1: type = facet_access_type %T.loc33_7.1 [symbolic = %T.as_type.loc33_27.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc33_27.1 [symbolic = %pattern_type (constants.%pattern_type.653)]
// CHECK:STDOUT: %t.param_patt.loc33_25.2: @G.%pattern_type (%pattern_type.653) = value_param_pattern [symbolic = %t.param_patt.loc33_25.2 (constants.%t.param_patt.4f9)]
// CHECK:STDOUT: %t.patt.loc33_25.2: @G.%pattern_type (%pattern_type.653) = at_binding_pattern t, %t.param_patt.loc33_25.2 [symbolic = %t.patt.loc33_25.2 (constants.%t.patt.ecc)]
// CHECK:STDOUT: %t.patt.loc33_25.2: @G.%pattern_type (%pattern_type.653) = wrapper_binding_pattern t, %t.param_patt.loc33_25.2 [symbolic = %t.patt.loc33_25.2 (constants.%t.patt.00d)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc33_27.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -472,7 +472,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc33_27.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.653
// CHECK:STDOUT: %t.param_patt.loc33_25.2 => constants.%t.param_patt.4f9
// CHECK:STDOUT: %t.patt.loc33_25.2 => constants.%t.patt.ecc
// CHECK:STDOUT: %t.patt.loc33_25.2 => constants.%t.patt.00d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T) {
@@ -517,7 +517,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc33_27.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %t.param_patt.loc33_25.2 => constants.%t.param_patt.5f9
// CHECK:STDOUT: %t.patt.loc33_25.2 => constants.%t.patt.c3d
// CHECK:STDOUT: %t.patt.loc33_25.2 => constants.%t.patt.429
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -459,7 +459,7 @@ fn G() {
// CHECK:STDOUT: %U: %Generic.type.ee14e9.2 = symbolic_binding U, 1 [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %t.param_patt.513: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt.dcb: %pattern_type.51d = at_binding_pattern t, %t.param_patt.513 [symbolic]
// CHECK:STDOUT: %t.patt.c64: %pattern_type.51d = wrapper_binding_pattern t, %t.param_patt.513 [symbolic]
// CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete]
// CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T [symbolic]
@@ -471,7 +471,7 @@ fn G() {
// CHECK:STDOUT: %U.patt.e09: %pattern_type.de1 = symbolic_binding_pattern U, 1 [symbolic]
// CHECK:STDOUT: %pattern_type.485: type = pattern_type %GenericParam [concrete]
// CHECK:STDOUT: %t.param_patt.4d1: %pattern_type.485 = value_param_pattern [concrete]
// CHECK:STDOUT: %t.patt.0d5: %pattern_type.485 = at_binding_pattern t, %t.param_patt.4d1 [concrete]
// CHECK:STDOUT: %t.patt.89c: %pattern_type.485 = wrapper_binding_pattern t, %t.param_patt.4d1 [concrete]
// CHECK:STDOUT: %CallGenericMethod.specific_fn: <specific function> = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete]
// CHECK:STDOUT: %.b65: ref %GenericParam = temporary invalid, %GenericParam.val [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
@@ -521,7 +521,7 @@ fn G() {
// CHECK:STDOUT: %T.patt.loc15_23.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc15_23.2 (constants.%T.patt)]
// CHECK:STDOUT: %U.patt.loc15_47.1: @CallGenericMethod.%pattern_type.loc15_47 (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc15_47.2 (constants.%U.patt.8a6)]
// CHECK:STDOUT: %t.param_patt.loc15_69.1: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = value_param_pattern [symbolic = %t.param_patt.loc15_69.2 (constants.%t.param_patt.513)]
// CHECK:STDOUT: %t.patt.loc15_69.1: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt.loc15_69.1 [symbolic = %t.patt.loc15_69.2 (constants.%t.patt.dcb)]
// CHECK:STDOUT: %t.patt.loc15_69.1: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = wrapper_binding_pattern t, %t.param_patt.loc15_69.1 [symbolic = %t.patt.loc15_69.2 (constants.%t.patt.c64)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc15_25.1: type = splice_block %.loc15_25.2 [concrete = type] {
// CHECK:STDOUT: %.Self.frozen.loc15_23: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -612,7 +612,7 @@ fn G() {
// CHECK:STDOUT: %U.loc15_47.1: @CallGenericMethod.%Generic.type.loc15_58.1 (%Generic.type.ee14e9.2) = symbolic_binding U, 1 [symbolic = %U.loc15_47.1 (constants.%U)]
// CHECK:STDOUT: %pattern_type.loc15_69: type = pattern_type %T.loc15_23.1 [symbolic = %pattern_type.loc15_69 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %t.param_patt.loc15_69.2: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = value_param_pattern [symbolic = %t.param_patt.loc15_69.2 (constants.%t.param_patt.513)]
// CHECK:STDOUT: %t.patt.loc15_69.2: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = at_binding_pattern t, %t.param_patt.loc15_69.2 [symbolic = %t.patt.loc15_69.2 (constants.%t.patt.dcb)]
// CHECK:STDOUT: %t.patt.loc15_69.2: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = wrapper_binding_pattern t, %t.param_patt.loc15_69.2 [symbolic = %t.patt.loc15_69.2 (constants.%t.patt.c64)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.loc15_23.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -705,7 +705,7 @@ fn G() {
// CHECK:STDOUT: %U.loc15_47.1 => constants.%U
// CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.51d
// CHECK:STDOUT: %t.param_patt.loc15_69.2 => constants.%t.param_patt.513
// CHECK:STDOUT: %t.patt.loc15_69.2 => constants.%t.patt.dcb
// CHECK:STDOUT: %t.patt.loc15_69.2 => constants.%t.patt.c64
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet) {
@@ -717,7 +717,7 @@ fn G() {
// CHECK:STDOUT: %U.loc15_47.1 => constants.%Generic.facet
// CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.485
// CHECK:STDOUT: %t.param_patt.loc15_69.2 => constants.%t.param_patt.4d1
// CHECK:STDOUT: %t.patt.loc15_69.2 => constants.%t.patt.0d5
// CHECK:STDOUT: %t.patt.loc15_69.2 => constants.%t.patt.89c
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -36,7 +36,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %a.param_patt.84e: %pattern_type.e90 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.3e6: %pattern_type.e90 = at_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %a.patt.feb: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %WalkAnimal.type: type = fn_type @WalkAnimal [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %WalkAnimal: %WalkAnimal.type = struct_value () [concrete]
@@ -53,7 +53,7 @@ fn F() {
// CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.283: type = pattern_type %Goat [concrete]
// CHECK:STDOUT: %a.param_patt.8f5: %pattern_type.283 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.8aa: %pattern_type.283 = at_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %a.patt.fd6: %pattern_type.283 = wrapper_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %WalkAnimal.specific_fn: <specific function> = specific_function %WalkAnimal, @WalkAnimal(%Animal.facet) [concrete]
// CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
@@ -84,7 +84,7 @@ fn F() {
// CHECK:STDOUT: %WalkAnimal.decl: %WalkAnimal.type = fn_decl @WalkAnimal [concrete = constants.%WalkAnimal] {
// CHECK:STDOUT: %T.patt.loc17_16.1: %pattern_type.333 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc17_16.2 (constants.%T.patt)]
// CHECK:STDOUT: %a.param_patt.loc17_34.1: @WalkAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc17_34.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc17_34.1: @WalkAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc17_34.1 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.3e6)]
// CHECK:STDOUT: %a.patt.loc17_34.1: @WalkAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc17_34.1 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.feb)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc17_18: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -142,7 +142,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc17_36.1: type = facet_access_type %T.loc17_16.1 [symbolic = %T.as_type.loc17_36.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_36.1 [symbolic = %pattern_type (constants.%pattern_type.e90)]
// CHECK:STDOUT: %a.param_patt.loc17_34.2: @WalkAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc17_34.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc17_34.2: @WalkAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc17_34.2 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.3e6)]
// CHECK:STDOUT: %a.patt.loc17_34.2: @WalkAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc17_34.2 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.feb)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc17_36.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -190,7 +190,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc17_36.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90
// CHECK:STDOUT: %a.param_patt.loc17_34.2 => constants.%a.param_patt.84e
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.3e6
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.feb
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Animal.facet) {
@@ -203,7 +203,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc17_36.1 => constants.%Goat
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.283
// CHECK:STDOUT: %a.param_patt.loc17_34.2 => constants.%a.param_patt.8f5
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.8aa
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.fd6
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -137,10 +137,10 @@ fn B() {
// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic]
// CHECK:STDOUT: %pattern_type.70f: type = pattern_type %U.as_type [symbolic]
// CHECK:STDOUT: %a.param_patt.98a: %pattern_type.70f = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.03d: %pattern_type.70f = at_binding_pattern a, %a.param_patt.98a [symbolic]
// CHECK:STDOUT: %a.patt.593: %pattern_type.70f = wrapper_binding_pattern a, %a.param_patt.98a [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %s.param_patt.cb5: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %s.patt.a4f: %pattern_type.51d = at_binding_pattern s, %s.param_patt.cb5 [symbolic]
// CHECK:STDOUT: %s.patt.9d4: %pattern_type.51d = wrapper_binding_pattern s, %s.param_patt.cb5 [symbolic]
// CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete]
// CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.096: <witness> = require_complete_type %U.as_type [symbolic]
@@ -166,10 +166,10 @@ fn B() {
// CHECK:STDOUT: %U.patt.e09: %pattern_type.de1 = symbolic_binding_pattern U, 1 [symbolic]
// CHECK:STDOUT: %pattern_type.488: type = pattern_type %ImplsGeneric [concrete]
// CHECK:STDOUT: %a.param_patt.150: %pattern_type.488 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.065: %pattern_type.488 = at_binding_pattern a, %a.param_patt.150 [concrete]
// CHECK:STDOUT: %a.patt.d11: %pattern_type.488 = wrapper_binding_pattern a, %a.param_patt.150 [concrete]
// CHECK:STDOUT: %pattern_type.485: type = pattern_type %GenericParam [concrete]
// CHECK:STDOUT: %s.param_patt.12f: %pattern_type.485 = value_param_pattern [concrete]
// CHECK:STDOUT: %s.patt.a2c: %pattern_type.485 = at_binding_pattern s, %s.param_patt.12f [concrete]
// CHECK:STDOUT: %s.patt.a1f: %pattern_type.485 = wrapper_binding_pattern s, %s.param_patt.12f [concrete]
// CHECK:STDOUT: %CallGenericMethod.specific_fn: <specific function> = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete]
// CHECK:STDOUT: %.cd4: ref %ImplsGeneric = temporary invalid, %ImplsGeneric.val [concrete]
// CHECK:STDOUT: %.b65: ref %GenericParam = temporary invalid, %GenericParam.val [concrete]
@@ -225,9 +225,9 @@ fn B() {
// CHECK:STDOUT: %T.patt.loc15_23.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc15_23.2 (constants.%T.patt)]
// CHECK:STDOUT: %U.patt.loc15_32.1: @CallGenericMethod.%pattern_type.loc15_32 (%pattern_type.4e0) = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc15_32.2 (constants.%U.patt.8a6)]
// CHECK:STDOUT: %a.param_patt.loc15_54.1: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.70f) = value_param_pattern [symbolic = %a.param_patt.loc15_54.2 (constants.%a.param_patt.98a)]
// CHECK:STDOUT: %a.patt.loc15_54.1: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.70f) = at_binding_pattern a, %a.param_patt.loc15_54.1 [symbolic = %a.patt.loc15_54.2 (constants.%a.patt.03d)]
// CHECK:STDOUT: %a.patt.loc15_54.1: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.70f) = wrapper_binding_pattern a, %a.param_patt.loc15_54.1 [symbolic = %a.patt.loc15_54.2 (constants.%a.patt.593)]
// CHECK:STDOUT: %s.param_patt.loc15_67.1: @CallGenericMethod.%pattern_type.loc15_67 (%pattern_type.51d) = value_param_pattern [symbolic = %s.param_patt.loc15_67.2 (constants.%s.param_patt.cb5)]
// CHECK:STDOUT: %s.patt.loc15_67.1: @CallGenericMethod.%pattern_type.loc15_67 (%pattern_type.51d) = at_binding_pattern s, %s.param_patt.loc15_67.1 [symbolic = %s.patt.loc15_67.2 (constants.%s.patt.a4f)]
// CHECK:STDOUT: %s.patt.loc15_67.1: @CallGenericMethod.%pattern_type.loc15_67 (%pattern_type.51d) = wrapper_binding_pattern s, %s.param_patt.loc15_67.1 [symbolic = %s.patt.loc15_67.2 (constants.%s.patt.9d4)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc15_25.1: type = splice_block %.loc15_25.2 [concrete = type] {
// CHECK:STDOUT: %.Self.frozen.loc15_23: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -326,10 +326,10 @@ fn B() {
// CHECK:STDOUT: %U.as_type.loc15_56.1: type = facet_access_type %U.loc15_32.1 [symbolic = %U.as_type.loc15_56.1 (constants.%U.as_type)]
// CHECK:STDOUT: %pattern_type.loc15_54: type = pattern_type %U.as_type.loc15_56.1 [symbolic = %pattern_type.loc15_54 (constants.%pattern_type.70f)]
// CHECK:STDOUT: %a.param_patt.loc15_54.2: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.70f) = value_param_pattern [symbolic = %a.param_patt.loc15_54.2 (constants.%a.param_patt.98a)]
// CHECK:STDOUT: %a.patt.loc15_54.2: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.70f) = at_binding_pattern a, %a.param_patt.loc15_54.2 [symbolic = %a.patt.loc15_54.2 (constants.%a.patt.03d)]
// CHECK:STDOUT: %a.patt.loc15_54.2: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.70f) = wrapper_binding_pattern a, %a.param_patt.loc15_54.2 [symbolic = %a.patt.loc15_54.2 (constants.%a.patt.593)]
// CHECK:STDOUT: %pattern_type.loc15_67: type = pattern_type %T.loc15_23.1 [symbolic = %pattern_type.loc15_67 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %s.param_patt.loc15_67.2: @CallGenericMethod.%pattern_type.loc15_67 (%pattern_type.51d) = value_param_pattern [symbolic = %s.param_patt.loc15_67.2 (constants.%s.param_patt.cb5)]
// CHECK:STDOUT: %s.patt.loc15_67.2: @CallGenericMethod.%pattern_type.loc15_67 (%pattern_type.51d) = at_binding_pattern s, %s.param_patt.loc15_67.2 [symbolic = %s.patt.loc15_67.2 (constants.%s.patt.a4f)]
// CHECK:STDOUT: %s.patt.loc15_67.2: @CallGenericMethod.%pattern_type.loc15_67 (%pattern_type.51d) = wrapper_binding_pattern s, %s.param_patt.loc15_67.2 [symbolic = %s.patt.loc15_67.2 (constants.%s.patt.9d4)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc15_54: <witness> = require_complete_type %U.as_type.loc15_56.1 [symbolic = %require_complete.loc15_54 (constants.%require_complete.096)]
@@ -456,10 +456,10 @@ fn B() {
// CHECK:STDOUT: %U.as_type.loc15_56.1 => constants.%U.as_type
// CHECK:STDOUT: %pattern_type.loc15_54 => constants.%pattern_type.70f
// CHECK:STDOUT: %a.param_patt.loc15_54.2 => constants.%a.param_patt.98a
// CHECK:STDOUT: %a.patt.loc15_54.2 => constants.%a.patt.03d
// CHECK:STDOUT: %a.patt.loc15_54.2 => constants.%a.patt.593
// CHECK:STDOUT: %pattern_type.loc15_67 => constants.%pattern_type.51d
// CHECK:STDOUT: %s.param_patt.loc15_67.2 => constants.%s.param_patt.cb5
// CHECK:STDOUT: %s.patt.loc15_67.2 => constants.%s.patt.a4f
// CHECK:STDOUT: %s.patt.loc15_67.2 => constants.%s.patt.9d4
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Generic.WithSelf(constants.%T, constants.%Self.8ea1ea.1) {
@@ -496,10 +496,10 @@ fn B() {
// CHECK:STDOUT: %U.as_type.loc15_56.1 => constants.%ImplsGeneric
// CHECK:STDOUT: %pattern_type.loc15_54 => constants.%pattern_type.488
// CHECK:STDOUT: %a.param_patt.loc15_54.2 => constants.%a.param_patt.150
// CHECK:STDOUT: %a.patt.loc15_54.2 => constants.%a.patt.065
// CHECK:STDOUT: %a.patt.loc15_54.2 => constants.%a.patt.d11
// CHECK:STDOUT: %pattern_type.loc15_67 => constants.%pattern_type.485
// CHECK:STDOUT: %s.param_patt.loc15_67.2 => constants.%s.param_patt.12f
// CHECK:STDOUT: %s.patt.loc15_67.2 => constants.%s.patt.a2c
// CHECK:STDOUT: %s.patt.loc15_67.2 => constants.%s.patt.a1f
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc15_54 => constants.%complete_type.357
@@ -549,7 +549,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.a08 [symbolic]
// CHECK:STDOUT: %pattern_type.d7b: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %t.param_patt.be8: %pattern_type.d7b = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt.9d2: %pattern_type.d7b = at_binding_pattern t, %t.param_patt.be8 [symbolic]
// CHECK:STDOUT: %t.patt.05d: %pattern_type.d7b = wrapper_binding_pattern t, %t.param_patt.be8 [symbolic]
// CHECK:STDOUT: %A.type: type = fn_type @A [concrete]
// CHECK:STDOUT: %A: %A.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.d9e: <witness> = require_complete_type %T.as_type [symbolic]
@@ -563,7 +563,7 @@ fn B() {
// CHECK:STDOUT: %I.facet.dfc: %I.type.722 = facet_value %C, (%I.impl_witness.7f0) [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %t.param_patt.5f9: %pattern_type.98b = value_param_pattern [concrete]
// CHECK:STDOUT: %t.patt.c3d: %pattern_type.98b = at_binding_pattern t, %t.param_patt.5f9 [concrete]
// CHECK:STDOUT: %t.patt.429: %pattern_type.98b = wrapper_binding_pattern t, %t.param_patt.5f9 [concrete]
// CHECK:STDOUT: %A.specific_fn: <specific function> = specific_function %A, @A(%I.facet.dfc) [concrete]
// CHECK:STDOUT: %.115: ref %C = temporary invalid, %C.val [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
@@ -625,7 +625,7 @@ fn B() {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %T.patt.loc9_7.1: %pattern_type.bd4 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_7.2 (constants.%T.patt.be3)]
// CHECK:STDOUT: %t.param_patt.loc9_28.1: @A.%pattern_type (%pattern_type.d7b) = value_param_pattern [symbolic = %t.param_patt.loc9_28.2 (constants.%t.param_patt.be8)]
// CHECK:STDOUT: %t.patt.loc9_28.1: @A.%pattern_type (%pattern_type.d7b) = at_binding_pattern t, %t.param_patt.loc9_28.1 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt.9d2)]
// CHECK:STDOUT: %t.patt.loc9_28.1: @A.%pattern_type (%pattern_type.d7b) = wrapper_binding_pattern t, %t.param_patt.loc9_28.1 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt.05d)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_17.1: type = splice_block %I.type [concrete = constants.%I.type.722] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -704,7 +704,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type.loc9_30.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_30.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_30.1 [symbolic = %pattern_type (constants.%pattern_type.d7b)]
// CHECK:STDOUT: %t.param_patt.loc9_28.2: @A.%pattern_type (%pattern_type.d7b) = value_param_pattern [symbolic = %t.param_patt.loc9_28.2 (constants.%t.param_patt.be8)]
// CHECK:STDOUT: %t.patt.loc9_28.2: @A.%pattern_type (%pattern_type.d7b) = at_binding_pattern t, %t.param_patt.loc9_28.2 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt.9d2)]
// CHECK:STDOUT: %t.patt.loc9_28.2: @A.%pattern_type (%pattern_type.d7b) = wrapper_binding_pattern t, %t.param_patt.loc9_28.2 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt.05d)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc9_30.1 [symbolic = %require_complete (constants.%require_complete.d9e)]
@@ -795,7 +795,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type.loc9_30.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d7b
// CHECK:STDOUT: %t.param_patt.loc9_28.2 => constants.%t.param_patt.be8
// CHECK:STDOUT: %t.patt.loc9_28.2 => constants.%t.patt.9d2
// CHECK:STDOUT: %t.patt.loc9_28.2 => constants.%t.patt.05d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @C.as.I.impl(constants.%empty_struct_type) {
@@ -819,7 +819,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type.loc9_30.1 => constants.%C
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.98b
// CHECK:STDOUT: %t.param_patt.loc9_28.2 => constants.%t.param_patt.5f9
// CHECK:STDOUT: %t.patt.loc9_28.2 => constants.%t.patt.c3d
// CHECK:STDOUT: %t.patt.loc9_28.2 => constants.%t.patt.429
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type.357
@@ -860,7 +860,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.b75 [symbolic]
// CHECK:STDOUT: %pattern_type.67d: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %t.param_patt: %pattern_type.67d = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.67d = at_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.67d = wrapper_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %A.type: type = fn_type @A [concrete]
// CHECK:STDOUT: %A: %A.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.401: <witness> = require_complete_type %T.as_type [symbolic]
@@ -920,7 +920,7 @@ fn B() {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %T.patt.loc9_7.1: %pattern_type.5c6 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_7.2 (constants.%T.patt.c4c)]
// CHECK:STDOUT: %t.param_patt.loc9_28.1: @A.%pattern_type (%pattern_type.67d) = value_param_pattern [symbolic = %t.param_patt.loc9_28.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc9_28.1: @A.%pattern_type (%pattern_type.67d) = at_binding_pattern t, %t.param_patt.loc9_28.1 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc9_28.1: @A.%pattern_type (%pattern_type.67d) = wrapper_binding_pattern t, %t.param_patt.loc9_28.1 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_17.1: type = splice_block %I.type [concrete = constants.%I.type.6c0] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -999,7 +999,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type.loc9_30.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_30.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_30.1 [symbolic = %pattern_type (constants.%pattern_type.67d)]
// CHECK:STDOUT: %t.param_patt.loc9_28.2: @A.%pattern_type (%pattern_type.67d) = value_param_pattern [symbolic = %t.param_patt.loc9_28.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc9_28.2: @A.%pattern_type (%pattern_type.67d) = at_binding_pattern t, %t.param_patt.loc9_28.2 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc9_28.2: @A.%pattern_type (%pattern_type.67d) = wrapper_binding_pattern t, %t.param_patt.loc9_28.2 [symbolic = %t.patt.loc9_28.2 (constants.%t.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc9_30.1 [symbolic = %require_complete (constants.%require_complete.401)]
@@ -1104,7 +1104,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.dda [symbolic]
// CHECK:STDOUT: %pattern_type.b3a: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %t.param_patt: %pattern_type.b3a = value_param_pattern [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.b3a = at_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %t.patt: %pattern_type.b3a = wrapper_binding_pattern t, %t.param_patt [symbolic]
// CHECK:STDOUT: %A.type: type = fn_type @A [concrete]
// CHECK:STDOUT: %A: %A.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type [symbolic]
@@ -1166,7 +1166,7 @@ fn B() {
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {
// CHECK:STDOUT: %T.patt.loc9_7.1: %pattern_type.6cb = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc9_7.2 (constants.%T.patt.1df)]
// CHECK:STDOUT: %t.param_patt.loc9_20.1: @A.%pattern_type (%pattern_type.b3a) = value_param_pattern [symbolic = %t.param_patt.loc9_20.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc9_20.1: @A.%pattern_type (%pattern_type.b3a) = at_binding_pattern t, %t.param_patt.loc9_20.1 [symbolic = %t.patt.loc9_20.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc9_20.1: @A.%pattern_type (%pattern_type.b3a) = wrapper_binding_pattern t, %t.param_patt.loc9_20.1 [symbolic = %t.patt.loc9_20.2 (constants.%t.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_9: type = splice_block %I.ref [concrete = constants.%I.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1237,7 +1237,7 @@ fn B() {
// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type (constants.%pattern_type.b3a)]
// CHECK:STDOUT: %t.param_patt.loc9_20.2: @A.%pattern_type (%pattern_type.b3a) = value_param_pattern [symbolic = %t.param_patt.loc9_20.2 (constants.%t.param_patt)]
// CHECK:STDOUT: %t.patt.loc9_20.2: @A.%pattern_type (%pattern_type.b3a) = at_binding_pattern t, %t.param_patt.loc9_20.2 [symbolic = %t.patt.loc9_20.2 (constants.%t.patt)]
// CHECK:STDOUT: %t.patt.loc9_20.2: @A.%pattern_type (%pattern_type.b3a) = wrapper_binding_pattern t, %t.param_patt.loc9_20.2 [symbolic = %t.patt.loc9_20.2 (constants.%t.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -241,7 +241,7 @@ fn F[A: J, B: A](x: C(A, B)) {
// CHECK:STDOUT: %x.param_patt: %pattern_type.bac = value_param_pattern [symbolic]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
// CHECK:STDOUT: %G: %G.type = struct_value () [concrete]
// CHECK:STDOUT: %x.patt.390072.2: %pattern_type.bac = at_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %x.patt.843041.2: %pattern_type.bac = wrapper_binding_pattern x, %x.param_patt [symbolic]
// CHECK:STDOUT: %G.specific_fn: <specific function> = specific_function %G, @G(%A, %B) [symbolic]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -274,6 +274,6 @@ fn F[A: J, B: A](x: C(A, B)) {
// CHECK:STDOUT: %C.loc25_27.1 => constants.%C
// CHECK:STDOUT: %pattern_type.loc25_19 => constants.%pattern_type.bac
// CHECK:STDOUT: %x.param_patt.loc25_19.2 => constants.%x.param_patt
// CHECK:STDOUT: %x.patt.loc25_19.2 => constants.%x.patt.390072.2
// CHECK:STDOUT: %x.patt.loc25_19.2 => constants.%x.patt.843041.2
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -104,7 +104,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.aed: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %e.param_patt.0be: %pattern_type.aed = value_param_pattern [symbolic]
// CHECK:STDOUT: %e.patt.543: %pattern_type.aed = at_binding_pattern e, %e.param_patt.0be [symbolic]
// CHECK:STDOUT: %e.patt.c5e: %pattern_type.aed = wrapper_binding_pattern e, %e.param_patt.0be [symbolic]
// CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete]
@@ -126,14 +126,14 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic]
// CHECK:STDOUT: %pattern_type.c56: type = pattern_type %U.as_type [symbolic]
// CHECK:STDOUT: %a.param_patt: %pattern_type.c56 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.c56 = at_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.c56 = wrapper_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete]
// CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.ad2: <witness> = require_complete_type %U.as_type [symbolic]
// CHECK:STDOUT: %Eats.lookup_impl_witness: <witness> = lookup_impl_witness %U, @Eats [symbolic]
// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.as_type, (%Eats.lookup_impl_witness) [symbolic]
// CHECK:STDOUT: %e.param_patt.80a: %pattern_type.c56 = value_param_pattern [symbolic]
// CHECK:STDOUT: %e.patt.3cb: %pattern_type.c56 = at_binding_pattern e, %e.param_patt.80a [symbolic]
// CHECK:STDOUT: %e.patt.691: %pattern_type.c56 = wrapper_binding_pattern e, %e.param_patt.80a [symbolic]
// CHECK:STDOUT: %Feed.specific_fn: <specific function> = specific_function %Feed, @Feed(%Eats.facet) [symbolic]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -162,7 +162,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] {
// CHECK:STDOUT: %T.patt.loc6_10.1: %pattern_type.880 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_10.2 (constants.%T.patt)]
// CHECK:STDOUT: %e.param_patt.loc6_26.1: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %e.param_patt.loc6_26.2 (constants.%e.param_patt.0be)]
// CHECK:STDOUT: %e.patt.loc6_26.1: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt.loc6_26.1 [symbolic = %e.patt.loc6_26.2 (constants.%e.patt.543)]
// CHECK:STDOUT: %e.patt.loc6_26.1: @Feed.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern e, %e.param_patt.loc6_26.1 [symbolic = %e.patt.loc6_26.2 (constants.%e.patt.c5e)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc6_12: type = splice_block %Eats.ref [concrete = constants.%Eats.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -180,7 +180,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %U.patt.loc8_18.1: %pattern_type.018 = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc8_18.2 (constants.%U.patt)]
// CHECK:STDOUT: %a.param_patt.loc8_36.1: @HandleAnimal.%pattern_type (%pattern_type.c56) = value_param_pattern [symbolic = %a.param_patt.loc8_36.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc8_36.1: @HandleAnimal.%pattern_type (%pattern_type.c56) = at_binding_pattern a, %a.param_patt.loc8_36.1 [symbolic = %a.patt.loc8_36.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc8_36.1: @HandleAnimal.%pattern_type (%pattern_type.c56) = wrapper_binding_pattern a, %a.param_patt.loc8_36.1 [symbolic = %a.patt.loc8_36.2 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc8_27.1: type = splice_block %.loc8_27.3 [concrete = constants.%facet_type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -231,7 +231,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc6_28.1: type = facet_access_type %T.loc6_10.1 [symbolic = %T.as_type.loc6_28.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_28.1 [symbolic = %pattern_type (constants.%pattern_type.aed)]
// CHECK:STDOUT: %e.param_patt.loc6_26.2: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %e.param_patt.loc6_26.2 (constants.%e.param_patt.0be)]
// CHECK:STDOUT: %e.patt.loc6_26.2: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt.loc6_26.2 [symbolic = %e.patt.loc6_26.2 (constants.%e.patt.543)]
// CHECK:STDOUT: %e.patt.loc6_26.2: @Feed.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern e, %e.param_patt.loc6_26.2 [symbolic = %e.patt.loc6_26.2 (constants.%e.patt.c5e)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc6_28.1 [symbolic = %require_complete (constants.%require_complete.c4d)]
@@ -248,7 +248,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U.as_type.loc8_38.1: type = facet_access_type %U.loc8_18.1 [symbolic = %U.as_type.loc8_38.1 (constants.%U.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc8_38.1 [symbolic = %pattern_type (constants.%pattern_type.c56)]
// CHECK:STDOUT: %a.param_patt.loc8_36.2: @HandleAnimal.%pattern_type (%pattern_type.c56) = value_param_pattern [symbolic = %a.param_patt.loc8_36.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc8_36.2: @HandleAnimal.%pattern_type (%pattern_type.c56) = at_binding_pattern a, %a.param_patt.loc8_36.2 [symbolic = %a.patt.loc8_36.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc8_36.2: @HandleAnimal.%pattern_type (%pattern_type.c56) = wrapper_binding_pattern a, %a.param_patt.loc8_36.2 [symbolic = %a.patt.loc8_36.2 (constants.%a.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %U.as_type.loc8_38.1 [symbolic = %require_complete (constants.%require_complete.ad2)]
@@ -280,7 +280,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc6_28.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.aed
// CHECK:STDOUT: %e.param_patt.loc6_26.2 => constants.%e.param_patt.0be
// CHECK:STDOUT: %e.patt.loc6_26.2 => constants.%e.patt.543
// CHECK:STDOUT: %e.patt.loc6_26.2 => constants.%e.patt.c5e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HandleAnimal(constants.%U) {
@@ -298,7 +298,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc6_28.1 => constants.%U.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c56
// CHECK:STDOUT: %e.param_patt.loc6_26.2 => constants.%e.param_patt.80a
// CHECK:STDOUT: %e.patt.loc6_26.2 => constants.%e.patt.3cb
// CHECK:STDOUT: %e.patt.loc6_26.2 => constants.%e.patt.691
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete.ad2
@@ -333,7 +333,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic]
// CHECK:STDOUT: %pattern_type.7b2: type = pattern_type %V.as_type [symbolic]
// CHECK:STDOUT: %v.param_patt.bb4: %pattern_type.7b2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %v.patt.d6a: %pattern_type.7b2 = at_binding_pattern v, %v.param_patt.bb4 [symbolic]
// CHECK:STDOUT: %v.patt.941: %pattern_type.7b2 = wrapper_binding_pattern v, %v.param_patt.bb4 [symbolic]
// CHECK:STDOUT: %FeedTame.type: type = fn_type @FeedTame [concrete]
// CHECK:STDOUT: %FeedTame: %FeedTame.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.08b: <witness> = require_complete_type %V.as_type [symbolic]
@@ -347,7 +347,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic]
// CHECK:STDOUT: %pattern_type.b23: type = pattern_type %W.as_type [symbolic]
// CHECK:STDOUT: %w.param_patt: %pattern_type.b23 = value_param_pattern [symbolic]
// CHECK:STDOUT: %w.patt: %pattern_type.b23 = at_binding_pattern w, %w.param_patt [symbolic]
// CHECK:STDOUT: %w.patt: %pattern_type.b23 = wrapper_binding_pattern w, %w.param_patt [symbolic]
// CHECK:STDOUT: %HandleTameAnimal.type: type = fn_type @HandleTameAnimal [concrete]
// CHECK:STDOUT: %HandleTameAnimal: %HandleTameAnimal.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.ec1: <witness> = require_complete_type %W.as_type [symbolic]
@@ -355,7 +355,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %Tame.lookup_impl_witness: <witness> = lookup_impl_witness %W, @Tame [symbolic]
// CHECK:STDOUT: %facet_value: %facet_type.bbb = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic]
// CHECK:STDOUT: %v.param_patt.631: %pattern_type.b23 = value_param_pattern [symbolic]
// CHECK:STDOUT: %v.patt.273: %pattern_type.b23 = at_binding_pattern v, %v.param_patt.631 [symbolic]
// CHECK:STDOUT: %v.patt.aad: %pattern_type.b23 = wrapper_binding_pattern v, %v.param_patt.631 [symbolic]
// CHECK:STDOUT: %FeedTame.specific_fn: <specific function> = specific_function %FeedTame, @FeedTame(%facet_value) [symbolic]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -386,7 +386,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %FeedTame.decl: %FeedTame.type = fn_decl @FeedTame [concrete = constants.%FeedTame] {
// CHECK:STDOUT: %V.patt.loc7_14.1: %pattern_type.fbb = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc7_14.2 (constants.%V.patt)]
// CHECK:STDOUT: %v.param_patt.loc7_37.1: @FeedTame.%pattern_type (%pattern_type.7b2) = value_param_pattern [symbolic = %v.param_patt.loc7_37.2 (constants.%v.param_patt.bb4)]
// CHECK:STDOUT: %v.patt.loc7_37.1: @FeedTame.%pattern_type (%pattern_type.7b2) = at_binding_pattern v, %v.param_patt.loc7_37.1 [symbolic = %v.patt.loc7_37.2 (constants.%v.patt.d6a)]
// CHECK:STDOUT: %v.patt.loc7_37.1: @FeedTame.%pattern_type (%pattern_type.7b2) = wrapper_binding_pattern v, %v.param_patt.loc7_37.1 [symbolic = %v.patt.loc7_37.2 (constants.%v.patt.941)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.3 [concrete = constants.%facet_type.bbb] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -410,7 +410,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %HandleTameAnimal.decl: %HandleTameAnimal.type = fn_decl @HandleTameAnimal [concrete = constants.%HandleTameAnimal] {
// CHECK:STDOUT: %W.patt.loc9_22.1: %pattern_type.66f = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc9_22.2 (constants.%W.patt)]
// CHECK:STDOUT: %w.param_patt.loc9_47.1: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = value_param_pattern [symbolic = %w.param_patt.loc9_47.2 (constants.%w.param_patt)]
// CHECK:STDOUT: %w.patt.loc9_47.1: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = at_binding_pattern w, %w.param_patt.loc9_47.1 [symbolic = %w.patt.loc9_47.2 (constants.%w.patt)]
// CHECK:STDOUT: %w.patt.loc9_47.1: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = wrapper_binding_pattern w, %w.param_patt.loc9_47.1 [symbolic = %w.patt.loc9_47.2 (constants.%w.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_38.1: type = splice_block %.loc9_38.3 [concrete = constants.%facet_type.dd5] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -478,7 +478,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type.loc7_39.1: type = facet_access_type %V.loc7_14.1 [symbolic = %V.as_type.loc7_39.1 (constants.%V.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc7_39.1 [symbolic = %pattern_type (constants.%pattern_type.7b2)]
// CHECK:STDOUT: %v.param_patt.loc7_37.2: @FeedTame.%pattern_type (%pattern_type.7b2) = value_param_pattern [symbolic = %v.param_patt.loc7_37.2 (constants.%v.param_patt.bb4)]
// CHECK:STDOUT: %v.patt.loc7_37.2: @FeedTame.%pattern_type (%pattern_type.7b2) = at_binding_pattern v, %v.param_patt.loc7_37.2 [symbolic = %v.patt.loc7_37.2 (constants.%v.patt.d6a)]
// CHECK:STDOUT: %v.patt.loc7_37.2: @FeedTame.%pattern_type (%pattern_type.7b2) = wrapper_binding_pattern v, %v.param_patt.loc7_37.2 [symbolic = %v.patt.loc7_37.2 (constants.%v.patt.941)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %V.as_type.loc7_39.1 [symbolic = %require_complete (constants.%require_complete.08b)]
@@ -495,7 +495,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %W.as_type.loc9_49.1: type = facet_access_type %W.loc9_22.1 [symbolic = %W.as_type.loc9_49.1 (constants.%W.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc9_49.1 [symbolic = %pattern_type (constants.%pattern_type.b23)]
// CHECK:STDOUT: %w.param_patt.loc9_47.2: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = value_param_pattern [symbolic = %w.param_patt.loc9_47.2 (constants.%w.param_patt)]
// CHECK:STDOUT: %w.patt.loc9_47.2: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = at_binding_pattern w, %w.param_patt.loc9_47.2 [symbolic = %w.patt.loc9_47.2 (constants.%w.patt)]
// CHECK:STDOUT: %w.patt.loc9_47.2: @HandleTameAnimal.%pattern_type (%pattern_type.b23) = wrapper_binding_pattern w, %w.param_patt.loc9_47.2 [symbolic = %w.patt.loc9_47.2 (constants.%w.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %W.as_type.loc9_49.1 [symbolic = %require_complete (constants.%require_complete.ec1)]
@@ -530,7 +530,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type.loc7_39.1 => constants.%V.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b2
// CHECK:STDOUT: %v.param_patt.loc7_37.2 => constants.%v.param_patt.bb4
// CHECK:STDOUT: %v.patt.loc7_37.2 => constants.%v.patt.d6a
// CHECK:STDOUT: %v.patt.loc7_37.2 => constants.%v.patt.941
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HandleTameAnimal(constants.%W) {
@@ -548,7 +548,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type.loc7_39.1 => constants.%W.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b23
// CHECK:STDOUT: %v.param_patt.loc7_37.2 => constants.%v.param_patt.631
// CHECK:STDOUT: %v.patt.loc7_37.2 => constants.%v.patt.273
// CHECK:STDOUT: %v.patt.loc7_37.2 => constants.%v.patt.aad
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete.ec1
@@ -590,7 +590,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic]
// CHECK:STDOUT: %pattern_type.7b2: type = pattern_type %V.as_type [symbolic]
// CHECK:STDOUT: %v.param_patt.bb4: %pattern_type.7b2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %v.patt.d6a: %pattern_type.7b2 = at_binding_pattern v, %v.param_patt.bb4 [symbolic]
// CHECK:STDOUT: %v.patt.941: %pattern_type.7b2 = wrapper_binding_pattern v, %v.param_patt.bb4 [symbolic]
// CHECK:STDOUT: %FeedTame2.type: type = fn_type @FeedTame2 [concrete]
// CHECK:STDOUT: %FeedTame2: %FeedTame2.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.08b: <witness> = require_complete_type %V.as_type [symbolic]
@@ -602,7 +602,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic]
// CHECK:STDOUT: %pattern_type.493: type = pattern_type %W.as_type [symbolic]
// CHECK:STDOUT: %w.param_patt: %pattern_type.493 = value_param_pattern [symbolic]
// CHECK:STDOUT: %w.patt: %pattern_type.493 = at_binding_pattern w, %w.param_patt [symbolic]
// CHECK:STDOUT: %w.patt: %pattern_type.493 = wrapper_binding_pattern w, %w.param_patt [symbolic]
// CHECK:STDOUT: %HandleTameAnimal2.type: type = fn_type @HandleTameAnimal2 [concrete]
// CHECK:STDOUT: %HandleTameAnimal2: %HandleTameAnimal2.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.837: <witness> = require_complete_type %W.as_type [symbolic]
@@ -615,7 +615,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %Tame.lookup_impl_witness: <witness> = lookup_impl_witness %W, @Tame [symbolic]
// CHECK:STDOUT: %facet_value: %facet_type.bbb = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic]
// CHECK:STDOUT: %v.param_patt.ef6: %pattern_type.493 = value_param_pattern [symbolic]
// CHECK:STDOUT: %v.patt.346: %pattern_type.493 = at_binding_pattern v, %v.param_patt.ef6 [symbolic]
// CHECK:STDOUT: %v.patt.f02: %pattern_type.493 = wrapper_binding_pattern v, %v.param_patt.ef6 [symbolic]
// CHECK:STDOUT: %FeedTame2.specific_fn: <specific function> = specific_function %FeedTame2, @FeedTame2(%facet_value) [symbolic]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -660,7 +660,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %FeedTame2.decl: %FeedTame2.type = fn_decl @FeedTame2 [concrete = constants.%FeedTame2] {
// CHECK:STDOUT: %V.patt.loc9_15.1: %pattern_type.fbb = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc9_15.2 (constants.%V.patt)]
// CHECK:STDOUT: %v.param_patt.loc9_38.1: @FeedTame2.%pattern_type (%pattern_type.7b2) = value_param_pattern [symbolic = %v.param_patt.loc9_38.2 (constants.%v.param_patt.bb4)]
// CHECK:STDOUT: %v.patt.loc9_38.1: @FeedTame2.%pattern_type (%pattern_type.7b2) = at_binding_pattern v, %v.param_patt.loc9_38.1 [symbolic = %v.patt.loc9_38.2 (constants.%v.patt.d6a)]
// CHECK:STDOUT: %v.patt.loc9_38.1: @FeedTame2.%pattern_type (%pattern_type.7b2) = wrapper_binding_pattern v, %v.param_patt.loc9_38.1 [symbolic = %v.patt.loc9_38.2 (constants.%v.patt.941)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.3 [concrete = constants.%facet_type.bbb] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -684,7 +684,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %HandleTameAnimal2.decl: %HandleTameAnimal2.type = fn_decl @HandleTameAnimal2 [concrete = constants.%HandleTameAnimal2] {
// CHECK:STDOUT: %W.patt.loc11_23.1: %pattern_type.82c = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc11_23.2 (constants.%W.patt)]
// CHECK:STDOUT: %w.param_patt.loc11_41.1: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = value_param_pattern [symbolic = %w.param_patt.loc11_41.2 (constants.%w.param_patt)]
// CHECK:STDOUT: %w.patt.loc11_41.1: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = at_binding_pattern w, %w.param_patt.loc11_41.1 [symbolic = %w.patt.loc11_41.2 (constants.%w.patt)]
// CHECK:STDOUT: %w.patt.loc11_41.1: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = wrapper_binding_pattern w, %w.param_patt.loc11_41.1 [symbolic = %w.patt.loc11_41.2 (constants.%w.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc11_32.1: type = splice_block %.loc11_32.3 [concrete = constants.%facet_type.83c] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -765,7 +765,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type.loc9_40.1: type = facet_access_type %V.loc9_15.1 [symbolic = %V.as_type.loc9_40.1 (constants.%V.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc9_40.1 [symbolic = %pattern_type (constants.%pattern_type.7b2)]
// CHECK:STDOUT: %v.param_patt.loc9_38.2: @FeedTame2.%pattern_type (%pattern_type.7b2) = value_param_pattern [symbolic = %v.param_patt.loc9_38.2 (constants.%v.param_patt.bb4)]
// CHECK:STDOUT: %v.patt.loc9_38.2: @FeedTame2.%pattern_type (%pattern_type.7b2) = at_binding_pattern v, %v.param_patt.loc9_38.2 [symbolic = %v.patt.loc9_38.2 (constants.%v.patt.d6a)]
// CHECK:STDOUT: %v.patt.loc9_38.2: @FeedTame2.%pattern_type (%pattern_type.7b2) = wrapper_binding_pattern v, %v.param_patt.loc9_38.2 [symbolic = %v.patt.loc9_38.2 (constants.%v.patt.941)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %V.as_type.loc9_40.1 [symbolic = %require_complete (constants.%require_complete.08b)]
@@ -782,7 +782,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %W.as_type.loc11_43.1: type = facet_access_type %W.loc11_23.1 [symbolic = %W.as_type.loc11_43.1 (constants.%W.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc11_43.1 [symbolic = %pattern_type (constants.%pattern_type.493)]
// CHECK:STDOUT: %w.param_patt.loc11_41.2: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = value_param_pattern [symbolic = %w.param_patt.loc11_41.2 (constants.%w.param_patt)]
// CHECK:STDOUT: %w.patt.loc11_41.2: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = at_binding_pattern w, %w.param_patt.loc11_41.2 [symbolic = %w.patt.loc11_41.2 (constants.%w.patt)]
// CHECK:STDOUT: %w.patt.loc11_41.2: @HandleTameAnimal2.%pattern_type (%pattern_type.493) = wrapper_binding_pattern w, %w.param_patt.loc11_41.2 [symbolic = %w.patt.loc11_41.2 (constants.%w.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %W.as_type.loc11_43.1 [symbolic = %require_complete (constants.%require_complete.837)]
@@ -834,7 +834,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type.loc9_40.1 => constants.%V.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7b2
// CHECK:STDOUT: %v.param_patt.loc9_38.2 => constants.%v.param_patt.bb4
// CHECK:STDOUT: %v.patt.loc9_38.2 => constants.%v.patt.d6a
// CHECK:STDOUT: %v.patt.loc9_38.2 => constants.%v.patt.941
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HandleTameAnimal2(constants.%W) {
@@ -862,7 +862,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %V.as_type.loc9_40.1 => constants.%W.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.493
// CHECK:STDOUT: %v.param_patt.loc9_38.2 => constants.%v.param_patt.ef6
// CHECK:STDOUT: %v.patt.loc9_38.2 => constants.%v.patt.346
// CHECK:STDOUT: %v.patt.loc9_38.2 => constants.%v.patt.f02
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete.837
@@ -881,7 +881,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.a0e098.1: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %x.param_patt.241db7.1: %pattern_type.a0e098.1 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.19b9f1.1: %pattern_type.a0e098.1 = at_binding_pattern x, %x.param_patt.241db7.1 [symbolic]
// CHECK:STDOUT: %x.patt.cd4828.1: %pattern_type.a0e098.1 = wrapper_binding_pattern x, %x.param_patt.241db7.1 [symbolic]
// CHECK:STDOUT: %TakesA.type: type = fn_type @TakesA [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %TakesA: %TakesA.type = struct_value () [concrete]
@@ -895,12 +895,12 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic]
// CHECK:STDOUT: %pattern_type.a0e098.2: type = pattern_type %U.as_type [symbolic]
// CHECK:STDOUT: %y.param_patt: %pattern_type.a0e098.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %y.patt: %pattern_type.a0e098.2 = at_binding_pattern y, %y.param_patt [symbolic]
// CHECK:STDOUT: %y.patt: %pattern_type.a0e098.2 = wrapper_binding_pattern y, %y.param_patt [symbolic]
// CHECK:STDOUT: %WithExtraWhere.type: type = fn_type @WithExtraWhere [concrete]
// CHECK:STDOUT: %WithExtraWhere: %WithExtraWhere.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.94f9a3.2: <witness> = require_complete_type %U.as_type [symbolic]
// CHECK:STDOUT: %x.param_patt.241db7.2: %pattern_type.a0e098.2 = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.19b9f1.2: %pattern_type.a0e098.2 = at_binding_pattern x, %x.param_patt.241db7.2 [symbolic]
// CHECK:STDOUT: %x.patt.cd4828.2: %pattern_type.a0e098.2 = wrapper_binding_pattern x, %x.param_patt.241db7.2 [symbolic]
// CHECK:STDOUT: %TakesA.specific_fn: <specific function> = specific_function %TakesA, @TakesA(%U) [symbolic]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -923,7 +923,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %TakesA.decl: %TakesA.type = fn_decl @TakesA [concrete = constants.%TakesA] {
// CHECK:STDOUT: %T.patt.loc7_12.1: %pattern_type.029 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc7_12.2 (constants.%T.patt)]
// CHECK:STDOUT: %x.param_patt.loc7_25.1: @TakesA.%pattern_type (%pattern_type.a0e098.1) = value_param_pattern [symbolic = %x.param_patt.loc7_25.2 (constants.%x.param_patt.241db7.1)]
// CHECK:STDOUT: %x.patt.loc7_25.1: @TakesA.%pattern_type (%pattern_type.a0e098.1) = at_binding_pattern x, %x.param_patt.loc7_25.1 [symbolic = %x.patt.loc7_25.2 (constants.%x.patt.19b9f1.1)]
// CHECK:STDOUT: %x.patt.loc7_25.1: @TakesA.%pattern_type (%pattern_type.a0e098.1) = wrapper_binding_pattern x, %x.param_patt.loc7_25.1 [symbolic = %x.patt.loc7_25.2 (constants.%x.patt.cd4828.1)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc7_14: type = splice_block %A.ref [concrete = constants.%A.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen.197]
@@ -941,7 +941,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %WithExtraWhere.decl: %WithExtraWhere.type = fn_decl @WithExtraWhere [concrete = constants.%WithExtraWhere] {
// CHECK:STDOUT: %U.patt.loc9_20.1: %pattern_type.029 = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc9_20.2 (constants.%U.patt)]
// CHECK:STDOUT: %y.param_patt.loc9_49.1: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = value_param_pattern [symbolic = %y.param_patt.loc9_49.2 (constants.%y.param_patt)]
// CHECK:STDOUT: %y.patt.loc9_49.1: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = at_binding_pattern y, %y.param_patt.loc9_49.1 [symbolic = %y.patt.loc9_49.2 (constants.%y.patt)]
// CHECK:STDOUT: %y.patt.loc9_49.1: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = wrapper_binding_pattern y, %y.param_patt.loc9_49.1 [symbolic = %y.patt.loc9_49.2 (constants.%y.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [concrete = constants.%A.type] {
// CHECK:STDOUT: %.Self.frozen.loc9_20: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen.197]
@@ -991,7 +991,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc7_27.1: type = facet_access_type %T.loc7_12.1 [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_27.1 [symbolic = %pattern_type (constants.%pattern_type.a0e098.1)]
// CHECK:STDOUT: %x.param_patt.loc7_25.2: @TakesA.%pattern_type (%pattern_type.a0e098.1) = value_param_pattern [symbolic = %x.param_patt.loc7_25.2 (constants.%x.param_patt.241db7.1)]
// CHECK:STDOUT: %x.patt.loc7_25.2: @TakesA.%pattern_type (%pattern_type.a0e098.1) = at_binding_pattern x, %x.param_patt.loc7_25.2 [symbolic = %x.patt.loc7_25.2 (constants.%x.patt.19b9f1.1)]
// CHECK:STDOUT: %x.patt.loc7_25.2: @TakesA.%pattern_type (%pattern_type.a0e098.1) = wrapper_binding_pattern x, %x.param_patt.loc7_25.2 [symbolic = %x.patt.loc7_25.2 (constants.%x.patt.cd4828.1)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc7_27.1 [symbolic = %require_complete (constants.%require_complete.94f9a3.1)]
@@ -1008,7 +1008,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U.as_type.loc9_51.1: type = facet_access_type %U.loc9_20.1 [symbolic = %U.as_type.loc9_51.1 (constants.%U.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_51.1 [symbolic = %pattern_type (constants.%pattern_type.a0e098.2)]
// CHECK:STDOUT: %y.param_patt.loc9_49.2: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = value_param_pattern [symbolic = %y.param_patt.loc9_49.2 (constants.%y.param_patt)]
// CHECK:STDOUT: %y.patt.loc9_49.2: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = at_binding_pattern y, %y.param_patt.loc9_49.2 [symbolic = %y.patt.loc9_49.2 (constants.%y.patt)]
// CHECK:STDOUT: %y.patt.loc9_49.2: @WithExtraWhere.%pattern_type (%pattern_type.a0e098.2) = wrapper_binding_pattern y, %y.param_patt.loc9_49.2 [symbolic = %y.patt.loc9_49.2 (constants.%y.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %U.as_type.loc9_51.1 [symbolic = %require_complete (constants.%require_complete.94f9a3.2)]
@@ -1034,7 +1034,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a0e098.1
// CHECK:STDOUT: %x.param_patt.loc7_25.2 => constants.%x.param_patt.241db7.1
// CHECK:STDOUT: %x.patt.loc7_25.2 => constants.%x.patt.19b9f1.1
// CHECK:STDOUT: %x.patt.loc7_25.2 => constants.%x.patt.cd4828.1
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @WithExtraWhere(constants.%U) {
@@ -1052,7 +1052,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%U.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a0e098.2
// CHECK:STDOUT: %x.param_patt.loc7_25.2 => constants.%x.param_patt.241db7.2
// CHECK:STDOUT: %x.patt.loc7_25.2 => constants.%x.patt.19b9f1.2
// CHECK:STDOUT: %x.patt.loc7_25.2 => constants.%x.patt.cd4828.2
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete.94f9a3.2
@@ -1068,7 +1068,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.67db0b.1: type = symbolic_binding T, 0 [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T.67db0b.1 [symbolic]
// CHECK:STDOUT: %x.param_patt.91d: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.800: %pattern_type.51d = at_binding_pattern x, %x.param_patt.91d [symbolic]
// CHECK:STDOUT: %x.patt.260: %pattern_type.51d = wrapper_binding_pattern x, %x.param_patt.91d [symbolic]
// CHECK:STDOUT: %TakesTypeDeduced.type: type = fn_type @TakesTypeDeduced [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %TakesTypeDeduced: %TakesTypeDeduced.type = struct_value () [concrete]
@@ -1082,12 +1082,12 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic]
// CHECK:STDOUT: %pattern_type.86a: type = pattern_type %U.as_type [symbolic]
// CHECK:STDOUT: %y.param_patt: %pattern_type.86a = value_param_pattern [symbolic]
// CHECK:STDOUT: %y.patt: %pattern_type.86a = at_binding_pattern y, %y.param_patt [symbolic]
// CHECK:STDOUT: %y.patt: %pattern_type.86a = wrapper_binding_pattern y, %y.param_patt [symbolic]
// CHECK:STDOUT: %CallsWithExtraWhere.type: type = fn_type @CallsWithExtraWhere [concrete]
// CHECK:STDOUT: %CallsWithExtraWhere: %CallsWithExtraWhere.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.5ef: <witness> = require_complete_type %U.as_type [symbolic]
// CHECK:STDOUT: %x.param_patt.9a2: %pattern_type.86a = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.fe1: %pattern_type.86a = at_binding_pattern x, %x.param_patt.9a2 [symbolic]
// CHECK:STDOUT: %x.patt.37f: %pattern_type.86a = wrapper_binding_pattern x, %x.param_patt.9a2 [symbolic]
// CHECK:STDOUT: %TakesTypeDeduced.specific_fn: <specific function> = specific_function %TakesTypeDeduced, @TakesTypeDeduced(%U.as_type) [symbolic]
// CHECK:STDOUT: %T.67db0b.2: type = symbolic_binding T, 0 [symbolic]
// CHECK:STDOUT: %TakesTypeExplicit.type: type = fn_type @TakesTypeExplicit [concrete]
@@ -1116,7 +1116,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %TakesTypeDeduced.decl: %TakesTypeDeduced.type = fn_decl @TakesTypeDeduced [concrete = constants.%TakesTypeDeduced] {
// CHECK:STDOUT: %T.patt.loc3_22.1: %pattern_type.98f = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc3_22.2 (constants.%T.patt)]
// CHECK:STDOUT: %x.param_patt.loc3_38.1: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc3_38.2 (constants.%x.param_patt.91d)]
// CHECK:STDOUT: %x.patt.loc3_38.1: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc3_38.1 [symbolic = %x.patt.loc3_38.2 (constants.%x.patt.800)]
// CHECK:STDOUT: %x.patt.loc3_38.1: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc3_38.1 [symbolic = %x.patt.loc3_38.2 (constants.%x.patt.260)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc3_24.1: type = splice_block %.loc3_24.2 [concrete = type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1130,7 +1130,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %CallsWithExtraWhere.decl: %CallsWithExtraWhere.type = fn_decl @CallsWithExtraWhere [concrete = constants.%CallsWithExtraWhere] {
// CHECK:STDOUT: %U.patt.loc4_25.1: %pattern_type.9a5 = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc4_25.2 (constants.%U.patt)]
// CHECK:STDOUT: %y.param_patt.loc4_57.1: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = value_param_pattern [symbolic = %y.param_patt.loc4_57.2 (constants.%y.param_patt)]
// CHECK:STDOUT: %y.patt.loc4_57.1: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = at_binding_pattern y, %y.param_patt.loc4_57.1 [symbolic = %y.patt.loc4_57.2 (constants.%y.patt)]
// CHECK:STDOUT: %y.patt.loc4_57.1: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = wrapper_binding_pattern y, %y.param_patt.loc4_57.1 [symbolic = %y.patt.loc4_57.2 (constants.%y.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc4_32.1: type = splice_block %.loc4_32.2 [concrete = constants.%type] {
// CHECK:STDOUT: %.Self.frozen.loc4_25: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1202,7 +1202,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.loc3_22.1: type = symbolic_binding T, 0 [symbolic = %T.loc3_22.1 (constants.%T.67db0b.1)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.loc3_22.1 [symbolic = %pattern_type (constants.%pattern_type.51d)]
// CHECK:STDOUT: %x.param_patt.loc3_38.2: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %x.param_patt.loc3_38.2 (constants.%x.param_patt.91d)]
// CHECK:STDOUT: %x.patt.loc3_38.2: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = at_binding_pattern x, %x.param_patt.loc3_38.2 [symbolic = %x.patt.loc3_38.2 (constants.%x.patt.800)]
// CHECK:STDOUT: %x.patt.loc3_38.2: @TakesTypeDeduced.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern x, %x.param_patt.loc3_38.2 [symbolic = %x.patt.loc3_38.2 (constants.%x.patt.260)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.loc3_22.1 [symbolic = %require_complete (constants.%require_complete.944)]
@@ -1219,7 +1219,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U.as_type.loc4_59.1: type = facet_access_type %U.loc4_25.1 [symbolic = %U.as_type.loc4_59.1 (constants.%U.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc4_59.1 [symbolic = %pattern_type (constants.%pattern_type.86a)]
// CHECK:STDOUT: %y.param_patt.loc4_57.2: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = value_param_pattern [symbolic = %y.param_patt.loc4_57.2 (constants.%y.param_patt)]
// CHECK:STDOUT: %y.patt.loc4_57.2: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = at_binding_pattern y, %y.param_patt.loc4_57.2 [symbolic = %y.patt.loc4_57.2 (constants.%y.patt)]
// CHECK:STDOUT: %y.patt.loc4_57.2: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = wrapper_binding_pattern y, %y.param_patt.loc4_57.2 [symbolic = %y.patt.loc4_57.2 (constants.%y.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %U.as_type.loc4_59.1 [symbolic = %require_complete (constants.%require_complete.5ef)]
@@ -1273,7 +1273,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.loc3_22.1 => constants.%T.67db0b.1
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
// CHECK:STDOUT: %x.param_patt.loc3_38.2 => constants.%x.param_patt.91d
// CHECK:STDOUT: %x.patt.loc3_38.2 => constants.%x.patt.800
// CHECK:STDOUT: %x.patt.loc3_38.2 => constants.%x.patt.260
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @CallsWithExtraWhere(constants.%U) {
@@ -1290,7 +1290,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.loc3_22.1 => constants.%U.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86a
// CHECK:STDOUT: %x.param_patt.loc3_38.2 => constants.%x.param_patt.9a2
// CHECK:STDOUT: %x.patt.loc3_38.2 => constants.%x.patt.fe1
// CHECK:STDOUT: %x.patt.loc3_38.2 => constants.%x.patt.37f
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete.5ef
@@ -1329,7 +1329,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f45530.1 [symbolic]
// CHECK:STDOUT: %pattern_type.86a: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %x.param_patt.9a2: %pattern_type.86a = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.fe1: %pattern_type.86a = at_binding_pattern x, %x.param_patt.9a2 [symbolic]
// CHECK:STDOUT: %x.patt.37f: %pattern_type.86a = wrapper_binding_pattern x, %x.param_patt.9a2 [symbolic]
// CHECK:STDOUT: %TakesExtraWhereDeduced.type: type = fn_type @TakesExtraWhereDeduced [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %TakesExtraWhereDeduced: %TakesExtraWhereDeduced.type = struct_value () [concrete]
@@ -1339,13 +1339,13 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %U [symbolic]
// CHECK:STDOUT: %y.param_patt: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %y.patt: %pattern_type.51d = at_binding_pattern y, %y.param_patt [symbolic]
// CHECK:STDOUT: %y.patt: %pattern_type.51d = wrapper_binding_pattern y, %y.param_patt [symbolic]
// CHECK:STDOUT: %CallsWithType.type: type = fn_type @CallsWithType [concrete]
// CHECK:STDOUT: %CallsWithType: %CallsWithType.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.944: <witness> = require_complete_type %U [symbolic]
// CHECK:STDOUT: %facet_value: %type = facet_value %U, () [symbolic]
// CHECK:STDOUT: %x.param_patt.91d: %pattern_type.51d = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.800: %pattern_type.51d = at_binding_pattern x, %x.param_patt.91d [symbolic]
// CHECK:STDOUT: %x.patt.260: %pattern_type.51d = wrapper_binding_pattern x, %x.param_patt.91d [symbolic]
// CHECK:STDOUT: %TakesExtraWhereDeduced.specific_fn: <specific function> = specific_function %TakesExtraWhereDeduced, @TakesExtraWhereDeduced(%facet_value) [symbolic]
// CHECK:STDOUT: %T.f45530.2: %type = symbolic_binding T, 0 [symbolic]
// CHECK:STDOUT: %TakesExtraWhereExplicit.type: type = fn_type @TakesExtraWhereExplicit [concrete]
@@ -1374,7 +1374,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %TakesExtraWhereDeduced.decl: %TakesExtraWhereDeduced.type = fn_decl @TakesExtraWhereDeduced [concrete = constants.%TakesExtraWhereDeduced] {
// CHECK:STDOUT: %T.patt.loc3_28.1: %pattern_type.9a5 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc3_28.2 (constants.%T.patt)]
// CHECK:STDOUT: %x.param_patt.loc3_67.1: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = value_param_pattern [symbolic = %x.param_patt.loc3_67.2 (constants.%x.param_patt.9a2)]
// CHECK:STDOUT: %x.patt.loc3_67.1: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = at_binding_pattern x, %x.param_patt.loc3_67.1 [symbolic = %x.patt.loc3_67.2 (constants.%x.patt.fe1)]
// CHECK:STDOUT: %x.patt.loc3_67.1: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = wrapper_binding_pattern x, %x.param_patt.loc3_67.1 [symbolic = %x.patt.loc3_67.2 (constants.%x.patt.37f)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc3_35.1: type = splice_block %.loc3_35.2 [concrete = constants.%type] {
// CHECK:STDOUT: %.Self.frozen.loc3_28: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1408,7 +1408,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %CallsWithType.decl: %CallsWithType.type = fn_decl @CallsWithType [concrete = constants.%CallsWithType] {
// CHECK:STDOUT: %U.patt.loc4_19.1: %pattern_type.98f = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc4_19.2 (constants.%U.patt)]
// CHECK:STDOUT: %y.param_patt.loc4_28.1: @CallsWithType.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %y.param_patt.loc4_28.2 (constants.%y.param_patt)]
// CHECK:STDOUT: %y.patt.loc4_28.1: @CallsWithType.%pattern_type (%pattern_type.51d) = at_binding_pattern y, %y.param_patt.loc4_28.1 [symbolic = %y.patt.loc4_28.2 (constants.%y.patt)]
// CHECK:STDOUT: %y.patt.loc4_28.1: @CallsWithType.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern y, %y.param_patt.loc4_28.1 [symbolic = %y.patt.loc4_28.2 (constants.%y.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc4_21.1: type = splice_block %.loc4_21.2 [concrete = type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -1461,7 +1461,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc3_69.1: type = facet_access_type %T.loc3_28.1 [symbolic = %T.as_type.loc3_69.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc3_69.1 [symbolic = %pattern_type (constants.%pattern_type.86a)]
// CHECK:STDOUT: %x.param_patt.loc3_67.2: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = value_param_pattern [symbolic = %x.param_patt.loc3_67.2 (constants.%x.param_patt.9a2)]
// CHECK:STDOUT: %x.patt.loc3_67.2: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = at_binding_pattern x, %x.param_patt.loc3_67.2 [symbolic = %x.patt.loc3_67.2 (constants.%x.patt.fe1)]
// CHECK:STDOUT: %x.patt.loc3_67.2: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = wrapper_binding_pattern x, %x.param_patt.loc3_67.2 [symbolic = %x.patt.loc3_67.2 (constants.%x.patt.37f)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc3_69.1 [symbolic = %require_complete (constants.%require_complete.5ef)]
@@ -1477,7 +1477,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %U.loc4_19.1: type = symbolic_binding U, 0 [symbolic = %U.loc4_19.1 (constants.%U)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %U.loc4_19.1 [symbolic = %pattern_type (constants.%pattern_type.51d)]
// CHECK:STDOUT: %y.param_patt.loc4_28.2: @CallsWithType.%pattern_type (%pattern_type.51d) = value_param_pattern [symbolic = %y.param_patt.loc4_28.2 (constants.%y.param_patt)]
// CHECK:STDOUT: %y.patt.loc4_28.2: @CallsWithType.%pattern_type (%pattern_type.51d) = at_binding_pattern y, %y.param_patt.loc4_28.2 [symbolic = %y.patt.loc4_28.2 (constants.%y.patt)]
// CHECK:STDOUT: %y.patt.loc4_28.2: @CallsWithType.%pattern_type (%pattern_type.51d) = wrapper_binding_pattern y, %y.param_patt.loc4_28.2 [symbolic = %y.patt.loc4_28.2 (constants.%y.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %U.loc4_19.1 [symbolic = %require_complete (constants.%require_complete.944)]
@@ -1537,7 +1537,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc3_69.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86a
// CHECK:STDOUT: %x.param_patt.loc3_67.2 => constants.%x.param_patt.9a2
// CHECK:STDOUT: %x.patt.loc3_67.2 => constants.%x.patt.fe1
// CHECK:STDOUT: %x.patt.loc3_67.2 => constants.%x.patt.37f
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @CallsWithType(constants.%U) {
@@ -1554,7 +1554,7 @@ fn CallsWithTypeExplicit(generic U: type) {
// CHECK:STDOUT: %T.as_type.loc3_69.1 => constants.%U
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d
// CHECK:STDOUT: %x.param_patt.loc3_67.2 => constants.%x.param_patt.91d
// CHECK:STDOUT: %x.patt.loc3_67.2 => constants.%x.patt.800
// CHECK:STDOUT: %x.patt.loc3_67.2 => constants.%x.patt.260
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete.944
@@ -43,7 +43,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.422: type = facet_access_type %T.672 [symbolic]
// CHECK:STDOUT: %pattern_type.aed: type = pattern_type %T.as_type.422 [symbolic]
// CHECK:STDOUT: %e.param_patt.0be: %pattern_type.aed = value_param_pattern [symbolic]
// CHECK:STDOUT: %e.patt.543: %pattern_type.aed = at_binding_pattern e, %e.param_patt.0be [symbolic]
// CHECK:STDOUT: %e.patt.c5e: %pattern_type.aed = wrapper_binding_pattern e, %e.param_patt.0be [symbolic]
// CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete]
@@ -53,7 +53,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.01d: type = facet_access_type %T.443 [symbolic]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type.01d [symbolic]
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete]
// CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.db4: <witness> = require_complete_type %T.as_type.01d [symbolic]
@@ -63,7 +63,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %.2fe: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%T.443) [symbolic]
// CHECK:STDOUT: %Eats.facet.934: %Eats.type = facet_value %T.as_type.01d, (%Eats.lookup_impl_witness) [symbolic]
// CHECK:STDOUT: %e.param_patt.1c7: %pattern_type.e90 = value_param_pattern [symbolic]
// CHECK:STDOUT: %e.patt.637: %pattern_type.e90 = at_binding_pattern e, %e.param_patt.1c7 [symbolic]
// CHECK:STDOUT: %e.patt.70b: %pattern_type.e90 = wrapper_binding_pattern e, %e.param_patt.1c7 [symbolic]
// CHECK:STDOUT: %Feed.specific_fn: <specific function> = specific_function %Feed, @Feed(%Eats.facet.934) [symbolic]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -102,7 +102,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] {
// CHECK:STDOUT: %T.patt.loc20_10.1: %pattern_type.880 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc20_10.2 (constants.%T.patt.9e8)]
// CHECK:STDOUT: %e.param_patt.loc20_26.1: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %e.param_patt.loc20_26.2 (constants.%e.param_patt.0be)]
// CHECK:STDOUT: %e.patt.loc20_26.1: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt.loc20_26.1 [symbolic = %e.patt.loc20_26.2 (constants.%e.patt.543)]
// CHECK:STDOUT: %e.patt.loc20_26.1: @Feed.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern e, %e.param_patt.loc20_26.1 [symbolic = %e.patt.loc20_26.2 (constants.%e.patt.c5e)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc20_12: type = splice_block %Eats.ref [concrete = constants.%Eats.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -120,7 +120,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %T.patt.loc22_18.1: %pattern_type.333 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc22_18.2 (constants.%T.patt.e44)]
// CHECK:STDOUT: %a.param_patt.loc22_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc22_29.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc22_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc22_29.1 [symbolic = %a.patt.loc22_29.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc22_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc22_29.1 [symbolic = %a.patt.loc22_29.2 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc22_20: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -184,7 +184,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.loc20_28.1: type = facet_access_type %T.loc20_10.1 [symbolic = %T.as_type.loc20_28.1 (constants.%T.as_type.422)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc20_28.1 [symbolic = %pattern_type (constants.%pattern_type.aed)]
// CHECK:STDOUT: %e.param_patt.loc20_26.2: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %e.param_patt.loc20_26.2 (constants.%e.param_patt.0be)]
// CHECK:STDOUT: %e.patt.loc20_26.2: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt.loc20_26.2 [symbolic = %e.patt.loc20_26.2 (constants.%e.patt.543)]
// CHECK:STDOUT: %e.patt.loc20_26.2: @Feed.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern e, %e.param_patt.loc20_26.2 [symbolic = %e.patt.loc20_26.2 (constants.%e.patt.c5e)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc20_28.1 [symbolic = %require_complete (constants.%require_complete.c4d)]
@@ -201,7 +201,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.loc22_31.1: type = facet_access_type %T.loc22_18.1 [symbolic = %T.as_type.loc22_31.1 (constants.%T.as_type.01d)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_31.1 [symbolic = %pattern_type (constants.%pattern_type.e90)]
// CHECK:STDOUT: %a.param_patt.loc22_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc22_29.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc22_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc22_29.2 [symbolic = %a.patt.loc22_29.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc22_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc22_29.2 [symbolic = %a.patt.loc22_29.2 (constants.%a.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc22_31.1 [symbolic = %require_complete (constants.%require_complete.db4)]
@@ -248,7 +248,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.loc20_28.1 => constants.%T.as_type.422
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.aed
// CHECK:STDOUT: %e.param_patt.loc20_26.2 => constants.%e.param_patt.0be
// CHECK:STDOUT: %e.patt.loc20_26.2 => constants.%e.patt.543
// CHECK:STDOUT: %e.patt.loc20_26.2 => constants.%e.patt.c5e
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HandleAnimal(constants.%T.443) {
@@ -276,7 +276,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.loc20_28.1 => constants.%T.as_type.01d
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90
// CHECK:STDOUT: %e.param_patt.loc20_26.2 => constants.%e.param_patt.1c7
// CHECK:STDOUT: %e.patt.loc20_26.2 => constants.%e.patt.637
// CHECK:STDOUT: %e.patt.loc20_26.2 => constants.%e.patt.70b
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete.db4
@@ -86,10 +86,10 @@ fn F() {
// CHECK:STDOUT: %T.as_type.b84: type = facet_access_type %T.b01 [symbolic]
// CHECK:STDOUT: %pattern_type.371: type = pattern_type %T.as_type.b84 [symbolic]
// CHECK:STDOUT: %e.param_patt.32e: %pattern_type.371 = value_param_pattern [symbolic]
// CHECK:STDOUT: %e.patt.af1: %pattern_type.371 = at_binding_pattern e, %e.param_patt.32e [symbolic]
// CHECK:STDOUT: %e.patt.661: %pattern_type.371 = wrapper_binding_pattern e, %e.param_patt.32e [symbolic]
// CHECK:STDOUT: %pattern_type.e40: type = pattern_type %Food.as_type.bca [symbolic]
// CHECK:STDOUT: %food.param_patt.1bd: %pattern_type.e40 = value_param_pattern [symbolic]
// CHECK:STDOUT: %food.patt.bcf: %pattern_type.e40 = at_binding_pattern food, %food.param_patt.1bd [symbolic]
// CHECK:STDOUT: %food.patt.105: %pattern_type.e40 = wrapper_binding_pattern food, %food.param_patt.1bd [symbolic]
// CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete]
// CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.363: <witness> = require_complete_type %T.as_type.b84 [symbolic]
@@ -101,11 +101,11 @@ fn F() {
// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic]
// CHECK:STDOUT: %pattern_type.e90c: type = pattern_type %A.as_type [symbolic]
// CHECK:STDOUT: %a.param_patt.84e: %pattern_type.e90c = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.3e6: %pattern_type.e90c = at_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %a.patt.feb: %pattern_type.e90c = wrapper_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %Food.as_type.24e: type = facet_access_type %Food.5f8 [symbolic]
// CHECK:STDOUT: %pattern_type.ea8: type = pattern_type %Food.as_type.24e [symbolic]
// CHECK:STDOUT: %food.param_patt.38d: %pattern_type.ea8 = value_param_pattern [symbolic]
// CHECK:STDOUT: %food.patt.09a8ec.1: %pattern_type.ea8 = at_binding_pattern food, %food.param_patt.38d [symbolic]
// CHECK:STDOUT: %food.patt.c70e36.1: %pattern_type.ea8 = wrapper_binding_pattern food, %food.param_patt.38d [symbolic]
// CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete]
// CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.db4: <witness> = require_complete_type %A.as_type [symbolic]
@@ -120,8 +120,8 @@ fn F() {
// CHECK:STDOUT: %pattern_type.efc: type = pattern_type %Eats.type.ceea62.2 [symbolic]
// CHECK:STDOUT: %T.patt.59c: %pattern_type.efc = symbolic_binding_pattern T, 1 [symbolic]
// CHECK:STDOUT: %e.param_patt.1c7: %pattern_type.e90c = value_param_pattern [symbolic]
// CHECK:STDOUT: %e.patt.637: %pattern_type.e90c = at_binding_pattern e, %e.param_patt.1c7 [symbolic]
// CHECK:STDOUT: %food.patt.09a8ec.2: %pattern_type.ea8 = at_binding_pattern food, %food.param_patt.38d [symbolic]
// CHECK:STDOUT: %e.patt.70b: %pattern_type.e90c = wrapper_binding_pattern e, %e.param_patt.1c7 [symbolic]
// CHECK:STDOUT: %food.patt.c70e36.2: %pattern_type.ea8 = wrapper_binding_pattern food, %food.param_patt.38d [symbolic]
// CHECK:STDOUT: %Feed.specific_fn.292: <specific function> = specific_function %Feed, @Feed(%Food.5f8, %Eats.facet.f11) [symbolic]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
@@ -130,10 +130,10 @@ fn F() {
// CHECK:STDOUT: %Grass.val: %Grass = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.283: type = pattern_type %Goat [concrete]
// CHECK:STDOUT: %a.param_patt.8f5: %pattern_type.283 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.8aa: %pattern_type.283 = at_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %a.patt.fd6: %pattern_type.283 = wrapper_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %pattern_type.92e: type = pattern_type %Grass [concrete]
// CHECK:STDOUT: %food.param_patt.42e: %pattern_type.92e = value_param_pattern [concrete]
// CHECK:STDOUT: %food.patt.b2a068.1: %pattern_type.92e = at_binding_pattern food, %food.param_patt.42e [concrete]
// CHECK:STDOUT: %food.patt.f2928e.1: %pattern_type.92e = wrapper_binding_pattern food, %food.param_patt.42e [concrete]
// CHECK:STDOUT: %HandleAnimal.specific_fn: <specific function> = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet, %Edible.facet) [concrete]
// CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete]
// CHECK:STDOUT: %.202: ref %Grass = temporary invalid, %Grass.val [concrete]
@@ -154,8 +154,8 @@ fn F() {
// CHECK:STDOUT: %pattern_type.a69: type = pattern_type %Eats.type.682 [concrete]
// CHECK:STDOUT: %T.patt.55e: %pattern_type.a69 = symbolic_binding_pattern T, 1 [symbolic]
// CHECK:STDOUT: %e.param_patt.b2f: %pattern_type.283 = value_param_pattern [concrete]
// CHECK:STDOUT: %e.patt.ccf: %pattern_type.283 = at_binding_pattern e, %e.param_patt.b2f [concrete]
// CHECK:STDOUT: %food.patt.b2a068.2: %pattern_type.92e = at_binding_pattern food, %food.param_patt.42e [concrete]
// CHECK:STDOUT: %e.patt.4ad: %pattern_type.283 = wrapper_binding_pattern e, %e.param_patt.b2f [concrete]
// CHECK:STDOUT: %food.patt.f2928e.2: %pattern_type.92e = wrapper_binding_pattern food, %food.param_patt.42e [concrete]
// CHECK:STDOUT: %Feed.specific_fn.e56: <specific function> = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.c73) [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -232,9 +232,9 @@ fn F() {
// CHECK:STDOUT: %Food.patt.loc31_13.1: %pattern_type.e90e = symbolic_binding_pattern Food, 0 [symbolic = %Food.patt.loc31_13.2 (constants.%Food.patt.bbd)]
// CHECK:STDOUT: %T.patt.loc31_24.1: @Feed.%pattern_type.loc31_24 (%pattern_type.560) = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc31_24.2 (constants.%T.patt.02f)]
// CHECK:STDOUT: %e.param_patt.loc31_46.1: @Feed.%pattern_type.loc31_46 (%pattern_type.371) = value_param_pattern [symbolic = %e.param_patt.loc31_46.2 (constants.%e.param_patt.32e)]
// CHECK:STDOUT: %e.patt.loc31_46.1: @Feed.%pattern_type.loc31_46 (%pattern_type.371) = at_binding_pattern e, %e.param_patt.loc31_46.1 [symbolic = %e.patt.loc31_46.2 (constants.%e.patt.af1)]
// CHECK:STDOUT: %e.patt.loc31_46.1: @Feed.%pattern_type.loc31_46 (%pattern_type.371) = wrapper_binding_pattern e, %e.param_patt.loc31_46.1 [symbolic = %e.patt.loc31_46.2 (constants.%e.patt.661)]
// CHECK:STDOUT: %food.param_patt.loc31_62.1: @Feed.%pattern_type.loc31_62 (%pattern_type.e40) = value_param_pattern [symbolic = %food.param_patt.loc31_62.2 (constants.%food.param_patt.1bd)]
// CHECK:STDOUT: %food.patt.loc31_62.1: @Feed.%pattern_type.loc31_62 (%pattern_type.e40) = at_binding_pattern food, %food.param_patt.loc31_62.1 [symbolic = %food.patt.loc31_62.2 (constants.%food.patt.bcf)]
// CHECK:STDOUT: %food.patt.loc31_62.1: @Feed.%pattern_type.loc31_62 (%pattern_type.e40) = wrapper_binding_pattern food, %food.param_patt.loc31_62.1 [symbolic = %food.patt.loc31_62.2 (constants.%food.patt.105)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc31_15: type = splice_block %Edible.ref [concrete = constants.%Edible.type] {
// CHECK:STDOUT: %.Self.frozen.loc31_13: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -269,9 +269,9 @@ fn F() {
// CHECK:STDOUT: %A.patt.loc32_18.1: %pattern_type.333 = symbolic_binding_pattern A, 0 [symbolic = %A.patt.loc32_18.2 (constants.%A.patt)]
// CHECK:STDOUT: %Food.patt.loc32_32.1: %pattern_type.e90e = symbolic_binding_pattern Food, 1 [symbolic = %Food.patt.loc32_32.2 (constants.%Food.patt.0d1)]
// CHECK:STDOUT: %a.param_patt.loc32_43.1: @HandleAnimal.%pattern_type.loc32_43 (%pattern_type.e90c) = value_param_pattern [symbolic = %a.param_patt.loc32_43.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc32_43.1: @HandleAnimal.%pattern_type.loc32_43 (%pattern_type.e90c) = at_binding_pattern a, %a.param_patt.loc32_43.1 [symbolic = %a.patt.loc32_43.2 (constants.%a.patt.3e6)]
// CHECK:STDOUT: %a.patt.loc32_43.1: @HandleAnimal.%pattern_type.loc32_43 (%pattern_type.e90c) = wrapper_binding_pattern a, %a.param_patt.loc32_43.1 [symbolic = %a.patt.loc32_43.2 (constants.%a.patt.feb)]
// CHECK:STDOUT: %food.param_patt.loc32_52.1: @HandleAnimal.%pattern_type.loc32_52 (%pattern_type.ea8) = value_param_pattern [symbolic = %food.param_patt.loc32_52.2 (constants.%food.param_patt.38d)]
// CHECK:STDOUT: %food.patt.loc32_52.1: @HandleAnimal.%pattern_type.loc32_52 (%pattern_type.ea8) = at_binding_pattern food, %food.param_patt.loc32_52.1 [symbolic = %food.patt.loc32_52.2 (constants.%food.patt.09a8ec.1)]
// CHECK:STDOUT: %food.patt.loc32_52.1: @HandleAnimal.%pattern_type.loc32_52 (%pattern_type.ea8) = wrapper_binding_pattern food, %food.param_patt.loc32_52.1 [symbolic = %food.patt.loc32_52.2 (constants.%food.patt.c70e36.1)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc32_20: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self.frozen.loc32_18: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -412,10 +412,10 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc31_48.1: type = facet_access_type %T.loc31_24.1 [symbolic = %T.as_type.loc31_48.1 (constants.%T.as_type.b84)]
// CHECK:STDOUT: %pattern_type.loc31_46: type = pattern_type %T.as_type.loc31_48.1 [symbolic = %pattern_type.loc31_46 (constants.%pattern_type.371)]
// CHECK:STDOUT: %e.param_patt.loc31_46.2: @Feed.%pattern_type.loc31_46 (%pattern_type.371) = value_param_pattern [symbolic = %e.param_patt.loc31_46.2 (constants.%e.param_patt.32e)]
// CHECK:STDOUT: %e.patt.loc31_46.2: @Feed.%pattern_type.loc31_46 (%pattern_type.371) = at_binding_pattern e, %e.param_patt.loc31_46.2 [symbolic = %e.patt.loc31_46.2 (constants.%e.patt.af1)]
// CHECK:STDOUT: %e.patt.loc31_46.2: @Feed.%pattern_type.loc31_46 (%pattern_type.371) = wrapper_binding_pattern e, %e.param_patt.loc31_46.2 [symbolic = %e.patt.loc31_46.2 (constants.%e.patt.661)]
// CHECK:STDOUT: %pattern_type.loc31_62: type = pattern_type %Food.as_type.loc31_35.1 [symbolic = %pattern_type.loc31_62 (constants.%pattern_type.e40)]
// CHECK:STDOUT: %food.param_patt.loc31_62.2: @Feed.%pattern_type.loc31_62 (%pattern_type.e40) = value_param_pattern [symbolic = %food.param_patt.loc31_62.2 (constants.%food.param_patt.1bd)]
// CHECK:STDOUT: %food.patt.loc31_62.2: @Feed.%pattern_type.loc31_62 (%pattern_type.e40) = at_binding_pattern food, %food.param_patt.loc31_62.2 [symbolic = %food.patt.loc31_62.2 (constants.%food.patt.bcf)]
// CHECK:STDOUT: %food.patt.loc31_62.2: @Feed.%pattern_type.loc31_62 (%pattern_type.e40) = wrapper_binding_pattern food, %food.param_patt.loc31_62.2 [symbolic = %food.patt.loc31_62.2 (constants.%food.patt.105)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc31_46: <witness> = require_complete_type %T.as_type.loc31_48.1 [symbolic = %require_complete.loc31_46 (constants.%require_complete.363)]
@@ -435,11 +435,11 @@ fn F() {
// CHECK:STDOUT: %A.as_type.loc32_45.1: type = facet_access_type %A.loc32_18.1 [symbolic = %A.as_type.loc32_45.1 (constants.%A.as_type)]
// CHECK:STDOUT: %pattern_type.loc32_43: type = pattern_type %A.as_type.loc32_45.1 [symbolic = %pattern_type.loc32_43 (constants.%pattern_type.e90c)]
// CHECK:STDOUT: %a.param_patt.loc32_43.2: @HandleAnimal.%pattern_type.loc32_43 (%pattern_type.e90c) = value_param_pattern [symbolic = %a.param_patt.loc32_43.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc32_43.2: @HandleAnimal.%pattern_type.loc32_43 (%pattern_type.e90c) = at_binding_pattern a, %a.param_patt.loc32_43.2 [symbolic = %a.patt.loc32_43.2 (constants.%a.patt.3e6)]
// CHECK:STDOUT: %a.patt.loc32_43.2: @HandleAnimal.%pattern_type.loc32_43 (%pattern_type.e90c) = wrapper_binding_pattern a, %a.param_patt.loc32_43.2 [symbolic = %a.patt.loc32_43.2 (constants.%a.patt.feb)]
// CHECK:STDOUT: %Food.as_type.loc32_54.1: type = facet_access_type %Food.loc32_32.1 [symbolic = %Food.as_type.loc32_54.1 (constants.%Food.as_type.24e)]
// CHECK:STDOUT: %pattern_type.loc32_52: type = pattern_type %Food.as_type.loc32_54.1 [symbolic = %pattern_type.loc32_52 (constants.%pattern_type.ea8)]
// CHECK:STDOUT: %food.param_patt.loc32_52.2: @HandleAnimal.%pattern_type.loc32_52 (%pattern_type.ea8) = value_param_pattern [symbolic = %food.param_patt.loc32_52.2 (constants.%food.param_patt.38d)]
// CHECK:STDOUT: %food.patt.loc32_52.2: @HandleAnimal.%pattern_type.loc32_52 (%pattern_type.ea8) = at_binding_pattern food, %food.param_patt.loc32_52.2 [symbolic = %food.patt.loc32_52.2 (constants.%food.patt.09a8ec.1)]
// CHECK:STDOUT: %food.patt.loc32_52.2: @HandleAnimal.%pattern_type.loc32_52 (%pattern_type.ea8) = wrapper_binding_pattern food, %food.param_patt.loc32_52.2 [symbolic = %food.patt.loc32_52.2 (constants.%food.patt.c70e36.1)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc32_43: <witness> = require_complete_type %A.as_type.loc32_45.1 [symbolic = %require_complete.loc32_43 (constants.%require_complete.db4)]
@@ -577,10 +577,10 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc31_48.1 => constants.%T.as_type.b84
// CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.371
// CHECK:STDOUT: %e.param_patt.loc31_46.2 => constants.%e.param_patt.32e
// CHECK:STDOUT: %e.patt.loc31_46.2 => constants.%e.patt.af1
// CHECK:STDOUT: %e.patt.loc31_46.2 => constants.%e.patt.661
// CHECK:STDOUT: %pattern_type.loc31_62 => constants.%pattern_type.e40
// CHECK:STDOUT: %food.param_patt.loc31_62.2 => constants.%food.param_patt.1bd
// CHECK:STDOUT: %food.patt.loc31_62.2 => constants.%food.patt.bcf
// CHECK:STDOUT: %food.patt.loc31_62.2 => constants.%food.patt.105
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HandleAnimal(constants.%A, constants.%Food.5f8) {
@@ -591,11 +591,11 @@ fn F() {
// CHECK:STDOUT: %A.as_type.loc32_45.1 => constants.%A.as_type
// CHECK:STDOUT: %pattern_type.loc32_43 => constants.%pattern_type.e90c
// CHECK:STDOUT: %a.param_patt.loc32_43.2 => constants.%a.param_patt.84e
// CHECK:STDOUT: %a.patt.loc32_43.2 => constants.%a.patt.3e6
// CHECK:STDOUT: %a.patt.loc32_43.2 => constants.%a.patt.feb
// CHECK:STDOUT: %Food.as_type.loc32_54.1 => constants.%Food.as_type.24e
// CHECK:STDOUT: %pattern_type.loc32_52 => constants.%pattern_type.ea8
// CHECK:STDOUT: %food.param_patt.loc32_52.2 => constants.%food.param_patt.38d
// CHECK:STDOUT: %food.patt.loc32_52.2 => constants.%food.patt.09a8ec.1
// CHECK:STDOUT: %food.patt.loc32_52.2 => constants.%food.patt.c70e36.1
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.24e) {
@@ -629,10 +629,10 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc31_48.1 => constants.%A.as_type
// CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.e90c
// CHECK:STDOUT: %e.param_patt.loc31_46.2 => constants.%e.param_patt.1c7
// CHECK:STDOUT: %e.patt.loc31_46.2 => constants.%e.patt.637
// CHECK:STDOUT: %e.patt.loc31_46.2 => constants.%e.patt.70b
// CHECK:STDOUT: %pattern_type.loc31_62 => constants.%pattern_type.ea8
// CHECK:STDOUT: %food.param_patt.loc31_62.2 => constants.%food.param_patt.38d
// CHECK:STDOUT: %food.patt.loc31_62.2 => constants.%food.patt.09a8ec.2
// CHECK:STDOUT: %food.patt.loc31_62.2 => constants.%food.patt.c70e36.2
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc31_46 => constants.%require_complete.db4
@@ -647,11 +647,11 @@ fn F() {
// CHECK:STDOUT: %A.as_type.loc32_45.1 => constants.%Goat
// CHECK:STDOUT: %pattern_type.loc32_43 => constants.%pattern_type.283
// CHECK:STDOUT: %a.param_patt.loc32_43.2 => constants.%a.param_patt.8f5
// CHECK:STDOUT: %a.patt.loc32_43.2 => constants.%a.patt.8aa
// CHECK:STDOUT: %a.patt.loc32_43.2 => constants.%a.patt.fd6
// CHECK:STDOUT: %Food.as_type.loc32_54.1 => constants.%Grass
// CHECK:STDOUT: %pattern_type.loc32_52 => constants.%pattern_type.92e
// CHECK:STDOUT: %food.param_patt.loc32_52.2 => constants.%food.param_patt.42e
// CHECK:STDOUT: %food.patt.loc32_52.2 => constants.%food.patt.b2a068.1
// CHECK:STDOUT: %food.patt.loc32_52.2 => constants.%food.patt.f2928e.1
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc32_43 => constants.%complete_type.357
@@ -702,10 +702,10 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc31_48.1 => constants.%Goat
// CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.283
// CHECK:STDOUT: %e.param_patt.loc31_46.2 => constants.%e.param_patt.b2f
// CHECK:STDOUT: %e.patt.loc31_46.2 => constants.%e.patt.ccf
// CHECK:STDOUT: %e.patt.loc31_46.2 => constants.%e.patt.4ad
// CHECK:STDOUT: %pattern_type.loc31_62 => constants.%pattern_type.92e
// CHECK:STDOUT: %food.param_patt.loc31_62.2 => constants.%food.param_patt.42e
// CHECK:STDOUT: %food.patt.loc31_62.2 => constants.%food.patt.b2a068.2
// CHECK:STDOUT: %food.patt.loc31_62.2 => constants.%food.patt.f2928e.2
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete.loc31_46 => constants.%complete_type.357
@@ -38,12 +38,12 @@ fn F() {
// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type [symbolic]
// CHECK:STDOUT: %a.param_patt.84e: %pattern_type.e90 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt.3e60af.1: %pattern_type.e90 = at_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %a.patt.febc60.1: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %FeedAnimal.type: type = fn_type @FeedAnimal [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %FeedAnimal: %FeedAnimal.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type [symbolic]
// CHECK:STDOUT: %a.patt.3e60af.2: %pattern_type.e90 = at_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %a.patt.febc60.2: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt.84e [symbolic]
// CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete]
// CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete]
// CHECK:STDOUT: %FeedAnimal.specific_fn.5bd: <specific function> = specific_function %FeedAnimal, @FeedAnimal(%T) [symbolic]
@@ -59,14 +59,14 @@ fn F() {
// CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.283: type = pattern_type %Goat [concrete]
// CHECK:STDOUT: %a.param_patt.8f5: %pattern_type.283 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.8aa5e9.1: %pattern_type.283 = at_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %a.patt.fd6628.1: %pattern_type.283 = wrapper_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %HandleAnimal.specific_fn: <specific function> = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet) [concrete]
// CHECK:STDOUT: %.4ea: ref %Goat = temporary invalid, %Goat.val [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc25_19.2 [concrete]
// CHECK:STDOUT: %Destroy.Op.1a2547.2: %Destroy.Op.type.1d8f74.2 = struct_value () [concrete]
// CHECK:STDOUT: %Destroy.Op.bound: <bound method> = bound_method %.4ea, %Destroy.Op.1a2547.2 [concrete]
// CHECK:STDOUT: %a.patt.8aa5e9.2: %pattern_type.283 = at_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %a.patt.fd6628.2: %pattern_type.283 = wrapper_binding_pattern a, %a.param_patt.8f5 [concrete]
// CHECK:STDOUT: %FeedAnimal.specific_fn.99a: <specific function> = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -93,7 +93,7 @@ fn F() {
// CHECK:STDOUT: %FeedAnimal.decl: %FeedAnimal.type = fn_decl @FeedAnimal [concrete = constants.%FeedAnimal] {
// CHECK:STDOUT: %T.patt.loc17_16.1: %pattern_type.333 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc17_16.2 (constants.%T.patt)]
// CHECK:STDOUT: %a.param_patt.loc17_34.1: @FeedAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc17_34.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc17_34.1: @FeedAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc17_34.1 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.3e60af.1)]
// CHECK:STDOUT: %a.patt.loc17_34.1: @FeedAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc17_34.1 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.febc60.1)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc17_18: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -111,7 +111,7 @@ fn F() {
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %T.patt.loc19_18.1: %pattern_type.333 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_18.2 (constants.%T.patt)]
// CHECK:STDOUT: %a.param_patt.loc19_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc19_29.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc19_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc19_29.1 [symbolic = %a.patt.loc19_29.2 (constants.%a.patt.3e60af.2)]
// CHECK:STDOUT: %a.patt.loc19_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc19_29.1 [symbolic = %a.patt.loc19_29.2 (constants.%a.patt.febc60.2)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc19_20: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -169,7 +169,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc17_36.1: type = facet_access_type %T.loc17_16.1 [symbolic = %T.as_type.loc17_36.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_36.1 [symbolic = %pattern_type (constants.%pattern_type.e90)]
// CHECK:STDOUT: %a.param_patt.loc17_34.2: @FeedAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc17_34.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc17_34.2: @FeedAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc17_34.2 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.3e60af.1)]
// CHECK:STDOUT: %a.patt.loc17_34.2: @FeedAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc17_34.2 [symbolic = %a.patt.loc17_34.2 (constants.%a.patt.febc60.1)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc17_36.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -186,7 +186,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc19_31.1: type = facet_access_type %T.loc19_18.1 [symbolic = %T.as_type.loc19_31.1 (constants.%T.as_type)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc19_31.1 [symbolic = %pattern_type (constants.%pattern_type.e90)]
// CHECK:STDOUT: %a.param_patt.loc19_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc19_29.2 (constants.%a.param_patt.84e)]
// CHECK:STDOUT: %a.patt.loc19_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc19_29.2 [symbolic = %a.patt.loc19_29.2 (constants.%a.patt.3e60af.2)]
// CHECK:STDOUT: %a.patt.loc19_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc19_29.2 [symbolic = %a.patt.loc19_29.2 (constants.%a.patt.febc60.2)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc19_31.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -241,7 +241,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc17_36.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90
// CHECK:STDOUT: %a.param_patt.loc17_34.2 => constants.%a.param_patt.84e
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.3e60af.1
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.febc60.1
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%require_complete
@@ -253,7 +253,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc19_31.1 => constants.%T.as_type
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e90
// CHECK:STDOUT: %a.param_patt.loc19_29.2 => constants.%a.param_patt.84e
// CHECK:STDOUT: %a.patt.loc19_29.2 => constants.%a.patt.3e60af.2
// CHECK:STDOUT: %a.patt.loc19_29.2 => constants.%a.patt.febc60.2
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @Animal.WithSelf(constants.%Animal.facet) {
@@ -266,7 +266,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc19_31.1 => constants.%Goat
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.283
// CHECK:STDOUT: %a.param_patt.loc19_29.2 => constants.%a.param_patt.8f5
// CHECK:STDOUT: %a.patt.loc19_29.2 => constants.%a.patt.8aa5e9.1
// CHECK:STDOUT: %a.patt.loc19_29.2 => constants.%a.patt.fd6628.1
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
@@ -279,7 +279,7 @@ fn F() {
// CHECK:STDOUT: %T.as_type.loc17_36.1 => constants.%Goat
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.283
// CHECK:STDOUT: %a.param_patt.loc17_34.2 => constants.%a.param_patt.8f5
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.8aa5e9.2
// CHECK:STDOUT: %a.patt.loc17_34.2 => constants.%a.patt.fd6628.2
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete => constants.%complete_type
+2 -2
View File
@@ -34,7 +34,7 @@ fn G() { F(Animal); }
// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Animal.type, (%Eats.impl_witness) [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Eats.type [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: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
@@ -67,7 +67,7 @@ fn G() { F(Animal); }
// CHECK:STDOUT: %.loc20: <witness> = impl_self_witness @Animal.type.as.Eats.impl.%Animal.ref, @Eats [concrete = constants.%.2cd]
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// 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: %Eats.type = value_param call_param0
// CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type]
@@ -41,7 +41,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.422: type = facet_access_type %T.672 [symbolic]
// CHECK:STDOUT: %pattern_type.aed: type = pattern_type %T.as_type.422 [symbolic]
// CHECK:STDOUT: %e.param_patt: %pattern_type.aed = value_param_pattern [symbolic]
// CHECK:STDOUT: %e.patt: %pattern_type.aed = at_binding_pattern e, %e.param_patt [symbolic]
// CHECK:STDOUT: %e.patt: %pattern_type.aed = wrapper_binding_pattern e, %e.param_patt [symbolic]
// CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete]
// CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.c4d: <witness> = require_complete_type %T.as_type.422 [symbolic]
@@ -51,7 +51,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.01d: type = facet_access_type %T.443 [symbolic]
// CHECK:STDOUT: %pattern_type.e90: type = pattern_type %T.as_type.01d [symbolic]
// CHECK:STDOUT: %a.param_patt: %pattern_type.e90 = value_param_pattern [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = at_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %a.patt: %pattern_type.e90 = wrapper_binding_pattern a, %a.param_patt [symbolic]
// CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete]
// CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete]
// CHECK:STDOUT: %require_complete.db4: <witness> = require_complete_type %T.as_type.01d [symbolic]
@@ -78,7 +78,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] {
// CHECK:STDOUT: %T.patt.loc18_10.1: %pattern_type.880 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc18_10.2 (constants.%T.patt.9e8)]
// CHECK:STDOUT: %e.param_patt.loc18_26.1: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %e.param_patt.loc18_26.2 (constants.%e.param_patt)]
// CHECK:STDOUT: %e.patt.loc18_26.1: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt.loc18_26.1 [symbolic = %e.patt.loc18_26.2 (constants.%e.patt)]
// CHECK:STDOUT: %e.patt.loc18_26.1: @Feed.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern e, %e.param_patt.loc18_26.1 [symbolic = %e.patt.loc18_26.2 (constants.%e.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc18_12: type = splice_block %Eats.ref [concrete = constants.%Eats.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -96,7 +96,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] {
// CHECK:STDOUT: %T.patt.loc27_18.1: %pattern_type.333 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc27_18.2 (constants.%T.patt.e44)]
// CHECK:STDOUT: %a.param_patt.loc27_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc27_29.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc27_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc27_29.1 [symbolic = %a.patt.loc27_29.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc27_29.1: @HandleAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc27_29.1 [symbolic = %a.patt.loc27_29.2 (constants.%a.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc27_20: type = splice_block %Animal.ref [concrete = constants.%Animal.type] {
// CHECK:STDOUT: %.Self.frozen: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -141,7 +141,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.loc18_28.1: type = facet_access_type %T.loc18_10.1 [symbolic = %T.as_type.loc18_28.1 (constants.%T.as_type.422)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_28.1 [symbolic = %pattern_type (constants.%pattern_type.aed)]
// CHECK:STDOUT: %e.param_patt.loc18_26.2: @Feed.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %e.param_patt.loc18_26.2 (constants.%e.param_patt)]
// CHECK:STDOUT: %e.patt.loc18_26.2: @Feed.%pattern_type (%pattern_type.aed) = at_binding_pattern e, %e.param_patt.loc18_26.2 [symbolic = %e.patt.loc18_26.2 (constants.%e.patt)]
// CHECK:STDOUT: %e.patt.loc18_26.2: @Feed.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern e, %e.param_patt.loc18_26.2 [symbolic = %e.patt.loc18_26.2 (constants.%e.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc18_28.1 [symbolic = %require_complete (constants.%require_complete.c4d)]
@@ -158,7 +158,7 @@ fn HandleAnimal[T: Animal](a: T) { Feed(a); }
// CHECK:STDOUT: %T.as_type.loc27_31.1: type = facet_access_type %T.loc27_18.1 [symbolic = %T.as_type.loc27_31.1 (constants.%T.as_type.01d)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc27_31.1 [symbolic = %pattern_type (constants.%pattern_type.e90)]
// CHECK:STDOUT: %a.param_patt.loc27_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = value_param_pattern [symbolic = %a.param_patt.loc27_29.2 (constants.%a.param_patt)]
// CHECK:STDOUT: %a.patt.loc27_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = at_binding_pattern a, %a.param_patt.loc27_29.2 [symbolic = %a.patt.loc27_29.2 (constants.%a.patt)]
// CHECK:STDOUT: %a.patt.loc27_29.2: @HandleAnimal.%pattern_type (%pattern_type.e90) = wrapper_binding_pattern a, %a.param_patt.loc27_29.2 [symbolic = %a.patt.loc27_29.2 (constants.%a.patt)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %T.as_type.loc27_31.1 [symbolic = %require_complete (constants.%require_complete.db4)]
@@ -66,7 +66,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %ImplicitAs.impl_witness: <witness> = impl_witness @RuntimeConvertFrom.as.ImplicitAs.impl.%ImplicitAs.impl_witness_table [concrete]
// CHECK:STDOUT: %pattern_type.598: type = pattern_type %RuntimeConvertFrom [concrete]
// CHECK:STDOUT: %self.param_patt.c41: %pattern_type.598 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.65f: %pattern_type.598 = at_binding_pattern self, %self.param_patt.c41 [concrete]
// CHECK:STDOUT: %self.patt.61f: %pattern_type.598 = wrapper_binding_pattern self, %self.param_patt.c41 [concrete]
// CHECK:STDOUT: %.aac: Core.Form = init_form %RuntimeConvertTo [concrete]
// CHECK:STDOUT: %pattern_type.c10: type = pattern_type %RuntimeConvertTo [concrete]
// CHECK:STDOUT: %return.param_patt.183: %pattern_type.c10 = out_param_pattern [concrete]
@@ -84,7 +84,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %A: %tuple.elem0 = symbolic_binding A, 1 [symbolic]
// CHECK:STDOUT: %pattern_type.b2f: type = pattern_type %HoldsType.a83 [symbolic]
// CHECK:STDOUT: %x.param_patt.321: %pattern_type.b2f = value_param_pattern [symbolic]
// CHECK:STDOUT: %x.patt.a80: %pattern_type.b2f = at_binding_pattern x, %x.param_patt.321 [symbolic]
// CHECK:STDOUT: %x.patt.a1d: %pattern_type.b2f = wrapper_binding_pattern x, %x.param_patt.321 [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 %HoldsType.a83 [symbolic]
@@ -92,7 +92,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %HoldsType.9f2: type = class_type @HoldsType, @HoldsType(%tuple.162) [concrete]
// CHECK:STDOUT: %pattern_type.905: type = pattern_type %HoldsType.9f2 [concrete]
// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.905 = value_param_pattern [concrete]
// CHECK:STDOUT: %holds_to.patt: %pattern_type.905 = at_binding_pattern holds_to, %holds_to.param_patt [concrete]
// CHECK:STDOUT: %holds_to.patt: %pattern_type.905 = wrapper_binding_pattern holds_to, %holds_to.param_patt [concrete]
// CHECK:STDOUT: %from.patt: %pattern_type.598 = symbolic_binding_pattern from, 0 [symbolic]
// CHECK:STDOUT: %from: %RuntimeConvertFrom = symbolic_binding from, 0 [symbolic]
// CHECK:STDOUT: %G.type: type = fn_type @G [concrete]
@@ -101,7 +101,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.bound: <bound method> = bound_method %from, %RuntimeConvertFrom.as.ImplicitAs.impl.Convert [symbolic]
// CHECK:STDOUT: %A.patt.797: %pattern_type.c10 = symbolic_binding_pattern A, 1 [symbolic]
// CHECK:STDOUT: %x.param_patt.fbd: %pattern_type.905 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt.32c: %pattern_type.905 = at_binding_pattern x, %x.param_patt.fbd [concrete]
// CHECK:STDOUT: %x.patt.755: %pattern_type.905 = wrapper_binding_pattern x, %x.param_patt.fbd [concrete]
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
// CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete]
// CHECK:STDOUT: %Destroy.Op.type.1d8f74.2: type = fn_type @Destroy.Op.loc40_19.2 [concrete]
@@ -154,7 +154,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %T.patt.loc27_7.1: %pattern_type.f1e = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc27_7.2 (constants.%T.patt)]
// CHECK:STDOUT: %A.patt.loc27_35.1: @F.%pattern_type.loc27_35 (%pattern_type.e66) = symbolic_binding_pattern A, 1 [symbolic = %A.patt.loc27_35.2 (constants.%A.patt.aee)]
// CHECK:STDOUT: %x.param_patt.loc27_50.1: @F.%pattern_type.loc27_50 (%pattern_type.b2f) = value_param_pattern [symbolic = %x.param_patt.loc27_50.2 (constants.%x.param_patt.321)]
// CHECK:STDOUT: %x.patt.loc27_50.1: @F.%pattern_type.loc27_50 (%pattern_type.b2f) = at_binding_pattern x, %x.param_patt.loc27_50.1 [symbolic = %x.patt.loc27_50.2 (constants.%x.patt.a80)]
// CHECK:STDOUT: %x.patt.loc27_50.1: @F.%pattern_type.loc27_50 (%pattern_type.b2f) = wrapper_binding_pattern x, %x.param_patt.loc27_50.1 [symbolic = %x.patt.loc27_50.2 (constants.%x.patt.a1d)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %.loc27_16.1: type = splice_block %.loc27_16.3 [concrete = constants.%tuple.type] {
// CHECK:STDOUT: %.Self.frozen.loc27_7: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.frozen]
@@ -180,7 +180,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %holds_to.param_patt: %pattern_type.905 = value_param_pattern [concrete = constants.%holds_to.param_patt]
// CHECK:STDOUT: %holds_to.patt: %pattern_type.905 = at_binding_pattern holds_to, %holds_to.param_patt [concrete = constants.%holds_to.patt]
// CHECK:STDOUT: %holds_to.patt: %pattern_type.905 = wrapper_binding_pattern holds_to, %holds_to.param_patt [concrete = constants.%holds_to.patt]
// CHECK:STDOUT: %from.patt.loc29_61.1: %pattern_type.598 = symbolic_binding_pattern from, 0 [symbolic = %from.patt.loc29_61.2 (constants.%from.patt)]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %holds_to.param: %HoldsType.9f2 = value_param call_param0
@@ -204,7 +204,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: impl @RuntimeConvertFrom.as.ImplicitAs.impl: %RuntimeConvertFrom.ref as %ImplicitAs.type {
// CHECK:STDOUT: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.decl: %RuntimeConvertFrom.as.ImplicitAs.impl.Convert.type = fn_decl @RuntimeConvertFrom.as.ImplicitAs.impl.Convert [concrete = constants.%RuntimeConvertFrom.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.598 = value_param_pattern [concrete = constants.%self.param_patt.c41]
// CHECK:STDOUT: %self.patt: %pattern_type.598 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.65f]
// CHECK:STDOUT: %self.patt: %pattern_type.598 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.61f]
// CHECK:STDOUT: %return.param_patt: %pattern_type.c10 = out_param_pattern [concrete = constants.%return.param_patt.183]
// CHECK:STDOUT: %return.patt: %pattern_type.c10 = return_slot_pattern %return.param_patt, %RuntimeConvertTo.ref [concrete = constants.%return.patt.b01]
// CHECK:STDOUT: } {
@@ -275,7 +275,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %HoldsType.loc27_63.1: type = class_type @HoldsType, @HoldsType(%T.loc27_7.1) [symbolic = %HoldsType.loc27_63.1 (constants.%HoldsType.a83)]
// CHECK:STDOUT: %pattern_type.loc27_50: type = pattern_type %HoldsType.loc27_63.1 [symbolic = %pattern_type.loc27_50 (constants.%pattern_type.b2f)]
// CHECK:STDOUT: %x.param_patt.loc27_50.2: @F.%pattern_type.loc27_50 (%pattern_type.b2f) = value_param_pattern [symbolic = %x.param_patt.loc27_50.2 (constants.%x.param_patt.321)]
// CHECK:STDOUT: %x.patt.loc27_50.2: @F.%pattern_type.loc27_50 (%pattern_type.b2f) = at_binding_pattern x, %x.param_patt.loc27_50.2 [symbolic = %x.patt.loc27_50.2 (constants.%x.patt.a80)]
// CHECK:STDOUT: %x.patt.loc27_50.2: @F.%pattern_type.loc27_50 (%pattern_type.b2f) = wrapper_binding_pattern x, %x.param_patt.loc27_50.2 [symbolic = %x.patt.loc27_50.2 (constants.%x.patt.a1d)]
// CHECK:STDOUT:
// CHECK:STDOUT: !definition:
// CHECK:STDOUT: %require_complete: <witness> = require_complete_type %HoldsType.loc27_63.1 [symbolic = %require_complete (constants.%require_complete)]
@@ -339,7 +339,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %HoldsType.loc27_63.1 => constants.%HoldsType.a83
// CHECK:STDOUT: %pattern_type.loc27_50 => constants.%pattern_type.b2f
// CHECK:STDOUT: %x.param_patt.loc27_50.2 => constants.%x.param_patt.321
// CHECK:STDOUT: %x.patt.loc27_50.2 => constants.%x.patt.a80
// CHECK:STDOUT: %x.patt.loc27_50.2 => constants.%x.patt.a1d
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: specific @HoldsType(constants.%tuple.162) {
@@ -364,6 +364,6 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, )), generic from: RuntimeConvertFrom
// CHECK:STDOUT: %HoldsType.loc27_63.1 => constants.%HoldsType.9f2
// CHECK:STDOUT: %pattern_type.loc27_50 => constants.%pattern_type.905
// CHECK:STDOUT: %x.param_patt.loc27_50.2 => constants.%x.param_patt.fbd
// CHECK:STDOUT: %x.patt.loc27_50.2 => constants.%x.patt.32c
// CHECK:STDOUT: %x.patt.loc27_50.2 => constants.%x.patt.755
// CHECK:STDOUT: }
// CHECK:STDOUT:
+32 -32
View File
@@ -67,9 +67,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %Int.67af24.1: type = class_type @Int, @Int(%N) [symbolic]
// CHECK:STDOUT: %pattern_type.142cb7.1: type = pattern_type %Int.67af24.1 [symbolic]
// CHECK:STDOUT: %start.param_patt.b2c: %pattern_type.142cb7.1 = value_param_pattern [symbolic]
// CHECK:STDOUT: %start.patt.9ef: %pattern_type.142cb7.1 = at_binding_pattern start, %start.param_patt.b2c [symbolic]
// CHECK:STDOUT: %start.patt.f48: %pattern_type.142cb7.1 = wrapper_binding_pattern start, %start.param_patt.b2c [symbolic]
// CHECK:STDOUT: %end.param_patt.8ab: %pattern_type.142cb7.1 = value_param_pattern [symbolic]
// CHECK:STDOUT: %end.patt.960: %pattern_type.142cb7.1 = at_binding_pattern end, %end.param_patt.8ab [symbolic]
// CHECK:STDOUT: %end.patt.5d9: %pattern_type.142cb7.1 = wrapper_binding_pattern end, %end.param_patt.8ab [symbolic]
// CHECK:STDOUT: %.5c3: Core.Form = init_form %IntRange.2c4 [symbolic]
// CHECK:STDOUT: %pattern_type.1ea: type = pattern_type %IntRange.2c4 [symbolic]
// CHECK:STDOUT: %return.param_patt.262: %pattern_type.1ea = out_param_pattern [symbolic]
@@ -114,14 +114,14 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %.84c: <witness> = impl_self_witness %IntRange.2c4, @Iterate [symbolic]
// CHECK:STDOUT: %Iterate.impl_witness: <witness> = impl_witness @IntRange.as.Iterate.impl.%Iterate.impl_witness_table, @IntRange.as.Iterate.impl(%N) [symbolic]
// CHECK:STDOUT: %self.param_patt.5cc: %pattern_type.1ea = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.13b: %pattern_type.1ea = at_binding_pattern self, %self.param_patt.5cc [symbolic]
// CHECK:STDOUT: %self.patt.b4c: %pattern_type.1ea = wrapper_binding_pattern self, %self.param_patt.5cc [symbolic]
// CHECK:STDOUT: %return.patt.434: %pattern_type.142cb7.1 = return_slot_pattern %return.param_patt.5a2679.1, %Int.67af24.1 [symbolic]
// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.type: type = fn_type @IntRange.as.Iterate.impl.NewCursor, @IntRange.as.Iterate.impl(%N) [symbolic]
// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor: %IntRange.as.Iterate.impl.NewCursor.type = struct_value () [symbolic]
// CHECK:STDOUT: %ptr.41e: type = ptr_type %Int.67af24.1 [symbolic]
// CHECK:STDOUT: %pattern_type.833: type = pattern_type %ptr.41e [symbolic]
// CHECK:STDOUT: %cursor.param_patt.328: %pattern_type.833 = value_param_pattern [symbolic]
// CHECK:STDOUT: %cursor.patt.652: %pattern_type.833 = at_binding_pattern cursor, %cursor.param_patt.328 [symbolic]
// CHECK:STDOUT: %cursor.patt.15e: %pattern_type.833 = wrapper_binding_pattern cursor, %cursor.param_patt.328 [symbolic]
// CHECK:STDOUT: %OptionalStorage.lookup_impl_witness.a32: <witness> = lookup_impl_witness %Int.67af24.1, @OptionalStorage [symbolic]
// CHECK:STDOUT: %.368: require_specific_def_type = require_specific_def @T.as_type.as.OptionalStorage.impl(%facet_value) [symbolic]
// CHECK:STDOUT: %OptionalStorage.facet.b99: %OptionalStorage.type = facet_value %Int.67af24.1, (%OptionalStorage.lookup_impl_witness.a32) [symbolic]
@@ -195,7 +195,7 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %end.param_patt.c55: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %end.patt.367: %pattern_type.6b6 = at_binding_pattern end, %end.param_patt.c55 [concrete]
// CHECK:STDOUT: %end.patt.b81: %pattern_type.6b6 = wrapper_binding_pattern end, %end.param_patt.c55 [concrete]
// CHECK:STDOUT: %IntRange.bbd: type = class_type @IntRange, @IntRange(%int_32) [concrete]
// CHECK:STDOUT: %.9fd: Core.Form = init_form %IntRange.bbd [concrete]
// CHECK:STDOUT: %pattern_type.0f3: type = pattern_type %IntRange.bbd [concrete]
@@ -214,7 +214,7 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %complete_type.ec7: <witness> = complete_type_witness %struct_type.start.end.e93 [concrete]
// CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete]
// CHECK:STDOUT: %start.param_patt.619: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %start.patt.304: %pattern_type.6b6 = at_binding_pattern start, %start.param_patt.619 [concrete]
// CHECK:STDOUT: %start.patt.71a: %pattern_type.6b6 = wrapper_binding_pattern start, %start.param_patt.619 [concrete]
// CHECK:STDOUT: %IntRange.Make.specific_fn: <specific function> = specific_function %IntRange.Make.9ef, @IntRange.Make(%int_32) [concrete]
// CHECK:STDOUT: %ImplicitAs.type.914: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete]
// CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic]
@@ -273,11 +273,11 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %Core.import_ref.ef7: @OrderedWith.WithSelf.%OrderedWith.assoc_type (%OrderedWith.assoc_type.1d2) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%assoc0 (constants.%assoc0.13c)]
// CHECK:STDOUT: %Core.import_ref.e7a: @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less.type (%OrderedWith.WithSelf.Less.type.b87) = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, loaded [symbolic = @OrderedWith.WithSelf.%OrderedWith.WithSelf.Less (constants.%OrderedWith.WithSelf.Less.9e1)]
// CHECK:STDOUT: %Core.import_ref.447 = import_ref Core//prelude/operators/comparison, loc{{\d+_\d+}}, unloaded
// CHECK:STDOUT: %Core.import_ref.c1c: @Int.as.OrderedWith.impl.ab3.%Int.as.OrderedWith.impl.Less.type (%Int.as.OrderedWith.impl.Less.type.89b) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.OrderedWith.impl.ab3.%Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.050)]
// CHECK:STDOUT: %Core.import_ref.c1c8: @Int.as.OrderedWith.impl.ab3.%Int.as.OrderedWith.impl.Less.type (%Int.as.OrderedWith.impl.Less.type.89b) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.OrderedWith.impl.ab3.%Int.as.OrderedWith.impl.Less (constants.%Int.as.OrderedWith.impl.Less.050)]
// CHECK:STDOUT: %Core.import_ref.30c = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded
// CHECK:STDOUT: %Core.import_ref.664 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded
// CHECK:STDOUT: %Core.import_ref.9d4 = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded
// CHECK:STDOUT: %OrderedWith.impl_witness_table.087 = impl_witness_table (%Core.import_ref.c1c, %Core.import_ref.30c, %Core.import_ref.664, %Core.import_ref.9d4), @Int.as.OrderedWith.impl.ab3 [concrete]
// CHECK:STDOUT: %OrderedWith.impl_witness_table.087 = impl_witness_table (%Core.import_ref.c1c8, %Core.import_ref.30c, %Core.import_ref.664, %Core.import_ref.9d4), @Int.as.OrderedWith.impl.ab3 [concrete]
// CHECK:STDOUT: %Core.Inc: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [concrete = constants.%Inc.type]
// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type]
// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.0ff = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic]
@@ -304,7 +304,7 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Range.decl: %Range.type = fn_decl @Range [concrete = constants.%Range] {
// CHECK:STDOUT: %end.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%end.param_patt.c55]
// CHECK:STDOUT: %end.patt: %pattern_type.6b6 = at_binding_pattern end, %end.param_patt [concrete = constants.%end.patt.367]
// CHECK:STDOUT: %end.patt: %pattern_type.6b6 = wrapper_binding_pattern end, %end.param_patt [concrete = constants.%end.patt.b81]
// CHECK:STDOUT: %return.param_patt: %pattern_type.0f3 = out_param_pattern [concrete = constants.%return.param_patt.108]
// CHECK:STDOUT: %return.patt: %pattern_type.0f3 = return_slot_pattern %return.param_patt, %IntRange.loc26 [concrete = constants.%return.patt.7d9]
// CHECK:STDOUT: } {
@@ -342,7 +342,7 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: impl: %Self.ref as %Iterate.ref {
// CHECK:STDOUT: %IntRange.as.Iterate.impl.NewCursor.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor.type (%IntRange.as.Iterate.impl.NewCursor.type) = fn_decl @IntRange.as.Iterate.impl.NewCursor [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.NewCursor (constants.%IntRange.as.Iterate.impl.NewCursor)] {
// CHECK:STDOUT: %self.param_patt.loc10_18.1: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.1ea) = value_param_pattern [symbolic = %self.param_patt.loc10_18.2 (constants.%self.param_patt.5cc)]
// CHECK:STDOUT: %self.patt.loc10_18.1: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.1ea) = at_binding_pattern self, %self.param_patt.loc10_18.1 [symbolic = %self.patt.loc10_18.2 (constants.%self.patt.13b)]
// CHECK:STDOUT: %self.patt.loc10_18.1: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.1ea) = wrapper_binding_pattern self, %self.param_patt.loc10_18.1 [symbolic = %self.patt.loc10_18.2 (constants.%self.patt.b4c)]
// CHECK:STDOUT: %return.param_patt.loc10_37.1: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_37 (%pattern_type.142cb7.1) = out_param_pattern [symbolic = %return.param_patt.loc10_37.2 (constants.%return.param_patt.5a2679.1)]
// CHECK:STDOUT: %return.patt.loc10_24.1: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_37 (%pattern_type.142cb7.1) = return_slot_pattern %return.param_patt.loc10_37.1, %Int.loc10_37.2 [symbolic = %return.patt.loc10_24.2 (constants.%return.patt.434)]
// CHECK:STDOUT: } {
@@ -362,9 +362,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: }
// CHECK:STDOUT: %IntRange.as.Iterate.impl.Next.decl: @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next.type (%IntRange.as.Iterate.impl.Next.type) = fn_decl @IntRange.as.Iterate.impl.Next [symbolic = @IntRange.as.Iterate.impl.%IntRange.as.Iterate.impl.Next (constants.%IntRange.as.Iterate.impl.Next)] {
// CHECK:STDOUT: %self.param_patt.loc11_13.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.1ea) = value_param_pattern [symbolic = %self.param_patt.loc11_13.2 (constants.%self.param_patt.5cc)]
// CHECK:STDOUT: %self.patt.loc11_13.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.1ea) = at_binding_pattern self, %self.param_patt.loc11_13.1 [symbolic = %self.patt.loc11_13.2 (constants.%self.patt.13b)]
// CHECK:STDOUT: %self.patt.loc11_13.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.1ea) = wrapper_binding_pattern self, %self.param_patt.loc11_13.1 [symbolic = %self.patt.loc11_13.2 (constants.%self.patt.b4c)]
// CHECK:STDOUT: %cursor.param_patt.loc11_25.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.833) = value_param_pattern [symbolic = %cursor.param_patt.loc11_25.2 (constants.%cursor.param_patt.328)]
// CHECK:STDOUT: %cursor.patt.loc11_25.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.833) = at_binding_pattern cursor, %cursor.param_patt.loc11_25.1 [symbolic = %cursor.patt.loc11_25.2 (constants.%cursor.patt.652)]
// CHECK:STDOUT: %cursor.patt.loc11_25.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.833) = wrapper_binding_pattern cursor, %cursor.param_patt.loc11_25.1 [symbolic = %cursor.patt.loc11_25.2 (constants.%cursor.patt.15e)]
// CHECK:STDOUT: %return.param_patt.loc11_69.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_69 (%pattern_type.b38) = out_param_pattern [symbolic = %return.param_patt.loc11_69.2 (constants.%return.param_patt.4bb)]
// CHECK:STDOUT: %return.patt.loc11_41.1: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_69 (%pattern_type.b38) = return_slot_pattern %return.param_patt.loc11_69.1, %Optional.loc11_69.2 [symbolic = %return.patt.loc11_41.2 (constants.%return.patt.427)]
// CHECK:STDOUT: } {
@@ -430,9 +430,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: class {
// CHECK:STDOUT: %IntRange.Make.decl: @IntRange.%IntRange.Make.type (%IntRange.Make.type.522) = fn_decl @IntRange.Make [symbolic = @IntRange.%IntRange.Make (constants.%IntRange.Make.8ef)] {
// CHECK:STDOUT: %start.param_patt.loc5_16.1: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = value_param_pattern [symbolic = %start.param_patt.loc5_16.2 (constants.%start.param_patt.b2c)]
// CHECK:STDOUT: %start.patt.loc5_16.1: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = at_binding_pattern start, %start.param_patt.loc5_16.1 [symbolic = %start.patt.loc5_16.2 (constants.%start.patt.9ef)]
// CHECK:STDOUT: %start.patt.loc5_16.1: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = wrapper_binding_pattern start, %start.param_patt.loc5_16.1 [symbolic = %start.patt.loc5_16.2 (constants.%start.patt.f48)]
// CHECK:STDOUT: %end.param_patt.loc5_34.1: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = value_param_pattern [symbolic = %end.param_patt.loc5_34.2 (constants.%end.param_patt.8ab)]
// CHECK:STDOUT: %end.patt.loc5_34.1: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = at_binding_pattern end, %end.param_patt.loc5_34.1 [symbolic = %end.patt.loc5_34.2 (constants.%end.patt.960)]
// CHECK:STDOUT: %end.patt.loc5_34.1: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = wrapper_binding_pattern end, %end.param_patt.loc5_34.1 [symbolic = %end.patt.loc5_34.2 (constants.%end.patt.5d9)]
// CHECK:STDOUT: %return.param_patt.loc5_52.1: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.1ea) = out_param_pattern [symbolic = %return.param_patt.loc5_52.2 (constants.%return.param_patt.262)]
// CHECK:STDOUT: %return.patt.loc5_49.1: @IntRange.Make.%pattern_type.loc5_52 (%pattern_type.1ea) = return_slot_pattern %return.param_patt.loc5_52.1, %Self.ref [symbolic = %return.patt.loc5_49.2 (constants.%return.patt.dbf)]
// CHECK:STDOUT: } {
@@ -518,9 +518,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %Int.loc5_28.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc5_28.1 (constants.%Int.67af24.1)]
// CHECK:STDOUT: %pattern_type.loc5_16: type = pattern_type %Int.loc5_28.1 [symbolic = %pattern_type.loc5_16 (constants.%pattern_type.142cb7.1)]
// CHECK:STDOUT: %start.param_patt.loc5_16.2: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = value_param_pattern [symbolic = %start.param_patt.loc5_16.2 (constants.%start.param_patt.b2c)]
// CHECK:STDOUT: %start.patt.loc5_16.2: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = at_binding_pattern start, %start.param_patt.loc5_16.2 [symbolic = %start.patt.loc5_16.2 (constants.%start.patt.9ef)]
// CHECK:STDOUT: %start.patt.loc5_16.2: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = wrapper_binding_pattern start, %start.param_patt.loc5_16.2 [symbolic = %start.patt.loc5_16.2 (constants.%start.patt.f48)]
// CHECK:STDOUT: %end.param_patt.loc5_34.2: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = value_param_pattern [symbolic = %end.param_patt.loc5_34.2 (constants.%end.param_patt.8ab)]
// CHECK:STDOUT: %end.patt.loc5_34.2: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = at_binding_pattern end, %end.param_patt.loc5_34.2 [symbolic = %end.patt.loc5_34.2 (constants.%end.patt.960)]
// CHECK:STDOUT: %end.patt.loc5_34.2: @IntRange.Make.%pattern_type.loc5_16 (%pattern_type.142cb7.1) = wrapper_binding_pattern end, %end.param_patt.loc5_34.2 [symbolic = %end.patt.loc5_34.2 (constants.%end.patt.5d9)]
// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)]
// CHECK:STDOUT: %.loc5_52.1: Core.Form = init_form %IntRange [symbolic = %.loc5_52.1 (constants.%.5c3)]
// CHECK:STDOUT: %pattern_type.loc5_52: type = pattern_type %IntRange [symbolic = %pattern_type.loc5_52 (constants.%pattern_type.1ea)]
@@ -577,7 +577,7 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)]
// CHECK:STDOUT: %pattern_type.loc10_18: type = pattern_type %IntRange [symbolic = %pattern_type.loc10_18 (constants.%pattern_type.1ea)]
// CHECK:STDOUT: %self.param_patt.loc10_18.2: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.1ea) = value_param_pattern [symbolic = %self.param_patt.loc10_18.2 (constants.%self.param_patt.5cc)]
// CHECK:STDOUT: %self.patt.loc10_18.2: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.1ea) = at_binding_pattern self, %self.param_patt.loc10_18.2 [symbolic = %self.patt.loc10_18.2 (constants.%self.patt.13b)]
// CHECK:STDOUT: %self.patt.loc10_18.2: @IntRange.as.Iterate.impl.NewCursor.%pattern_type.loc10_18 (%pattern_type.1ea) = wrapper_binding_pattern self, %self.param_patt.loc10_18.2 [symbolic = %self.patt.loc10_18.2 (constants.%self.patt.b4c)]
// CHECK:STDOUT: %Int.loc10_37.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc10_37.1 (constants.%Int.67af24.1)]
// CHECK:STDOUT: %.loc10_37.1: Core.Form = init_form %Int.loc10_37.1 [symbolic = %.loc10_37.1 (constants.%.df5d8d.1)]
// CHECK:STDOUT: %pattern_type.loc10_37: type = pattern_type %Int.loc10_37.1 [symbolic = %pattern_type.loc10_37 (constants.%pattern_type.142cb7.1)]
@@ -620,12 +620,12 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)]
// CHECK:STDOUT: %pattern_type.loc11_13: type = pattern_type %IntRange [symbolic = %pattern_type.loc11_13 (constants.%pattern_type.1ea)]
// CHECK:STDOUT: %self.param_patt.loc11_13.2: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.1ea) = value_param_pattern [symbolic = %self.param_patt.loc11_13.2 (constants.%self.param_patt.5cc)]
// CHECK:STDOUT: %self.patt.loc11_13.2: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.1ea) = at_binding_pattern self, %self.param_patt.loc11_13.2 [symbolic = %self.patt.loc11_13.2 (constants.%self.patt.13b)]
// CHECK:STDOUT: %self.patt.loc11_13.2: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_13 (%pattern_type.1ea) = wrapper_binding_pattern self, %self.param_patt.loc11_13.2 [symbolic = %self.patt.loc11_13.2 (constants.%self.patt.b4c)]
// CHECK:STDOUT: %Int.loc11_37.1: type = class_type @Int, @Int(%N) [symbolic = %Int.loc11_37.1 (constants.%Int.67af24.1)]
// CHECK:STDOUT: %ptr.loc11_38.1: type = ptr_type %Int.loc11_37.1 [symbolic = %ptr.loc11_38.1 (constants.%ptr.41e)]
// CHECK:STDOUT: %pattern_type.loc11_25: type = pattern_type %ptr.loc11_38.1 [symbolic = %pattern_type.loc11_25 (constants.%pattern_type.833)]
// CHECK:STDOUT: %cursor.param_patt.loc11_25.2: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.833) = value_param_pattern [symbolic = %cursor.param_patt.loc11_25.2 (constants.%cursor.param_patt.328)]
// CHECK:STDOUT: %cursor.patt.loc11_25.2: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.833) = at_binding_pattern cursor, %cursor.param_patt.loc11_25.2 [symbolic = %cursor.patt.loc11_25.2 (constants.%cursor.patt.652)]
// CHECK:STDOUT: %cursor.patt.loc11_25.2: @IntRange.as.Iterate.impl.Next.%pattern_type.loc11_25 (%pattern_type.833) = wrapper_binding_pattern cursor, %cursor.param_patt.loc11_25.2 [symbolic = %cursor.patt.loc11_25.2 (constants.%cursor.patt.15e)]
// CHECK:STDOUT: %Destroy.lookup_impl_witness: <witness> = lookup_impl_witness %Int.loc11_37.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.173)]
// CHECK:STDOUT: %Copy.lookup_impl_witness: <witness> = lookup_impl_witness %Int.loc11_37.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.df6)]
// CHECK:STDOUT: %facet_value: %facet_type.f48 = facet_value %Int.loc11_37.1, (%Destroy.lookup_impl_witness, %Copy.lookup_impl_witness) [symbolic = %facet_value (constants.%facet_value)]
@@ -845,9 +845,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %Int.loc5_28.1 => constants.%Int.67af24.1
// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.142cb7.1
// CHECK:STDOUT: %start.param_patt.loc5_16.2 => constants.%start.param_patt.b2c
// CHECK:STDOUT: %start.patt.loc5_16.2 => constants.%start.patt.9ef
// CHECK:STDOUT: %start.patt.loc5_16.2 => constants.%start.patt.f48
// CHECK:STDOUT: %end.param_patt.loc5_34.2 => constants.%end.param_patt.8ab
// CHECK:STDOUT: %end.patt.loc5_34.2 => constants.%end.patt.960
// CHECK:STDOUT: %end.patt.loc5_34.2 => constants.%end.patt.5d9
// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4
// CHECK:STDOUT: %.loc5_52.1 => constants.%.5c3
// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.1ea
@@ -880,7 +880,7 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4
// CHECK:STDOUT: %pattern_type.loc10_18 => constants.%pattern_type.1ea
// CHECK:STDOUT: %self.param_patt.loc10_18.2 => constants.%self.param_patt.5cc
// CHECK:STDOUT: %self.patt.loc10_18.2 => constants.%self.patt.13b
// CHECK:STDOUT: %self.patt.loc10_18.2 => constants.%self.patt.b4c
// CHECK:STDOUT: %Int.loc10_37.1 => constants.%Int.67af24.1
// CHECK:STDOUT: %.loc10_37.1 => constants.%.df5d8d.1
// CHECK:STDOUT: %pattern_type.loc10_37 => constants.%pattern_type.142cb7.1
@@ -893,12 +893,12 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4
// CHECK:STDOUT: %pattern_type.loc11_13 => constants.%pattern_type.1ea
// CHECK:STDOUT: %self.param_patt.loc11_13.2 => constants.%self.param_patt.5cc
// CHECK:STDOUT: %self.patt.loc11_13.2 => constants.%self.patt.13b
// CHECK:STDOUT: %self.patt.loc11_13.2 => constants.%self.patt.b4c
// CHECK:STDOUT: %Int.loc11_37.1 => constants.%Int.67af24.1
// CHECK:STDOUT: %ptr.loc11_38.1 => constants.%ptr.41e
// CHECK:STDOUT: %pattern_type.loc11_25 => constants.%pattern_type.833
// CHECK:STDOUT: %cursor.param_patt.loc11_25.2 => constants.%cursor.param_patt.328
// CHECK:STDOUT: %cursor.patt.loc11_25.2 => constants.%cursor.patt.652
// CHECK:STDOUT: %cursor.patt.loc11_25.2 => constants.%cursor.patt.15e
// CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.lookup_impl_witness.173
// CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.df6
// CHECK:STDOUT: %facet_value => constants.%facet_value
@@ -935,9 +935,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %Int.loc5_28.1 => constants.%i32
// CHECK:STDOUT: %pattern_type.loc5_16 => constants.%pattern_type.6b6
// CHECK:STDOUT: %start.param_patt.loc5_16.2 => constants.%start.param_patt.619
// CHECK:STDOUT: %start.patt.loc5_16.2 => constants.%start.patt.304
// CHECK:STDOUT: %start.patt.loc5_16.2 => constants.%start.patt.71a
// CHECK:STDOUT: %end.param_patt.loc5_34.2 => constants.%end.param_patt.c55
// CHECK:STDOUT: %end.patt.loc5_34.2 => constants.%end.patt.367
// CHECK:STDOUT: %end.patt.loc5_34.2 => constants.%end.patt.b81
// CHECK:STDOUT: %IntRange => constants.%IntRange.bbd
// CHECK:STDOUT: %.loc5_52.1 => constants.%.9fd
// CHECK:STDOUT: %pattern_type.loc5_52 => constants.%pattern_type.0f3
@@ -988,9 +988,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %return.patt.ca9: %pattern_type.1ea = return_slot_pattern %return.param_patt.262, invalid [symbolic]
// CHECK:STDOUT: %.5c3: Core.Form = init_form %IntRange.2c4 [symbolic]
// CHECK:STDOUT: %end.param_patt.8ab: %pattern_type.142cb7.1 = value_param_pattern [symbolic]
// CHECK:STDOUT: %end.patt.960: %pattern_type.142cb7.1 = at_binding_pattern end, %end.param_patt.8ab [symbolic]
// CHECK:STDOUT: %end.patt.5d9: %pattern_type.142cb7.1 = wrapper_binding_pattern end, %end.param_patt.8ab [symbolic]
// CHECK:STDOUT: %start.param_patt: %pattern_type.142cb7.1 = value_param_pattern [symbolic]
// CHECK:STDOUT: %start.patt.9ef: %pattern_type.142cb7.1 = at_binding_pattern start, %start.param_patt [symbolic]
// CHECK:STDOUT: %start.patt.f48: %pattern_type.142cb7.1 = wrapper_binding_pattern start, %start.param_patt [symbolic]
// CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete]
// CHECK:STDOUT: %Copy.lookup_impl_witness.df6: <witness> = lookup_impl_witness %Int.67af24.1, @Copy [symbolic]
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Int.67af24.1, (%Copy.lookup_impl_witness.df6) [symbolic]
@@ -1157,9 +1157,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic = %Int (constants.%Int.67af24.1)]
// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Int [symbolic = %pattern_type.1 (constants.%pattern_type.142cb7.1)]
// CHECK:STDOUT: %start.param_patt: @IntRange.Make.%pattern_type.1 (%pattern_type.142cb7.1) = value_param_pattern [symbolic = %start.param_patt (constants.%start.param_patt)]
// CHECK:STDOUT: %start.patt: @IntRange.Make.%pattern_type.1 (%pattern_type.142cb7.1) = at_binding_pattern start, %start.param_patt [symbolic = %start.patt (constants.%start.patt.9ef)]
// CHECK:STDOUT: %start.patt: @IntRange.Make.%pattern_type.1 (%pattern_type.142cb7.1) = wrapper_binding_pattern start, %start.param_patt [symbolic = %start.patt (constants.%start.patt.f48)]
// CHECK:STDOUT: %end.param_patt: @IntRange.Make.%pattern_type.1 (%pattern_type.142cb7.1) = value_param_pattern [symbolic = %end.param_patt (constants.%end.param_patt.8ab)]
// CHECK:STDOUT: %end.patt: @IntRange.Make.%pattern_type.1 (%pattern_type.142cb7.1) = at_binding_pattern end, %end.param_patt [symbolic = %end.patt (constants.%end.patt.960)]
// CHECK:STDOUT: %end.patt: @IntRange.Make.%pattern_type.1 (%pattern_type.142cb7.1) = wrapper_binding_pattern end, %end.param_patt [symbolic = %end.patt (constants.%end.patt.5d9)]
// CHECK:STDOUT: %IntRange: type = class_type @IntRange, @IntRange(%N) [symbolic = %IntRange (constants.%IntRange.2c4)]
// CHECK:STDOUT: %.1: Core.Form = init_form %IntRange [symbolic = %.1 (constants.%.5c3)]
// CHECK:STDOUT: %pattern_type.2: type = pattern_type %IntRange [symbolic = %pattern_type.2 (constants.%pattern_type.1ea)]
@@ -1228,9 +1228,9 @@ fn Read(generic y: Core.IntLiteral) {
// CHECK:STDOUT: %Int => constants.%Int.67af24.1
// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.142cb7.1
// CHECK:STDOUT: %start.param_patt => constants.%start.param_patt
// CHECK:STDOUT: %start.patt => constants.%start.patt.9ef
// CHECK:STDOUT: %start.patt => constants.%start.patt.f48
// CHECK:STDOUT: %end.param_patt => constants.%end.param_patt.8ab
// CHECK:STDOUT: %end.patt => constants.%end.patt.960
// CHECK:STDOUT: %end.patt => constants.%end.patt.5d9
// CHECK:STDOUT: %IntRange => constants.%IntRange.2c4
// CHECK:STDOUT: %.1 => constants.%.5c3
// CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.1ea
+11 -11
View File
@@ -64,7 +64,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %complete_type.972: <witness> = complete_type_witness Core.IntLiteral [concrete]
// CHECK:STDOUT: %pattern_type.129: type = pattern_type %MyIntLiteral [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.129 = value_param_pattern [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = at_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = wrapper_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %Int.type: type = fn_type @Int [concrete]
// CHECK:STDOUT: %Int: %Int.type = struct_value () [concrete]
// CHECK:STDOUT: %MyInt32: type = class_type @MyInt32 [concrete]
@@ -72,7 +72,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %int_32.80c: %MyIntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32.80c [concrete]
// CHECK:STDOUT: %a.param_patt.c64: %pattern_type.129 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.3fb: %pattern_type.129 = at_binding_pattern a, %a.param_patt.c64 [concrete]
// CHECK:STDOUT: %a.patt.b04: %pattern_type.129 = wrapper_binding_pattern a, %a.param_patt.c64 [concrete]
// CHECK:STDOUT: %.6a2: Core.Form = init_form %MyInt32 [concrete]
// CHECK:STDOUT: %pattern_type.af4: type = pattern_type %MyInt32 [concrete]
// CHECK:STDOUT: %return.param_patt.cca: %pattern_type.af4 = out_param_pattern [concrete]
@@ -81,9 +81,9 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %MyInt32.Make: %MyInt32.Make.type = struct_value () [concrete]
// CHECK:STDOUT: %complete_type.113: <witness> = complete_type_witness %i32.builtin [concrete]
// CHECK:STDOUT: %a.param_patt.c63: %pattern_type.af4 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.603: %pattern_type.af4 = at_binding_pattern a, %a.param_patt.c63 [concrete]
// CHECK:STDOUT: %a.patt.671: %pattern_type.af4 = wrapper_binding_pattern a, %a.param_patt.c63 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.af4 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.af4 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.af4 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %MyAdd.type: type = fn_type @MyAdd [concrete]
// CHECK:STDOUT: %MyAdd: %MyAdd.type = struct_value () [concrete]
// CHECK:STDOUT: %v.patt: %pattern_type.af4 = ref_binding_pattern v [concrete]
@@ -124,7 +124,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {}
// CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] {
// CHECK:STDOUT: %N.param_patt: %pattern_type.129 = value_param_pattern [concrete = constants.%N.param_patt]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = at_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = wrapper_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete = constants.%return.param_patt.70e]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc11_28.1 [concrete = constants.%return.patt.3ae]
// CHECK:STDOUT: } {
@@ -139,7 +139,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %MyInt32.decl: type = class_decl @MyInt32 [concrete = constants.%MyInt32] {} {}
// CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.129 = value_param_pattern [concrete = constants.%a.param_patt.c64]
// CHECK:STDOUT: %a.patt: %pattern_type.129 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.3fb]
// CHECK:STDOUT: %a.patt: %pattern_type.129 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.b04]
// CHECK:STDOUT: %return.param_patt: %pattern_type.af4 = out_param_pattern [concrete = constants.%return.param_patt.cca]
// CHECK:STDOUT: %return.patt: %pattern_type.af4 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc19 [concrete = constants.%return.patt.5b1]
// CHECK:STDOUT: } {
@@ -153,9 +153,9 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: }
// CHECK:STDOUT: %MyAdd.decl: %MyAdd.type = fn_decl @MyAdd [concrete = constants.%MyAdd] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.af4 = value_param_pattern [concrete = constants.%a.param_patt.c63]
// CHECK:STDOUT: %a.patt: %pattern_type.af4 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.603]
// CHECK:STDOUT: %a.patt: %pattern_type.af4 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.671]
// CHECK:STDOUT: %b.param_patt: %pattern_type.af4 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.af4 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.af4 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.af4 = out_param_pattern [concrete = constants.%return.param_patt.cca]
// CHECK:STDOUT: %return.patt: %pattern_type.af4 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc21_37 [concrete = constants.%return.patt.5b1]
// CHECK:STDOUT: } {
@@ -202,7 +202,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: adapt_decl %.loc14_32.2 [concrete]
// CHECK:STDOUT: %MyInt32.Make.decl: %MyInt32.Make.type = fn_decl @MyInt32.Make [concrete = constants.%MyInt32.Make] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.129 = value_param_pattern [concrete = constants.%a.param_patt.c64]
// CHECK:STDOUT: %a.patt: %pattern_type.129 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.3fb]
// CHECK:STDOUT: %a.patt: %pattern_type.129 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.b04]
// CHECK:STDOUT: %return.param_patt: %pattern_type.af4 = out_param_pattern [concrete = constants.%return.param_patt.cca]
// CHECK:STDOUT: %return.patt: %pattern_type.af4 = return_slot_pattern %return.param_patt, %MyInt32.ref.loc19 [concrete = constants.%return.patt.5b1]
// CHECK:STDOUT: } {
@@ -268,7 +268,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
// CHECK:STDOUT: %pattern_type.129: type = pattern_type %MyIntLiteral [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.129 = value_param_pattern [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = at_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = wrapper_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %.805: Core.Form = init_form type [concrete]
// CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete]
@@ -285,7 +285,7 @@ fn Int(N: MyIntLiteral) -> type = "int.make_type_signed";
// CHECK:STDOUT: %MyIntLiteral.decl: type = class_decl @MyIntLiteral [concrete = constants.%MyIntLiteral] {} {}
// CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] {
// CHECK:STDOUT: %N.param_patt: %pattern_type.129 = value_param_pattern [concrete = constants.%N.param_patt]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = at_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %N.patt: %pattern_type.129 = wrapper_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc12_28.1 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
+6 -6
View File
@@ -29,9 +29,9 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [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]
@@ -119,9 +119,9 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// 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.loc15_27 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -175,9 +175,9 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
// CHECK:STDOUT: }
// CHECK:STDOUT: %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [concrete = constants.%RuntimeCall] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// 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.loc19_35 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -66,7 +66,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %MakeIntLiteral: %MakeIntLiteral.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %Int.type: type = fn_type @Int [concrete]
// CHECK:STDOUT: %Int: %Int.type = struct_value () [concrete]
// CHECK:STDOUT: %type: type = facet_type <type> [concrete]
@@ -80,9 +80,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.48c: type = facet_access_type %Self.8d5 [symbolic]
// CHECK:STDOUT: %pattern_type.131: type = pattern_type %Self.as_type.48c [symbolic]
// CHECK:STDOUT: %self.param_patt.72e: %pattern_type.131 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.ac5: %pattern_type.131 = at_binding_pattern self, %self.param_patt.72e [symbolic]
// CHECK:STDOUT: %self.patt.f75: %pattern_type.131 = wrapper_binding_pattern self, %self.param_patt.72e [symbolic]
// CHECK:STDOUT: %other.param_patt.89e: %pattern_type.131 = value_param_pattern [symbolic]
// CHECK:STDOUT: %other.patt.f3d: %pattern_type.131 = at_binding_pattern other, %other.param_patt.89e [symbolic]
// CHECK:STDOUT: %other.patt.49b: %pattern_type.131 = wrapper_binding_pattern other, %other.param_patt.89e [symbolic]
// CHECK:STDOUT: %.e80: Core.Form = init_form %Self.as_type.48c [symbolic]
// CHECK:STDOUT: %return.param_patt.8c6: %pattern_type.131 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.169: %pattern_type.131 = return_slot_pattern %return.param_patt.8c6, %Self.as_type.48c [symbolic]
@@ -97,7 +97,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.1ce: type = facet_access_type %Self.f80 [symbolic]
// CHECK:STDOUT: %pattern_type.a01: type = pattern_type %Self.as_type.1ce [symbolic]
// CHECK:STDOUT: %self.param_patt.29a: %pattern_type.a01 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.a95: %pattern_type.a01 = at_binding_pattern self, %self.param_patt.29a [symbolic]
// CHECK:STDOUT: %self.patt.7e4: %pattern_type.a01 = wrapper_binding_pattern self, %self.param_patt.29a [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic]
// CHECK:STDOUT: %return.param_patt.41d: %pattern_type.51d = out_param_pattern [symbolic]
@@ -113,7 +113,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.5b8: type = facet_access_type %Self.bb1 [symbolic]
// CHECK:STDOUT: %pattern_type.701: type = pattern_type %Self.as_type.5b8 [symbolic]
// CHECK:STDOUT: %self.param_patt.c3f: %pattern_type.701 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.f5a: %pattern_type.701 = at_binding_pattern self, %self.param_patt.c3f [symbolic]
// CHECK:STDOUT: %self.patt.2f3: %pattern_type.701 = wrapper_binding_pattern self, %self.param_patt.c3f [symbolic]
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.920: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.bb1) [symbolic]
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.293: %ImplicitAs.WithSelf.Convert.type.920 = struct_value () [symbolic]
// CHECK:STDOUT: %ImplicitAs.assoc_type.fcc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic]
@@ -130,9 +130,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %assoc0.7f8: %AddWith.assoc_type.439 = assoc_entity element0, @AddWith.WithSelf.%AddWith.WithSelf.Op.decl [concrete]
// CHECK:STDOUT: %pattern_type.956: type = pattern_type %i32.builtin [concrete]
// CHECK:STDOUT: %self.param_patt.936: %pattern_type.956 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.703: %pattern_type.956 = at_binding_pattern self, %self.param_patt.936 [concrete]
// CHECK:STDOUT: %self.patt.16e: %pattern_type.956 = wrapper_binding_pattern self, %self.param_patt.936 [concrete]
// CHECK:STDOUT: %other.param_patt.36d: %pattern_type.956 = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.760: %pattern_type.956 = at_binding_pattern other, %other.param_patt.36d [concrete]
// CHECK:STDOUT: %other.patt.8f0: %pattern_type.956 = wrapper_binding_pattern other, %other.param_patt.36d [concrete]
// CHECK:STDOUT: %.9cb: Core.Form = init_form %i32.builtin [concrete]
// CHECK:STDOUT: %return.param_patt.903: %pattern_type.956 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.930: %pattern_type.956 = return_slot_pattern %return.param_patt.903, %i32.builtin [concrete]
@@ -150,7 +150,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %As.assoc_type.7f2: type = assoc_entity_type @As, @As(%i32.builtin) [concrete]
// CHECK:STDOUT: %assoc0.402: %As.assoc_type.7f2 = assoc_entity element0, @As.WithSelf.%As.WithSelf.Convert.decl [concrete]
// CHECK:STDOUT: %self.param_patt.1ca: %pattern_type.dc0 = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.cea: %pattern_type.dc0 = at_binding_pattern self, %self.param_patt.1ca [concrete]
// CHECK:STDOUT: %self.patt.d07: %pattern_type.dc0 = wrapper_binding_pattern self, %self.param_patt.1ca [concrete]
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete]
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete]
// CHECK:STDOUT: %As.facet: %As.type.dfb = facet_value Core.IntLiteral, (%As.impl_witness) [concrete]
@@ -212,7 +212,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %IntLiteral: type = alias_binding IntLiteral, %.loc5_35.2 [concrete = Core.IntLiteral]
// CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] {
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete = constants.%N.param_patt]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete = constants.%return.param_patt.70e]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc6_26.1 [concrete = constants.%return.patt.3ae]
// CHECK:STDOUT: } {
@@ -296,9 +296,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %AddWith.WithSelf.Op.decl: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.e49) = fn_decl @AddWith.WithSelf.Op [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.adc)] {
// CHECK:STDOUT: %self.param_patt.loc9_9.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = value_param_pattern [symbolic = %self.param_patt.loc9_9.2 (constants.%self.param_patt.72e)]
// CHECK:STDOUT: %self.patt.loc9_9.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = at_binding_pattern self, %self.param_patt.loc9_9.1 [symbolic = %self.patt.loc9_9.2 (constants.%self.patt.ac5)]
// CHECK:STDOUT: %self.patt.loc9_9.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = wrapper_binding_pattern self, %self.param_patt.loc9_9.1 [symbolic = %self.patt.loc9_9.2 (constants.%self.patt.f75)]
// CHECK:STDOUT: %other.param_patt.loc9_20.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = value_param_pattern [symbolic = %other.param_patt.loc9_20.2 (constants.%other.param_patt.89e)]
// CHECK:STDOUT: %other.patt.loc9_20.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = at_binding_pattern other, %other.param_patt.loc9_20.1 [symbolic = %other.patt.loc9_20.2 (constants.%other.patt.f3d)]
// CHECK:STDOUT: %other.patt.loc9_20.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = wrapper_binding_pattern other, %other.param_patt.loc9_20.1 [symbolic = %other.patt.loc9_20.2 (constants.%other.patt.49b)]
// CHECK:STDOUT: %return.param_patt.loc9_31.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = out_param_pattern [symbolic = %return.param_patt.loc9_31.2 (constants.%return.param_patt.8c6)]
// CHECK:STDOUT: %return.patt.loc9_28.1: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = return_slot_pattern %return.param_patt.loc9_31.1, %.loc9_31.3 [symbolic = %return.patt.loc9_28.2 (constants.%return.patt.169)]
// CHECK:STDOUT: } {
@@ -352,7 +352,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %As.WithSelf.Convert.decl: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.640) = fn_decl @As.WithSelf.Convert [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.896)] {
// CHECK:STDOUT: %self.param_patt.loc13_14.1: @As.WithSelf.Convert.%pattern_type.loc13_14 (%pattern_type.a01) = value_param_pattern [symbolic = %self.param_patt.loc13_14.2 (constants.%self.param_patt.29a)]
// CHECK:STDOUT: %self.patt.loc13_14.1: @As.WithSelf.Convert.%pattern_type.loc13_14 (%pattern_type.a01) = at_binding_pattern self, %self.param_patt.loc13_14.1 [symbolic = %self.patt.loc13_14.2 (constants.%self.patt.a95)]
// CHECK:STDOUT: %self.patt.loc13_14.1: @As.WithSelf.Convert.%pattern_type.loc13_14 (%pattern_type.a01) = wrapper_binding_pattern self, %self.param_patt.loc13_14.1 [symbolic = %self.patt.loc13_14.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %return.param_patt.loc13_23.1: @As.WithSelf.Convert.%pattern_type.loc13_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc13_23.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc13_20.1: @As.WithSelf.Convert.%pattern_type.loc13_23 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc13_23.1, %T.ref [symbolic = %return.patt.loc13_20.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -397,7 +397,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: !with Self:
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.920) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.293)] {
// CHECK:STDOUT: %self.param_patt.loc17_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_14 (%pattern_type.701) = value_param_pattern [symbolic = %self.param_patt.loc17_14.2 (constants.%self.param_patt.c3f)]
// CHECK:STDOUT: %self.patt.loc17_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_14 (%pattern_type.701) = at_binding_pattern self, %self.param_patt.loc17_14.1 [symbolic = %self.patt.loc17_14.2 (constants.%self.patt.f5a)]
// CHECK:STDOUT: %self.patt.loc17_14.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_14 (%pattern_type.701) = wrapper_binding_pattern self, %self.param_patt.loc17_14.1 [symbolic = %self.patt.loc17_14.2 (constants.%self.patt.2f3)]
// CHECK:STDOUT: %return.param_patt.loc17_23.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc17_23.2 (constants.%return.param_patt.41d)]
// CHECK:STDOUT: %return.patt.loc17_20.1: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_23 (%pattern_type.51d) = return_slot_pattern %return.param_patt.loc17_23.1, %T.ref [symbolic = %return.patt.loc17_20.2 (constants.%return.patt.b39)]
// CHECK:STDOUT: } {
@@ -431,9 +431,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @i32.builtin.as.AddWith.impl: %.loc20_6 as %AddWith.type {
// CHECK:STDOUT: %i32.builtin.as.AddWith.impl.Op.decl: %i32.builtin.as.AddWith.impl.Op.type = fn_decl @i32.builtin.as.AddWith.impl.Op [concrete = constants.%i32.builtin.as.AddWith.impl.Op] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern [concrete = constants.%self.param_patt.936]
// CHECK:STDOUT: %self.patt: %pattern_type.956 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.703]
// CHECK:STDOUT: %self.patt: %pattern_type.956 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.16e]
// CHECK:STDOUT: %other.param_patt: %pattern_type.956 = value_param_pattern [concrete = constants.%other.param_patt.36d]
// CHECK:STDOUT: %other.patt: %pattern_type.956 = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.760]
// CHECK:STDOUT: %other.patt: %pattern_type.956 = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.8f0]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete = constants.%return.param_patt.903]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %Self.ref.loc21_31 [concrete = constants.%return.patt.930]
// CHECK:STDOUT: } {
@@ -460,7 +460,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @Core.IntLiteral.as.As.impl: %IntLiteral.ref as %As.type {
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.decl: %Core.IntLiteral.as.As.impl.Convert.type = fn_decl @Core.IntLiteral.as.As.impl.Convert [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern [concrete = constants.%self.param_patt.1ca]
// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cea]
// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.d07]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete = constants.%return.param_patt.903]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc25_23.1 [concrete = constants.%return.patt.930]
// CHECK:STDOUT: } {
@@ -484,7 +484,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @Core.IntLiteral.as.ImplicitAs.impl: %IntLiteral.ref as %ImplicitAs.type {
// CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.decl: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = fn_decl @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.dc0 = value_param_pattern [concrete = constants.%self.param_patt.1ca]
// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cea]
// CHECK:STDOUT: %self.patt: %pattern_type.dc0 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.d07]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete = constants.%return.param_patt.903]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc29_23.1 [concrete = constants.%return.patt.930]
// CHECK:STDOUT: } {
@@ -508,7 +508,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: impl @i32.builtin.as.ImplicitAs.impl: %.loc32 as %ImplicitAs.type {
// CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert.decl: %i32.builtin.as.ImplicitAs.impl.Convert.type = fn_decl @i32.builtin.as.ImplicitAs.impl.Convert [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.956 = value_param_pattern [concrete = constants.%self.param_patt.936]
// CHECK:STDOUT: %self.patt: %pattern_type.956 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.703]
// CHECK:STDOUT: %self.patt: %pattern_type.956 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.16e]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete = constants.%return.param_patt.eab]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %IntLiteral.ref [concrete = constants.%return.patt.cd4]
// CHECK:STDOUT: } {
@@ -541,9 +541,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc9_9.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_9.1 (constants.%Self.as_type.48c)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc9_9.1 [symbolic = %pattern_type (constants.%pattern_type.131)]
// CHECK:STDOUT: %self.param_patt.loc9_9.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = value_param_pattern [symbolic = %self.param_patt.loc9_9.2 (constants.%self.param_patt.72e)]
// CHECK:STDOUT: %self.patt.loc9_9.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = at_binding_pattern self, %self.param_patt.loc9_9.2 [symbolic = %self.patt.loc9_9.2 (constants.%self.patt.ac5)]
// CHECK:STDOUT: %self.patt.loc9_9.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = wrapper_binding_pattern self, %self.param_patt.loc9_9.2 [symbolic = %self.patt.loc9_9.2 (constants.%self.patt.f75)]
// CHECK:STDOUT: %other.param_patt.loc9_20.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = value_param_pattern [symbolic = %other.param_patt.loc9_20.2 (constants.%other.param_patt.89e)]
// CHECK:STDOUT: %other.patt.loc9_20.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = at_binding_pattern other, %other.param_patt.loc9_20.2 [symbolic = %other.patt.loc9_20.2 (constants.%other.patt.f3d)]
// CHECK:STDOUT: %other.patt.loc9_20.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = wrapper_binding_pattern other, %other.param_patt.loc9_20.2 [symbolic = %other.patt.loc9_20.2 (constants.%other.patt.49b)]
// CHECK:STDOUT: %.loc9_31.1: Core.Form = init_form %Self.as_type.loc9_9.1 [symbolic = %.loc9_31.1 (constants.%.e80)]
// CHECK:STDOUT: %return.param_patt.loc9_31.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = out_param_pattern [symbolic = %return.param_patt.loc9_31.2 (constants.%return.param_patt.8c6)]
// CHECK:STDOUT: %return.patt.loc9_28.2: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.131) = return_slot_pattern %return.param_patt.loc9_31.2, %Self.as_type.loc9_9.1 [symbolic = %return.patt.loc9_28.2 (constants.%return.patt.169)]
@@ -558,7 +558,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc13_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_14.1 (constants.%Self.as_type.1ce)]
// CHECK:STDOUT: %pattern_type.loc13_14: type = pattern_type %Self.as_type.loc13_14.1 [symbolic = %pattern_type.loc13_14 (constants.%pattern_type.a01)]
// CHECK:STDOUT: %self.param_patt.loc13_14.2: @As.WithSelf.Convert.%pattern_type.loc13_14 (%pattern_type.a01) = value_param_pattern [symbolic = %self.param_patt.loc13_14.2 (constants.%self.param_patt.29a)]
// CHECK:STDOUT: %self.patt.loc13_14.2: @As.WithSelf.Convert.%pattern_type.loc13_14 (%pattern_type.a01) = at_binding_pattern self, %self.param_patt.loc13_14.2 [symbolic = %self.patt.loc13_14.2 (constants.%self.patt.a95)]
// CHECK:STDOUT: %self.patt.loc13_14.2: @As.WithSelf.Convert.%pattern_type.loc13_14 (%pattern_type.a01) = wrapper_binding_pattern self, %self.param_patt.loc13_14.2 [symbolic = %self.patt.loc13_14.2 (constants.%self.patt.7e4)]
// CHECK:STDOUT: %.loc13_23.1: Core.Form = init_form %T [symbolic = %.loc13_23.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc13_23: type = pattern_type %T [symbolic = %pattern_type.loc13_23 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc13_23.2: @As.WithSelf.Convert.%pattern_type.loc13_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc13_23.2 (constants.%return.param_patt.41d)]
@@ -574,7 +574,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc17_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_14.1 (constants.%Self.as_type.5b8)]
// CHECK:STDOUT: %pattern_type.loc17_14: type = pattern_type %Self.as_type.loc17_14.1 [symbolic = %pattern_type.loc17_14 (constants.%pattern_type.701)]
// CHECK:STDOUT: %self.param_patt.loc17_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_14 (%pattern_type.701) = value_param_pattern [symbolic = %self.param_patt.loc17_14.2 (constants.%self.param_patt.c3f)]
// CHECK:STDOUT: %self.patt.loc17_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_14 (%pattern_type.701) = at_binding_pattern self, %self.param_patt.loc17_14.2 [symbolic = %self.patt.loc17_14.2 (constants.%self.patt.f5a)]
// CHECK:STDOUT: %self.patt.loc17_14.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_14 (%pattern_type.701) = wrapper_binding_pattern self, %self.param_patt.loc17_14.2 [symbolic = %self.patt.loc17_14.2 (constants.%self.patt.2f3)]
// CHECK:STDOUT: %.loc17_23.1: Core.Form = init_form %T [symbolic = %.loc17_23.1 (constants.%.184)]
// CHECK:STDOUT: %pattern_type.loc17_23: type = pattern_type %T [symbolic = %pattern_type.loc17_23 (constants.%pattern_type.51d)]
// CHECK:STDOUT: %return.param_patt.loc17_23.2: @ImplicitAs.WithSelf.Convert.%pattern_type.loc17_23 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt.loc17_23.2 (constants.%return.param_patt.41d)]
@@ -605,9 +605,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc9_9.1 => constants.%Self.as_type.48c
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.131
// CHECK:STDOUT: %self.param_patt.loc9_9.2 => constants.%self.param_patt.72e
// CHECK:STDOUT: %self.patt.loc9_9.2 => constants.%self.patt.ac5
// CHECK:STDOUT: %self.patt.loc9_9.2 => constants.%self.patt.f75
// CHECK:STDOUT: %other.param_patt.loc9_20.2 => constants.%other.param_patt.89e
// CHECK:STDOUT: %other.patt.loc9_20.2 => constants.%other.patt.f3d
// CHECK:STDOUT: %other.patt.loc9_20.2 => constants.%other.patt.49b
// CHECK:STDOUT: %.loc9_31.1 => constants.%.e80
// CHECK:STDOUT: %return.param_patt.loc9_31.2 => constants.%return.param_patt.8c6
// CHECK:STDOUT: %return.patt.loc9_28.2 => constants.%return.patt.169
@@ -627,7 +627,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc13_14.1 => constants.%Self.as_type.1ce
// CHECK:STDOUT: %pattern_type.loc13_14 => constants.%pattern_type.a01
// CHECK:STDOUT: %self.param_patt.loc13_14.2 => constants.%self.param_patt.29a
// CHECK:STDOUT: %self.patt.loc13_14.2 => constants.%self.patt.a95
// CHECK:STDOUT: %self.patt.loc13_14.2 => constants.%self.patt.7e4
// CHECK:STDOUT: %.loc13_23.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc13_23 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc13_23.2 => constants.%return.param_patt.41d
@@ -648,7 +648,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc17_14.1 => constants.%Self.as_type.5b8
// CHECK:STDOUT: %pattern_type.loc17_14 => constants.%pattern_type.701
// CHECK:STDOUT: %self.param_patt.loc17_14.2 => constants.%self.param_patt.c3f
// CHECK:STDOUT: %self.patt.loc17_14.2 => constants.%self.patt.f5a
// CHECK:STDOUT: %self.patt.loc17_14.2 => constants.%self.patt.2f3
// CHECK:STDOUT: %.loc17_23.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.loc17_23 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt.loc17_23.2 => constants.%return.param_patt.41d
@@ -693,9 +693,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc9_9.1 => constants.%i32.builtin
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.956
// CHECK:STDOUT: %self.param_patt.loc9_9.2 => constants.%self.param_patt.936
// CHECK:STDOUT: %self.patt.loc9_9.2 => constants.%self.patt.703
// CHECK:STDOUT: %self.patt.loc9_9.2 => constants.%self.patt.16e
// CHECK:STDOUT: %other.param_patt.loc9_20.2 => constants.%other.param_patt.36d
// CHECK:STDOUT: %other.patt.loc9_20.2 => constants.%other.patt.760
// CHECK:STDOUT: %other.patt.loc9_20.2 => constants.%other.patt.8f0
// CHECK:STDOUT: %.loc9_31.1 => constants.%.9cb
// CHECK:STDOUT: %return.param_patt.loc9_31.2 => constants.%return.param_patt.903
// CHECK:STDOUT: %return.patt.loc9_28.2 => constants.%return.patt.930
@@ -739,7 +739,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc13_14.1 => Core.IntLiteral
// CHECK:STDOUT: %pattern_type.loc13_14 => constants.%pattern_type.dc0
// CHECK:STDOUT: %self.param_patt.loc13_14.2 => constants.%self.param_patt.1ca
// CHECK:STDOUT: %self.patt.loc13_14.2 => constants.%self.patt.cea
// CHECK:STDOUT: %self.patt.loc13_14.2 => constants.%self.patt.d07
// CHECK:STDOUT: %.loc13_23.1 => constants.%.9cb
// CHECK:STDOUT: %pattern_type.loc13_23 => constants.%pattern_type.956
// CHECK:STDOUT: %return.param_patt.loc13_23.2 => constants.%return.param_patt.903
@@ -784,7 +784,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc17_14.1 => Core.IntLiteral
// CHECK:STDOUT: %pattern_type.loc17_14 => constants.%pattern_type.dc0
// CHECK:STDOUT: %self.param_patt.loc17_14.2 => constants.%self.param_patt.1ca
// CHECK:STDOUT: %self.patt.loc17_14.2 => constants.%self.patt.cea
// CHECK:STDOUT: %self.patt.loc17_14.2 => constants.%self.patt.d07
// CHECK:STDOUT: %.loc17_23.1 => constants.%.9cb
// CHECK:STDOUT: %pattern_type.loc17_23 => constants.%pattern_type.956
// CHECK:STDOUT: %return.param_patt.loc17_23.2 => constants.%return.param_patt.903
@@ -829,7 +829,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.loc17_14.1 => constants.%i32.builtin
// CHECK:STDOUT: %pattern_type.loc17_14 => constants.%pattern_type.956
// CHECK:STDOUT: %self.param_patt.loc17_14.2 => constants.%self.param_patt.936
// CHECK:STDOUT: %self.patt.loc17_14.2 => constants.%self.patt.703
// CHECK:STDOUT: %self.patt.loc17_14.2 => constants.%self.patt.16e
// CHECK:STDOUT: %.loc17_23.1 => constants.%.f7d
// CHECK:STDOUT: %pattern_type.loc17_23 => constants.%pattern_type.dc0
// CHECK:STDOUT: %return.param_patt.loc17_23.2 => constants.%return.param_patt.eab
@@ -860,7 +860,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.d4a: type = facet_access_type %Self.37a [symbolic]
// CHECK:STDOUT: %pattern_type.e33: type = pattern_type %Self.as_type.d4a [symbolic]
// CHECK:STDOUT: %self.param_patt.9e9: %pattern_type.e33 = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.51c: %pattern_type.e33 = at_binding_pattern self, %self.param_patt.9e9 [symbolic]
// CHECK:STDOUT: %self.patt.f1a: %pattern_type.e33 = wrapper_binding_pattern self, %self.param_patt.9e9 [symbolic]
// CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic]
// CHECK:STDOUT: %As.type.dfb: type = facet_type <@As, @As(%i32.builtin)> [concrete]
// CHECK:STDOUT: %Self.256: %As.type.dfb = symbolic_binding Self, 1 [symbolic]
@@ -893,10 +893,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %return.param_patt.7c8: %pattern_type.aed = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.1c8: %pattern_type.aed = return_slot_pattern %return.param_patt.7c8, invalid [symbolic]
// CHECK:STDOUT: %self.param_patt.aae: %pattern_type.aed = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.c4d: %pattern_type.aed = at_binding_pattern self, %self.param_patt.aae [symbolic]
// CHECK:STDOUT: %self.patt.f45: %pattern_type.aed = wrapper_binding_pattern self, %self.param_patt.aae [symbolic]
// CHECK:STDOUT: %.4cc: Core.Form = init_form %Self.as_type.331 [symbolic]
// CHECK:STDOUT: %other.param_patt.076: %pattern_type.aed = value_param_pattern [symbolic]
// CHECK:STDOUT: %other.patt.667: %pattern_type.aed = at_binding_pattern other, %other.param_patt.076 [symbolic]
// CHECK:STDOUT: %other.patt.f97: %pattern_type.aed = wrapper_binding_pattern other, %other.param_patt.076 [symbolic]
// CHECK:STDOUT: %AddWith.type.7c6: type = facet_type <@AddWith, @AddWith(%i32.builtin)> [concrete]
// CHECK:STDOUT: %Self.bd2: %AddWith.type.7c6 = symbolic_binding Self, 1 [symbolic]
// CHECK:STDOUT: %AddWith.WithSelf.Op.type.0ff: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %Self.96a) [symbolic]
@@ -923,7 +923,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type.ef0: type = facet_access_type %Self.294 [symbolic]
// CHECK:STDOUT: %pattern_type.20e: type = pattern_type %Self.as_type.ef0 [symbolic]
// CHECK:STDOUT: %self.param_patt.360: %pattern_type.20e = value_param_pattern [symbolic]
// CHECK:STDOUT: %self.patt.25f: %pattern_type.20e = at_binding_pattern self, %self.param_patt.360 [symbolic]
// CHECK:STDOUT: %self.patt.04e: %pattern_type.20e = wrapper_binding_pattern self, %self.param_patt.360 [symbolic]
// CHECK:STDOUT: %ImplicitAs.type.7cb: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete]
// CHECK:STDOUT: %Self.f63: %ImplicitAs.type.7cb = symbolic_binding Self, 1 [symbolic]
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.e70: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %Self.294) [symbolic]
@@ -1154,7 +1154,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.d4a)]
// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.e33)]
// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.1 (%pattern_type.e33) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.9e9)]
// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.1 (%pattern_type.e33) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.51c)]
// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.1 (%pattern_type.e33) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.f1a)]
// 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: @As.WithSelf.Convert.%pattern_type.2 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt.41d)]
@@ -1172,9 +1172,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.331)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.aed)]
// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %self.param_patt (constants.%self.param_patt.aae)]
// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = at_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.c4d)]
// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern self, %self.param_patt [symbolic = %self.patt (constants.%self.patt.f45)]
// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = value_param_pattern [symbolic = %other.param_patt (constants.%other.param_patt.076)]
// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = at_binding_pattern other, %other.param_patt [symbolic = %other.patt (constants.%other.patt.667)]
// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = wrapper_binding_pattern other, %other.param_patt [symbolic = %other.patt (constants.%other.patt.f97)]
// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.4cc)]
// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt.7c8)]
// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.aed) = return_slot_pattern %return.param_patt, invalid [symbolic = %return.patt (constants.%return.patt.1c8)]
@@ -1191,7 +1191,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.ef0)]
// 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.360)]
// 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.25f)]
// 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.04e)]
// 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: @ImplicitAs.WithSelf.Convert.%pattern_type.2 (%pattern_type.51d) = out_param_pattern [symbolic = %return.param_patt (constants.%return.param_patt.41d)]
@@ -1263,7 +1263,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.d4a
// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e33
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.9e9
// CHECK:STDOUT: %self.patt => constants.%self.patt.51c
// CHECK:STDOUT: %self.patt => constants.%self.patt.f1a
// CHECK:STDOUT: %.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.41d
@@ -1315,9 +1315,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.331
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.aed
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.aae
// CHECK:STDOUT: %self.patt => constants.%self.patt.c4d
// CHECK:STDOUT: %self.patt => constants.%self.patt.f45
// CHECK:STDOUT: %other.param_patt => constants.%other.param_patt.076
// CHECK:STDOUT: %other.patt => constants.%other.patt.667
// CHECK:STDOUT: %other.patt => constants.%other.patt.f97
// CHECK:STDOUT: %.1 => constants.%.4cc
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.7c8
// CHECK:STDOUT: %return.patt => constants.%return.patt.1c8
@@ -1368,7 +1368,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32));
// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.ef0
// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.20e
// CHECK:STDOUT: %self.param_patt => constants.%self.param_patt.360
// CHECK:STDOUT: %self.patt => constants.%self.patt.25f
// CHECK:STDOUT: %self.patt => constants.%self.patt.04e
// CHECK:STDOUT: %.1 => constants.%.184
// CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d
// CHECK:STDOUT: %return.param_patt => constants.%return.param_patt.41d
@@ -23,9 +23,9 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %.795: Core.Form = init_form %i32 [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type.6b6 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type.6b6 = return_slot_pattern %return.param_patt, %i32 [concrete]
@@ -50,9 +50,9 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [concrete = constants.%Add] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.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.loc15_27 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -52,9 +52,9 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [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: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = wrapper_binding_pattern m, %m.param_patt [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]
@@ -105,9 +105,9 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %A.decl.loc15: %A.type.9f4a6d.1 = fn_decl @A.loc15 [concrete = constants.%A.921eb9.1] {
// 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: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%m.param_patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = wrapper_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// 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.loc15_25 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -124,9 +124,9 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %A.decl.loc23: %A.type.9f4a6d.2 = fn_decl @A.loc23 [concrete = constants.%A.921eb9.2] {
// 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: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%m.param_patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = wrapper_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// 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.loc23_32 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -143,9 +143,9 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl.loc25: %B.type.573c71.1 = fn_decl @B.loc25 [concrete = constants.%B.08ed21.1] {
// 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: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%m.param_patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = wrapper_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// 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.loc25_32 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -162,9 +162,9 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl.loc33: %B.type.573c71.2 = fn_decl @B.loc33 [concrete = constants.%B.08ed21.2] {
// 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: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%m.param_patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = wrapper_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// 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.loc33_25 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -181,9 +181,9 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl.loc35: %C.type.322e3b.1 = fn_decl @C.loc35 [concrete = constants.%C.010386.1] {
// 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: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%m.param_patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = wrapper_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// 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.loc35_25 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -200,9 +200,9 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl.loc43: %C.type.322e3b.2 = fn_decl @C.loc43 [concrete = constants.%C.010386.2] {
// 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: %m.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%m.param_patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = at_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// CHECK:STDOUT: %m.patt: %pattern_type.6b6 = wrapper_binding_pattern m, %m.param_patt [concrete = constants.%m.patt]
// 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.loc43_25 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
+9 -9
View File
@@ -43,11 +43,11 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2))
// CHECK:STDOUT: %MakeIntLiteral: %MakeIntLiteral.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type.dc0: type = pattern_type Core.IntLiteral [concrete]
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete]
// CHECK:STDOUT: %Int.type: type = fn_type @Int [concrete]
// CHECK:STDOUT: %Int: %Int.type = struct_value () [concrete]
// CHECK:STDOUT: %a.param_patt.ba0: %pattern_type.dc0 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.442: %pattern_type.dc0 = at_binding_pattern a, %a.param_patt.ba0 [concrete]
// CHECK:STDOUT: %a.patt.b6c: %pattern_type.dc0 = wrapper_binding_pattern a, %a.param_patt.ba0 [concrete]
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete]
// CHECK:STDOUT: %.9cb: Core.Form = init_form %i32.builtin [concrete]
@@ -57,14 +57,14 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2))
// CHECK:STDOUT: %AsI32.type: type = fn_type @AsI32 [concrete]
// CHECK:STDOUT: %AsI32: %AsI32.type = struct_value () [concrete]
// CHECK:STDOUT: %a.param_patt.b97: %pattern_type.956 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.9c9: %pattern_type.956 = at_binding_pattern a, %a.param_patt.b97 [concrete]
// CHECK:STDOUT: %a.patt.b6a: %pattern_type.956 = wrapper_binding_pattern a, %a.param_patt.b97 [concrete]
// CHECK:STDOUT: %.f7d: Core.Form = init_form Core.IntLiteral [concrete]
// CHECK:STDOUT: %return.param_patt.eab: %pattern_type.dc0 = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt.cd4: %pattern_type.dc0 = return_slot_pattern %return.param_patt.eab, Core.IntLiteral [concrete]
// CHECK:STDOUT: %AsIntLiteral.type: type = fn_type @AsIntLiteral [concrete]
// CHECK:STDOUT: %AsIntLiteral: %AsIntLiteral.type = struct_value () [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.956 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.956 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.956 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %TestAdd.type: type = fn_type @TestAdd [concrete]
// CHECK:STDOUT: %TestAdd: %TestAdd.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -94,7 +94,7 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2))
// CHECK:STDOUT: %IntLiteral: type = alias_binding IntLiteral, %.loc6_35.2 [concrete = Core.IntLiteral]
// CHECK:STDOUT: %Int.decl: %Int.type = fn_decl @Int [concrete = constants.%Int] {
// CHECK:STDOUT: %N.param_patt: %pattern_type.dc0 = value_param_pattern [concrete = constants.%N.param_patt]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = at_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %N.patt: %pattern_type.dc0 = wrapper_binding_pattern N, %N.param_patt [concrete = constants.%N.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern [concrete = constants.%return.param_patt.70e]
// CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern %return.param_patt, %.loc7_26.1 [concrete = constants.%return.patt.3ae]
// CHECK:STDOUT: } {
@@ -108,7 +108,7 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2))
// CHECK:STDOUT: }
// CHECK:STDOUT: %AsI32.decl: %AsI32.type = fn_decl @AsI32 [concrete = constants.%AsI32] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.dc0 = value_param_pattern [concrete = constants.%a.param_patt.ba0]
// CHECK:STDOUT: %a.patt: %pattern_type.dc0 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.442]
// CHECK:STDOUT: %a.patt: %pattern_type.dc0 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.b6c]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete = constants.%return.param_patt.903]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc9_28.1 [concrete = constants.%return.patt.930]
// CHECK:STDOUT: } {
@@ -122,7 +122,7 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2))
// CHECK:STDOUT: }
// CHECK:STDOUT: %AsIntLiteral.decl: %AsIntLiteral.type = fn_decl @AsIntLiteral [concrete = constants.%AsIntLiteral] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.956 = value_param_pattern [concrete = constants.%a.param_patt.b97]
// CHECK:STDOUT: %a.patt: %pattern_type.956 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.9c9]
// CHECK:STDOUT: %a.patt: %pattern_type.956 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.b6a]
// CHECK:STDOUT: %return.param_patt: %pattern_type.dc0 = out_param_pattern [concrete = constants.%return.param_patt.eab]
// CHECK:STDOUT: %return.patt: %pattern_type.dc0 = return_slot_pattern %return.param_patt, %IntLiteral.ref [concrete = constants.%return.patt.cd4]
// CHECK:STDOUT: } {
@@ -136,9 +136,9 @@ var arr: array(i32, Core.AsIntLiteral(Core.TestAdd(Core.AsI32(1), Core.AsI32(2))
// CHECK:STDOUT: }
// CHECK:STDOUT: %TestAdd.decl: %TestAdd.type = fn_decl @TestAdd [concrete = constants.%TestAdd] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.956 = value_param_pattern [concrete = constants.%a.param_patt.b97]
// CHECK:STDOUT: %a.patt: %pattern_type.956 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.9c9]
// CHECK:STDOUT: %a.patt: %pattern_type.956 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.b6a]
// CHECK:STDOUT: %b.param_patt: %pattern_type.956 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.956 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.956 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.956 = out_param_pattern [concrete = constants.%return.param_patt.903]
// CHECK:STDOUT: %return.patt: %pattern_type.956 = return_slot_pattern %return.param_patt, %.loc12_31.1 [concrete = constants.%return.patt.930]
// CHECK:STDOUT: } {
+14 -14
View File
@@ -31,9 +31,9 @@ var arr: array(i32, (1 as i32).(I.F)(2));
// 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: %other.param_patt.03c: %pattern_type.c60 = value_param_pattern [symbolic]
// CHECK:STDOUT: %other.patt.852: %pattern_type.c60 = at_binding_pattern other, %other.param_patt.03c [symbolic]
// CHECK:STDOUT: %other.patt.1b9: %pattern_type.c60 = wrapper_binding_pattern other, %other.param_patt.03c [symbolic]
// CHECK:STDOUT: %.8fc: Core.Form = init_form %Self.as_type.c84 [symbolic]
// CHECK:STDOUT: %return.param_patt.434: %pattern_type.c60 = out_param_pattern [symbolic]
// CHECK:STDOUT: %return.patt.44a: %pattern_type.c60 = return_slot_pattern %return.param_patt.434, %Self.as_type.c84 [symbolic]
@@ -49,9 +49,9 @@ var arr: array(i32, (1 as i32).(I.F)(2));
// CHECK:STDOUT: %I.impl_witness: <witness> = impl_witness @i32.as.I.impl.%I.impl_witness_table [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: %other.param_patt.12c: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %other.patt.656: %pattern_type.6b6 = at_binding_pattern other, %other.param_patt.12c [concrete]
// CHECK:STDOUT: %other.patt.230: %pattern_type.6b6 = wrapper_binding_pattern other, %other.param_patt.12c [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]
@@ -211,9 +211,9 @@ var arr: array(i32, (1 as i32).(I.F)(2));
// 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.loc16_8.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc16_8.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc16_8.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc16_8.1 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc16_8.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc16_8.1 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.85e)]
// CHECK:STDOUT: %other.param_patt.loc16_19.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %other.param_patt.loc16_19.2 (constants.%other.param_patt.03c)]
// CHECK:STDOUT: %other.patt.loc16_19.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern other, %other.param_patt.loc16_19.1 [symbolic = %other.patt.loc16_19.2 (constants.%other.patt.852)]
// CHECK:STDOUT: %other.patt.loc16_19.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern other, %other.param_patt.loc16_19.1 [symbolic = %other.patt.loc16_19.2 (constants.%other.patt.1b9)]
// CHECK:STDOUT: %return.param_patt.loc16_30.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = out_param_pattern [symbolic = %return.param_patt.loc16_30.2 (constants.%return.param_patt.434)]
// CHECK:STDOUT: %return.patt.loc16_27.1: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = return_slot_pattern %return.param_patt.loc16_30.1, %.loc16_30.2 [symbolic = %return.patt.loc16_27.2 (constants.%return.patt.44a)]
// CHECK:STDOUT: } {
@@ -251,9 +251,9 @@ var arr: array(i32, (1 as i32).(I.F)(2));
// CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %I.ref {
// CHECK:STDOUT: %i32.as.I.impl.F.decl: %i32.as.I.impl.F.type = fn_decl @i32.as.I.impl.F [concrete = constants.%i32.as.I.impl.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%self.param_patt.049]
// CHECK:STDOUT: %self.patt: %pattern_type.6b6 = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.f6c]
// CHECK:STDOUT: %self.patt: %pattern_type.6b6 = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.aab]
// CHECK:STDOUT: %other.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%other.param_patt.12c]
// CHECK:STDOUT: %other.patt: %pattern_type.6b6 = at_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.656]
// CHECK:STDOUT: %other.patt: %pattern_type.6b6 = wrapper_binding_pattern other, %other.param_patt [concrete = constants.%other.patt.230]
// 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.loc20_34 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -282,9 +282,9 @@ var arr: array(i32, (1 as i32).(I.F)(2));
// CHECK:STDOUT: %Self.as_type.loc16_8.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_8.1 (constants.%Self.as_type.c84)]
// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_8.1 [symbolic = %pattern_type (constants.%pattern_type.c60)]
// CHECK:STDOUT: %self.param_patt.loc16_8.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %self.param_patt.loc16_8.2 (constants.%self.param_patt.a33)]
// CHECK:STDOUT: %self.patt.loc16_8.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern self, %self.param_patt.loc16_8.2 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.696)]
// CHECK:STDOUT: %self.patt.loc16_8.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern self, %self.param_patt.loc16_8.2 [symbolic = %self.patt.loc16_8.2 (constants.%self.patt.85e)]
// CHECK:STDOUT: %other.param_patt.loc16_19.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = value_param_pattern [symbolic = %other.param_patt.loc16_19.2 (constants.%other.param_patt.03c)]
// CHECK:STDOUT: %other.patt.loc16_19.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = at_binding_pattern other, %other.param_patt.loc16_19.2 [symbolic = %other.patt.loc16_19.2 (constants.%other.patt.852)]
// CHECK:STDOUT: %other.patt.loc16_19.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = wrapper_binding_pattern other, %other.param_patt.loc16_19.2 [symbolic = %other.patt.loc16_19.2 (constants.%other.patt.1b9)]
// CHECK:STDOUT: %.loc16_30.1: Core.Form = init_form %Self.as_type.loc16_8.1 [symbolic = %.loc16_30.1 (constants.%.8fc)]
// CHECK:STDOUT: %return.param_patt.loc16_30.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = out_param_pattern [symbolic = %return.param_patt.loc16_30.2 (constants.%return.param_patt.434)]
// CHECK:STDOUT: %return.patt.loc16_27.2: @I.WithSelf.F.%pattern_type (%pattern_type.c60) = return_slot_pattern %return.param_patt.loc16_30.2, %Self.as_type.loc16_8.1 [symbolic = %return.patt.loc16_27.2 (constants.%return.patt.44a)]
@@ -319,9 +319,9 @@ var arr: array(i32, (1 as i32).(I.F)(2));
// CHECK:STDOUT: %Self.as_type.loc16_8.1 => constants.%Self.as_type.c84
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c60
// CHECK:STDOUT: %self.param_patt.loc16_8.2 => constants.%self.param_patt.a33
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.696
// CHECK:STDOUT: %self.patt.loc16_8.2 => constants.%self.patt.85e
// CHECK:STDOUT: %other.param_patt.loc16_19.2 => constants.%other.param_patt.03c
// CHECK:STDOUT: %other.patt.loc16_19.2 => constants.%other.patt.852
// CHECK:STDOUT: %other.patt.loc16_19.2 => constants.%other.patt.1b9
// CHECK:STDOUT: %.loc16_30.1 => constants.%.8fc
// CHECK:STDOUT: %return.param_patt.loc16_30.2 => constants.%return.param_patt.434
// CHECK:STDOUT: %return.patt.loc16_27.2 => constants.%return.patt.44a
@@ -339,9 +339,9 @@ var arr: array(i32, (1 as i32).(I.F)(2));
// 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: %other.param_patt.loc16_19.2 => constants.%other.param_patt.12c
// CHECK:STDOUT: %other.patt.loc16_19.2 => constants.%other.patt.656
// CHECK:STDOUT: %other.patt.loc16_19.2 => constants.%other.patt.230
// CHECK:STDOUT: %.loc16_30.1 => constants.%.795f
// CHECK:STDOUT: %return.param_patt.loc16_30.2 => constants.%return.param_patt.a9a
// CHECK:STDOUT: %return.patt.loc16_27.2 => constants.%return.patt.e1b
+2 -2
View File
@@ -27,7 +27,7 @@ fn Main() {
// CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %empty_struct_type [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.469: Core.Form = init_form %empty_struct_type [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %empty_struct_type [concrete]
@@ -44,7 +44,7 @@ fn Main() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Echo.decl: %Echo.type = fn_decl @Echo [concrete = constants.%Echo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc15_20.2 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
+2 -2
View File
@@ -27,7 +27,7 @@ fn Main() {
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %empty_tuple.type [concrete]
@@ -44,7 +44,7 @@ fn Main() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Echo.decl: %Echo.type = fn_decl @Echo [concrete = constants.%Echo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern [concrete = constants.%return.param_patt]
// CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern %return.param_patt, %.loc15_20.2 [concrete = constants.%return.patt]
// CHECK:STDOUT: } {
@@ -80,12 +80,12 @@ fn Main() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt.28ecbf.1: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt.ab6041.1: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %Run1.type: type = fn_type @Run1 [concrete]
// CHECK:STDOUT: %Run1: %Run1.type = struct_value () [concrete]
// CHECK:STDOUT: %a.patt.28ecbf.2: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt.ab6041.2: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %Run2.type: type = fn_type @Run2 [concrete]
// CHECK:STDOUT: %Run2: %Run2.type = struct_value () [concrete]
// CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete]
@@ -115,7 +115,7 @@ fn Main() {
// CHECK:STDOUT: %Run0.decl: %Run0.type = fn_decl @Run0 [concrete = constants.%Run0] {} {}
// CHECK:STDOUT: %Run1.decl: %Run1.type = fn_decl @Run1 [concrete = constants.%Run1] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.28ecbf.1]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.ab6041.1]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -123,9 +123,9 @@ fn Main() {
// CHECK:STDOUT: }
// CHECK:STDOUT: %Run2.decl: %Run2.type = fn_decl @Run2 [concrete = constants.%Run2] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.28ecbf.2]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt.ab6041.2]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32.loc17_19: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -38,7 +38,7 @@ fn F() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = 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: %F.type: type = fn_type @F [concrete]
@@ -68,7 +68,7 @@ fn F() {
// 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.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
+19 -19
View File
@@ -297,7 +297,7 @@ fn G() {
// CHECK:STDOUT: %.512: Core.Form = ref_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = 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: }
@@ -305,7 +305,7 @@ fn G() {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0
// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.512] {
@@ -339,7 +339,7 @@ fn G() {
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete]
// CHECK:STDOUT: %x.var_patt: %pattern_type.6b6 = var_pattern %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.var_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = wrapper_binding_pattern x, %x.var_patt [concrete]
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete]
@@ -371,7 +371,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.var_patt: %pattern_type.6b6 = var_pattern %x.param_patt [concrete = constants.%x.var_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.var_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = wrapper_binding_pattern x, %x.var_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0
// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.795f] {
@@ -419,7 +419,7 @@ fn G() {
// CHECK:STDOUT: %.c2a: Core.Form = value_form %i32 [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = 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: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete]
@@ -447,7 +447,7 @@ fn G() {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: %i32 = value_param call_param0
// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.c2a] {
@@ -484,7 +484,7 @@ fn G() {
// CHECK:STDOUT: %.9f9: Core.Form = ref_form %empty_tuple.type [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %empty_tuple.type [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type = ref_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: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -492,7 +492,7 @@ fn G() {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type = ref_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: ref %empty_tuple.type = ref_param call_param0
// CHECK:STDOUT: %.loc4_15.1: Core.Form = splice_block %.loc4_15.2 [concrete = constants.%.9f9] {
@@ -658,12 +658,12 @@ fn G() {
// CHECK:STDOUT: %.42f: type = type_component_of %Fm [symbolic]
// CHECK:STDOUT: %pattern_type.177: type = pattern_type %.42f [symbolic]
// CHECK:STDOUT: %.f15: %pattern_type.177 = splice_inst @F.%.loc4_30.3 [template]
// CHECK:STDOUT: %v.patt.0b3: %pattern_type.177 = at_binding_pattern v, %.f15 [template]
// CHECK:STDOUT: %v.patt.664: %pattern_type.177 = wrapper_binding_pattern v, %.f15 [template]
// CHECK:STDOUT: %.677: %pattern_type.177 = splice_inst @F.%.loc4_37.3 [template]
// CHECK:STDOUT: %return.patt.113: %pattern_type.177 = return_slot_pattern %.677, %.42f [template]
// CHECK:STDOUT: %.cfa: <instruction> = form_param_pattern_action %Fm, v [template]
// CHECK:STDOUT: %.26b: %pattern_type.177 = splice_inst %.cfa [template]
// CHECK:STDOUT: %v.patt.cda: %pattern_type.177 = at_binding_pattern v, %.26b [template]
// CHECK:STDOUT: %v.patt.cee: %pattern_type.177 = wrapper_binding_pattern v, %.26b [template]
// CHECK:STDOUT: %.94f: <instruction> = out_form_param_pattern_action %Fm [template]
// CHECK:STDOUT: %.1ac: %pattern_type.177 = splice_inst %.94f [template]
// CHECK:STDOUT: %return.patt.333: %pattern_type.177 = return_slot_pattern %.1ac, %.42f [template]
@@ -714,7 +714,7 @@ fn G() {
// CHECK:STDOUT: %v.var_patt.13561f.2: %pattern_type.6b6 = var_pattern %v.param_patt.e9ad17.3 [concrete = %v.var_patt.13561f.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.patt.b2b: %pattern_type.6b6 = at_binding_pattern v, %v.var_patt.13561f.1 [concrete]
// CHECK:STDOUT: %v.patt.775: %pattern_type.6b6 = wrapper_binding_pattern v, %v.var_patt.13561f.1 [concrete]
// CHECK:STDOUT: %inst.out_param_pattern: <instruction> = inst_value [concrete] {
// CHECK:STDOUT: %return.param_patt.a9a4c7.2: %pattern_type.6b6 = out_param_pattern [concrete = %return.param_patt.a9a4c7.1]
// CHECK:STDOUT: }
@@ -735,7 +735,7 @@ fn G() {
// CHECK:STDOUT: %inst.ref_param_pattern: <instruction> = inst_value [concrete] {
// CHECK:STDOUT: %v.param_patt.e9ad17.2: %pattern_type.6b6 = ref_param_pattern [concrete = %v.param_patt.e9ad17.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.patt.5c0: %pattern_type.6b6 = at_binding_pattern v, %v.param_patt.e9ad17.1 [concrete]
// CHECK:STDOUT: %v.patt.a24: %pattern_type.6b6 = wrapper_binding_pattern v, %v.param_patt.e9ad17.1 [concrete]
// CHECK:STDOUT: %.ae0167.1: %pattern_type.6b6 = ref_return_pattern [concrete]
// CHECK:STDOUT: %inst.ref_return_pattern: <instruction> = inst_value [concrete] {
// CHECK:STDOUT: %.ae0167.2: %pattern_type.6b6 = ref_return_pattern [concrete = %.ae0167.1]
@@ -748,7 +748,7 @@ fn G() {
// CHECK:STDOUT: %inst.value_param_pattern: <instruction> = inst_value [concrete] {
// CHECK:STDOUT: %v.param_patt.733534.2: %pattern_type.6b6 = value_param_pattern [concrete = %v.param_patt.733534.1]
// CHECK:STDOUT: }
// CHECK:STDOUT: %v.patt.971: %pattern_type.6b6 = at_binding_pattern v, %v.param_patt.733534.1 [concrete]
// CHECK:STDOUT: %v.patt.808: %pattern_type.6b6 = wrapper_binding_pattern v, %v.param_patt.733534.1 [concrete]
// CHECK:STDOUT: %.1a588f.1: %pattern_type.6b6 = value_return_pattern [concrete]
// CHECK:STDOUT: %inst.value_return_pattern: <instruction> = inst_value [concrete] {
// CHECK:STDOUT: %.1a588f.2: %pattern_type.6b6 = value_return_pattern [concrete = %.1a588f.1]
@@ -802,7 +802,7 @@ fn G() {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %Fm.patt.loc4_16.1: %pattern_type.13f = symbolic_binding_pattern Fm, 0 [symbolic = %Fm.patt.loc4_16.2 (constants.%Fm.patt)]
// CHECK:STDOUT: %.loc4_30.2: @F.%pattern_type (%pattern_type.177) = splice_inst %.loc4_30.3 [template = %.loc4_30.4 (constants.%.f15)]
// CHECK:STDOUT: %v.patt.loc4_30.1: @F.%pattern_type (%pattern_type.177) = at_binding_pattern v, %.loc4_30.2 [template = %v.patt.loc4_30.2 (constants.%v.patt.0b3)]
// CHECK:STDOUT: %v.patt.loc4_30.1: @F.%pattern_type (%pattern_type.177) = wrapper_binding_pattern v, %.loc4_30.2 [template = %v.patt.loc4_30.2 (constants.%v.patt.664)]
// CHECK:STDOUT: %.loc4_37.2: @F.%pattern_type (%pattern_type.177) = splice_inst %.loc4_37.3 [template = %.loc4_37.4 (constants.%.677)]
// CHECK:STDOUT: %return.patt.loc4_37.1: @F.%pattern_type (%pattern_type.177) = return_slot_pattern %.loc4_37.2, %.loc4_41 [template = %return.patt.loc4_37.2 (constants.%return.patt.113)]
// CHECK:STDOUT: } {
@@ -833,7 +833,7 @@ fn G() {
// CHECK:STDOUT: %.loc4_30.3: <instruction> = form_param_pattern_action %Fm.ref.loc4_33, v [template]
// CHECK:STDOUT: %pattern_type: type = pattern_type %.loc4_33.1 [symbolic = %pattern_type (constants.%pattern_type.177)]
// CHECK:STDOUT: %.loc4_30.4: @F.%pattern_type (%pattern_type.177) = splice_inst %.loc4_30.3 [template = %.loc4_30.4 (constants.%.f15)]
// CHECK:STDOUT: %v.patt.loc4_30.2: @F.%pattern_type (%pattern_type.177) = at_binding_pattern v, %.loc4_30.4 [template = %v.patt.loc4_30.2 (constants.%v.patt.0b3)]
// CHECK:STDOUT: %v.patt.loc4_30.2: @F.%pattern_type (%pattern_type.177) = wrapper_binding_pattern v, %.loc4_30.4 [template = %v.patt.loc4_30.2 (constants.%v.patt.664)]
// CHECK:STDOUT: %.loc4_37.3: <instruction> = out_form_param_pattern_action %Fm.ref.loc4_41 [template]
// CHECK:STDOUT: %.loc4_37.4: @F.%pattern_type (%pattern_type.177) = splice_inst %.loc4_37.3 [template = %.loc4_37.4 (constants.%.677)]
// CHECK:STDOUT: %return.patt.loc4_37.2: @F.%pattern_type (%pattern_type.177) = return_slot_pattern %.loc4_37.4, %.loc4_33.1 [template = %return.patt.loc4_37.2 (constants.%return.patt.113)]
@@ -938,7 +938,7 @@ fn G() {
// CHECK:STDOUT: %.loc4_30.3 => constants.%.cfa
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.177
// CHECK:STDOUT: %.loc4_30.4 => constants.%.26b
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.cda
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.cee
// CHECK:STDOUT: %.loc4_37.3 => constants.%.94f
// CHECK:STDOUT: %.loc4_37.4 => constants.%.1ac
// CHECK:STDOUT: %return.patt.loc4_37.2 => constants.%return.patt.333
@@ -953,7 +953,7 @@ fn G() {
// CHECK:STDOUT: %.loc4_30.3 => constants.%inst.splice_block
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6
// CHECK:STDOUT: %.loc4_30.4 => constants.%v.var_patt.13561f.1
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.b2b
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.775
// CHECK:STDOUT: %.loc4_37.3 => constants.%inst.out_param_pattern
// CHECK:STDOUT: %.loc4_37.4 => constants.%return.param_patt.a9a4c7.1
// CHECK:STDOUT: %return.patt.loc4_37.2 => constants.%return.patt.e1b
@@ -971,7 +971,7 @@ fn G() {
// CHECK:STDOUT: %.loc4_30.3 => constants.%inst.ref_param_pattern
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6
// CHECK:STDOUT: %.loc4_30.4 => constants.%v.param_patt.e9ad17.1
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.5c0
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.a24
// CHECK:STDOUT: %.loc4_37.3 => constants.%inst.ref_return_pattern
// CHECK:STDOUT: %.loc4_37.4 => constants.%.ae0167.1
// CHECK:STDOUT: %return.patt.loc4_37.2 => constants.%return.patt.c62
@@ -989,7 +989,7 @@ fn G() {
// CHECK:STDOUT: %.loc4_30.3 => constants.%inst.value_param_pattern
// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b6
// CHECK:STDOUT: %.loc4_30.4 => constants.%v.param_patt.733534.1
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.971
// CHECK:STDOUT: %v.patt.loc4_30.2 => constants.%v.patt.808
// CHECK:STDOUT: %.loc4_37.3 => constants.%inst.value_return_pattern
// CHECK:STDOUT: %.loc4_37.4 => constants.%.1a588f.1
// CHECK:STDOUT: %return.patt.loc4_37.2 => constants.%return.patt.45a
+2 -2
View File
@@ -31,7 +31,7 @@ fn Main() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [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]
@@ -102,7 +102,7 @@ fn Main() {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Echo.decl: %Echo.type = fn_decl @Echo [concrete = constants.%Echo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// 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.loc15_20 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -30,9 +30,9 @@ fn Main() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete]
// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete]
// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete]
@@ -98,9 +98,9 @@ fn Main() {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32]
+2 -2
View File
@@ -28,7 +28,7 @@ fn Main() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete]
// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete]
// CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete]
@@ -74,7 +74,7 @@ fn Main() {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -29,7 +29,7 @@ fn Main() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete]
// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete]
// CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete]
@@ -75,7 +75,7 @@ fn Main() {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
+4 -4
View File
@@ -28,9 +28,9 @@ fn Main() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete]
// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete]
// CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete]
@@ -80,9 +80,9 @@ fn Main() {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -29,9 +29,9 @@ fn Main() {
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %Foo.type: type = fn_type @Foo [concrete]
// CHECK:STDOUT: %Foo: %Foo.type = struct_value () [concrete]
// CHECK:STDOUT: %Main.type: type = fn_type @Main [concrete]
@@ -81,9 +81,9 @@ fn Main() {
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %Foo.decl: %Foo.type = fn_decl @Foo [concrete = constants.%Foo] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32.loc15_18: type = type_literal constants.%i32 [concrete = constants.%i32]
+4 -4
View File
@@ -119,7 +119,7 @@ fn G(ref d: D) { F(ref d); }
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = 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: %G.type: type = fn_type @G [concrete]
@@ -154,7 +154,7 @@ fn G(ref d: D) { F(ref d); }
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %x.param_patt: %pattern_type.6b6 = ref_param_pattern [concrete = constants.%x.param_patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = at_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: %x.patt: %pattern_type.6b6 = wrapper_binding_pattern x, %x.param_patt [concrete = constants.%x.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %x.param: ref %i32 = ref_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -204,7 +204,7 @@ fn G(ref d: D) { F(ref d); }
// CHECK:STDOUT: %C: type = class_type @C [concrete]
// CHECK:STDOUT: %pattern_type.98b: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt.99a: %pattern_type.98b = ref_param_pattern [concrete]
// CHECK:STDOUT: %self.patt.807: %pattern_type.98b = at_binding_pattern self, %self.param_patt.99a [concrete]
// CHECK:STDOUT: %self.patt.cbd: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt.99a [concrete]
// CHECK:STDOUT: %C.F.type: type = fn_type @C.F [concrete]
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
// CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete]
@@ -237,7 +237,7 @@ fn G(ref d: D) { F(ref d); }
// CHECK:STDOUT: class @C {
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {
// CHECK:STDOUT: %self.param_patt: %pattern_type.98b = ref_param_pattern [concrete = constants.%self.param_patt.99a]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.807]
// CHECK:STDOUT: %self.patt: %pattern_type.98b = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt.cbd]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: ref %C = ref_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -187,7 +187,7 @@ extern library "basic" fn F();
// CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete]
// CHECK:STDOUT: %C.G.type: type = fn_type @C.G [concrete]
// CHECK:STDOUT: %C.G: %C.G.type = struct_value () [concrete]
// CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
@@ -205,7 +205,7 @@ extern library "basic" fn F();
// CHECK:STDOUT: %C.F.decl: %C.F.type = fn_decl @C.F [concrete = constants.%C.F] {} {}
// CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] {
// CHECK:STDOUT: %self.param_patt: %pattern_type = value_param_pattern [concrete = constants.%self.param_patt]
// CHECK:STDOUT: %self.patt: %pattern_type = at_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: %self.patt: %pattern_type = wrapper_binding_pattern self, %self.param_patt [concrete = constants.%self.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %C = value_param call_param0
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
@@ -27,7 +27,7 @@ fn F(n: i32, a: array(i32, n)*);
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [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: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -49,9 +49,9 @@ fn F(n: i32, a: array(i32, n)*);
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// 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: %a.param_patt: <error> = value_param_pattern [concrete = <error>]
// CHECK:STDOUT: %a.patt: <error> = at_binding_pattern a, %a.param_patt [concrete = <error>]
// CHECK:STDOUT: %a.patt: <error> = wrapper_binding_pattern a, %a.param_patt [concrete = <error>]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %n.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32.loc19_9: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -30,7 +30,7 @@ fn F(n: i32, n: i32);
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [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: %F.type: type = fn_type @F [concrete]
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
// CHECK:STDOUT: }
@@ -52,9 +52,9 @@ fn F(n: i32, n: i32);
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %n.param_patt.loc22_7: %pattern_type.6b6 = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt.loc22_7: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt.loc22_7 [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt.loc22_7: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt.loc22_7 [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.param_patt.loc22_15: %pattern_type.6b6 = value_param_pattern [concrete = constants.%n.param_patt]
// CHECK:STDOUT: %n.patt.loc22_15: %pattern_type.6b6 = at_binding_pattern n, %n.param_patt.loc22_15 [concrete = constants.%n.patt]
// CHECK:STDOUT: %n.patt.loc22_15: %pattern_type.6b6 = wrapper_binding_pattern n, %n.param_patt.loc22_15 [concrete = constants.%n.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %n.param.loc22_7: %i32 = value_param call_param0
// CHECK:STDOUT: %i32.loc22_9: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -71,7 +71,7 @@ fn E() {}
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
// CHECK:STDOUT: %pattern_type: type = pattern_type %empty_tuple.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: %B.type: type = fn_type @B [concrete]
// CHECK:STDOUT: %B: %B.type = struct_value () [concrete]
// CHECK:STDOUT: %C.type.322e3b.1: type = fn_type @C.loc35 [concrete]
@@ -98,7 +98,7 @@ fn E() {}
// CHECK:STDOUT: %A.decl.loc23: %A.type = fn_decl @A [concrete = constants.%A] {} {}
// CHECK:STDOUT: %B.decl.loc25: %B.type = fn_decl @B [concrete = constants.%B] {
// 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.loc25: %empty_tuple.type = value_param call_param0
// CHECK:STDOUT: %.loc25_10.1: type = splice_block %.loc25_10.3 [concrete = constants.%empty_tuple.type] {
@@ -109,7 +109,7 @@ fn E() {}
// CHECK:STDOUT: }
// CHECK:STDOUT: %B.decl.loc33: %B.type = fn_decl @B [concrete = constants.%B] {
// 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.loc33: %empty_tuple.type = value_param call_param0
// CHECK:STDOUT: %.loc33_10.1: type = splice_block %.loc33_10.3 [concrete = constants.%empty_tuple.type] {
@@ -121,7 +121,7 @@ fn E() {}
// CHECK:STDOUT: %C.decl.loc35: %C.type.322e3b.1 = fn_decl @C.loc35 [concrete = constants.%C.010386.1] {} {}
// CHECK:STDOUT: %C.decl.loc43: %C.type.322e3b.2 = fn_decl @C.loc43 [concrete = constants.%C.010386.2] {
// 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_tuple.type = value_param call_param0
// CHECK:STDOUT: %.loc43_10.1: type = splice_block %.loc43_10.3 [concrete = constants.%empty_tuple.type] {
@@ -271,7 +271,7 @@ import library "extern_api";
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [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]
@@ -282,7 +282,7 @@ import library "extern_api";
// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete]
// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %tuple.type.a8a [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.e71 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete]
// CHECK:STDOUT: %.510: Core.Form = init_form %struct_type.c [concrete]
// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete]
@@ -318,7 +318,7 @@ import library "extern_api";
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {}
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// 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.loc5_17 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -332,7 +332,7 @@ import library "extern_api";
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.e71 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.e1a = out_param_pattern [concrete = constants.%return.param_patt.b6f]
// CHECK:STDOUT: %return.patt: %pattern_type.e1a = return_slot_pattern %return.param_patt, %struct_type.c [concrete = constants.%return.patt.00b]
// CHECK:STDOUT: } {
@@ -377,7 +377,7 @@ import library "extern_api";
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [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]
@@ -388,7 +388,7 @@ import library "extern_api";
// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%i32) [concrete]
// CHECK:STDOUT: %pattern_type.e71: type = pattern_type %tuple.type.a8a [concrete]
// CHECK:STDOUT: %c.param_patt: %pattern_type.e71 = value_param_pattern [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = at_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = wrapper_binding_pattern c, %c.param_patt [concrete]
// CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete]
// CHECK:STDOUT: %.510: Core.Form = init_form %struct_type.c [concrete]
// CHECK:STDOUT: %pattern_type.e1a: type = pattern_type %struct_type.c [concrete]
@@ -424,7 +424,7 @@ import library "extern_api";
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {}
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {
// CHECK:STDOUT: %b.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%b.param_patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = at_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// CHECK:STDOUT: %b.patt: %pattern_type.6b6 = wrapper_binding_pattern b, %b.param_patt [concrete = constants.%b.patt]
// 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.loc5_52 [concrete = constants.%return.patt.e1b]
// CHECK:STDOUT: } {
@@ -438,7 +438,7 @@ import library "extern_api";
// CHECK:STDOUT: }
// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [concrete = constants.%C] {
// CHECK:STDOUT: %c.param_patt: %pattern_type.e71 = value_param_pattern [concrete = constants.%c.param_patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = at_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %c.patt: %pattern_type.e71 = wrapper_binding_pattern c, %c.param_patt [concrete = constants.%c.patt]
// CHECK:STDOUT: %return.param_patt: %pattern_type.e1a = out_param_pattern [concrete = constants.%return.param_patt.b6f]
// CHECK:STDOUT: %return.patt: %pattern_type.e1a = return_slot_pattern %return.param_patt, %struct_type.c [concrete = constants.%return.patt.00b]
// CHECK:STDOUT: } {
@@ -25,7 +25,7 @@ fn G(a: i32);
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete]
// CHECK:STDOUT: %pattern_type.6b6: type = pattern_type %i32 [concrete]
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = 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: %G.type: type = fn_type @G [concrete]
@@ -50,7 +50,7 @@ fn G(a: i32);
// CHECK:STDOUT: %Core.import = import Core
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]
@@ -58,7 +58,7 @@ fn G(a: i32);
// CHECK:STDOUT: }
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
// CHECK:STDOUT: %a.param_patt: %pattern_type.6b6 = value_param_pattern [concrete = constants.%a.param_patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = at_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: %a.patt: %pattern_type.6b6 = wrapper_binding_pattern a, %a.param_patt [concrete = constants.%a.patt]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %i32 = value_param call_param0
// CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32]

Some files were not shown because too many files have changed in this diff Show More