mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 08:44:41 +01:00
Model patterns as constant values (#5385)
This will enable us to simplify support for parameter and return patterns in import, which operates primarily on constants.
This commit is contained in:
+4
-4
@@ -50,8 +50,8 @@ fn G() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.b5a = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.b5a = out_param_pattern %return.patt, call_param0
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.b5a = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.b5a = out_param_pattern %return.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_12: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -72,8 +72,8 @@ fn G() {
|
||||
// CHECK:STDOUT: fn @G() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %v.patt: %pattern_type.b65 = binding_pattern v
|
||||
// CHECK:STDOUT: %.loc14_3.1: %pattern_type.b65 = var_pattern %v.patt
|
||||
// CHECK:STDOUT: %v.patt: %pattern_type.b65 = binding_pattern v [concrete]
|
||||
// CHECK:STDOUT: %.loc14_3.1: %pattern_type.b65 = var_pattern %v.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %v.var: ref %array_type = var v
|
||||
// CHECK:STDOUT: %F.ref.loc14_39: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
|
||||
|
||||
+4
-4
@@ -74,8 +74,8 @@ fn G() {
|
||||
// CHECK:STDOUT: fn @G() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc13_3.1: %pattern_type.5d8 = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc13_3.1: %pattern_type.5d8 = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %int_1.loc13_27: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
|
||||
@@ -120,8 +120,8 @@ fn G() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.b5a = binding_pattern b
|
||||
// CHECK:STDOUT: %.loc14_3.1: %pattern_type.b5a = var_pattern %b.patt
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.b5a = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %.loc14_3.1: %pattern_type.b5a = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b.var: ref %tuple.type.189 = var b
|
||||
// CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
|
||||
|
||||
@@ -63,8 +63,8 @@ fn Run() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt, call_param0
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.b74 = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.b74 = out_param_pattern %return.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -95,8 +95,8 @@ fn Run() {
|
||||
// CHECK:STDOUT: fn @Run() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %t.patt: %pattern_type.a98 = binding_pattern t
|
||||
// CHECK:STDOUT: %.loc14_3.1: %pattern_type.a98 = var_pattern %t.patt
|
||||
// CHECK:STDOUT: %t.patt: %pattern_type.a98 = binding_pattern t [concrete]
|
||||
// CHECK:STDOUT: %.loc14_3.1: %pattern_type.a98 = var_pattern %t.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %t.var: ref %array_type = var t
|
||||
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F]
|
||||
|
||||
+4
-4
@@ -64,8 +64,8 @@ var b: array(i32, 3) = a;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.b5a = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.b5a = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.b5a = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.b5a = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %tuple.type.189 = var a
|
||||
// CHECK:STDOUT: %.loc11_22.1: type = splice_block %.loc11_22.3 [concrete = constants.%tuple.type.189] {
|
||||
@@ -80,8 +80,8 @@ var b: array(i32, 3) = a;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: ref %tuple.type.189 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = binding_pattern b
|
||||
// CHECK:STDOUT: %.loc12_1: %pattern_type.5d8 = var_pattern %b.patt
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %.loc12_1: %pattern_type.5d8 = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b.var: ref %array_type = var b
|
||||
// CHECK:STDOUT: %.loc12_20: type = splice_block %array_type [concrete = constants.%array_type] {
|
||||
|
||||
+6
-6
@@ -75,8 +75,8 @@ var c: array((), 5) = ((), (), (), (), (),);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.a98 = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.a98 = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.a98 = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.a98 = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type.0cb = var a
|
||||
// CHECK:STDOUT: %.loc11_20: type = splice_block %array_type.loc11 [concrete = constants.%array_type.0cb] {
|
||||
@@ -87,8 +87,8 @@ var c: array((), 5) = ((), (), (), (), (),);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: ref %array_type.0cb = bind_name a, %a.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.e85 = binding_pattern b
|
||||
// CHECK:STDOUT: %.loc12_1: %pattern_type.e85 = var_pattern %b.patt
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.e85 = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %.loc12_1: %pattern_type.e85 = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b.var: ref %array_type.ce7 = var b
|
||||
// CHECK:STDOUT: %.loc12_20: type = splice_block %array_type.loc12 [concrete = constants.%array_type.ce7] {
|
||||
@@ -101,8 +101,8 @@ var c: array((), 5) = ((), (), (), (), (),);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b: ref %array_type.ce7 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.d84 = binding_pattern c
|
||||
// CHECK:STDOUT: %.loc13_1: %pattern_type.d84 = var_pattern %c.patt
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.d84 = binding_pattern c [concrete]
|
||||
// CHECK:STDOUT: %.loc13_1: %pattern_type.d84 = var_pattern %c.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %c.var: ref %array_type.c13 = var c
|
||||
// CHECK:STDOUT: %.loc13_19: type = splice_block %array_type.loc13 [concrete = constants.%array_type.c13] {
|
||||
|
||||
+14
-14
@@ -99,12 +99,12 @@ let c: array(i32, ConvertToU32(3))* = &a;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Add.decl: %Add.type.b1f = fn_decl @Add.1 [concrete = constants.%Add] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt, call_param1
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %b.param_patt: %pattern_type.7ce = value_param_pattern %b.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc11_27: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_27: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -124,10 +124,10 @@ let c: array(i32, ConvertToU32(3))* = &a;
|
||||
// CHECK:STDOUT: %return: ref %i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %ConvertToU32.decl: %ConvertToU32.type = fn_decl @ConvertToU32 [concrete = constants.%ConvertToU32] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.4a9 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.4a9 = out_param_pattern %return.patt, call_param1
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.7ce = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.7ce = value_param_pattern %a.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.4a9 = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.4a9 = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc12_28: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(constants.%int_32) [concrete = constants.%u32]
|
||||
@@ -141,8 +141,8 @@ let c: array(i32, ConvertToU32(3))* = &a;
|
||||
// CHECK:STDOUT: %return: ref %u32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc14_1: %pattern_type.5d8 = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc14_1: %pattern_type.5d8 = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %.loc14_28: type = splice_block %array_type.loc14 [concrete = constants.%array_type] {
|
||||
@@ -179,7 +179,7 @@ let c: array(i32, ConvertToU32(3))* = &a;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.743 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.743 = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc15: type = splice_block %ptr.loc15 [concrete = constants.%ptr.f01] {
|
||||
// CHECK:STDOUT: %int_32.loc15: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
@@ -190,7 +190,7 @@ let c: array(i32, ConvertToU32(3))* = &a;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b: %ptr.f01 = bind_name b, @__global_init.%addr.loc15
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.743 = binding_pattern c
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.743 = binding_pattern c [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc16_35: type = splice_block %ptr.loc16 [concrete = constants.%ptr.f01] {
|
||||
// CHECK:STDOUT: %int_32.loc16: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
|
||||
@@ -69,10 +69,10 @@ var a: array(i32, Negate(1));
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Negate.decl: %Negate.type.15b = fn_decl @Negate.1 [concrete = constants.%Negate] {
|
||||
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1
|
||||
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = binding_pattern n [concrete]
|
||||
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc11_22: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_22: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -86,8 +86,8 @@ var a: array(i32, Negate(1));
|
||||
// CHECK:STDOUT: %return: ref %i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc17_1: <error> = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc17_1: <error> = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %.loc17_28: type = splice_block %array_type [concrete = <error>] {
|
||||
|
||||
@@ -49,8 +49,8 @@ var b: array(1, 39999999999999999993);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc15_1: <error> = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc15_1: <error> = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %.loc15_39: type = splice_block %array_type.loc15 [concrete = <error>] {
|
||||
@@ -61,8 +61,8 @@ var b: array(1, 39999999999999999993);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: <error> = bind_name a, <error>
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: <error> = binding_pattern b
|
||||
// CHECK:STDOUT: %.loc24_1: <error> = var_pattern %b.patt
|
||||
// CHECK:STDOUT: %b.patt: <error> = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %.loc24_1: <error> = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b.var: ref <error> = var b
|
||||
// CHECK:STDOUT: %.loc24_37: type = splice_block %array_type.loc24 [concrete = <error>] {
|
||||
|
||||
@@ -49,8 +49,8 @@ var p: Incomplete* = &a[0];
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Incomplete.decl: type = class_decl @Incomplete [concrete = constants.%Incomplete] {} {}
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc20_1: <error> = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc20_1: <error> = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %.loc20_27: type = splice_block %array_type [concrete = constants.%array_type] {
|
||||
@@ -60,8 +60,8 @@ var p: Incomplete* = &a[0];
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: <error> = bind_name a, <error>
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %p.patt: %pattern_type = binding_pattern p
|
||||
// CHECK:STDOUT: %.loc22_1: %pattern_type = var_pattern %p.patt
|
||||
// CHECK:STDOUT: %p.patt: %pattern_type = binding_pattern p [concrete]
|
||||
// CHECK:STDOUT: %.loc22_1: %pattern_type = var_pattern %p.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %p.var: ref %ptr = var p
|
||||
// CHECK:STDOUT: %.loc22_18: type = splice_block %ptr [concrete = constants.%ptr] {
|
||||
|
||||
+2
-2
@@ -38,8 +38,8 @@ var a: array(1, 1);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc18_1: <error> = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: <error> = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc18_1: <error> = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %.loc18_18: type = splice_block %array_type [concrete = <error>] {
|
||||
|
||||
+2
-2
@@ -42,8 +42,8 @@ var a: array(i32, 1) = (1, 2, 3);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.a98 = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc15_1: %pattern_type.a98 = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.a98 = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc15_1: %pattern_type.a98 = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %.loc15_20: type = splice_block %array_type [concrete = constants.%array_type] {
|
||||
|
||||
@@ -68,8 +68,8 @@ var b: i32 = a[{.index = 3}.index];
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.5d8 = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.5d8 = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %.loc11_20: type = splice_block %array_type [concrete = constants.%array_type] {
|
||||
@@ -80,8 +80,8 @@ var b: i32 = a[{.index = 3}.index];
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b
|
||||
// CHECK:STDOUT: %.loc16_1: %pattern_type.7ce = var_pattern %b.patt
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %.loc16_1: %pattern_type.7ce = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b.var: ref %i32 = var b
|
||||
// CHECK:STDOUT: %.loc16_8: type = splice_block %i32.loc16 [concrete = constants.%i32] {
|
||||
|
||||
+12
-12
@@ -96,8 +96,8 @@ var d: array(i32, 3) = t2;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc18_1: %pattern_type.5d8 = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc18_1: %pattern_type.5d8 = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %.loc18_20: type = splice_block %array_type.loc18 [concrete = constants.%array_type] {
|
||||
@@ -108,8 +108,8 @@ var d: array(i32, 3) = t2;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %t1.patt: %pattern_type.99d = binding_pattern t1
|
||||
// CHECK:STDOUT: %.loc20_1: %pattern_type.99d = var_pattern %t1.patt
|
||||
// CHECK:STDOUT: %t1.patt: %pattern_type.99d = binding_pattern t1 [concrete]
|
||||
// CHECK:STDOUT: %.loc20_1: %pattern_type.99d = var_pattern %t1.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %t1.var: ref %tuple.type.9e7 = var t1
|
||||
// CHECK:STDOUT: %.loc20_29.1: type = splice_block %.loc20_29.3 [concrete = constants.%tuple.type.9e7] {
|
||||
@@ -120,8 +120,8 @@ var d: array(i32, 3) = t2;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %t1: ref %tuple.type.9e7 = bind_name t1, %t1.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = binding_pattern b
|
||||
// CHECK:STDOUT: %.loc28_1: %pattern_type.5d8 = var_pattern %b.patt
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.5d8 = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %.loc28_1: %pattern_type.5d8 = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b.var: ref %array_type = var b
|
||||
// CHECK:STDOUT: %.loc28_20: type = splice_block %array_type.loc28 [concrete = constants.%array_type] {
|
||||
@@ -132,8 +132,8 @@ var d: array(i32, 3) = t2;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b: ref %array_type = bind_name b, %b.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.5d8 = binding_pattern c
|
||||
// CHECK:STDOUT: %.loc34_1: %pattern_type.5d8 = var_pattern %c.patt
|
||||
// CHECK:STDOUT: %c.patt: %pattern_type.5d8 = binding_pattern c [concrete]
|
||||
// CHECK:STDOUT: %.loc34_1: %pattern_type.5d8 = var_pattern %c.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %c.var: ref %array_type = var c
|
||||
// CHECK:STDOUT: %.loc34_20: type = splice_block %array_type.loc34 [concrete = constants.%array_type] {
|
||||
@@ -144,8 +144,8 @@ var d: array(i32, 3) = t2;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %c: ref %array_type = bind_name c, %c.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %t2.patt: %pattern_type.511 = binding_pattern t2
|
||||
// CHECK:STDOUT: %.loc36_1: %pattern_type.511 = var_pattern %t2.patt
|
||||
// CHECK:STDOUT: %t2.patt: %pattern_type.511 = binding_pattern t2 [concrete]
|
||||
// CHECK:STDOUT: %.loc36_1: %pattern_type.511 = var_pattern %t2.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %t2.var: ref %tuple.type.d07 = var t2
|
||||
// CHECK:STDOUT: %.loc36_18.1: type = splice_block %.loc36_18.3 [concrete = constants.%tuple.type.d07] {
|
||||
@@ -158,8 +158,8 @@ var d: array(i32, 3) = t2;
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %t2: ref %tuple.type.d07 = bind_name t2, %t2.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %d.patt: %pattern_type.5d8 = binding_pattern d
|
||||
// CHECK:STDOUT: %.loc41_1: %pattern_type.5d8 = var_pattern %d.patt
|
||||
// CHECK:STDOUT: %d.patt: %pattern_type.5d8 = binding_pattern d [concrete]
|
||||
// CHECK:STDOUT: %.loc41_1: %pattern_type.5d8 = var_pattern %d.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %d.var: ref %array_type = var d
|
||||
// CHECK:STDOUT: %.loc41_20: type = splice_block %array_type.loc41 [concrete = constants.%array_type] {
|
||||
|
||||
+8
-8
@@ -71,12 +71,12 @@ fn G() -> i32 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %arr.patt: %pattern_type.5d8 = binding_pattern arr
|
||||
// CHECK:STDOUT: %arr.param_patt: %pattern_type.5d8 = value_param_pattern %arr.patt, call_param0
|
||||
// CHECK:STDOUT: %i.patt: %pattern_type.7ce = binding_pattern i
|
||||
// CHECK:STDOUT: %i.param_patt: %pattern_type.7ce = value_param_pattern %i.patt, call_param1
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2
|
||||
// CHECK:STDOUT: %arr.patt: %pattern_type.5d8 = binding_pattern arr [concrete]
|
||||
// CHECK:STDOUT: %arr.param_patt: %pattern_type.5d8 = value_param_pattern %arr.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %i.patt: %pattern_type.7ce = binding_pattern i [concrete]
|
||||
// CHECK:STDOUT: %i.param_patt: %pattern_type.7ce = value_param_pattern %i.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param2 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc11_37: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_37: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -98,8 +98,8 @@ fn G() -> i32 {
|
||||
// CHECK:STDOUT: %return: ref %i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
|
||||
+3
-3
@@ -57,7 +57,7 @@ fn H() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0
|
||||
// CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.loc11_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc11_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
@@ -76,8 +76,8 @@ fn H() {
|
||||
// CHECK:STDOUT: fn() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %arr.patt: @G.%pattern_type (%pattern_type.d48) = binding_pattern arr
|
||||
// CHECK:STDOUT: %.loc13_3.1: @G.%pattern_type (%pattern_type.d48) = var_pattern %arr.patt
|
||||
// CHECK:STDOUT: %arr.patt: @G.%pattern_type (%pattern_type.d48) = binding_pattern arr [concrete]
|
||||
// CHECK:STDOUT: %.loc13_3.1: @G.%pattern_type (%pattern_type.d48) = var_pattern %arr.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %arr.var: ref @G.%array_type.loc13_22.2 (%array_type.281) = var arr
|
||||
// CHECK:STDOUT: %.loc13_27.1: %empty_tuple.type = tuple_literal ()
|
||||
|
||||
+6
-6
@@ -49,8 +49,8 @@ fn G(n: i32) -> i32 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.b6e = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.b6e = out_param_pattern %return.patt, call_param0
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.b6e = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.b6e = out_param_pattern %return.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
@@ -95,10 +95,10 @@ fn G(n: i32) -> i32 {
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %default.import = import <none>
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
|
||||
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1
|
||||
// CHECK:STDOUT: %n.patt: %pattern_type.7ce = binding_pattern n [concrete]
|
||||
// CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc4_17: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc4_17: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32]
|
||||
|
||||
+4
-4
@@ -64,8 +64,8 @@ var b: i32 = a[{.index = 2}.index];
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.5d8 = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.5d8 = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.5d8 = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %.loc11_20: type = splice_block %array_type [concrete = constants.%array_type] {
|
||||
@@ -76,8 +76,8 @@ var b: i32 = a[{.index = 2}.index];
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b
|
||||
// CHECK:STDOUT: %.loc12_1: %pattern_type.7ce = var_pattern %b.patt
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.7ce = binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %.loc12_1: %pattern_type.7ce = var_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b.var: ref %i32 = var b
|
||||
// CHECK:STDOUT: %.loc12_8: type = splice_block %i32.loc12 [concrete = constants.%i32] {
|
||||
|
||||
@@ -81,7 +81,7 @@ fn H() { G(3); }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {
|
||||
// CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0
|
||||
// CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc4: type = splice_block %i32.loc4 [concrete = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc4: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
@@ -105,8 +105,8 @@ fn H() { G(3); }
|
||||
// CHECK:STDOUT: fn() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %arr.patt: @F.%pattern_type (%pattern_type.ccc) = binding_pattern arr
|
||||
// CHECK:STDOUT: %.loc9_3: @F.%pattern_type (%pattern_type.ccc) = var_pattern %arr.patt
|
||||
// CHECK:STDOUT: %arr.patt: @F.%pattern_type (%pattern_type.ccc) = binding_pattern arr [concrete]
|
||||
// CHECK:STDOUT: %.loc9_3: @F.%pattern_type (%pattern_type.ccc) = var_pattern %arr.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %arr.var: ref @F.%array_type.loc9_24.2 (%array_type) = var arr
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1]
|
||||
@@ -206,7 +206,7 @@ fn H() { G(3); }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
|
||||
// CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0, template
|
||||
// CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0, template [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc5: type = splice_block %i32.loc5 [concrete = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc5: Core.IntLiteral = int_value 32 [concrete = constants.%int_32]
|
||||
@@ -226,8 +226,8 @@ fn H() { G(3); }
|
||||
// CHECK:STDOUT: fn() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %arr.patt: <error> = binding_pattern arr
|
||||
// CHECK:STDOUT: %.loc10_3: <error> = var_pattern %arr.patt
|
||||
// CHECK:STDOUT: %arr.patt: <error> = binding_pattern arr [concrete]
|
||||
// CHECK:STDOUT: %.loc10_3: <error> = var_pattern %arr.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %arr.var: ref <error> = var arr
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1]
|
||||
|
||||
+2
-2
@@ -83,8 +83,8 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: name_binding_decl {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.b3e = binding_pattern a
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.b3e = var_pattern %a.patt
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.b3e = binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %.loc11_1: %pattern_type.b3e = var_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %.loc11_20: type = splice_block %array_type [concrete = constants.%array_type] {
|
||||
|
||||
Reference in New Issue
Block a user